Spring Web Services Changelog Arjen Poutsma Pulled handleFault() from SoapEndpointInterceptor up to EndpointInterceptor Remove IOExceptions from WebServiceTemplate. A runtime exception hierarchy has been created in org.springframework.ws.client. Support JAXB's MTOM/XOP/MIME support. As a result, all Mime-related code in SoapMessage has been moved to the org.springframework.ws.mime package Client is not able to read long response Add methods to access attributes on SoapElement Added XPath template, for evaluating XPaths in a template-like fashion MTOM support Added XPathExpressionFactoryBean, for injection of XPath expressions Default message factory for WebServiceTemplate Add faults into dynamically created WSDL Added MethodEndpoint functionality, invoking methods for incoming requests GZip compression is not enabled WebServiceConnection is now container for TransportInputStream and TransportOutputStream, used on both client- and server-side Added supports method to Marshaller and Unmarshaller Allow CastorMarshaller to accept more than one mapping file Set WhitespacePreserve flag in CastorMarshaller OXM Marshal encoding definition Cannot set DateConverter in XStreamMarshaller.setConverters(Converter[]) Replaced method which returned a Source from WebServiceTemplate with SourceExtractor methods, because the Source could be closed before returned Added XPathPayloadEndpointMapping (#SWS-85) AbstractSoapMessage.getPayloadSource returns null with Axis SAAJ DefaultTimestapValidator now handles timestamps with milliseconds correctly Stream closed before response read with WebServiceTemplate + Axis SAAJ Soap Messages Fixed issue with reading response HTTP headers XsdBasedSoap11Wsdl4jDefinitionBuilder parsing error Prefixed abstract classes with Abstract new location for log4j.properties AbstractMarshallerTestCase.testMarshalDOMResult() builds a DOM object that does not retain namespace CastorMarshaller uses a XMLClassDescriptorResolver instead of a Mapping CastorMarshaller marshals to DOM trees correctly Added indent property to pretty print JiBX output (#SWS-72) Moved MessageDispatcher, EndpointAdapter, EndpointExceptionResolver, EndpointInterceptor, EndpointMapping, and EndpointInvocationChain to org.springframework.ws.server package Added client-side support based on WebServiceTemplate Refactored MessageContextFactory, SoapMessageContextFactory and implementations into WebServiceMessageFactory Moved TransformerObjectSupport to org.springframework.xml.transform Moved all endpoint subclasses to org.springframework.ws.server.endpoint Moved PayloadValidatingInterceptor to org.springframework.soap.server.endpoint.interceptor, because it contains SOAP-specific features Added setId() method to Attachment, to set the Content-ID of MIME attachments Added getResult() to SoapFaultDetail Refactored SAAJ from two separate hierarchies (SAAJ 1.2 and SAAJ 1.3) into one, using bridge pattern. Added SAAJ 1.1 support. Moved all endpoint subclasses to org.springframework.ws.soap.server.endpoint DefaultTimestampValidator no longer requires Expired in request Digest passwords are handled correctly in the SimplePasswordValidationCallbackHandler Moved TransportContext and TransportContextHolder to org.springframework.ws.transport.context package Added MessageDispatcherServlet Renamed MessageEndpointHandlerAdapter to WebServiceReceiverHandlerAdapter Added Wsdl11DefinitionBuilder Added XsdBasedSoap11Wsdl4jDefinitionBuilder that generates a WSDL based on a schema Fixed #SWS-61: DomContentHandler throwing NullpointerExption on document Fixed #SWS-75: Java 1.5+ Constructor Used for IllegalStateException Added JAX-WS client for Airline sample added Spring-WS client for Echo sample All marshallers support StaxSources now Added support for registering custom Converters Changed contract of MessageContext.getResponse(): now creates a response if none has been created. Required because creating SOAP fault when a response was already set threw an exception. Enabling support for direct writing to the TransportResponse MessageContext contains TransportRequest, for transport-based routing Improved endpoint test suite AbstractStaxPayloadEndpoint now use StaxSource corrently Renamed AbstractDom4JPayloadEndpoint to AbstractDom4jPayloadEndpoint (lower case j), to follow Spring naming conventions (e.g. Log4jConfigurer) Added getters on AbstractMarshallingPayloadEndpoint Moved interceptors to seperate package Made PayloadValidatingInterceptor more customizable Added schemas property to PayloadValidatingInterceptor Refactoring most of PayloadValidatingInterceptor into AbstractValidatingInterceptor Moved EndpointMappings to seperate package Removed SOAP-specific roles functionality Added Plain Old XML support Improved content-type handling Moved SOAP 1.1 specfics to separate package and interfaces SoapAction has been removed from SoapMessage, SoapActionEndpointMapping uses TransportRequest header Added support for SAAJ 1.3 Added "payloadCaching" property to read the contents of SOAP bodies produced by the AxiomSoapMessageContextFactory in a non-buffering, read-once fashion. Increased performance by keeping object references instead of creating new instances for every call Added SoapEnvelopeLoggingInterceptor, which logs the entire SoapEnvelope Moved SOAP-specific EndpointMappings to seperate package Added Role/Actor functionality to DelegatingSoapEndpointMapping Add support for SAAJ 1.3 Increased performance by keeping object references instead of creating new instances for every call Added SaajUtils.getVersion() Moved SOAP 1.1 specifics to separate package and interfaces Added TransportContext, TransportRequest & TransportResponse Removed J2EE 1.4 dependency renamed MessageHandlerAdapter to MessageEndpointHandlerAdapter Moved package to seperate jar file, since oxm now also depends on it Moved QNameEditor from spring-ws-core Removed prefix dependency from QName Improved validation schema loading Added Ben Ethridge's Echo sample client Added support for JAXB 2: refactored JaxbMarshaller into AbstractJaxbMarshaller, Jaxb1Marshaller and Jaxb2Marshaller Made JaxbMarshallers thread safe Added property for a ValidationEventHandler in Jaxb2Marshaller Added AXIOM (AXis Object Model) implementation of SoapMessage hierarchy Added AbstractDom4JPayloadEndpoint Added AbstractXomPayloadEndpoint Renamed AbstractTransformingEndpoint to TransformerObjectSupport Added SoapFaultDetail and SoapFaultDetailElement Improved SoapMessage test suite Fixed serious bug which resulted in not-understood mustUnderstand headers being silently ignored Added SimpleSoapExceptionResolver Added WS-Security implementation based on XWS-Security with integration for Acegi and JAAS Added StaxSource and StaxResult, which allow for StAX readers/writers to be used as javax.xml.transform.Source and javax.xml.transform.Result Added XPath abstraction with support for JAXP 1.3, Jaxen, and Xalan Added Ingo Siebert's Echo sample Added WS-Security support to Airline sample Added SAAJ clients to Airline sample Made overall thread safety fixes Added initial reference documentation AbstractMarshallers does proper SAXSource handling Exposing JAXB properties on JaxbMarshaller Added XmlOptionsFactoryBean for use with XmlBeansMarshaller moved JaxbContextFactoryBean functionality into JaxbMarshaller moved JibxBindingFactoryBean functionality into JibxMarshaller made AbstractSoapEndpointMapping ignorant of SOAP version Added initial attachment support Added JaxpVersion for easy detection of JAXP version removed JAXP1.3 dependency First public preview release