/** * Returns the message ID strategy for the given endpoint. Default implementation * returns {@link #getMessageIdStrategy()} * * @param endpoint the endpoint * @return the message ID strategy for the given endpoint */ protected MessageIdStrategy getMessageIdStrategy(Object endpoint) { return getMessageIdStrategy(); }
/** * Returns the message senders for the given endpoint. Default implementation returns * {@link #getMessageSenders()} * * @param endpoint the endpoint * @return the message senders for the given endpoint */ protected WebServiceMessageSender[] getMessageSenders(Object endpoint) { return getMessageSenders(); }
/** Protected constructor. Initializes the default settings. */ protected AbstractAddressingEndpointMapping() { initDefaultStrategies(); }
/** * Creates a {@link SoapEndpointInvocationChain} based on the given endpoint and {@link * org.springframework.ws.soap.addressing.version.AddressingVersion}. */ private EndpointInvocationChain getEndpointInvocationChain(Object endpoint, AddressingVersion version, MessageAddressingProperties requestMap, MessageContext messageContext) { URI responseAction = getResponseAction(endpoint, requestMap); URI faultAction = getFaultAction(endpoint, requestMap); WebServiceMessageSender[] messageSenders = getMessageSenders(endpoint); MessageIdStrategy messageIdStrategy = getMessageIdStrategy(endpoint); List<EndpointInterceptor> interceptors = new ArrayList<EndpointInterceptor>(); interceptors.addAll(Arrays.asList(preInterceptors)); AddressingEndpointInterceptor addressingInterceptor = new AddressingEndpointInterceptor(version, messageIdStrategy, messageSenders, responseAction, faultAction); interceptors.add(addressingInterceptor); interceptors.addAll(Arrays.asList(postInterceptors)); if (this.smartInterceptors != null) { for (SmartEndpointInterceptor smartInterceptor : smartInterceptors) { if (smartInterceptor.shouldIntercept(messageContext, endpoint)) { interceptors.add(smartInterceptor); } } } return new SoapEndpointInvocationChain(endpoint, interceptors.toArray(new EndpointInterceptor[interceptors.size()]), actorsOrRoles, isUltimateReceiver); }
@Override public final EndpointInvocationChain getEndpoint(MessageContext messageContext) throws TransformerException { Assert.isInstanceOf(SoapMessage.class, messageContext.getRequest()); SoapMessage request = (SoapMessage) messageContext.getRequest(); for (AddressingVersion version : versions) { if (supports(version, request)) { if (logger.isDebugEnabled()) { logger.debug("Request [" + request + "] uses [" + version + "]"); } MessageAddressingProperties requestMap = version.getMessageAddressingProperties(request); if (requestMap == null) { return null; } Object endpoint = getEndpointInternal(requestMap); if (endpoint == null) { return null; } return getEndpointInvocationChain(endpoint, version, requestMap, messageContext); } } return null; }
/** * Creates a {@link SoapEndpointInvocationChain} based on the given endpoint and {@link * org.springframework.ws.soap.addressing.version.AddressingVersion}. */ private EndpointInvocationChain getEndpointInvocationChain(Object endpoint, AddressingVersion version, MessageAddressingProperties requestMap) { URI responseAction = getResponseAction(endpoint, requestMap); URI faultAction = getFaultAction(endpoint, requestMap); EndpointInterceptor[] interceptors = new EndpointInterceptor[preInterceptors.length + postInterceptors.length + 1]; System.arraycopy(preInterceptors, 0, interceptors, 0, preInterceptors.length); AddressingEndpointInterceptor interceptor = new AddressingEndpointInterceptor(version, messageIdStrategy, messageSenders, responseAction, faultAction); interceptors[preInterceptors.length] = interceptor; System.arraycopy(postInterceptors, 0, interceptors, preInterceptors.length + 1, postInterceptors.length); return new SoapEndpointInvocationChain(endpoint, interceptors, actorsOrRoles, isUltimateReceiver); }
/** * Sets a single message senders, which is used to send out-of-band reply messages. If a * request messages defines a non-anonymous reply address, this senders will be used to * send the message. * * @param messageSender the message sender */ public final void setMessageSender(WebServiceMessageSender messageSender) { Assert.notNull(messageSender, "'messageSender' must not be null"); setMessageSenders(new WebServiceMessageSender[]{messageSender}); }
@Override public void afterPropertiesSet() throws Exception { if (logger.isInfoEnabled()) { logger.info("Supporting " + Arrays.asList(versions)); } if (getApplicationContext() != null) { Map<String, SmartEndpointInterceptor> smartInterceptors = BeanFactoryUtils .beansOfTypeIncludingAncestors(getApplicationContext(), SmartEndpointInterceptor.class, true, false); if (!smartInterceptors.isEmpty()) { this.smartInterceptors = smartInterceptors.values() .toArray(new SmartEndpointInterceptor[smartInterceptors.size()]); } } }
/** * Creates a {@link SoapEndpointInvocationChain} based on the given endpoint and {@link * org.springframework.ws.soap.addressing.version.AddressingVersion}. */ private EndpointInvocationChain getEndpointInvocationChain(Object endpoint, AddressingVersion version, MessageAddressingProperties requestMap, MessageContext messageContext) { URI responseAction = getResponseAction(endpoint, requestMap); URI faultAction = getFaultAction(endpoint, requestMap); WebServiceMessageSender[] messageSenders = getMessageSenders(endpoint); MessageIdStrategy messageIdStrategy = getMessageIdStrategy(endpoint); List<EndpointInterceptor> interceptors = new ArrayList<EndpointInterceptor>(); interceptors.addAll(Arrays.asList(preInterceptors)); AddressingEndpointInterceptor addressingInterceptor = new AddressingEndpointInterceptor(version, messageIdStrategy, messageSenders, responseAction, faultAction); interceptors.add(addressingInterceptor); interceptors.addAll(Arrays.asList(postInterceptors)); if (this.smartInterceptors != null) { for (SmartEndpointInterceptor smartInterceptor : smartInterceptors) { if (smartInterceptor.shouldIntercept(messageContext, endpoint)) { interceptors.add(smartInterceptor); } } } return new SoapEndpointInvocationChain(endpoint, interceptors.toArray(new EndpointInterceptor[interceptors.size()]), actorsOrRoles, isUltimateReceiver); }
public final EndpointInvocationChain getEndpoint(MessageContext messageContext) throws TransformerException { Assert.isInstanceOf(SoapMessage.class, messageContext.getRequest()); SoapMessage request = (SoapMessage) messageContext.getRequest(); for (AddressingVersion version : versions) { if (supports(version, request)) { if (logger.isDebugEnabled()) { logger.debug("Request [" + request + "] uses [" + version + "]"); } MessageAddressingProperties requestMap = version.getMessageAddressingProperties(request); if (requestMap == null) { return null; } Object endpoint = getEndpointInternal(requestMap); if (endpoint == null) { return null; } return getEndpointInvocationChain(endpoint, version, requestMap); } } return null; }
/** * Sets a single message senders, which is used to send out-of-band reply messages. If a * request messages defines a non-anonymous reply address, this senders will be used to * send the message. * * @param messageSender the message sender */ public final void setMessageSender(WebServiceMessageSender messageSender) { Assert.notNull(messageSender, "'messageSender' must not be null"); setMessageSenders(new WebServiceMessageSender[]{messageSender}); }
@Override public void afterPropertiesSet() throws Exception { if (logger.isInfoEnabled()) { logger.info("Supporting " + Arrays.asList(versions)); } if (getApplicationContext() != null) { Map<String, SmartEndpointInterceptor> smartInterceptors = BeanFactoryUtils .beansOfTypeIncludingAncestors(getApplicationContext(), SmartEndpointInterceptor.class, true, false); if (!smartInterceptors.isEmpty()) { this.smartInterceptors = smartInterceptors.values() .toArray(new SmartEndpointInterceptor[smartInterceptors.size()]); } } }
/** * Creates a {@link SoapEndpointInvocationChain} based on the given endpoint and {@link * org.springframework.ws.soap.addressing.version.AddressingVersion}. */ private EndpointInvocationChain getEndpointInvocationChain(Object endpoint, AddressingVersion version, MessageAddressingProperties requestMap, MessageContext messageContext) { URI responseAction = getResponseAction(endpoint, requestMap); URI faultAction = getFaultAction(endpoint, requestMap); WebServiceMessageSender[] messageSenders = getMessageSenders(endpoint); MessageIdStrategy messageIdStrategy = getMessageIdStrategy(endpoint); List<EndpointInterceptor> interceptors = new ArrayList<EndpointInterceptor>(); interceptors.addAll(Arrays.asList(preInterceptors)); AddressingEndpointInterceptor addressingInterceptor = new AddressingEndpointInterceptor(version, messageIdStrategy, messageSenders, responseAction, faultAction); interceptors.add(addressingInterceptor); interceptors.addAll(Arrays.asList(postInterceptors)); if (this.smartInterceptors != null) { for (SmartEndpointInterceptor smartInterceptor : smartInterceptors) { if (smartInterceptor.shouldIntercept(messageContext, endpoint)) { interceptors.add(smartInterceptor); } } } return new SoapEndpointInvocationChain(endpoint, interceptors.toArray(new EndpointInterceptor[interceptors.size()]), actorsOrRoles, isUltimateReceiver); }
@Override public final EndpointInvocationChain getEndpoint(MessageContext messageContext) throws TransformerException { Assert.isInstanceOf(SoapMessage.class, messageContext.getRequest()); SoapMessage request = (SoapMessage) messageContext.getRequest(); for (AddressingVersion version : versions) { if (supports(version, request)) { if (logger.isDebugEnabled()) { logger.debug("Request [" + request + "] uses [" + version + "]"); } MessageAddressingProperties requestMap = version.getMessageAddressingProperties(request); if (requestMap == null) { return null; } Object endpoint = getEndpointInternal(requestMap); if (endpoint == null) { return null; } return getEndpointInvocationChain(endpoint, version, requestMap, messageContext); } } return null; }
/** * Returns the message senders for the given endpoint. Default implementation returns * {@link #getMessageSenders()} * * @param endpoint the endpoint * @return the message senders for the given endpoint */ protected WebServiceMessageSender[] getMessageSenders(Object endpoint) { return getMessageSenders(); }
/** * Returns the message ID strategy for the given endpoint. Default implementation * returns {@link #getMessageIdStrategy()} * * @param endpoint the endpoint * @return the message ID strategy for the given endpoint */ protected MessageIdStrategy getMessageIdStrategy(Object endpoint) { return getMessageIdStrategy(); }
/** Protected constructor. Initializes the default settings. */ protected AbstractAddressingEndpointMapping() { initDefaultStrategies(); }
/** * Sets a single message senders, which is used to send out-of-band reply messages. If a * request messages defines a non-anonymous reply address, this senders will be used to * send the message. * * @param messageSender the message sender */ public final void setMessageSender(WebServiceMessageSender messageSender) { Assert.notNull(messageSender, "'messageSender' must not be null"); setMessageSenders(new WebServiceMessageSender[]{messageSender}); }
@Override public void afterPropertiesSet() throws Exception { if (logger.isInfoEnabled()) { logger.info("Supporting " + Arrays.asList(versions)); } if (getApplicationContext() != null) { Map<String, SmartEndpointInterceptor> smartInterceptors = BeanFactoryUtils .beansOfTypeIncludingAncestors(getApplicationContext(), SmartEndpointInterceptor.class, true, false); if (!smartInterceptors.isEmpty()) { this.smartInterceptors = smartInterceptors.values() .toArray(new SmartEndpointInterceptor[smartInterceptors.size()]); } } }
@Override public final EndpointInvocationChain getEndpoint(MessageContext messageContext) throws TransformerException { Assert.isInstanceOf(SoapMessage.class, messageContext.getRequest()); SoapMessage request = (SoapMessage) messageContext.getRequest(); for (AddressingVersion version : versions) { if (supports(version, request)) { if (logger.isDebugEnabled()) { logger.debug("Request [" + request + "] uses [" + version + "]"); } MessageAddressingProperties requestMap = version.getMessageAddressingProperties(request); if (requestMap == null) { return null; } Object endpoint = getEndpointInternal(requestMap); if (endpoint == null) { return null; } return getEndpointInvocationChain(endpoint, version, requestMap, messageContext); } } return null; }