cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From asold...@apache.org
Subject [3/3] cxf git commit: [CXF-6421] Slim Exchange map down * Avoid storing Bus, Service, Endpoint, Binding, BindingOperationInfo into Exchange's map as there're direct accessors for them * Avoid storing ServiceInfo, InterfaceInfo, BindingInfo into Exchange'
Date Tue, 26 May 2015 20:00:13 GMT
[CXF-6421] Slim Exchange map down
* Avoid storing Bus, Service, Endpoint, Binding, BindingOperationInfo into Exchange's map as there're direct accessors for them
* Avoid storing ServiceInfo, InterfaceInfo, BindingInfo into Exchange's map as they're easily retrieved through other stuff in the map
* misc minor cleanups


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/8ab75c2d
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/8ab75c2d
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/8ab75c2d

Branch: refs/heads/master
Commit: 8ab75c2dc7d99d09d47e9413c5ef89d58f1d4d7a
Parents: 7eb40f4
Author: Alessio Soldano <asoldano@redhat.com>
Authored: Mon May 25 00:07:34 2015 +0200
Committer: Alessio Soldano <asoldano@redhat.com>
Committed: Tue May 26 21:58:44 2015 +0200

----------------------------------------------------------------------
 .../stax/StaxDataBindingInterceptor.java        |  4 +-
 .../org/apache/cxf/endpoint/ClientImpl.java     | 16 ++-----
 .../AbstractFaultChainInitiatorObserver.java    |  3 +-
 .../AbstractInDatabindingInterceptor.java       |  5 +-
 .../cxf/interceptor/ClientFaultConverter.java   |  4 +-
 .../cxf/interceptor/FIStaxOutInterceptor.java   |  2 +-
 .../cxf/interceptor/FaultOutInterceptor.java    |  4 +-
 .../InFaultChainInitiatorObserver.java          |  2 +-
 .../interceptor/OneWayProcessorInterceptor.java |  5 +-
 .../OutFaultChainInitiatorObserver.java         |  2 +-
 .../interceptor/OutgoingChainInterceptor.java   | 16 +++----
 .../interceptor/ServiceInvokerInterceptor.java  |  4 +-
 .../AbstractAuthorizingInInterceptor.java       |  5 +-
 .../OperationInfoAuthorizingInterceptor.java    |  2 +-
 .../org/apache/cxf/message/ExchangeImpl.java    |  9 ++--
 .../apache/cxf/phase/PhaseInterceptorChain.java |  6 ++-
 .../cxf/service/invoker/AbstractInvoker.java    |  5 +-
 .../cxf/service/invoker/PerRequestFactory.java  |  2 +-
 .../cxf/service/invoker/SessionFactory.java     |  2 +-
 .../cxf/service/model/ServiceModelUtil.java     |  6 +--
 .../AbstractValidationInterceptor.java          |  7 ++-
 .../apache/cxf/ws/addressing/ContextUtils.java  |  6 +--
 .../cxf/binding/coloc/ColocInInterceptor.java   |  4 +-
 .../cxf/binding/coloc/ColocMessageObserver.java | 10 ++--
 .../cxf/binding/coloc/ColocOutInterceptor.java  |  6 +--
 .../org/apache/cxf/binding/coloc/ColocUtil.java | 10 ++--
 .../binding/coloc/WebFaultInInterceptor.java    |  2 +-
 .../binding/coloc/ColocMessageObserverTest.java | 24 ++--------
 .../apache/cxf/binding/corba/CorbaConduit.java  |  4 +-
 .../CorbaStreamFaultInInterceptor.java          |  4 +-
 .../CorbaStreamFaultOutInterceptor.java         |  4 +-
 .../interceptors/CorbaStreamInInterceptor.java  |  4 +-
 .../CorbaStreamOutEndingInterceptor.java        |  4 +-
 .../interceptors/CorbaStreamOutInterceptor.java |  4 +-
 .../cxf/binding/corba/CorbaConduitTest.java     |  2 +-
 .../object/ObjectDispatchInInterceptor.java     |  2 +-
 .../object/ObjectDispatchOutInterceptor.java    |  2 +-
 .../soap/interceptor/CheckFaultInterceptor.java |  2 +-
 .../soap/interceptor/RPCInInterceptor.java      | 10 ++--
 .../soap/interceptor/RPCOutInterceptor.java     |  7 ++-
 .../interceptor/SoapActionInInterceptor.java    |  3 +-
 .../soap/interceptor/SoapOutInterceptor.java    |  3 +-
 .../jms/interceptor/SoapJMSInInterceptor.java   |  2 +-
 .../binding/soap/saaj/SAAJInInterceptor.java    |  2 +-
 .../interceptor/XMLMessageInInterceptor.java    |  6 +--
 .../interceptor/XMLMessageOutInterceptor.java   |  2 +-
 .../AbstractStaticFailoverStrategy.java         |  2 +-
 .../cxf/clustering/FailoverTargetSelector.java  |  2 +-
 .../cxf/jaxrs/ext/MessageContextImpl.java       |  2 +-
 .../jaxrs/interceptor/JAXRSInInterceptor.java   |  2 +-
 .../model/ClassResourceInfoComparator.java      |  3 +-
 .../model/OperationResourceInfoComparator.java  |  3 +-
 .../cxf/jaxrs/provider/JAXRSDataBinding.java    |  4 +-
 .../cxf/jaxrs/provider/ProviderFactory.java     |  2 +-
 .../jaxrs/provider/ServerProviderFactory.java   |  2 +-
 .../org/apache/cxf/jaxrs/utils/JAXRSUtils.java  |  2 +-
 .../cxf/jaxws/AbstractJAXWSMethodInvoker.java   |  2 +-
 .../jaxws/context/WebServiceContextImpl.java    |  2 +-
 .../jaxws/context/WrappedMessageContext.java    | 10 ++--
 .../AbstractJAXWSHandlerInterceptor.java        |  4 +-
 .../LogicalHandlerFaultOutInterceptor.java      |  3 +-
 .../logical/LogicalHandlerInInterceptor.java    |  2 +-
 .../logical/LogicalHandlerOutInterceptor.java   |  2 +-
 .../handler/soap/SOAPHandlerInterceptor.java    |  6 +--
 .../interceptors/MessageModeInInterceptor.java  |  2 +-
 .../interceptors/MessageModeOutInterceptor.java |  4 +-
 .../interceptors/WebFaultOutInterceptor.java    |  5 +-
 .../interceptors/WrapperClassInInterceptor.java |  1 -
 .../WrapperClassOutInterceptor.java             |  2 -
 .../apache/cxf/frontend/WSDLGetInterceptor.java |  2 +-
 .../AbstractMessageResponseTimeInterceptor.java | 12 ++---
 .../interceptor/PersistOutInterceptor.java      |  4 +-
 .../AbstractMessageResponseTestBase.java        | 15 +++---
 .../ResponseTimeMessageOutInterceptorTest.java  |  3 +-
 .../cxf/jaxrs/client/ClientProviderFactory.java |  2 +-
 .../cxf/jaxrs/client/ClientProxyImpl.java       |  2 +-
 .../cxf/jaxrs/model/wadl/WadlGenerator.java     |  7 ++-
 .../jaxrs/JwtAuthenticationClientFilter.java    |  3 +-
 .../cxf/rs/security/common/CryptoLoader.java    |  2 +-
 .../ClaimsAuthorizingInterceptor.java           |  5 +-
 .../cxf/rt/security/utils/SecurityUtils.java    |  5 +-
 .../apache/cxf/transport/http/HTTPConduit.java  |  2 +-
 .../addressing/impl/InternalContextUtils.java   | 24 ++++++----
 .../ws/addressing/impl/MAPAggregatorImpl.java   | 10 ++--
 .../ws/addressing/impl/ContextUtilsTest.java    | 12 ++---
 .../ws/addressing/impl/MAPAggregatorTest.java   |  7 +--
 .../policy/ClientPolicyInFaultInterceptor.java  |  4 +-
 .../cxf/ws/policy/PolicyInInterceptor.java      |  6 +--
 .../cxf/ws/policy/PolicyOutInterceptor.java     |  6 +--
 .../PolicyVerificationInFaultInterceptor.java   |  6 +--
 .../policy/PolicyVerificationInInterceptor.java |  6 +--
 .../policy/ServerPolicyOutFaultInterceptor.java |  6 +--
 .../cxf/ws/policy/PolicyInterceptorsTest.java   |  6 +--
 ...olicyVerificationInFaultInterceptorTest.java |  6 +--
 .../PolicyVerificationInInterceptorTest.java    |  4 +-
 .../apache/cxf/ws/rm/AbstractRMInterceptor.java |  2 +-
 .../java/org/apache/cxf/ws/rm/Destination.java  |  2 +-
 .../apache/cxf/ws/rm/InternalContextUtils.java  | 12 ++---
 .../cxf/ws/rm/RMCaptureOutInterceptor.java      |  1 -
 .../java/org/apache/cxf/ws/rm/RMManager.java    | 14 ++----
 .../main/java/org/apache/cxf/ws/rm/Servant.java |  4 +-
 .../cxf/ws/rm/soap/RMSoapInInterceptor.java     |  2 -
 .../cxf/ws/rm/soap/RetransmissionQueueImpl.java |  2 +-
 .../cxf/ws/rm/AbstractRMInterceptorTest.java    |  4 +-
 .../apache/cxf/ws/rm/ManagedRMManagerTest.java  |  2 +-
 .../apache/cxf/ws/rm/RMInInterceptorTest.java   |  2 +-
 .../org/apache/cxf/ws/rm/RMManagerTest.java     | 10 ++--
 .../KerberosTokenInterceptorProvider.java       |  3 +-
 .../policy/interceptors/STSInvoker.java         |  5 +-
 .../policy/interceptors/STSTokenHelper.java     |  9 ++--
 .../SecureConversationInInterceptor.java        |  5 +-
 .../SecureConversationOutInterceptor.java       | 11 ++---
 .../SpnegoContextTokenInInterceptor.java        |  5 +-
 .../SpnegoContextTokenOutInterceptor.java       |  7 ++-
 .../ws/security/tokenstore/TokenStoreUtils.java |  3 +-
 .../apache/cxf/ws/security/trust/STSUtils.java  |  6 +--
 .../wss4j/AbstractTokenInterceptor.java         |  3 +-
 .../wss4j/AbstractWSS4JStaxInterceptor.java     |  5 +-
 .../wss4j/PolicyBasedWSS4JInInterceptor.java    | 49 ++++++++++++--------
 .../PolicyBasedWSS4JStaxInInterceptor.java      |  2 +-
 .../ws/security/wss4j/WSS4JInInterceptor.java   |  4 +-
 .../cxf/ws/security/wss4j/WSS4JUtils.java       |  6 +--
 .../policyhandlers/AbstractBindingBuilder.java  |  3 +-
 .../wss4j/AbstractPolicySecurityTest.java       |  4 +-
 .../wsdl/interceptors/BareInInterceptor.java    |  5 +-
 .../wsdl/interceptors/BareOutInterceptor.java   |  3 +-
 .../interceptors/DocLiteralInInterceptor.java   |  4 +-
 .../interceptors/WrappedOutInterceptor.java     |  2 +-
 .../jaxws/beanpostprocessor/WebServiceRUs.java  |  2 +-
 .../cxf/systest/https/conduit/PushBack401.java  |  2 +-
 .../LoadDistributorSequentialStrategy.java      |  2 +-
 .../ws/policy/PolicyLoggingInterceptor.java     |  5 +-
 132 files changed, 312 insertions(+), 376 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/databinding/stax/StaxDataBindingInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/databinding/stax/StaxDataBindingInterceptor.java b/core/src/main/java/org/apache/cxf/databinding/stax/StaxDataBindingInterceptor.java
index a7f7488..2f36557 100644
--- a/core/src/main/java/org/apache/cxf/databinding/stax/StaxDataBindingInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/databinding/stax/StaxDataBindingInterceptor.java
@@ -54,7 +54,7 @@ public class StaxDataBindingInterceptor extends AbstractInDatabindingInterceptor
         MessageContentsList parameters = new MessageContentsList();
 
         Exchange exchange = message.getExchange();
-        BindingOperationInfo bop = exchange.get(BindingOperationInfo.class);
+        BindingOperationInfo bop = exchange.getBindingOperationInfo();
 
         //if body is empty and we have BindingOperationInfo, we do not need to match 
         //operation anymore, just return
@@ -64,7 +64,7 @@ public class StaxDataBindingInterceptor extends AbstractInDatabindingInterceptor
         }
         
         if (bop == null) {
-            Endpoint ep = exchange.get(Endpoint.class);
+            Endpoint ep = exchange.getEndpoint();
             bop = ep.getBinding().getBindingInfo().getOperations().iterator().next();
         }
         

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java b/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java
index 775170c..428f794 100644
--- a/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java
+++ b/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java
@@ -65,9 +65,7 @@ import org.apache.cxf.service.model.BindingInfo;
 import org.apache.cxf.service.model.BindingMessageInfo;
 import org.apache.cxf.service.model.BindingOperationInfo;
 import org.apache.cxf.service.model.EndpointInfo;
-import org.apache.cxf.service.model.InterfaceInfo;
 import org.apache.cxf.service.model.MessageInfo;
-import org.apache.cxf.service.model.OperationInfo;
 import org.apache.cxf.service.model.ServiceInfo;
 import org.apache.cxf.transport.Conduit;
 import org.apache.cxf.transport.MessageObserver;
@@ -685,11 +683,9 @@ public class ClientImpl
             }
             if (!Boolean.TRUE.equals(exchange.get(FINISHED))) {
                 LogUtils.log(LOG, Level.WARNING, "RESPONSE_TIMEOUT",
-                    exchange.get(OperationInfo.class).getName().toString());
-                String msg = new org.apache.cxf.common.i18n.Message("RESPONSE_TIMEOUT", LOG, 
-                                                                    exchange.get(OperationInfo.class)
-                                                                        .getName().toString())
-                    .toString();
+                    exchange.getBindingOperationInfo().getOperationInfo().getName().toString());
+                String msg = new org.apache.cxf.common.i18n.Message("RESPONSE_TIMEOUT", LOG, exchange
+                    .getBindingOperationInfo().getOperationInfo().getName().toString()).toString();
                 throw new IOException(msg);
             }
         }
@@ -869,16 +865,10 @@ public class ClientImpl
         if (endpoint != null) {
             exchange.put(Endpoint.class, endpoint);
             exchange.put(Service.class, endpoint.getService());
-            if (endpoint.getEndpointInfo().getService() != null) {
-                exchange.put(ServiceInfo.class, endpoint.getEndpointInfo().getService());
-                exchange.put(InterfaceInfo.class, endpoint.getEndpointInfo().getService().getInterface());
-            }
             exchange.put(Binding.class, endpoint.getBinding());
-            exchange.put(BindingInfo.class, endpoint.getEndpointInfo().getBinding());
         }
         if (boi != null) {
             exchange.put(BindingOperationInfo.class, boi);
-            exchange.put(OperationInfo.class, boi.getOperationInfo());
         }
 
         if (exchange.isSynchronous() || executor == null) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/interceptor/AbstractFaultChainInitiatorObserver.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/interceptor/AbstractFaultChainInitiatorObserver.java b/core/src/main/java/org/apache/cxf/interceptor/AbstractFaultChainInitiatorObserver.java
index a3bb36e..93230e8 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/AbstractFaultChainInitiatorObserver.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/AbstractFaultChainInitiatorObserver.java
@@ -28,7 +28,6 @@ import org.apache.cxf.BusFactory;
 import org.apache.cxf.common.classloader.ClassLoaderUtils;
 import org.apache.cxf.common.classloader.ClassLoaderUtils.ClassLoaderHolder;
 import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.endpoint.Endpoint;
 import org.apache.cxf.message.Exchange;
 import org.apache.cxf.message.FaultMode;
 import org.apache.cxf.message.Message;
@@ -81,7 +80,7 @@ public abstract class AbstractFaultChainInitiatorObserver implements MessageObse
                 if (null == faultMessage) {
                     faultMessage = new MessageImpl();
                     faultMessage.setExchange(exchange);
-                    faultMessage = exchange.get(Endpoint.class).getBinding().createMessage(faultMessage);
+                    faultMessage = exchange.getEndpoint().getBinding().createMessage(faultMessage);
                 }
                 faultMessage.setContent(Exception.class, ex);
                 if (null != mode) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java b/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
index cb90a2d..938a412 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
@@ -153,7 +153,7 @@ public abstract class AbstractInDatabindingInterceptor extends AbstractPhaseInte
     protected MessagePartInfo findMessagePart(Exchange exchange, Collection<OperationInfo> operations,
                                               QName name, boolean client, int index,
                                               Message message) {
-        Endpoint ep = exchange.get(Endpoint.class);
+        Endpoint ep = exchange.getEndpoint();
         MessagePartInfo lastChoice = null;
         BindingOperationInfo lastBoi = null;
         BindingMessageInfo lastMsgInfo = null;
@@ -190,7 +190,6 @@ public abstract class AbstractInDatabindingInterceptor extends AbstractPhaseInte
             }
             if (name.equals(p.getConcreteName())) {
                 exchange.put(BindingOperationInfo.class, boi);
-                exchange.put(OperationInfo.class, boi.getOperationInfo());
                 exchange.setOneWay(op.isOneWay());
                 return p;
             }
@@ -218,7 +217,6 @@ public abstract class AbstractInDatabindingInterceptor extends AbstractPhaseInte
         Exchange ex = message.getExchange();
         
         ex.put(BindingOperationInfo.class, operation);
-        ex.put(OperationInfo.class, operation.getOperationInfo());
         ex.setOneWay(operation.getOperationInfo().isOneWay());
 
         //Set standard MessageContext properties required by JAX_WS, but not specific to JAX_WS.
@@ -279,7 +277,6 @@ public abstract class AbstractInDatabindingInterceptor extends AbstractPhaseInte
         
         if (bop != null) {
             exchange.put(BindingOperationInfo.class, bop);
-            exchange.put(OperationInfo.class, bop.getOperationInfo());
         }
         return bop;
     }

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java b/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java
index 3391779..a5edceb 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java
@@ -108,7 +108,7 @@ public class ClientFaultConverter extends AbstractInDatabindingInterceptor {
         QName qname = new QName(exDetail.getNamespaceURI(), exDetail.getLocalName());
         FaultInfo faultWanted = null;
         MessagePartInfo part = null;
-        BindingOperationInfo boi = msg.getExchange().get(BindingOperationInfo.class);
+        BindingOperationInfo boi = msg.getExchange().getBindingOperationInfo();
         if (boi == null) {
             return;
         }
@@ -145,7 +145,7 @@ public class ClientFaultConverter extends AbstractInDatabindingInterceptor {
         if (faultWanted == null) {
             return;
         }
-        Service s = msg.getExchange().get(Service.class);
+        Service s = msg.getExchange().getService();
         DataBinding dataBinding = s.getDataBinding();
 
         Object e = null;

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/interceptor/FIStaxOutInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/interceptor/FIStaxOutInterceptor.java b/core/src/main/java/org/apache/cxf/interceptor/FIStaxOutInterceptor.java
index 6c0d3ce..89d42b1 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/FIStaxOutInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/FIStaxOutInterceptor.java
@@ -140,7 +140,7 @@ public class FIStaxOutInterceptor extends AbstractPhaseInterceptor<Message> {
     
     private StAXDocumentSerializer getOutput(Message m, OutputStream out) {
         /*
-        StAXDocumentSerializer serializer = (StAXDocumentSerializer)m.getExchange().get(Endpoint.class)
+        StAXDocumentSerializer serializer = (StAXDocumentSerializer)m.getExchange().getEndpoint()
             .remove(StAXDocumentSerializer.class.getName());
         if (serializer != null) {
             serializer.setOutputStream(out);

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java b/core/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java
index b57e487..22bf984 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java
@@ -68,7 +68,7 @@ public class FaultOutInterceptor extends AbstractPhaseInterceptor<Message> {
             return;
         }
         
-        BindingOperationInfo bop = message.getExchange().get(BindingOperationInfo.class);
+        BindingOperationInfo bop = message.getExchange().getBindingOperationInfo();
         if (bop == null) {
             return;
         }
@@ -77,7 +77,7 @@ public class FaultOutInterceptor extends AbstractPhaseInterceptor<Message> {
         if (cause instanceof Exception && fi != null) {
             Exception ex = (Exception)cause;
             Object bean = getFaultBean(cause, fi, message);
-            Service service = message.getExchange().get(Service.class);
+            Service service = message.getExchange().getService();
 
             MessagePartInfo part = fi.getFirstMessagePart();
             DataBinding db = service.getDataBinding();

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/interceptor/InFaultChainInitiatorObserver.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/interceptor/InFaultChainInitiatorObserver.java b/core/src/main/java/org/apache/cxf/interceptor/InFaultChainInitiatorObserver.java
index 6793ed8..906003e 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/InFaultChainInitiatorObserver.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/InFaultChainInitiatorObserver.java
@@ -38,7 +38,7 @@ public class InFaultChainInitiatorObserver extends AbstractFaultChainInitiatorOb
     }
 
     protected void initializeInterceptors(Exchange ex, PhaseInterceptorChain chain) {
-        Endpoint e = ex.get(Endpoint.class);
+        Endpoint e = ex.getEndpoint();
         Client c = ex.get(Client.class);
         InterceptorProvider ip = ex.get(InterceptorProvider.class);
         

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/interceptor/OneWayProcessorInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/interceptor/OneWayProcessorInterceptor.java b/core/src/main/java/org/apache/cxf/interceptor/OneWayProcessorInterceptor.java
index e63c76d..1ae2e94 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/OneWayProcessorInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/OneWayProcessorInterceptor.java
@@ -25,7 +25,6 @@ import java.util.concurrent.Executor;
 import java.util.concurrent.RejectedExecutionException;
 import java.util.logging.Logger;
 
-import org.apache.cxf.Bus;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.endpoint.Endpoint;
 import org.apache.cxf.io.DelegatingInputStream;
@@ -129,7 +128,7 @@ public class OneWayProcessorInterceptor extends AbstractPhaseInterceptor<Message
                 try {
                     final Object lock = new Object();
                     synchronized (lock) {
-                        message.getExchange().get(Bus.class).getExtension(WorkQueueManager.class)
+                        message.getExchange().getBus().getExtension(WorkQueueManager.class)
                             .getAutomaticWorkQueue().execute(new Runnable() {
                                 public void run() {
                                     synchronized (lock) {
@@ -163,7 +162,7 @@ public class OneWayProcessorInterceptor extends AbstractPhaseInterceptor<Message
     }
     
     private static Message createMessage(Exchange exchange) {
-        Endpoint ep = exchange.get(Endpoint.class);
+        Endpoint ep = exchange.getEndpoint();
         Message msg = null;
         if (ep != null) {
             msg = new MessageImpl();

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/interceptor/OutFaultChainInitiatorObserver.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/interceptor/OutFaultChainInitiatorObserver.java b/core/src/main/java/org/apache/cxf/interceptor/OutFaultChainInitiatorObserver.java
index 73316a3..60fadc8 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/OutFaultChainInitiatorObserver.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/OutFaultChainInitiatorObserver.java
@@ -38,7 +38,7 @@ public class OutFaultChainInitiatorObserver extends AbstractFaultChainInitiatorO
     }
 
     protected void initializeInterceptors(Exchange ex, PhaseInterceptorChain chain) {
-        Endpoint e = ex.get(Endpoint.class);
+        Endpoint e = ex.getEndpoint();
         Client c = ex.get(Client.class);
 
         chain.add(getBus().getOutFaultInterceptors());

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainInterceptor.java b/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainInterceptor.java
index c1be1bd..73c49d2 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/OutgoingChainInterceptor.java
@@ -56,7 +56,7 @@ public class OutgoingChainInterceptor extends AbstractPhaseInterceptor<Message>
 
     public void handleMessage(Message message) {
         Exchange ex = message.getExchange();
-        BindingOperationInfo binding = ex.get(BindingOperationInfo.class);
+        BindingOperationInfo binding = ex.getBindingOperationInfo();
         //if we get this far, we're going to be outputting some valid content, but we COULD
         //also be "echoing" some of the content from the input.   Thus, we need to 
         //mark it as requiring the input to be cached.   
@@ -104,7 +104,7 @@ public class OutgoingChainInterceptor extends AbstractPhaseInterceptor<Message>
             try {
                 conduit = ex.getDestination().getBackChannel(ex.getInMessage());
                 ex.put(ConduitSelector.class, 
-                       new PreexistingConduitSelector(conduit, ex.get(Endpoint.class)));
+                       new PreexistingConduitSelector(conduit, ex.getEndpoint()));
             } catch (IOException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
@@ -114,12 +114,12 @@ public class OutgoingChainInterceptor extends AbstractPhaseInterceptor<Message>
     }
     
     public static InterceptorChain getOutInterceptorChain(Exchange ex) {
-        Bus bus = ex.get(Bus.class);
-        Binding binding = ex.get(Binding.class);
+        Bus bus = ex.getBus();
+        Binding binding = ex.getBinding();
         PhaseManager pm = bus.getExtension(PhaseManager.class);
         PhaseInterceptorChain chain = new PhaseInterceptorChain(pm.getOutPhases());
         
-        Endpoint ep = ex.get(Endpoint.class);
+        Endpoint ep = ex.getEndpoint();
         List<Interceptor<? extends Message>> il = ep.getOutInterceptors();
         if (LOG.isLoggable(Level.FINE)) {
             LOG.fine("Interceptors contributed by endpoint: " + il);
@@ -172,10 +172,10 @@ public class OutgoingChainInterceptor extends AbstractPhaseInterceptor<Message>
     }
     
     private static PhaseInterceptorChain getChain(Exchange ex, PhaseChainCache chainCache) {
-        Bus bus = ex.get(Bus.class);
-        Binding binding = ex.get(Binding.class);
+        Bus bus = ex.getBus();
+        Binding binding = ex.getBinding();
         
-        Endpoint ep = ex.get(Endpoint.class);
+        Endpoint ep = ex.getEndpoint();
         
         List<Interceptor<? extends Message>> i1 = bus.getOutInterceptors();
         if (LOG.isLoggable(Level.FINE)) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/interceptor/ServiceInvokerInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/interceptor/ServiceInvokerInterceptor.java b/core/src/main/java/org/apache/cxf/interceptor/ServiceInvokerInterceptor.java
index 83ca251..7057a31 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/ServiceInvokerInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/ServiceInvokerInterceptor.java
@@ -48,7 +48,7 @@ public class ServiceInvokerInterceptor extends AbstractPhaseInterceptor<Message>
 
     public void handleMessage(final Message message) {
         final Exchange exchange = message.getExchange();
-        final Endpoint endpoint = exchange.get(Endpoint.class);
+        final Endpoint endpoint = exchange.getEndpoint();
         final Service service = endpoint.getService();
         final Invoker invoker = service.getInvoker();        
 
@@ -58,7 +58,7 @@ public class ServiceInvokerInterceptor extends AbstractPhaseInterceptor<Message>
                 Exchange runableEx = message.getExchange();
                 Object result = invoker.invoke(runableEx, getInvokee(message));
                 if (!exchange.isOneWay()) {
-                    Endpoint ep = exchange.get(Endpoint.class);
+                    Endpoint ep = exchange.getEndpoint();
                     
                     Message outMessage = runableEx.getOutMessage();
                     if (outMessage == null) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/interceptor/security/AbstractAuthorizingInInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/interceptor/security/AbstractAuthorizingInInterceptor.java b/core/src/main/java/org/apache/cxf/interceptor/security/AbstractAuthorizingInInterceptor.java
index 640edff..e1b323e 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/security/AbstractAuthorizingInInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/security/AbstractAuthorizingInInterceptor.java
@@ -30,7 +30,6 @@ import org.apache.cxf.message.Message;
 import org.apache.cxf.phase.AbstractPhaseInterceptor;
 import org.apache.cxf.phase.Phase;
 import org.apache.cxf.security.SecurityContext;
-import org.apache.cxf.service.Service;
 import org.apache.cxf.service.invoker.MethodDispatcher;
 import org.apache.cxf.service.model.BindingOperationInfo;
 
@@ -62,10 +61,10 @@ public abstract class AbstractAuthorizingInInterceptor extends AbstractPhaseInte
     }
     
     protected Method getTargetMethod(Message m) {
-        BindingOperationInfo bop = m.getExchange().get(BindingOperationInfo.class);
+        BindingOperationInfo bop = m.getExchange().getBindingOperationInfo();
         if (bop != null) {
             MethodDispatcher md = (MethodDispatcher) 
-                m.getExchange().get(Service.class).get(MethodDispatcher.class.getName());
+                m.getExchange().getService().get(MethodDispatcher.class.getName());
             return md.getMethod(bop);
         } 
         Method method = (Method)m.get("org.apache.cxf.resource.method");

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/interceptor/security/OperationInfoAuthorizingInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/interceptor/security/OperationInfoAuthorizingInterceptor.java b/core/src/main/java/org/apache/cxf/interceptor/security/OperationInfoAuthorizingInterceptor.java
index f0dbaa0..73cb9f6 100755
--- a/core/src/main/java/org/apache/cxf/interceptor/security/OperationInfoAuthorizingInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/security/OperationInfoAuthorizingInterceptor.java
@@ -71,7 +71,7 @@ public class OperationInfoAuthorizingInterceptor extends SimpleAuthorizingInterc
     }
 
     protected OperationInfo getTargetOperationInfo(Message message) {
-        BindingOperationInfo bop = message.getExchange().get(BindingOperationInfo.class);
+        BindingOperationInfo bop = message.getExchange().getBindingOperationInfo();
         if (bop != null) {
             return bop.getOperationInfo();
         }

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/message/ExchangeImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/message/ExchangeImpl.java b/core/src/main/java/org/apache/cxf/message/ExchangeImpl.java
index 99c4dbf..a1ff3e1 100644
--- a/core/src/main/java/org/apache/cxf/message/ExchangeImpl.java
+++ b/core/src/main/java/org/apache/cxf/message/ExchangeImpl.java
@@ -103,10 +103,7 @@ public class ExchangeImpl extends ConcurrentHashMap<String, Object>  implements
     public <T> void put(Class<T> key, T value) {
         if (value == null) {
             super.remove(key);
-        } else {
-            super.put(key.getName(), value);
-        }
-        if (key == Bus.class) {
+        } else if (key == Bus.class) {
             resetContextCaches();
             bus = (Bus)value;
         } else if (key == Endpoint.class) {
@@ -119,6 +116,8 @@ public class ExchangeImpl extends ConcurrentHashMap<String, Object>  implements
             bindingOp = (BindingOperationInfo)value;
         } else if (key == Binding.class) {
             binding = (Binding)value;
+        } else {
+            super.put(key.getName(), value);
         }
     }
     
@@ -200,7 +199,7 @@ public class ExchangeImpl extends ConcurrentHashMap<String, Object>  implements
 
     public void setConduit(Conduit c) {
         put(ConduitSelector.class,
-            new PreexistingConduitSelector(c, get(Endpoint.class)));
+            new PreexistingConduitSelector(c, getEndpoint()));
     }
 
     public void setOutMessage(Message m) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java b/core/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java
index 5287e9a..fec7f4c 100644
--- a/core/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java
+++ b/core/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java
@@ -44,6 +44,7 @@ import org.apache.cxf.message.FaultMode;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageUtils;
 import org.apache.cxf.service.Service;
+import org.apache.cxf.service.model.BindingOperationInfo;
 import org.apache.cxf.service.model.OperationInfo;
 import org.apache.cxf.transport.MessageObserver;
 
@@ -370,11 +371,12 @@ public class PhaseInterceptorChain implements InterceptorChain {
         StringBuilder description = new StringBuilder();
         if (message.getExchange() != null) {
             Exchange exchange = message.getExchange();
-            Service service = exchange.get(Service.class);
+            Service service = exchange.getService();
             if (service != null) {
                 description.append('\'');
                 description.append(service.getName());
-                OperationInfo opInfo = exchange.get(OperationInfo.class);
+                BindingOperationInfo boi = exchange.getBindingOperationInfo();
+                OperationInfo opInfo = boi != null ? boi.getOperationInfo() : null;
                 if (opInfo != null) {
                     description.append("#").append(opInfo.getName());
                 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java b/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java
index 33d9f00..e348c80 100644
--- a/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java
+++ b/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java
@@ -35,7 +35,6 @@ import org.apache.cxf.interceptor.Fault;
 import org.apache.cxf.message.Exchange;
 import org.apache.cxf.message.FaultMode;
 import org.apache.cxf.message.MessageContentsList;
-import org.apache.cxf.service.Service;
 import org.apache.cxf.service.model.BindingOperationInfo;
 
 /**
@@ -50,9 +49,9 @@ public abstract class AbstractInvoker implements Invoker {
         final Object serviceObject = getServiceObject(exchange);
         try {
 
-            BindingOperationInfo bop = exchange.get(BindingOperationInfo.class);
+            BindingOperationInfo bop = exchange.getBindingOperationInfo();
             MethodDispatcher md = (MethodDispatcher) 
-                exchange.get(Service.class).get(MethodDispatcher.class.getName());
+                exchange.getService().get(MethodDispatcher.class.getName());
             Method m = bop == null ? null : md.getMethod(bop);
             if (m == null && bop == null) {
                 LOG.severe(new Message("MISSING_BINDING_OPERATION", LOG).toString());

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/service/invoker/PerRequestFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/service/invoker/PerRequestFactory.java b/core/src/main/java/org/apache/cxf/service/invoker/PerRequestFactory.java
index c33b55f..a93a5ad 100644
--- a/core/src/main/java/org/apache/cxf/service/invoker/PerRequestFactory.java
+++ b/core/src/main/java/org/apache/cxf/service/invoker/PerRequestFactory.java
@@ -53,7 +53,7 @@ public class PerRequestFactory implements Factory {
                 throw new Fault(new Message("SVC_CLASS_IS_ABSTRACT", BUNDLE, svcClass.getName()));
             }
             Object o = svcClass.newInstance();
-            Bus b = ex.get(Bus.class);
+            Bus b = ex.getBus();
             ResourceManager resourceManager = b.getExtension(ResourceManager.class);
             if (resourceManager != null) {
                 ResourceInjector injector = new ResourceInjector(resourceManager);

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/service/invoker/SessionFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/service/invoker/SessionFactory.java b/core/src/main/java/org/apache/cxf/service/invoker/SessionFactory.java
index 004f5a3..800dec3 100644
--- a/core/src/main/java/org/apache/cxf/service/invoker/SessionFactory.java
+++ b/core/src/main/java/org/apache/cxf/service/invoker/SessionFactory.java
@@ -50,7 +50,7 @@ public class SessionFactory implements Factory {
 
     /** {@inheritDoc}*/
     public Object create(Exchange e) throws Throwable {
-        Service serv = e.get(Service.class);
+        Service serv = e.getService();
         Object o = null;
         synchronized (serv) {
             o = e.getSession().get(serv.getName().toString());

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java b/core/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java
index d3fe66e..a189a8c 100644
--- a/core/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java
+++ b/core/src/main/java/org/apache/cxf/service/model/ServiceModelUtil.java
@@ -51,7 +51,7 @@ public final class ServiceModelUtil {
     }
 
     public static BindingOperationInfo getOperation(Exchange exchange, String opName) {
-        Endpoint ep = exchange.get(Endpoint.class);
+        Endpoint ep = exchange.getEndpoint();
         if (ep == null) {
             return null;
         }
@@ -66,7 +66,7 @@ public final class ServiceModelUtil {
     }
 
     public static BindingOperationInfo getOperation(Exchange exchange, QName opName) {
-        Endpoint ep = exchange.get(Endpoint.class);
+        Endpoint ep = exchange.getEndpoint();
         if (ep == null) {
             return null;
         }
@@ -77,7 +77,7 @@ public final class ServiceModelUtil {
                                                                      QName opName,
                                                                      boolean output) {
 
-        Endpoint ep = exchange.get(Endpoint.class);
+        Endpoint ep = exchange.getEndpoint();
         if (ep == null) {
             return null;
         }

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/validation/AbstractValidationInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/validation/AbstractValidationInterceptor.java b/core/src/main/java/org/apache/cxf/validation/AbstractValidationInterceptor.java
index c943426..00b6dc3 100644
--- a/core/src/main/java/org/apache/cxf/validation/AbstractValidationInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/validation/AbstractValidationInterceptor.java
@@ -30,7 +30,6 @@ import org.apache.cxf.interceptor.Fault;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageContentsList;
 import org.apache.cxf.phase.AbstractPhaseInterceptor;
-import org.apache.cxf.service.Service;
 import org.apache.cxf.service.invoker.FactoryInvoker;
 import org.apache.cxf.service.invoker.Invoker;
 import org.apache.cxf.service.invoker.MethodDispatcher;
@@ -82,7 +81,7 @@ public abstract class AbstractValidationInterceptor extends AbstractPhaseInterce
         if (current != null) {
             return current;
         }
-        Endpoint e = message.getExchange().get(Endpoint.class);
+        Endpoint e = message.getExchange().getEndpoint();
         if (e != null && e.getService() != null) {
             Invoker invoker = e.getService().getInvoker();
             if (invoker instanceof FactoryInvoker) {
@@ -99,10 +98,10 @@ public abstract class AbstractValidationInterceptor extends AbstractPhaseInterce
         Message inMessage = message.getExchange().getInMessage();
         Method method = (Method)inMessage.get("org.apache.cxf.resource.method");
         if (method == null) {
-            BindingOperationInfo bop = inMessage.getExchange().get(BindingOperationInfo.class);
+            BindingOperationInfo bop = inMessage.getExchange().getBindingOperationInfo();
             if (bop != null) {
                 MethodDispatcher md = (MethodDispatcher) 
-                    inMessage.getExchange().get(Service.class).get(MethodDispatcher.class.getName());
+                    inMessage.getExchange().getService().get(MethodDispatcher.class.getName());
                 method = md.getMethod(bop);
             }
         }

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/core/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java b/core/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
index 10de782..361530b 100644
--- a/core/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
+++ b/core/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
@@ -586,7 +586,7 @@ public final class ContextUtils {
      * @return the Method from the BindingOperationInfo
      */
     public static Message createMessage(Exchange exchange) {
-        Endpoint ep = exchange.get(Endpoint.class);
+        Endpoint ep = exchange.getEndpoint();
         Message msg = null;
         if (ep != null) {
             msg = new MessageImpl();
@@ -600,13 +600,13 @@ public final class ContextUtils {
     
     public static Destination createDecoupledDestination(Exchange exchange, 
                                                          final EndpointReferenceType reference) {
-        final EndpointInfo ei = exchange.get(Endpoint.class).getEndpointInfo();
+        final EndpointInfo ei = exchange.getEndpoint().getEndpointInfo();
         return new Destination() {
             public EndpointReferenceType getAddress() {
                 return reference;
             }
             public Conduit getBackChannel(Message inMessage) throws IOException {
-                Bus bus = inMessage.getExchange().get(Bus.class);
+                Bus bus = inMessage.getExchange().getBus();
                 //this is a response targeting a decoupled endpoint.   Treat it as a oneway so
                 //we don't wait for a response.
                 inMessage.getExchange().setOneWay(true);

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocInInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocInInterceptor.java b/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocInInterceptor.java
index ad66c86..8eea8bd 100644
--- a/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocInInterceptor.java
+++ b/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocInInterceptor.java
@@ -54,7 +54,7 @@ public class ColocInInterceptor extends AbstractPhaseInterceptor<Message> {
             return;
         }
 
-        Bus bus = ex.get(Bus.class);
+        Bus bus = ex.getBus();
         SortedSet<Phase> phases = new TreeSet<Phase>(bus.getExtension(PhaseManager.class).getOutPhases());
 
         //TODO Set Coloc FaultObserver chain
@@ -66,7 +66,7 @@ public class ColocInInterceptor extends AbstractPhaseInterceptor<Message> {
         }
 
         //Initiate OutBound Processing
-        BindingOperationInfo boi = ex.get(BindingOperationInfo.class);
+        BindingOperationInfo boi = ex.getBindingOperationInfo();
         Message outBound = ex.getOutMessage();
         if (boi != null) {
             outBound.put(MessageInfo.class, 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocMessageObserver.java
----------------------------------------------------------------------
diff --git a/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocMessageObserver.java b/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocMessageObserver.java
index ec28c9d..2cccd28 100644
--- a/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocMessageObserver.java
+++ b/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocMessageObserver.java
@@ -82,7 +82,8 @@ public class ColocMessageObserver extends ChainInitiationObserver {
             inMsg.put(COLOCATED, Boolean.TRUE);
             inMsg.put(Message.REQUESTOR_ROLE, Boolean.FALSE);
             inMsg.put(Message.INBOUND_MESSAGE, Boolean.TRUE);
-            OperationInfo oi = ex.get(OperationInfo.class);
+            BindingOperationInfo boi = ex.getBindingOperationInfo();
+            OperationInfo oi = boi != null ? boi.getOperationInfo() : null;
             if (oi != null) {
                 inMsg.put(MessageInfo.class, oi.getInput());
             }
@@ -101,7 +102,8 @@ public class ColocMessageObserver extends ChainInitiationObserver {
             inMsg.setInterceptorChain(chain);
     
             //Convert the coloc object type if necessary
-            OperationInfo soi = m.getExchange().get(OperationInfo.class);
+            BindingOperationInfo bop = m.getExchange().getBindingOperationInfo();
+            OperationInfo soi = bop != null ? bop.getOperationInfo() : null;
             if (soi != null && oi != null) {
                 if (ColocUtil.isAssignableOperationInfo(soi, Source.class) 
                     && !ColocUtil.isAssignableOperationInfo(oi, Source.class)) {
@@ -161,11 +163,7 @@ public class ColocMessageObserver extends ChainInitiationObserver {
             boi = boi.getWrappedOperation();
         }
         
-        exchange.put(BindingInfo.class, bi);
         exchange.put(BindingOperationInfo.class, boi);
-        if (boi != null) {
-            exchange.put(OperationInfo.class, boi.getOperationInfo());
-        }
     }
     
     protected List<Interceptor<? extends Message>> addColocInterceptors() {

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocOutInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocOutInterceptor.java b/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocOutInterceptor.java
index e2a036e..34a5b45 100644
--- a/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocOutInterceptor.java
+++ b/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocOutInterceptor.java
@@ -70,7 +70,7 @@ public class ColocOutInterceptor extends AbstractPhaseInterceptor<Message> {
     
     public void handleMessage(Message message) throws Fault {
         if (bus == null) {
-            bus = message.getExchange().get(Bus.class);
+            bus = message.getExchange().getBus();
             if (bus == null) {
                 bus = BusFactory.getDefaultBus(false);
             }
@@ -86,14 +86,14 @@ public class ColocOutInterceptor extends AbstractPhaseInterceptor<Message> {
         }
         
         Exchange exchange = message.getExchange();
-        Endpoint senderEndpoint = exchange.get(Endpoint.class);
+        Endpoint senderEndpoint = exchange.getEndpoint();
 
         if (senderEndpoint == null) {
             throw new Fault(new org.apache.cxf.common.i18n.Message("ENDPOINT_NOT_FOUND", 
                                                                    BUNDLE));
         }
 
-        BindingOperationInfo boi = exchange.get(BindingOperationInfo.class);
+        BindingOperationInfo boi = exchange.getBindingOperationInfo();
         
         if (boi == null) {
             throw new Fault(new org.apache.cxf.common.i18n.Message("OPERATIONINFO_NOT_FOUND", 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocUtil.java
----------------------------------------------------------------------
diff --git a/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocUtil.java b/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocUtil.java
index 1240026..fd653ef 100644
--- a/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocUtil.java
+++ b/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocUtil.java
@@ -80,10 +80,10 @@ public final class ColocUtil {
     }
     
     public static InterceptorChain getOutInterceptorChain(Exchange ex, SortedSet<Phase> phases) {
-        Bus bus = ex.get(Bus.class);
+        Bus bus = ex.getBus();
         PhaseInterceptorChain chain = new PhaseInterceptorChain(phases);
         
-        Endpoint ep = ex.get(Endpoint.class);
+        Endpoint ep = ex.getEndpoint();
         List<Interceptor<? extends Message>> il = ep.getOutInterceptors();
         if (LOG.isLoggable(Level.FINE)) {
             LOG.fine("Interceptors contributed by endpoint: " + il);
@@ -113,10 +113,10 @@ public final class ColocUtil {
     }
     
     public static InterceptorChain getInInterceptorChain(Exchange ex, SortedSet<Phase> phases) {
-        Bus bus = ex.get(Bus.class);
+        Bus bus = ex.getBus();
         PhaseInterceptorChain chain = new PhaseInterceptorChain(phases);
         
-        Endpoint ep = ex.get(Endpoint.class);
+        Endpoint ep = ex.getEndpoint();
         List<Interceptor<? extends Message>> il = ep.getInInterceptors();
         if (LOG.isLoggable(Level.FINE)) {
             LOG.fine("Interceptors contributed by endpoint: " + il);
@@ -296,7 +296,7 @@ public final class ColocUtil {
     }
     
     private static MessageInfo getMessageInfo(Message message) {
-        OperationInfo oi = message.getExchange().get(OperationInfo.class);
+        OperationInfo oi = message.getExchange().getBindingOperationInfo().getOperationInfo();
         if (MessageUtils.isOutbound(message)) {
             return oi.getOutput();
         } else {

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/WebFaultInInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/WebFaultInInterceptor.java b/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/WebFaultInInterceptor.java
index 8782f3c..e6bfbf0 100644
--- a/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/WebFaultInInterceptor.java
+++ b/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/WebFaultInInterceptor.java
@@ -57,7 +57,7 @@ public class WebFaultInInterceptor extends AbstractPhaseInterceptor<Message> {
             return;
         }
 
-        BindingOperationInfo boi = message.getExchange().get(BindingOperationInfo.class);
+        BindingOperationInfo boi = message.getExchange().getBindingOperationInfo();
         MessagePartInfo part = getFaultMessagePart(faultName, boi.getOperationInfo());
 
         if (part != null) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/coloc/src/test/java/org/apache/cxf/binding/coloc/ColocMessageObserverTest.java
----------------------------------------------------------------------
diff --git a/rt/bindings/coloc/src/test/java/org/apache/cxf/binding/coloc/ColocMessageObserverTest.java b/rt/bindings/coloc/src/test/java/org/apache/cxf/binding/coloc/ColocMessageObserverTest.java
index 5ff1b0e..68bd388 100644
--- a/rt/bindings/coloc/src/test/java/org/apache/cxf/binding/coloc/ColocMessageObserverTest.java
+++ b/rt/bindings/coloc/src/test/java/org/apache/cxf/binding/coloc/ColocMessageObserverTest.java
@@ -38,11 +38,8 @@ import org.apache.cxf.service.Service;
 import org.apache.cxf.service.model.BindingInfo;
 import org.apache.cxf.service.model.BindingOperationInfo;
 import org.apache.cxf.service.model.EndpointInfo;
-import org.apache.cxf.service.model.MessageInfo;
-import org.apache.cxf.service.model.OperationInfo;
 import org.easymock.EasyMock;
 import org.easymock.IMocksControl;
-
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
@@ -56,14 +53,12 @@ public class ColocMessageObserverTest extends Assert {
     private Service srv;
     private Endpoint ep;
     private Bus bus;
-    private OperationInfo oi;
 
     @Before
     public void setUp() throws Exception {
         ep = control.createMock(Endpoint.class);
         bus = control.createMock(Bus.class);
         srv = control.createMock(Service.class);
-        oi = control.createMock(OperationInfo.class);
         BusFactory.setDefaultBus(bus);        
         msg = new MessageImpl();
         ex = new ExchangeImpl();
@@ -88,7 +83,6 @@ public class ColocMessageObserverTest extends Assert {
         EasyMock.expect(ei.getBinding()).andReturn(bi);
         BindingOperationInfo boi = control.createMock(BindingOperationInfo.class);
         EasyMock.expect(bi.getOperation(opName)).andReturn(boi);
-        EasyMock.expect(boi.getOperationInfo()).andReturn(oi);        
         EasyMock.expect(bus.getExtension(ClassLoader.class)).andReturn(this.getClass().getClassLoader());
         control.replay();
         observer = new ColocMessageObserver(ep, bus);
@@ -96,17 +90,15 @@ public class ColocMessageObserverTest extends Assert {
         control.verify();
 
         assertNotNull("Bus should be set",
-                      ex.get(Bus.class));
+                      ex.getBus());
         assertNotNull("Endpoint should be set",
-                      ex.get(Endpoint.class));
+                      ex.getEndpoint());
         assertNotNull("Binding should be set",
-                      ex.get(Binding.class));
+                      ex.getBinding());
         assertNotNull("Service should be set",
-                      ex.get(Service.class));
+                      ex.getService());
         assertNotNull("BindingOperationInfo should be set",
-                      ex.get(BindingOperationInfo.class));
-        assertNotNull("OperationInfo should be set",
-                      ex.get(OperationInfo.class));
+                      ex.getBindingOperationInfo());
     }
 
     @Test
@@ -119,9 +111,6 @@ public class ColocMessageObserverTest extends Assert {
         Message inMsg = new MessageImpl();
         EasyMock.expect(binding.createMessage()).andReturn(inMsg);
 
-        MessageInfo mi = control.createMock(MessageInfo.class);
-        EasyMock.expect(oi.getInput()).andReturn(mi);
-
         EasyMock.expect(ep.getService()).andReturn(srv).anyTimes();
         EasyMock.expect(
             bus.getExtension(PhaseManager.class)).andReturn(
@@ -143,8 +132,6 @@ public class ColocMessageObserverTest extends Assert {
         assertEquals("Message.INBOUND_MESSAGE should be true",
                      Boolean.TRUE,
                      inMsg.get(Message.INBOUND_MESSAGE));
-        assertNotNull("MessageInfo should be present in the Message instance",                     
-                     inMsg.get(MessageInfo.class));
         assertNotNull("Chain should be set", inMsg.getInterceptorChain());
         Exchange ex1 = msg.getExchange();
         assertNotNull("Exchange should be set", ex1);
@@ -159,7 +146,6 @@ public class ColocMessageObserverTest extends Assert {
             exchange.put(Bus.class, bus);
             exchange.put(Endpoint.class, ep);
             exchange.put(Service.class, srv);
-            exchange.put(OperationInfo.class, oi);
         }
         
         protected List<Interceptor<? extends Message>> addColocInterceptors() {

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/CorbaConduit.java
----------------------------------------------------------------------
diff --git a/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/CorbaConduit.java b/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/CorbaConduit.java
index a30b205..91758e9 100644
--- a/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/CorbaConduit.java
+++ b/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/CorbaConduit.java
@@ -136,7 +136,7 @@ public class CorbaConduit implements Conduit {
 
     public void close(Message message) throws IOException {
         if (message.get(CorbaConstants.CORBA_ENDPOINT_OBJECT) != null) {
-            BindingOperationInfo boi = message.getExchange().get(BindingOperationInfo.class);
+            BindingOperationInfo boi = message.getExchange().getBindingOperationInfo();
             OperationType opType = boi.getExtensor(OperationType.class);
             try {
                 if (message instanceof CorbaMessage) {
@@ -180,7 +180,7 @@ public class CorbaConduit implements Conduit {
     }
         
     public void buildRequest(CorbaMessage message, OperationType opType) throws Exception {        
-        ServiceInfo service = message.getExchange().get(ServiceInfo.class);
+        ServiceInfo service = message.getExchange().getEndpoint().getEndpointInfo().getService();
         NVList nvlist = getArguments(message);
         NamedValue ret = getReturn(message);
         Map<TypeCode, RaisesType> exceptions = getOperationExceptions(opType, typeMap);

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamFaultInInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamFaultInInterceptor.java b/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamFaultInInterceptor.java
index dc1d4f4..80a64a1 100644
--- a/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamFaultInInterceptor.java
+++ b/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamFaultInInterceptor.java
@@ -83,10 +83,10 @@ public class CorbaStreamFaultInInterceptor extends AbstractPhaseInterceptor<Mess
             if (exStreamable != null) {
                 DataReader<XMLStreamReader> reader = getDataReader(message);
 
-                BindingOperationInfo bopInfo = message.getExchange().get(BindingOperationInfo.class);
+                BindingOperationInfo bopInfo = message.getExchange().getBindingOperationInfo();
                 OperationInfo opInfo = bopInfo.getOperationInfo();
                 
-                ServiceInfo service = message.getExchange().get(ServiceInfo.class);
+                ServiceInfo service = message.getExchange().getEndpoint().getEndpointInfo().getService();
                 
                 org.omg.CORBA.ORB orb = (org.omg.CORBA.ORB) message.get(CorbaConstants.ORB);
                 if (orb == null) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamFaultOutInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamFaultOutInterceptor.java b/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamFaultOutInterceptor.java
index 729e8f5..4bfcef5 100644
--- a/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamFaultOutInterceptor.java
+++ b/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamFaultOutInterceptor.java
@@ -171,10 +171,10 @@ public class CorbaStreamFaultOutInterceptor extends AbstractPhaseInterceptor<Mes
                     setUserExceptionFromFaultDetail(message, 
                             faultEx.getDetail(), 
                             exType, opInfo, writer,
-                            exchange.get(ServiceInfo.class));
+                            exchange.getEndpoint().getEndpointInfo().getService());
                 } else {
                     setUserException(message, ex, exType, opInfo, writer,
-                                    exchange.get(ServiceInfo.class));
+                                    exchange.getEndpoint().getEndpointInfo().getService());
                 }
             } else {
                 throw new CorbaBindingException(ex);

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamInInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamInInterceptor.java b/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamInInterceptor.java
index 051fd24..606d9fc 100644
--- a/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamInInterceptor.java
+++ b/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamInInterceptor.java
@@ -94,7 +94,7 @@ public class CorbaStreamInInterceptor extends AbstractPhaseInterceptor<Message>
             message.setContent(Exception.class, 
                                message.getExchange().getOutMessage().getContent(Exception.class));
 
-            Endpoint ep = message.getExchange().get(Endpoint.class);
+            Endpoint ep = message.getExchange().getEndpoint();
             message.getInterceptorChain().abort();
             if (ep.getInFaultObserver() != null) {
                 ep.getInFaultObserver().onMessage(message);
@@ -108,7 +108,7 @@ public class CorbaStreamInInterceptor extends AbstractPhaseInterceptor<Message>
 
         CorbaTypeEventProducer eventProducer = null;
         Exchange exchange = message.getExchange();
-        BindingOperationInfo bindingOpInfo = exchange.get(BindingOperationInfo.class);  
+        BindingOperationInfo bindingOpInfo = exchange.getBindingOperationInfo();  
         BindingMessageInfo msgInfo = bindingOpInfo.getOutput();
 
         boolean wrap = false;

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamOutEndingInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamOutEndingInterceptor.java b/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamOutEndingInterceptor.java
index f6860c1..407fad1 100644
--- a/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamOutEndingInterceptor.java
+++ b/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamOutEndingInterceptor.java
@@ -62,8 +62,8 @@ public class CorbaStreamOutEndingInterceptor extends AbstractPhaseInterceptor<Me
         CorbaMessage message = (CorbaMessage) msg;
         orb = (org.omg.CORBA.ORB) message.get(CorbaConstants.ORB);
         Exchange exchange = message.getExchange();
-        BindingOperationInfo boi = exchange.get(BindingOperationInfo.class);
-        service = exchange.get(ServiceInfo.class);
+        BindingOperationInfo boi = exchange.getBindingOperationInfo();
+        service = exchange.getEndpoint().getEndpointInfo().getService();
         typeMap = message.getCorbaTypeMap();
 
         if (ContextUtils.isRequestor(message)) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamOutInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamOutInterceptor.java b/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamOutInterceptor.java
index 790d82a..3bdd194 100644
--- a/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamOutInterceptor.java
+++ b/rt/bindings/corba/src/main/java/org/apache/cxf/binding/corba/interceptors/CorbaStreamOutInterceptor.java
@@ -56,9 +56,9 @@ public class CorbaStreamOutInterceptor extends AbstractPhaseInterceptor<Message>
         CorbaMessage message = (CorbaMessage) msg;
         orb = (org.omg.CORBA.ORB) message.get(CorbaConstants.ORB);
         Exchange exchange = message.getExchange();
-        service = exchange.get(ServiceInfo.class);
+        service = exchange.getEndpoint().getEndpointInfo().getService();
         typeMap = message.getCorbaTypeMap();
-        BindingOperationInfo boi = exchange.get(BindingOperationInfo.class);
+        BindingOperationInfo boi = exchange.getBindingOperationInfo();
         if (ContextUtils.isRequestor(message)) {
             handleOutBoundMessage(message, boi);
         } else {

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/corba/src/test/java/org/apache/cxf/binding/corba/CorbaConduitTest.java
----------------------------------------------------------------------
diff --git a/rt/bindings/corba/src/test/java/org/apache/cxf/binding/corba/CorbaConduitTest.java b/rt/bindings/corba/src/test/java/org/apache/cxf/binding/corba/CorbaConduitTest.java
index d7ceed8..b12a902 100644
--- a/rt/bindings/corba/src/test/java/org/apache/cxf/binding/corba/CorbaConduitTest.java
+++ b/rt/bindings/corba/src/test/java/org/apache/cxf/binding/corba/CorbaConduitTest.java
@@ -177,7 +177,7 @@ public class CorbaConduitTest extends Assert {
         Exchange exg = control.createMock(Exchange.class);
         EasyMock.expect(msg.getExchange()).andReturn(exg);
         BindingOperationInfo bopInfo = control.createMock(BindingOperationInfo.class);
-        EasyMock.expect(exg.get(BindingOperationInfo.class)).andReturn(bopInfo);
+        EasyMock.expect(exg.getBindingOperationInfo()).andReturn(bopInfo);
         OperationType opType = control.createMock(OperationType.class);
         bopInfo.getExtensor(OperationType.class);
         EasyMock.expectLastCall().andReturn(opType);

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchInInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchInInterceptor.java b/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchInInterceptor.java
index e032f5e..3c347ea 100644
--- a/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchInInterceptor.java
+++ b/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchInInterceptor.java
@@ -50,7 +50,7 @@ public class ObjectDispatchInInterceptor extends AbstractPhaseInterceptor<Messag
             throw new Fault(new org.apache.cxf.common.i18n.Message("NO_OPERATION", BUNDLE));
         }
 
-        Endpoint ep = message.getExchange().get(Endpoint.class);
+        Endpoint ep = message.getExchange().getEndpoint();
         
         BindingInfo binding = null;
         

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchOutInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchOutInterceptor.java b/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchOutInterceptor.java
index 7971fdc..c0f7fcb 100644
--- a/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchOutInterceptor.java
+++ b/rt/bindings/object/src/main/java/org/apache/cxf/binding/object/ObjectDispatchOutInterceptor.java
@@ -44,7 +44,7 @@ public class ObjectDispatchOutInterceptor extends AbstractPhaseInterceptor<Messa
         message.put(LocalConduit.DIRECT_DISPATCH, Boolean.TRUE);
         message.put(LocalTransportFactory.MESSAGE_INCLUDE_PROPERTIES,
                     includes);
-        BindingOperationInfo bop = ex.get(BindingOperationInfo.class);
+        BindingOperationInfo bop = ex.getBindingOperationInfo();
         
         message.put(ObjectBinding.OPERATION, bop.getName());
         message.put(ObjectBinding.BINDING, bop.getBinding().getName());

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/CheckFaultInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/CheckFaultInterceptor.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/CheckFaultInterceptor.java
index 44b444b..47c6df6 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/CheckFaultInterceptor.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/CheckFaultInterceptor.java
@@ -63,7 +63,7 @@ public class CheckFaultInterceptor extends AbstractSoapInterceptor {
                                 message.getVersion().getSender());
         }
         if (message.getVersion().getFault().equals(xmlReader.getName()) && isRequestor(message)) {
-            Endpoint ep = message.getExchange().get(Endpoint.class);
+            Endpoint ep = message.getExchange().getEndpoint();
             message.getInterceptorChain().abort();
             if (ep.getInFaultObserver() != null) {
                 ep.getInFaultObserver().onMessage(message);

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCInInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCInInterceptor.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCInInterceptor.java
index cad50af..6607e1b 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCInInterceptor.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCInInterceptor.java
@@ -44,7 +44,6 @@ import org.apache.cxf.service.model.BindingOperationInfo;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.service.model.MessageInfo;
 import org.apache.cxf.service.model.MessagePartInfo;
-import org.apache.cxf.service.model.OperationInfo;
 import org.apache.cxf.service.model.ServiceInfo;
 import org.apache.cxf.service.model.ServiceModelUtil;
 import org.apache.cxf.staxutils.DepthXMLStreamReader;
@@ -63,7 +62,7 @@ public class RPCInInterceptor extends AbstractInDatabindingInterceptor {
     private BindingOperationInfo getOperation(Message message, QName opName) {
         BindingOperationInfo bop = ServiceModelUtil.getOperation(message.getExchange(), opName);
         if (bop == null) {
-            Endpoint ep = message.getExchange().get(Endpoint.class);
+            Endpoint ep = message.getExchange().getEndpoint();
             if (ep == null) {
                 return null;
             }
@@ -102,7 +101,7 @@ public class RPCInInterceptor extends AbstractInDatabindingInterceptor {
             opName = opName.substring(0, opName.length() - 8);
         }
 
-        if (message.getExchange().get(BindingOperationInfo.class) == null) {
+        if (message.getExchange().getBindingOperationInfo() == null) {
             operation = getOperation(message, new QName(xmlReader.getNamespaceURI(), opName));
             if (operation == null) {
                 // it's doc-lit-bare
@@ -112,7 +111,7 @@ public class RPCInInterceptor extends AbstractInDatabindingInterceptor {
                 setMessage(message, operation);
             }
         } else {
-            operation = message.getExchange().get(BindingOperationInfo.class);
+            operation = message.getExchange().getBindingOperationInfo();
         }
         MessageInfo msg;
         DataReader<XMLStreamReader> dr = getDataReader(message, XMLStreamReader.class);
@@ -193,7 +192,6 @@ public class RPCInInterceptor extends AbstractInDatabindingInterceptor {
                              BindingOperationInfo operation) {
         Exchange ex = message.getExchange();
         ex.put(BindingOperationInfo.class, operation);
-        ex.put(OperationInfo.class, operation.getOperationInfo());
         ex.setOneWay(operation.getOperationInfo().isOneWay());
 
         //Set standard MessageContext properties required by JAX_WS, but not specific to JAX_WS.
@@ -206,7 +204,7 @@ public class RPCInInterceptor extends AbstractInDatabindingInterceptor {
         QName interfaceQName = si.getInterface().getName();
         message.put(Message.WSDL_INTERFACE, interfaceQName);
 
-        EndpointInfo endpointInfo = ex.get(Endpoint.class).getEndpointInfo();
+        EndpointInfo endpointInfo = ex.getEndpoint().getEndpointInfo();
         QName portQName = endpointInfo.getName();
         message.put(Message.WSDL_PORT, portQName);
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java
index 01649d6..4c6912d 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCOutInterceptor.java
@@ -53,8 +53,7 @@ public class RPCOutInterceptor extends AbstractOutDatabindingInterceptor {
             NSStack nsStack = new NSStack();
             nsStack.push();
 
-            BindingOperationInfo operation = (BindingOperationInfo) message.getExchange().get(
-                            BindingOperationInfo.class.getName());
+            BindingOperationInfo operation = (BindingOperationInfo) message.getExchange().getBindingOperationInfo();
 
             assert operation.getName() != null;
 
@@ -138,7 +137,6 @@ public class RPCOutInterceptor extends AbstractOutDatabindingInterceptor {
                                       boolean output,
                                       BindingOperationInfo boi) 
         throws XMLStreamException {
-        String responseSuffix = output ? "Response" : "";
         String ns = boi.getName().getNamespaceURI();
         SoapBody body = null;
         if (output) {
@@ -155,7 +153,8 @@ public class RPCOutInterceptor extends AbstractOutDatabindingInterceptor {
 
         nsStack.add(ns);
         String prefix = nsStack.getPrefix(ns);
-        StaxUtils.writeStartElement(xmlWriter, prefix, boi.getName().getLocalPart() + responseSuffix, ns);
+        String name = output ? boi.getName().getLocalPart() + "Response" : boi.getName().getLocalPart();
+        StaxUtils.writeStartElement(xmlWriter, prefix, name, ns);
         return ns;
     }
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptor.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptor.java
index 34788fd..9c4d853 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptor.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptor.java
@@ -119,7 +119,7 @@ public class SoapActionInInterceptor extends AbstractSoapInterceptor {
         }
         
         Exchange ex = message.getExchange();
-        Endpoint ep = ex.get(Endpoint.class);
+        Endpoint ep = ex.getEndpoint();
         if (ep == null) {
             return;
         }
@@ -159,7 +159,6 @@ public class SoapActionInInterceptor extends AbstractSoapInterceptor {
         }
         
         ex.put(BindingOperationInfo.class, bindingOp);
-        ex.put(OperationInfo.class, bindingOp.getOperationInfo());
     }
     private static boolean matchWSAAction(BindingOperationInfo boi, String action) {
         Object o = getWSAAction(boi);

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java
index 6666c2a..5fbfd9e 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java
@@ -194,8 +194,7 @@ public class SoapOutInterceptor extends AbstractSoapInterceptor {
         //add MessagePart to soapHeader if necessary
         boolean endedHeader = false;
         Exchange exchange = message.getExchange();
-        BindingOperationInfo bop = (BindingOperationInfo)exchange.get(BindingOperationInfo.class
-                                                                            .getName());
+        BindingOperationInfo bop = exchange.getBindingOperationInfo();
         if (bop == null) {
             return endedHeader;
         }

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapJMSInInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapJMSInInterceptor.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapJMSInInterceptor.java
index 9c32970..ba5620b 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapJMSInInterceptor.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/jms/interceptor/SoapJMSInInterceptor.java
@@ -216,7 +216,7 @@ public class SoapJMSInInterceptor extends AbstractSoapInterceptor {
 
     private Fault createFault(SoapMessage message, JMSFault jmsFault) {
         Fault f = null;
-        Endpoint e = message.getExchange().get(Endpoint.class);
+        Endpoint e = message.getExchange().getEndpoint();
         Binding b = null;
         if (null != e) {
             b = e.getBinding();

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java
index 1f12f8f..51afbf5 100644
--- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java
+++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/saaj/SAAJInInterceptor.java
@@ -278,7 +278,7 @@ public class SAAJInInterceptor extends AbstractSoapInterceptor {
         }
         Element elem = DOMUtils.getFirstElement(header);
         while (elem != null) {
-            Bus b = message.getExchange() == null ? null : message.getExchange().get(Bus.class);
+            Bus b = message.getExchange() == null ? null : message.getExchange().getBus();
             HeaderProcessor p =  null;
             if (b != null && b.getExtension(HeaderManager.class) != null) {
                 p = b.getExtension(HeaderManager.class).getHeaderProcessor(elem.getNamespaceURI());

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java b/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java
index a5ba9ae..540640c 100644
--- a/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java
+++ b/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageInInterceptor.java
@@ -39,7 +39,6 @@ import org.apache.cxf.service.model.BindingInfo;
 import org.apache.cxf.service.model.BindingMessageInfo;
 import org.apache.cxf.service.model.BindingOperationInfo;
 import org.apache.cxf.service.model.MessagePartInfo;
-import org.apache.cxf.service.model.OperationInfo;
 import org.apache.cxf.staxutils.DepthXMLStreamReader;
 import org.apache.cxf.staxutils.StaxUtils;
 import org.apache.cxf.wsdl.interceptors.DocLiteralInInterceptor;
@@ -60,7 +59,7 @@ public class XMLMessageInInterceptor extends AbstractInDatabindingInterceptor {
             LOG.fine("XMLMessageInInterceptor skipped in HTTP GET method");
             return;
         }
-        Endpoint ep = message.getExchange().get(Endpoint.class);
+        Endpoint ep = message.getExchange().getEndpoint();
 
         XMLStreamReader xsr = message.getContent(XMLStreamReader.class);
         if (xsr == null) {
@@ -83,14 +82,13 @@ public class XMLMessageInInterceptor extends AbstractInDatabindingInterceptor {
             }
         }
         // handling xml normal inbound message
-        BindingOperationInfo boi = ex.get(BindingOperationInfo.class);
+        BindingOperationInfo boi = ex.getBindingOperationInfo();
         boolean isRequestor = isRequestor(message);
         if (boi == null) {
             BindingInfo service = ep.getEndpointInfo().getBinding();
             boi = getBindingOperationInfo(isRequestor, startQName, service, xsr);
             if (boi != null) {
                 ex.put(BindingOperationInfo.class, boi);
-                ex.put(OperationInfo.class, boi.getOperationInfo());
                 ex.setOneWay(boi.getOperationInfo().isOneWay());
             }
         } else {

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageOutInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageOutInterceptor.java b/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageOutInterceptor.java
index ed3a8e1..8ad08c7 100644
--- a/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageOutInterceptor.java
+++ b/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLMessageOutInterceptor.java
@@ -52,7 +52,7 @@ public class XMLMessageOutInterceptor extends AbstractOutDatabindingInterceptor
     }
 
     public void handleMessage(Message message) throws Fault {
-        BindingOperationInfo boi = message.getExchange().get(BindingOperationInfo.class);
+        BindingOperationInfo boi = message.getExchange().getBindingOperationInfo();
         MessageInfo mi;
         BindingMessageInfo bmi;
         if (isRequestor(message)) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/features/clustering/src/main/java/org/apache/cxf/clustering/AbstractStaticFailoverStrategy.java
----------------------------------------------------------------------
diff --git a/rt/features/clustering/src/main/java/org/apache/cxf/clustering/AbstractStaticFailoverStrategy.java b/rt/features/clustering/src/main/java/org/apache/cxf/clustering/AbstractStaticFailoverStrategy.java
index 1a37296..6f120da 100644
--- a/rt/features/clustering/src/main/java/org/apache/cxf/clustering/AbstractStaticFailoverStrategy.java
+++ b/rt/features/clustering/src/main/java/org/apache/cxf/clustering/AbstractStaticFailoverStrategy.java
@@ -131,7 +131,7 @@ public abstract class AbstractStaticFailoverStrategy implements FailoverStrategy
      * @return a List of alternate endpoints if available
      */
     protected List<Endpoint> getEndpoints(Exchange exchange, boolean acceptCandidatesWithSameAddress) {
-        Endpoint endpoint = exchange.get(Endpoint.class);
+        Endpoint endpoint = exchange.getEndpoint();
         Collection<ServiceInfo> services = endpoint.getService().getServiceInfos();
         QName currentBinding = endpoint.getBinding().getBindingInfo().getName();
         List<Endpoint> alternates = new ArrayList<Endpoint>();

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/features/clustering/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java
----------------------------------------------------------------------
diff --git a/rt/features/clustering/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java b/rt/features/clustering/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java
index 722beab..639895c 100644
--- a/rt/features/clustering/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java
+++ b/rt/features/clustering/src/main/java/org/apache/cxf/clustering/FailoverTargetSelector.java
@@ -83,7 +83,7 @@ public class FailoverTargetSelector extends AbstractConduitSelector {
         
         InvocationKey key = new InvocationKey(exchange);
         if (getInvocationContext(key) == null) {
-            Endpoint endpoint = exchange.get(Endpoint.class);
+            Endpoint endpoint = exchange.getEndpoint();
             BindingOperationInfo bindingOperationInfo =
                 exchange.getBindingOperationInfo();
             Object[] params = message.getContent(List.class).toArray();

http://git-wip-us.apache.org/repos/asf/cxf/blob/8ab75c2d/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/MessageContextImpl.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/MessageContextImpl.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/MessageContextImpl.java
index f84f770..78496ac 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/MessageContextImpl.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/MessageContextImpl.java
@@ -233,7 +233,7 @@ public class MessageContextImpl implements MessageContext {
         
         Message message = m.getExchange().getOutMessage();
         if (message == null) {
-            Endpoint ep = m.getExchange().get(Endpoint.class);
+            Endpoint ep = m.getExchange().getEndpoint();
             message = new org.apache.cxf.message.MessageImpl();
             message.setExchange(m.getExchange());
             message = ep.getBinding().createMessage(message);


Mime
View raw message