You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2010/02/25 02:22:37 UTC

svn commit: r916080 [2/2] - in /cxf/trunk: api/src/main/java/org/apache/cxf/endpoint/ api/src/main/java/org/apache/cxf/message/ api/src/main/java/org/apache/cxf/service/model/ common/common/src/main/java/org/apache/cxf/common/util/ rt/bindings/soap/src...

Modified: cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsEndpointImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsEndpointImpl.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsEndpointImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsEndpointImpl.java Thu Feb 25 01:22:34 2010
@@ -84,6 +84,15 @@
     private List<WebServiceFeature> wsFeatures;
     private List<AbstractFeature> features;
     
+    //interceptors added/removed to chains as needed
+    private SOAPHandlerInterceptor soapHandlerInterceptor;
+    private LogicalHandlerInInterceptor logicalInInterceptor;
+    private LogicalHandlerOutInterceptor logicalOutInterceptor;
+    private LogicalHandlerFaultOutInterceptor logicalFaultOutInterceptor;
+    private SOAPHandlerFaultOutInterceptor soapFaultOutInterceptor;
+    private LogicalHandlerFaultInInterceptor logicalFaultInInterceptor;
+    private SOAPHandlerFaultInInterceptor soapFaultInInterceptor;
+    
     public JaxWsEndpointImpl(Bus bus, Service s, EndpointInfo ei) throws EndpointException {
         this(bus, s, ei, null, null, null, true);
     }
@@ -118,13 +127,13 @@
         }
 
         // Inbound chain
-        in.add(new LogicalHandlerInInterceptor(jaxwsBinding));
+        logicalInInterceptor = new LogicalHandlerInInterceptor(jaxwsBinding);
         if (!isProvider) {
             in.add(new WrapperClassInInterceptor());
             in.add(new HolderInInterceptor());
         }
         if (getBinding() instanceof SoapBinding) {
-            in.add(new SOAPHandlerInterceptor(jaxwsBinding));
+            soapHandlerInterceptor = new SOAPHandlerInterceptor(jaxwsBinding);
             in.add(new SwAInInterceptor());
             getOutInterceptors().add(new SwAOutInterceptor());
             if (isProvider && mode == Mode.MESSAGE) {
@@ -136,38 +145,28 @@
         }
 
         // Outbound chain
-        out.add(new LogicalHandlerOutInterceptor(jaxwsBinding));
+        logicalOutInterceptor = new LogicalHandlerOutInterceptor(jaxwsBinding);
         if (!isProvider) {
             out.add(new WrapperClassOutInterceptor());
             out.add(new HolderOutInterceptor());
         }
-        if (getBinding() instanceof SoapBinding) {
-            out.add(new SOAPHandlerInterceptor(jaxwsBinding));
-            if (mode == Mode.MESSAGE) {
-                SAAJOutInterceptor saajOut = new SAAJOutInterceptor();
-                out.add(saajOut);
-                out.add(new MessageModeOutInterceptor(saajOut,
-                                                      getBinding().getBindingInfo().getName()));
-            }
+        if (getBinding() instanceof SoapBinding && mode == Mode.MESSAGE) {
+            SAAJOutInterceptor saajOut = new SAAJOutInterceptor();
+            out.add(saajOut);
+            out.add(new MessageModeOutInterceptor(saajOut,
+                                                  getBinding().getBindingInfo().getName()));
         } else if (isProvider) {
             out.add(new MessageModeOutInterceptor(clazz, getBinding().getBindingInfo().getName()));
         }
+
+        logicalFaultOutInterceptor = new LogicalHandlerFaultOutInterceptor(jaxwsBinding);
+        logicalFaultInInterceptor = new LogicalHandlerFaultInInterceptor(jaxwsBinding);
         
-        //Outbound fault chain
-        List<Interceptor<? extends Message>> outFault = super.getOutFaultInterceptors();    
-        outFault.add(new LogicalHandlerFaultOutInterceptor(jaxwsBinding));
         if (getBinding() instanceof SoapBinding) {
-            outFault.add(new SOAPHandlerFaultOutInterceptor(jaxwsBinding));
+            soapFaultOutInterceptor = new SOAPHandlerFaultOutInterceptor(jaxwsBinding);
+            soapFaultInInterceptor = new SOAPHandlerFaultInInterceptor(jaxwsBinding);
         }
 
-        //Inbound fault chain
-        List<Interceptor<? extends Message>> inFault = super.getInFaultInterceptors(); 
-        inFault.add(new LogicalHandlerFaultInInterceptor(jaxwsBinding));
-        if (getBinding() instanceof SoapBinding) {
-            inFault.add(new SOAPHandlerFaultInInterceptor(jaxwsBinding));
-        }
-        
-        
         if (ei != null) {
             if (!isFromWsdl) {
                 buildWsdlExtensibilities(ei.getBinding());
@@ -326,18 +325,60 @@
     
     final void createJaxwsBinding() {
         if (getBinding() instanceof SoapBinding) {
-            jaxwsBinding = new SOAPBindingImpl(getEndpointInfo().getBinding());
+            jaxwsBinding = new SOAPBindingImpl(getEndpointInfo().getBinding(), this);
             MTOMFeature mtomFeature = getMTOMFeature();
             if (mtomFeature != null && mtomFeature.isEnabled()) {
                 ((SOAPBinding)jaxwsBinding).setMTOMEnabled(true);
             }
         } else if (getBinding() instanceof XMLBinding) {
-            jaxwsBinding = new HTTPBindingImpl(getEndpointInfo().getBinding());
+            jaxwsBinding = new HTTPBindingImpl(getEndpointInfo().getBinding(), this);
         } else {
             //REVISIT: Should not get here, though some bindings like JBI
             //did not implement their own Binding type.
-            jaxwsBinding = new DefaultBindingImpl();
-           
+            jaxwsBinding = new DefaultBindingImpl(this);
+        }
+    }
+
+    public void addHandlerInterceptors() {
+        List<Interceptor<? extends Message>> in = super.getInInterceptors();       
+        List<Interceptor<? extends Message>> out = super.getOutInterceptors();
+        List<Interceptor<? extends Message>> outFault = super.getOutFaultInterceptors();    
+        List<Interceptor<? extends Message>> inFault = super.getInFaultInterceptors(); 
+        
+        in.add(logicalInInterceptor);
+        out.add(logicalOutInterceptor);
+        inFault.add(logicalFaultInInterceptor);
+        outFault.add(logicalFaultOutInterceptor);
+        if (soapHandlerInterceptor != null) {
+            in.add(soapHandlerInterceptor);
+            out.add(soapHandlerInterceptor);
+        }
+        if (soapFaultInInterceptor != null) {
+            inFault.add(soapFaultInInterceptor);
+        }
+        if (soapFaultOutInterceptor != null) {
+            outFault.add(soapFaultOutInterceptor);
+        }
+    }
+    public void removeHandlerInterceptors() {
+        List<Interceptor<? extends Message>> in = super.getInInterceptors();       
+        List<Interceptor<? extends Message>> out = super.getOutInterceptors();
+        List<Interceptor<? extends Message>> outFault = super.getOutFaultInterceptors();    
+        List<Interceptor<? extends Message>> inFault = super.getInFaultInterceptors(); 
+        
+        in.remove(logicalInInterceptor);
+        out.remove(logicalOutInterceptor);
+        inFault.remove(logicalFaultInInterceptor);
+        outFault.remove(logicalFaultOutInterceptor);
+        if (soapHandlerInterceptor != null) {
+            in.remove(soapHandlerInterceptor);
+            out.remove(soapHandlerInterceptor);
+        }
+        if (soapFaultInInterceptor != null) {
+            inFault.remove(soapFaultInInterceptor);
+        }
+        if (soapFaultOutInterceptor != null) {
+            outFault.remove(soapFaultOutInterceptor);
         }
     }
 }

Modified: cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java (original)
+++ cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/ConfiguredEndpointTest.java Thu Feb 25 01:22:34 2010
@@ -290,19 +290,19 @@
         assertTrue("Unexpected value for property validating", 
                    Boolean.valueOf((String) ei.getProperties().get(Message.SCHEMA_VALIDATION_ENABLED)));
         List<Interceptor<? extends Message>> interceptors = endpoint.getInInterceptors();
-        assertEquals("Unexpected number of interceptors.", 6, interceptors.size());
+        assertEquals("Unexpected number of interceptors.", 4, interceptors.size());
         assertEquals("Unexpected interceptor id.", "endpoint-in", 
                      findTestInterceptor(interceptors).getId());
         interceptors = endpoint.getOutInterceptors();
-        assertEquals("Unexpected number of interceptors.", 7, interceptors.size());
+        assertEquals("Unexpected number of interceptors.", 5, interceptors.size());
         assertEquals("Unexpected interceptor id.", "endpoint-out", 
                      findTestInterceptor(interceptors).getId());
         interceptors = endpoint.getInFaultInterceptors();
-        assertEquals("Unexpected number of interceptors.", 4, interceptors.size());
+        assertEquals("Unexpected number of interceptors.", 2, interceptors.size());
         assertEquals("Unexpected interceptor id.", "endpoint-in-fault", 
                      findTestInterceptor(interceptors).getId());
         interceptors = endpoint.getOutFaultInterceptors();
-        assertEquals("Unexpected number of interceptors.", 4, interceptors.size());
+        assertEquals("Unexpected number of interceptors.", 2, interceptors.size());
         assertEquals("Unexpected interceptor id.", "endpoint-out-fault", 
                      findTestInterceptor(interceptors).getId());
         

Modified: cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/AbstractProtocolHandlerInterceptorTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/AbstractProtocolHandlerInterceptorTest.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/AbstractProtocolHandlerInterceptorTest.java (original)
+++ cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/AbstractProtocolHandlerInterceptorTest.java Thu Feb 25 01:22:34 2010
@@ -19,6 +19,9 @@
 
 package org.apache.cxf.jaxws.handler;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import javax.xml.ws.Binding;
 import javax.xml.ws.handler.Handler;
 import javax.xml.ws.handler.MessageContext;
@@ -51,7 +54,11 @@
         invoker = control.createMock(HandlerChainInvoker.class);
         message = control.createMock(IIOPMessage.class);
         exchange = control.createMock(Exchange.class);
+        binding = control.createMock(Binding.class);
         
+        List<Handler> list = new ArrayList<Handler>();
+        list.add(null);
+        expect(binding.getHandlerChain()).andReturn(list).anyTimes();
     }
     
     @After

Modified: cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/HandlerChainInvokerTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/HandlerChainInvokerTest.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/HandlerChainInvokerTest.java (original)
+++ cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/HandlerChainInvokerTest.java Thu Feb 25 01:22:34 2010
@@ -252,6 +252,10 @@
     
     @Test
     public void testHandleMessageThrowsProtocolExceptionOutbound() {
+        message = new SoapMessage(message);
+        lmc = new LogicalMessageContextImpl(message);
+        pmc = new WrappedMessageContext(message);      
+
         ProtocolException pe = new ProtocolException("banzai");
         protocolHandlers[2].setException(pe);
         
@@ -265,7 +269,7 @@
         
         //create an empty SOAP body for testing
         try {
-            pmc = new SOAPMessageContextImpl(new SoapMessage(message));
+            pmc = new SOAPMessageContextImpl(message);
             MessageFactory factory = MessageFactory.newInstance();
             SOAPMessage soapMessage = factory.createMessage();      
             ((SOAPMessageContext)pmc).setMessage(soapMessage);            

Modified: cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/LogicalHandlerInterceptorTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/LogicalHandlerInterceptorTest.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/LogicalHandlerInterceptorTest.java (original)
+++ cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/LogicalHandlerInterceptorTest.java Thu Feb 25 01:22:34 2010
@@ -30,6 +30,7 @@
 import javax.xml.ws.handler.LogicalMessageContext;
 import javax.xml.ws.handler.MessageContext;
 
+import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.interceptor.InterceptorChain;
 import org.apache.cxf.jaxws.handler.logical.LogicalHandlerInInterceptor;
 import org.apache.cxf.message.Exchange;
@@ -85,6 +86,8 @@
                 return true;
             }
         });
+        List<Handler> hList = CastUtils.cast(list);
+        expect(binding.getHandlerChain()).andReturn(hList).anyTimes();
         expect(invoker.getLogicalHandlers()).andReturn(list);
         expect(message.getExchange()).andReturn(exchange).anyTimes();
         expect(message.get(Message.REQUESTOR_ROLE)).andReturn(Boolean.TRUE).anyTimes();
@@ -127,6 +130,8 @@
 
         IMocksControl control1 = createNiceControl();
         Binding binding1 = control1.createMock(Binding.class);
+        List<Handler> hList = CastUtils.cast(list);
+        expect(binding1.getHandlerChain()).andReturn(hList).anyTimes();
         Exchange exchange1 = control1.createMock(Exchange.class);
         expect(exchange1.get(HandlerChainInvoker.class)).andReturn(invoker1).anyTimes();
         Message outMessage = new MessageImpl();

Modified: cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java (original)
+++ cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptorTest.java Thu Feb 25 01:22:34 2010
@@ -124,6 +124,7 @@
 
         IMocksControl control = createNiceControl();
         Binding binding = control.createMock(Binding.class);
+        expect(binding.getHandlerChain()).andReturn(list).anyTimes();
         Exchange exchange = control.createMock(Exchange.class);
         expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker).anyTimes();
         SoapMessage message = new SoapMessage(new MessageImpl());
@@ -227,6 +228,7 @@
 
         IMocksControl control = createNiceControl();
         Binding binding = control.createMock(Binding.class);
+        expect(binding.getHandlerChain()).andReturn(list).anyTimes();
         Exchange exchange = control.createMock(Exchange.class);
         expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker).anyTimes();
         // This is to set direction to inbound
@@ -326,6 +328,7 @@
 
         IMocksControl control = createNiceControl();
         Binding binding = control.createMock(Binding.class);
+        expect(binding.getHandlerChain()).andReturn(list).anyTimes();
         Exchange exchange = control.createMock(Exchange.class);
         expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker).anyTimes();
         SoapMessage message = new SoapMessage(new MessageImpl());
@@ -410,6 +413,7 @@
         IMocksControl control = createNiceControl();
         Binding binding = control.createMock(Binding.class);
         Exchange exchange = control.createMock(Exchange.class);
+        expect(binding.getHandlerChain()).andReturn(list).anyTimes();
         expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker).anyTimes();
         // This is to set direction to inbound
         expect(exchange.getOutMessage()).andReturn(null);
@@ -461,9 +465,9 @@
 
         IMocksControl control = createNiceControl();
         Binding binding = control.createMock(Binding.class);
+        expect(binding.getHandlerChain()).andReturn(list).anyTimes();
         SoapMessage message = control.createMock(SoapMessage.class);
         Exchange exchange = control.createMock(Exchange.class);
-        expect(binding.getHandlerChain()).andReturn(list);
         expect(message.getExchange()).andReturn(exchange).anyTimes();
         expect(message.keySet()).andReturn(new HashSet<String>());
         expect(exchange.get(HandlerChainInvoker.class)).andReturn(invoker);

Modified: cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java (original)
+++ cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java Thu Feb 25 01:22:34 2010
@@ -31,7 +31,6 @@
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
-import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.configuration.jsse.TLSServerParameters;
 import org.apache.cxf.configuration.security.CertificateConstraintsType;
@@ -41,6 +40,7 @@
 import org.apache.cxf.interceptor.Fault;
 import org.apache.cxf.io.CachedOutputStream;
 import org.apache.cxf.message.ExchangeImpl;
+import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.transport.http.AbstractHTTPDestination;
@@ -162,7 +162,8 @@
         try {
             url = new URL(endpointInfo.getAddress());
         } catch (Exception e) {
-            throw new Fault(new Message("START_UP_SERVER_FAILED_MSG", LOG, e.getMessage()), e);
+            throw new Fault(new org.apache.cxf.common.i18n.Message("START_UP_SERVER_FAILED_MSG",
+                                                                   LOG, e.getMessage()), e);
         }
         engine.addServant(url, 
                           new JettyHTTPHandler(this, contextMatchOnExact()));
@@ -289,7 +290,7 @@
         if (LOG.isLoggable(Level.FINE)) {
             LOG.fine("Service http request on thread: " + Thread.currentThread());
         }
-        MessageImpl inMessage = retrieveFromContinuation(req);
+        Message inMessage = retrieveFromContinuation(req);
         
         if (inMessage == null) {
             
@@ -301,7 +302,7 @@
             
             setupMessage(inMessage, context, req, resp);
             
-            inMessage.setDestination(this);
+            ((MessageImpl)inMessage).setDestination(this);
     
             ExchangeImpl exchange = new ExchangeImpl();
             exchange.setInMessage(inMessage);
@@ -339,8 +340,8 @@
         }
     }
 
-    protected MessageImpl retrieveFromContinuation(HttpServletRequest req) {
-        MessageImpl m = null;
+    protected Message retrieveFromContinuation(HttpServletRequest req) {
+        Message m = null;
         
         if (!engine.getContinuationsEnabled()) {
             return null;
@@ -351,7 +352,7 @@
             Object o = cont.getObject();
             if (o instanceof ContinuationInfo) {
                 ContinuationInfo ci = (ContinuationInfo)o;
-                m = (MessageImpl)ci.getMessage();
+                m = ci.getMessage();
                 
                 // now that we got the message we don't need ContinuationInfo
                 // as we don't know how continuation was suspended, by jetty wrapper

Modified: cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/continuations/JettyContinuationWrapper.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/continuations/JettyContinuationWrapper.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/continuations/JettyContinuationWrapper.java (original)
+++ cxf/trunk/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/continuations/JettyContinuationWrapper.java Thu Feb 25 01:22:34 2010
@@ -70,12 +70,15 @@
     public void setObject(Object userObject) {
         
         ContinuationInfo ci = null;
-        
+        Message m = message;
+        if (m != null && m.getExchange() != null && m.getExchange().getInMessage() != null) {
+            m = m.getExchange().getInMessage();
+        }
         Object obj = continuation.getObject();
         if (obj instanceof ContinuationInfo) {
             ci = (ContinuationInfo)obj;
         } else {
-            ci = new ContinuationInfo(message);
+            ci = new ContinuationInfo(m);
             ci.setUserObject(obj);
         }
         if (message != userObject) {
@@ -108,7 +111,11 @@
     }
 
     protected Message getMessage() {
-        return message;
+        Message m = message;
+        if (m != null && m.getExchange().getInMessage() != null) {
+            m = m.getExchange().getInMessage();
+        }
+        return m;
     }
     
     public org.mortbay.util.ajax.Continuation getContinuation() {

Modified: cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java (original)
+++ cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java Thu Feb 25 01:22:34 2010
@@ -234,7 +234,7 @@
             new TestJettyDestination(transportFactory.getBus(), 
                                      transportFactory, ei);
         testDestination.finalizeConfig();
-        MessageImpl mi = testDestination.retrieveFromContinuation(httpRequest);
+        Message mi = testDestination.retrieveFromContinuation(httpRequest);
         assertSame("Message is lost", m, mi);
         EasyMock.verify(continuation);
         EasyMock.reset(httpRequest);
@@ -276,7 +276,7 @@
             new TestJettyDestination(transportFactory.getBus(), 
                                      transportFactory, ei);
         testDestination.finalizeConfig();
-        MessageImpl mi = testDestination.retrieveFromContinuation(httpRequest);
+        Message mi = testDestination.retrieveFromContinuation(httpRequest);
         assertNull("Continuations must be ignored", mi);
     }
     
@@ -1006,7 +1006,7 @@
         }
         
         @Override
-        public MessageImpl retrieveFromContinuation(HttpServletRequest request) {
+        public Message retrieveFromContinuation(HttpServletRequest request) {
             return super.retrieveFromContinuation(request);
         }
         

Modified: cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPTransportFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPTransportFactory.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPTransportFactory.java (original)
+++ cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPTransportFactory.java Thu Feb 25 01:22:34 2010
@@ -19,7 +19,6 @@
 
 package org.apache.cxf.transport.http;
 
-import java.net.MalformedURLException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
@@ -149,12 +148,8 @@
         HttpURLConnectionFactory fac = null;
         boolean useHttps = false;
 
-        try {
-            if (address == null) {
-                address = configuredConduit.getAddress();
-            }
-        } catch (MalformedURLException e) {
-            //ignore, just use info based on Tls
+        if (address == null) {
+            address = configuredConduit.getAddress();
         }
         if (address != null 
             && address.startsWith(HttpsURLConnectionFactory.HTTPS_URL_PROTOCOL_ID + ":/")) {

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=916080&r1=916079&r2=916080&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 Thu Feb 25 01:22:34 2010
@@ -205,6 +205,7 @@
      * is created on demand.
      */
     private URL defaultEndpointURL;
+    private String defaultEndpointURLString;
     private boolean fromEndpointReferenceType;
 
     // Configurable values
@@ -420,7 +421,7 @@
 
         // Get the correct URLConnection factory based on the 
         // configuration.
-        retrieveConnectionFactory();
+        connectionFactory = retrieveConnectionFactory(getAddress());
 
         // We have finalized the configuration. Any configurable entity
         // set now, must make changes dynamically.
@@ -453,18 +454,15 @@
      * UnitTest that will of course break, should the calls to the URL Connection
      * Factory get altered.
      */
-    protected synchronized void retrieveConnectionFactory() {
-        connectionFactory = AbstractHTTPTransportFactory.getConnectionFactory(this);
-    }
-    protected synchronized void retrieveConnectionFactory(String url) {
-        connectionFactory = AbstractHTTPTransportFactory.getConnectionFactory(this, url);
+    protected synchronized HttpURLConnectionFactory retrieveConnectionFactory(String url) {
+        return AbstractHTTPTransportFactory.getConnectionFactory(this, url);
     }
     
     
     protected synchronized HttpURLConnectionFactory getConnectionFactory(URL url) {
         if (connectionFactory == null 
             || !url.getProtocol().equals(connectionFactory.getProtocol())) {
-            retrieveConnectionFactory(url.toString());
+            connectionFactory = retrieveConnectionFactory(url.toString());
         }
 
         return connectionFactory;
@@ -497,16 +495,15 @@
         // protocol from the default set in EndpointInfo that is associated
         // with the Conduit.
         URL currentURL = setupURL(message);       
-        
+
         // The need to cache the request is off by default
         boolean needToCacheRequest = false;
         
         HTTPClientPolicy csPolicy = getClient(message);
-        HttpURLConnection connection = getConnectionFactory(currentURL)
-            .createConnection(getProxy(csPolicy), currentURL);
+
+        HttpURLConnectionFactory f = getConnectionFactory(currentURL);
+        HttpURLConnection connection = f.createConnection(getProxy(csPolicy), currentURL);
         connection.setDoOutput(true);  
-        
-        //TODO using Message context to decided HTTP send properties 
              
         long timeout = csPolicy.getConnectionTimeout();
         if (timeout > Integer.MAX_VALUE) {
@@ -533,7 +530,7 @@
         } else {
             connection.setRequestMethod("POST");
         }
-        
+                
         boolean isChunking = false;
         int chunkThreshold = 0;
         // We must cache the request if we have basic auth supplier
@@ -573,8 +570,7 @@
                 connection.setChunkedStreamingMode(-1);                    
             }
         }
-        
-        
+
         //Do we need to maintain a session?
         maintainSession = Boolean.TRUE.equals((Boolean)message.get(Message.MAINTAIN_SESSION));
         
@@ -614,15 +610,14 @@
         // Set the headers on the message according to configured 
         // client side policy.
         setHeadersByPolicy(message, currentURL, headers);
-     
         
-        message.setContent(OutputStream.class,
-                new WrappedOutputStream(
-                        message, connection,
-                        needToCacheRequest, 
-                        isChunking,
-                        chunkThreshold));
-       
+
+        message.setContent(OutputStream.class, 
+                           new WrappedOutputStream(
+                                   message, connection,
+                                   needToCacheRequest, 
+                                   isChunking,
+                                   chunkThreshold));
         // We are now "ready" to "send" the message. 
     }
     
@@ -662,11 +657,8 @@
      *                     established by the configured MessageTrustDecider.
      * @see MessageTrustDecider
      */
-    private void makeTrustDecision(Message message)
+    private void makeTrustDecision(Message message, HttpURLConnection connection)
         throws IOException {
-
-        HttpURLConnection connection = 
-            (HttpURLConnection) message.get(KEY_HTTP_CONNECTION);
         
         MessageTrustDecider decider2 = message.get(MessageTrustDecider.class);
         if (trustDecider != null || decider2 != null) {
@@ -748,7 +740,7 @@
         if (result == null) {
             if (pathInfo == null && queryString == null) {
                 URL url = getURL();
-                message.put(Message.ENDPOINT_ADDRESS, url.toString());
+                message.put(Message.ENDPOINT_ADDRESS, defaultEndpointURLString);
                 return url;
             }
             result = getURL().toString();
@@ -787,9 +779,9 @@
     /**
      * @return the default target address
      */
-    protected String getAddress() throws MalformedURLException {
+    protected String getAddress() {
         if (defaultEndpointURL != null) {
-            return defaultEndpointURL.toExternalForm();
+            return defaultEndpointURLString;
         } else if (fromEndpointReferenceType) {
             return getTarget().getAddress().getValue();
         }
@@ -799,8 +791,11 @@
     /**
      * @return the default target URL
      */
-    protected synchronized URL getURL() throws MalformedURLException {
-        return getURL(true);
+    protected URL getURL() throws MalformedURLException {
+        if (defaultEndpointURL == null) {
+            return getURL(true);
+        } 
+        return defaultEndpointURL;
     }
 
     /**
@@ -812,12 +807,14 @@
         if (defaultEndpointURL == null && createOnDemand) {
             if (fromEndpointReferenceType && getTarget().getAddress().getValue() != null) {
                 defaultEndpointURL = new URL(this.getTarget().getAddress().getValue());
+                defaultEndpointURLString = defaultEndpointURL.toExternalForm();
                 return defaultEndpointURL;
             }
             if (endpointInfo.getAddress() == null) {
                 throw new MalformedURLException("Invalid address. Endpoint address cannot be null.");
             }
             defaultEndpointURL = new URL(endpointInfo.getAddress());
+            defaultEndpointURLString = defaultEndpointURL.toExternalForm();
         }
         return defaultEndpointURL;
     }
@@ -911,9 +908,9 @@
         HttpURLConnection connection = 
             (HttpURLConnection)message.get(KEY_HTTP_CONNECTION);
 
-        String ct  = (String) message.get(Message.CONTENT_TYPE);
-        String enc = (String) message.get(Message.ENCODING);
-        
+        String ct  = (String)message.get(Message.CONTENT_TYPE);
+        String enc = (String)message.get(Message.ENCODING);
+
         if (null != ct) {
             if (enc != null 
                 && ct.indexOf("charset=") == -1
@@ -1317,7 +1314,7 @@
         // If this is called after the HTTPTransportFactory called 
         // finalizeConfig, we need to update the connection factory.
         if (configFinalized) {
-            retrieveConnectionFactory();
+            connectionFactory = retrieveConnectionFactory(getAddress());
         }
     }
 
@@ -1633,7 +1630,7 @@
         // makeTrustDecision needs to make a connect() call to
         // make sure the proper information is available.
         // 
-        makeTrustDecision(message);
+        makeTrustDecision(message, connection);
 
         // If this is a GET method we must not touch the output
         // stream as this automagically turns the request into a POST.
@@ -1761,7 +1758,7 @@
      * Wrapper output stream responsible for flushing headers and handling
      * the incoming HTTP-level response (not necessarily the MEP response).
      */
-    protected class WrappedOutputStream extends AbstractThresholdOutputStream {
+    public class WrappedOutputStream extends AbstractThresholdOutputStream {
         /**
          * This field contains the currently active connection.
          */
@@ -1785,7 +1782,6 @@
         protected CacheAndWriteOutputStream cachedStream;
 
         protected Message outMessage;
-        
         protected WrappedOutputStream(
                 Message m, 
                 HttpURLConnection c, 
@@ -1835,11 +1831,11 @@
             }
         }
         
-        protected void handleHeadersTrustCaching() throws IOException {
+        public void handleHeadersTrustCaching() throws IOException {
             // Need to set the headers before the trust decision
             // because they are set before the connect().
             setURLRequestHeaders(outMessage);
-            
+           
             //
             // This point is where the trust decision is made because the
             // Sun implementation of URLConnection will not let us 
@@ -1847,7 +1843,7 @@
             // makeTrustDecision needs to make a connect() call to
             // make sure the proper information is available.
             // 
-            makeTrustDecision(outMessage);
+            makeTrustDecision(outMessage, connection);
             
             // Trust is okay, set up for writing the request.
             
@@ -1872,6 +1868,7 @@
             } else {
                 wrappedStream = connection.getOutputStream();
             }
+            
         }
 
         public void flush() throws IOException {
@@ -1893,10 +1890,10 @@
             if (!written) {
                 handleHeadersTrustCaching();
             }
-            super.flush();
             if (!cachingForRetransmission) {
                 super.close();
             } else if (cachedStream != null) {
+                super.flush();
                 cachedStream.getOut().close();
                 cachedStream.closeFlowthroughStream();
             }
@@ -2069,9 +2066,10 @@
             }
         }
         protected void handleResponseInternal() throws IOException {
+            Exchange exchange = outMessage.getExchange();
             int responseCode = connection.getResponseCode();
-            if ((outMessage != null) && (outMessage.getExchange() != null)) {
-                outMessage.getExchange().put(Message.RESPONSE_CODE, responseCode);
+            if (outMessage != null && exchange != null) {
+                exchange.put(Message.RESPONSE_CODE, responseCode);
             }
             
             if (LOG.isLoggable(Level.FINE)) {
@@ -2094,7 +2092,6 @@
                     LOG.fine(buf.toString());
                 }
             }
-        
             
             if (responseCode == HttpURLConnection.HTTP_NOT_FOUND
                 && !MessageUtils.isTrue(outMessage.getContextualProperty(
@@ -2104,7 +2101,6 @@
             }
 
             
-            Exchange exchange = outMessage.getExchange();
 
             InputStream in = null;
             if (isOneway(exchange)) {
@@ -2127,13 +2123,13 @@
             
             Message inMessage = new MessageImpl();
             inMessage.setExchange(exchange);
-            
+            Map<String, List<String>> origHeaders = connection.getHeaderFields();
             Map<String, List<String>> headers = 
                 new HashMap<String, List<String>>();
             for (String key : connection.getHeaderFields().keySet()) {
                 if (key != null) {
                     headers.put(HttpHeaderHelper.getHeaderKey(key), 
-                        connection.getHeaderFields().get(key));
+                        origHeaders.get(key));
                 }
             }
             
@@ -2149,8 +2145,7 @@
                 LOG.log(Level.WARNING, m);
                 throw new IOException(m);   
             } 
-            
-            inMessage.put(Message.ENCODING, normalizedEncoding);
+            inMessage.put(Message.ENCODING, normalizedEncoding);            
                         
             if (maintainSession) {
                 List<String> cookies = connection.getHeaderFields().get("Set-Cookie");
@@ -2163,7 +2158,6 @@
                        : 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        
             inMessage.setContent(InputStream.class, in);

Modified: cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/policy/PolicyUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/policy/PolicyUtils.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/policy/PolicyUtils.java (original)
+++ cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/policy/PolicyUtils.java Thu Feb 25 01:22:34 2010
@@ -77,8 +77,8 @@
         if (pol != null) {
             return intersect(pol, confPolicy);
         }
-        AssertionInfoMap amap =  message.get(AssertionInfoMap.class);
-        if (null == amap) {
+        AssertionInfoMap amap = message.get(AssertionInfoMap.class);
+        if (null == amap || amap.isEmpty()) {
             return confPolicy;
         }
         Collection<AssertionInfo> ais = amap.get(HTTPCLIENTPOLICY_ASSERTION_QNAME);

Modified: cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/http/HTTPConduitURLEasyMockTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/http/HTTPConduitURLEasyMockTest.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/http/HTTPConduitURLEasyMockTest.java (original)
+++ cxf/trunk/rt/transports/http/src/test/java/org/apache/cxf/transport/http/HTTPConduitURLEasyMockTest.java Thu Feb 25 01:22:34 2010
@@ -86,13 +86,12 @@
             connectionFactory = testFactory;
         }
         @Override
-        protected void retrieveConnectionFactory() {
-            // do nothing. i.e do not change the connectionFactory field.
-        }
-        protected void retrieveConnectionFactory(String s) {
+        protected HttpURLConnectionFactory retrieveConnectionFactory(String s) {
             // do nothing. i.e do not change the connectionFactory field.
+            return connectionFactory;
         }
         
+        
     }
     /**
      * @throws java.lang.Exception

Modified: cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSDestination.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSDestination.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSDestination.java (original)
+++ cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/JMSDestination.java Thu Feb 25 01:22:34 2010
@@ -179,14 +179,14 @@
         try {
             getLogger().log(Level.FINE, "server received request: ", message);
              // Build CXF message from JMS message
-            MessageImpl inMessage = new MessageImpl();            
+            Message inMessage = new MessageImpl();            
             JMSUtils.populateIncomingContext(message, inMessage, 
                                              JMSConstants.JMS_SERVER_REQUEST_HEADERS, jmsConfig);
             
             JMSUtils.retrieveAndSetPayload(inMessage, message, (String)inMessage.get(Message.ENCODING));
             inMessage.put(JMSConstants.JMS_SERVER_RESPONSE_HEADERS, new JMSMessageHeadersType());
             inMessage.put(JMSConstants.JMS_REQUEST_MESSAGE, message);
-            inMessage.setDestination(this);
+            ((MessageImpl)inMessage).setDestination(this);
             if (jmsConfig.getMaxSuspendedContinuations() != 0) {
                 inMessage.put(ContinuationProvider.class.getName(), 
                               new JMSContinuationProvider(bus,
@@ -211,6 +211,8 @@
             // handle the incoming message
             incomingObserver.onMessage(inMessage);
             
+            inMessage = inMessage.getExchange().getInMessage();
+            
             //need to propagate any exceptions back to Spring container 
             //so transactions can occur
             if (inMessage.getContent(Exception.class) != null && session != null) {

Modified: cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuationProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuationProvider.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuationProvider.java (original)
+++ cxf/trunk/rt/transports/jms/src/main/java/org/apache/cxf/transport/jms/continuations/JMSContinuationProvider.java Thu Feb 25 01:22:34 2010
@@ -53,14 +53,18 @@
     }
     
     public Continuation getContinuation() {
-        if (inMessage.getExchange().isOneWay()) {
+        Message m = inMessage;
+        if (m != null && m.getExchange() != null && m.getExchange().getInMessage() != null) {
+            m = m.getExchange().getInMessage();
+        }
+        if (m.getExchange().isOneWay()) {
             return null;
         }
-        JMSContinuation cw = inMessage.get(JMSContinuation.class);
+        JMSContinuation cw = m.get(JMSContinuation.class);
         if (cw == null) {
-            cw = new JMSContinuation(bus, inMessage,  incomingObserver, continuations, 
+            cw = new JMSContinuation(bus, m,  incomingObserver, continuations, 
                                      jmsListener, jmsConfig);
-            inMessage.put(JMSContinuation.class, cw);
+            m.put(JMSContinuation.class, cw);
         }
         return cw;
         

Modified: cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java (original)
+++ cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java Thu Feb 25 01:22:34 2010
@@ -421,8 +421,8 @@
                                 // ensure decoupled back channel input stream is closed
                                 c.setMessageObserver(new MessageObserver() {
                                     public void onMessage(Message m) {
-                                        if (m.getContentFormats().contains(InputStream.class)) {
-                                            InputStream is = m.getContent(InputStream.class);
+                                        InputStream is = m.getContent(InputStream.class);
+                                        if (is != null) {
                                             try {
                                                 is.close();
                                             } catch (Exception e) {

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java Thu Feb 25 01:22:34 2010
@@ -146,6 +146,8 @@
                         }
                         message.getExchange().get(Endpoint.class).put(SecurityConstants.TOKEN_ID, 
                                                                       tok.getId());
+                        message.getExchange().put(SecurityConstants.TOKEN_ID, 
+                                                  tok.getId());
                         getTokenStore(message).add(tok);
                     }
                 } else {

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationInInterceptor.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationInInterceptor.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationInInterceptor.java Thu Feb 25 01:22:34 2010
@@ -233,6 +233,7 @@
                                                   policy,
                                                   null);
             endpoint.getEndpointInfo().setProperty(TokenStore.class.getName(), store);
+            message.getExchange().put(TokenStore.class.getName(), store);
         
             EndpointPolicy ep = pe.getServerEndpointPolicy(endpoint.getEndpointInfo(), destination);
             List<Interceptor<? extends Message>> interceptors = ep.getInterceptors();

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationOutInterceptor.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationOutInterceptor.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationOutInterceptor.java Thu Feb 25 01:22:34 2010
@@ -75,6 +75,8 @@
                     }
                     message.getExchange().get(Endpoint.class).put(SecurityConstants.TOKEN_ID, 
                                                                   tok.getId());
+                    message.getExchange().put(SecurityConstants.TOKEN_ID, 
+                                              tok.getId());
                     SecureConversationTokenInterceptorProvider.getTokenStore(message).add(tok);
                     
                 }

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationTokenInterceptorProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationTokenInterceptorProvider.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationTokenInterceptorProvider.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationTokenInterceptorProvider.java Thu Feb 25 01:22:34 2010
@@ -107,6 +107,7 @@
             tokenStore = new MemoryTokenStore();
             message.getExchange().get(Endpoint.class).getEndpointInfo()
                 .setProperty(TokenStore.class.getName(), tokenStore);
+            message.getExchange().put(TokenStore.class.getName(), tokenStore);
         }
         return tokenStore;
     }

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSClient.java Thu Feb 25 01:22:34 2010
@@ -574,6 +574,7 @@
         ptoken.setToken(sct);
         
         SignedEncryptedParts parts = new SignedEncryptedParts(true);
+        parts.setOptional(true);
         parts.setBody(true);
         parts.addHeader(new Header("To", addressingNamespace));
         parts.addHeader(new Header("From", addressingNamespace));

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java Thu Feb 25 01:22:34 2010
@@ -332,6 +332,9 @@
         synchronized (info) {
             TokenStore tokenStore = (TokenStore)message.getContextualProperty(TokenStore.class.getName());
             if (tokenStore == null) {
+                tokenStore = (TokenStore)info.getProperty(TokenStore.class.getName());
+            }
+            if (tokenStore == null) {
                 tokenStore = new MemoryTokenStore();
                 info.setProperty(TokenStore.class.getName(), tokenStore);
             }

Modified: cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/RoundTripTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/RoundTripTest.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/RoundTripTest.java (original)
+++ cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/RoundTripTest.java Thu Feb 25 01:22:34 2010
@@ -23,6 +23,8 @@
 import org.apache.cxf.endpoint.Client;
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.frontend.ClientProxy;
+import org.apache.cxf.interceptor.LoggingInInterceptor;
+import org.apache.cxf.interceptor.LoggingOutInterceptor;
 import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
 import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
 import org.apache.cxf.service.Service;
@@ -48,7 +50,9 @@
         Service service = server.getEndpoint().getService();
         
         service.getInInterceptors().add(new SAAJInInterceptor());
+        service.getInInterceptors().add(new LoggingInInterceptor());
         service.getOutInterceptors().add(new SAAJOutInterceptor());
+        service.getOutInterceptors().add(new LoggingOutInterceptor());
 
         wsIn = new WSS4JInInterceptor();
         wsIn.setProperty(WSHandlerConstants.SIG_PROP_FILE, "META-INF/cxf/insecurity.properties");
@@ -74,8 +78,10 @@
         echo = (Echo)proxyFac.create();
 
         client = ClientProxy.getClient(echo);
+        client.getInInterceptors().add(new LoggingInInterceptor());
         client.getInInterceptors().add(wsIn);
         client.getInInterceptors().add(new SAAJInInterceptor());
+        client.getOutInterceptors().add(new LoggingOutInterceptor());
         client.getOutInterceptors().add(wsOut);
         client.getOutInterceptors().add(new SAAJOutInterceptor());
     }

Modified: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/DispatchHandlerInvocationTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/DispatchHandlerInvocationTest.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/DispatchHandlerInvocationTest.java (original)
+++ cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/DispatchHandlerInvocationTest.java Thu Feb 25 01:22:34 2010
@@ -207,8 +207,7 @@
         Dispatch<DOMSource> disp = service.createDispatch(portNameXML, DOMSource.class, Mode.MESSAGE);
 
         TestHandlerXMLBinding handler = new TestHandlerXMLBinding();
-        TestSOAPHandler soapHandler = new TestSOAPHandler();
-        addHandlersProgrammatically(disp, handler, soapHandler);
+        addHandlersProgrammatically(disp, handler);
 
         InputStream is = getClass().getResourceAsStream("/messages/XML_GreetMeDocLiteralReq.xml");
         MessageFactory factory = MessageFactory.newInstance();
@@ -230,8 +229,7 @@
         Dispatch<DOMSource> disp = service.createDispatch(portNameXML, DOMSource.class, Mode.PAYLOAD);
 
         TestHandlerXMLBinding handler = new TestHandlerXMLBinding();
-        TestSOAPHandler soapHandler = new TestSOAPHandler();
-        addHandlersProgrammatically(disp, handler, soapHandler);
+        addHandlersProgrammatically(disp, handler);
 
         InputStream is = getClass().getResourceAsStream("/messages/XML_GreetMeDocLiteralReq.xml");
         MessageFactory factory = MessageFactory.newInstance();
@@ -253,8 +251,7 @@
         Dispatch<DataSource> disp = service.createDispatch(portNameXML, DataSource.class, Mode.MESSAGE);
 
         TestHandlerXMLBinding handler = new TestHandlerXMLBinding();
-        TestSOAPHandler soapHandler = new TestSOAPHandler();
-        addHandlersProgrammatically(disp, handler, soapHandler);
+        addHandlersProgrammatically(disp, handler);
 
         URL is = getClass().getResource("/messages/XML_GreetMeDocLiteralReq.xml");
         DataSource ds = new URLDataSource(is);
@@ -278,8 +275,7 @@
         Dispatch<DataSource> disp = service.createDispatch(portNameXML, DataSource.class, Mode.PAYLOAD);
 
         TestHandlerXMLBinding handler = new TestHandlerXMLBinding();
-        TestSOAPHandler soapHandler = new TestSOAPHandler();
-        addHandlersProgrammatically(disp, handler, soapHandler);
+        addHandlersProgrammatically(disp, handler);
 
         URL is = getClass().getResource("/messages/XML_GreetMeDocLiteralReq.xml");
         DataSource ds = new URLDataSource(is);
@@ -305,8 +301,7 @@
         Dispatch<Object> disp = service.createDispatch(portNameXML, jc, Mode.MESSAGE);
 
         TestHandlerXMLBinding handler = new TestHandlerXMLBinding();
-        TestSOAPHandler soapHandler = new TestSOAPHandler();
-        addHandlersProgrammatically(disp, handler, soapHandler);
+        addHandlersProgrammatically(disp, handler);
 
         org.apache.hello_world_xml_http.wrapped.types.GreetMe req =
             new org.apache.hello_world_xml_http.wrapped.types.GreetMe();
@@ -331,8 +326,7 @@
         Dispatch<Object> disp = service.createDispatch(portNameXML, jc, Mode.PAYLOAD);
 
         TestHandlerXMLBinding handler = new TestHandlerXMLBinding();
-        TestSOAPHandler soapHandler = new TestSOAPHandler();
-        addHandlersProgrammatically(disp, handler, soapHandler);
+        addHandlersProgrammatically(disp, handler);
 
         org.apache.hello_world_xml_http.wrapped.types.GreetMe req =
             new org.apache.hello_world_xml_http.wrapped.types.GreetMe();
@@ -351,6 +345,7 @@
         for (Handler h : handlers) {
             handlerChain.add(h);
         }
+        bp.getBinding().setHandlerChain(handlerChain);
     }
 
     class TestHandler implements LogicalHandler<LogicalMessageContext> {

Modified: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/HandlerInvocationTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/HandlerInvocationTest.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/HandlerInvocationTest.java (original)
+++ cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/HandlerInvocationTest.java Thu Feb 25 01:22:34 2010
@@ -1187,6 +1187,7 @@
         for (Handler h : handlers) {
             handlerChain.add(h);
         }
+        bp.getBinding().setHandlerChain(handlerChain);
     }
 
     List<String> getHandlerNames(SOAPBody soapBody) throws Exception {

Modified: cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/HandlerInvocationUsingAddNumbersTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/HandlerInvocationUsingAddNumbersTest.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/HandlerInvocationUsingAddNumbersTest.java (original)
+++ cxf/trunk/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/HandlerInvocationUsingAddNumbersTest.java Thu Feb 25 01:22:34 2010
@@ -168,7 +168,8 @@
         assertNotNull(handlerChain);
         for (Handler h : handlers) {
             handlerChain.add(h);
-        }    
+        }
+        bp.getBinding().setHandlerChain(handlerChain);
     }
 
 }

Modified: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverTest.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverTest.java (original)
+++ cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverTest.java Thu Feb 25 01:22:34 2010
@@ -361,7 +361,8 @@
         // REVISIT: why doesn't the generic (i.e. non-Port-specific)
         // Service.getPort() load the <jaxws:client> configuration?
         greeter = cs.getReplicatedPortA();
-        assertTrue("unexpected conduit slector",
+        assertTrue("unexpected conduit selector: " 
+                   + ClientProxy.getClient(greeter).getConduitSelector().getClass().getName(),
                    ClientProxy.getClient(greeter).getConduitSelector()
                    instanceof FailoverTargetSelector);
     }

Modified: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java (original)
+++ cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java Thu Feb 25 01:22:34 2010
@@ -193,7 +193,7 @@
         Service service = serviceFactory.create();
         EndpointInfo ei = service.getEndpointInfo(portName);
         JaxWsEndpointImpl jaxwsEndpoint = new JaxWsEndpointImpl(bus, service, ei);
-        SOAPBinding jaxWsSoapBinding = new SOAPBindingImpl(ei.getBinding());
+        SOAPBinding jaxWsSoapBinding = new SOAPBindingImpl(ei.getBinding(), jaxwsEndpoint);
         jaxWsSoapBinding.setMTOMEnabled(enableMTOM);
 
         if (installInterceptors) {

Modified: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopWithJMSTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopWithJMSTest.java?rev=916080&r1=916079&r2=916080&view=diff
==============================================================================
--- cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopWithJMSTest.java (original)
+++ cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopWithJMSTest.java Thu Feb 25 01:22:34 2010
@@ -126,7 +126,7 @@
         Service service = serviceFactory.create();
         EndpointInfo ei = service.getEndpointInfo(portName);
         JaxWsEndpointImpl jaxwsEndpoint = new JaxWsEndpointImpl(bus, service, ei);
-        SOAPBinding jaxWsSoapBinding = new SOAPBindingImpl(ei.getBinding());
+        SOAPBinding jaxWsSoapBinding = new SOAPBindingImpl(ei.getBinding(), jaxwsEndpoint);
         jaxWsSoapBinding.setMTOMEnabled(enableMTOM);
         
         jaxwsEndpoint.getBinding().getInInterceptors().add(new TestMultipartMessageInterceptor());