From 66d3aef26cd9b519337d95c4b0503091c30e44dc Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Sun, 24 Sep 2006 19:22:56 +0000 Subject: [PATCH] Moved Spring-WS to separate dir. --- core/pom.xml | 104 +++ core/src/etc/test-resources/log4j.properties | 6 + .../endpoint/interceptor/invalidMessage.xml | 4 + .../ws/endpoint/interceptor/productSchema.xsd | 18 + .../ws/endpoint/interceptor/schema.xsd | 22 + .../ws/endpoint/interceptor/schema2.xsd | 32 + .../ws/endpoint/interceptor/sizeSchema.xsd | 12 + .../endpoint/interceptor/transformInput.xml | 5 + .../endpoint/interceptor/transformOutput.xml | 6 + .../endpoint/interceptor/transformation.xslt | 18 + .../ws/endpoint/interceptor/validMessage.xml | 5 + .../endpoint/interceptor/validSoapMessage.xml | 12 + .../org/springframework/ws/payload.xml | 3 + .../ws/soap/context/soap11-attachment.bin | Bin 0 -> 1807 bytes .../ws/soap/context/soap11.xml | 8 + .../ws/soap/context/soap12-attachment.bin | Bin 0 -> 1887 bytes .../ws/soap/context/soap12.xml | 7 + .../ws/soap/saaj/support/soapMessage.xml | 5 + .../springframework/ws/soap/soap11/soap11.xsd | 125 +++ .../springframework/ws/soap/soap12/soap12.xsd | 156 ++++ .../springframework/ws/soap/soap12/xml.xsd | 114 +++ .../ws/transport/http/wsdl11-expected.wsdl | 48 + .../ws/transport/http/wsdl11-input.wsdl | 48 + .../ws/wsdl/wsdl11/abstract.wsdl | 25 + .../ws/wsdl/wsdl11/complete.wsdl | 49 + .../ws/wsdl/wsdl11/concrete.wsdl | 29 + .../springframework/ws/wsdl/wsdl11/types.xsd | 6 + .../springframework/ws/EndpointAdapter.java | 52 ++ .../ws/EndpointExceptionResolver.java | 38 + .../ws/EndpointInterceptor.java | 62 ++ .../ws/EndpointInvocationChain.java | 69 ++ .../springframework/ws/EndpointMapping.java | 58 ++ .../springframework/ws/MessageDispatcher.java | 398 ++++++++ .../ws/NoEndpointFoundException.java | 29 + .../ws/WebServiceException.java | 43 + .../springframework/ws/WebServiceMessage.java | 57 ++ .../ws/WebServiceMessageException.java | 39 + .../ws/context/AbstractMessageContext.java | 123 +++ .../ws/context/MessageContext.java | 113 +++ .../ws/context/MessageContextFactory.java | 45 + .../springframework/ws/context/package.html | 5 + .../AbstractDom4jPayloadEndpoint.java | 62 ++ .../endpoint/AbstractDomPayloadEndpoint.java | 123 +++ .../AbstractEndpointExceptionResolver.java | 76 ++ .../endpoint/AbstractJDomPayloadEndpoint.java | 57 ++ .../endpoint/AbstractLoggingInterceptor.java | 112 +++ .../AbstractMarshallingPayloadEndpoint.java | 115 +++ .../endpoint/AbstractSaxPayloadEndpoint.java | 70 ++ .../AbstractStaxEventPayloadEndpoint.java | 235 +++++ .../endpoint/AbstractStaxPayloadEndpoint.java | 77 ++ .../AbstractStaxStreamPayloadEndpoint.java | 321 +++++++ .../endpoint/AbstractXomPayloadEndpoint.java | 123 +++ .../ws/endpoint/MessageEndpoint.java | 40 + .../ws/endpoint/MessageEndpointAdapter.java | 37 + .../ws/endpoint/PayloadEndpoint.java | 39 + .../ws/endpoint/PayloadEndpointAdapter.java | 49 + .../ws/endpoint/TransformerObjectSupport.java | 72 ++ .../AbstractValidatingInterceptor.java | 327 +++++++ .../EndpointInterceptorAdapter.java | 71 ++ .../PayloadLoggingInterceptor.java | 38 + .../PayloadTransformingInterceptor.java | 131 +++ .../PayloadValidatingInterceptor.java | 54 ++ .../ws/endpoint/interceptor/package.html | 5 + .../mapping/AbstractEndpointMapping.java | 147 +++ .../AbstractMapBasedEndpointMapping.java | 194 ++++ .../mapping/AbstractQNameEndpointMapping.java | 47 + .../PayloadRootQNameEndpointMapping.java | 70 ++ .../ws/endpoint/mapping/package.html | 5 + .../springframework/ws/endpoint/package.html | 5 + .../java/org/springframework/ws/package.html | 5 + .../springframework/ws/pox/PoxMessage.java | 28 + .../ws/pox/PoxMessageException.java | 35 + .../context/AbstractPoxMessageContext.java | 49 + .../ws/pox/context/PoxMessageContext.java | 45 + .../ws/pox/context/package.html | 5 + .../ws/pox/dom/DomPoxMessage.java | 77 ++ .../ws/pox/dom/DomPoxMessageContext.java | 67 ++ .../pox/dom/DomPoxMessageContextFactory.java | 91 ++ .../ws/pox/dom/DomPoxMessageException.java | 35 + .../springframework/ws/pox/dom/package.html | 5 + .../org/springframework/ws/pox/package.html | 6 + .../ws/soap/AbstractSoapMessage.java | 76 ++ .../springframework/ws/soap/Attachment.java | 70 ++ .../ws/soap/AttachmentException.java | 39 + .../org/springframework/ws/soap/SoapBody.java | 112 +++ .../ws/soap/SoapBodyException.java | 38 + .../springframework/ws/soap/SoapElement.java | 45 + .../ws/soap/SoapEndpointInterceptor.java | 50 + .../ws/soap/SoapEndpointInvocationChain.java | 75 ++ .../ws/soap/SoapEndpointMapping.java | 43 + .../springframework/ws/soap/SoapEnvelope.java | 43 + .../ws/soap/SoapEnvelopeException.java | 38 + .../springframework/ws/soap/SoapFault.java | 59 ++ .../ws/soap/SoapFaultDetail.java | 48 + .../ws/soap/SoapFaultDetailElement.java | 39 + .../ws/soap/SoapFaultException.java | 38 + .../springframework/ws/soap/SoapHeader.java | 61 ++ .../ws/soap/SoapHeaderElement.java | 67 ++ .../ws/soap/SoapHeaderException.java | 38 + .../springframework/ws/soap/SoapMessage.java | 115 +++ .../ws/soap/SoapMessageCreationException.java | 39 + .../ws/soap/SoapMessageDispatcher.java | 213 +++++ .../ws/soap/SoapMessageException.java | 41 + .../springframework/ws/soap/SoapVersion.java | 308 +++++++ .../soap/axiom/AxiomAttachmentException.java | 37 + .../ws/soap/axiom/AxiomContentHandler.java | 43 + .../ws/soap/axiom/AxiomSoap11Body.java | 117 +++ .../ws/soap/axiom/AxiomSoap11Fault.java | 62 ++ .../ws/soap/axiom/AxiomSoap12Body.java | 72 ++ .../ws/soap/axiom/AxiomSoap12Fault.java | 140 +++ .../ws/soap/axiom/AxiomSoap12Header.java | 71 ++ .../ws/soap/axiom/AxiomSoapBody.java | 139 +++ .../ws/soap/axiom/AxiomSoapBodyException.java | 37 + .../ws/soap/axiom/AxiomSoapEnvelope.java | 100 ++ .../axiom/AxiomSoapEnvelopeException.java | 37 + .../ws/soap/axiom/AxiomSoapFault.java | 112 +++ .../ws/soap/axiom/AxiomSoapFaultDetail.java | 107 +++ .../axiom/AxiomSoapFaultDetailElement.java | 74 ++ .../soap/axiom/AxiomSoapFaultException.java | 37 + .../ws/soap/axiom/AxiomSoapHeader.java | 116 +++ .../ws/soap/axiom/AxiomSoapHeaderElement.java | 101 +++ .../soap/axiom/AxiomSoapHeaderException.java | 37 + .../ws/soap/axiom/AxiomSoapMessage.java | 224 +++++ .../soap/axiom/AxiomSoapMessageContext.java | 90 ++ .../axiom/AxiomSoapMessageContextFactory.java | 212 +++++ .../AxiomSoapMessageCreationException.java | 33 + .../soap/axiom/AxiomSoapMessageException.java | 33 + .../ws/soap/axiom/package.html | 5 + .../ws/soap/axiom/support/AxiomUtils.java | 84 ++ .../ws/soap/axiom/support/package.html | 5 + .../context/AbstractSoapMessageContext.java | 49 + .../ws/soap/context/SoapMessageContext.java | 46 + .../ws/soap/context/package.html | 5 + .../endpoint/SimpleSoapExceptionResolver.java | 38 + .../ws/soap/endpoint/SoapFaultDefinition.java | 111 +++ .../endpoint/SoapFaultDefinitionEditor.java | 88 ++ .../SoapFaultMappingExceptionResolver.java | 144 +++ .../SoapEnvelopeLoggingInterceptor.java | 69 ++ .../ws/soap/endpoint/interceptor/package.html | 5 + .../DelegatingSoapEndpointMapping.java | 82 ++ .../mapping/SoapActionEndpointMapping.java | 105 +++ .../ws/soap/endpoint/package.html | 6 + .../org/springframework/ws/soap/package.html | 5 + .../ws/soap/saaj/Saaj12Soap11Body.java | 158 ++++ .../ws/soap/saaj/Saaj12Soap11Fault.java | 93 ++ .../ws/soap/saaj/Saaj12SoapEnvelope.java | 83 ++ .../ws/soap/saaj/Saaj12SoapFaultDetail.java | 100 ++ .../saaj/Saaj12SoapFaultDetailElement.java | 65 ++ .../ws/soap/saaj/Saaj12SoapHeader.java | 100 ++ .../ws/soap/saaj/Saaj12SoapHeaderElement.java | 90 ++ .../ws/soap/saaj/Saaj13Soap11Body.java | 102 +++ .../ws/soap/saaj/Saaj13Soap11Fault.java | 92 ++ .../ws/soap/saaj/Saaj13Soap12Body.java | 85 ++ .../ws/soap/saaj/Saaj13Soap12Fault.java | 127 +++ .../ws/soap/saaj/Saaj13Soap12Header.java | 57 ++ .../ws/soap/saaj/Saaj13SoapBody.java | 84 ++ .../ws/soap/saaj/Saaj13SoapEnvelope.java | 110 +++ .../ws/soap/saaj/Saaj13SoapFaultDetail.java | 122 +++ .../ws/soap/saaj/Saaj13SoapHeader.java | 92 ++ .../ws/soap/saaj/Saaj13SoapHeaderElement.java | 82 ++ .../ws/soap/saaj/SaajAttachmentException.java | 37 + .../ws/soap/saaj/SaajMessageFactoryBean.java | 49 + .../ws/soap/saaj/SaajSoapBodyException.java | 37 + .../soap/saaj/SaajSoapEnvelopeException.java | 37 + .../ws/soap/saaj/SaajSoapFaultException.java | 37 + .../ws/soap/saaj/SaajSoapHeaderException.java | 37 + .../ws/soap/saaj/SaajSoapMessage.java | 246 +++++ .../ws/soap/saaj/SaajSoapMessageContext.java | 127 +++ .../saaj/SaajSoapMessageContextFactory.java | 124 +++ .../SaajSoapMessageCreationException.java | 33 + .../soap/saaj/SaajSoapMessageException.java | 33 + .../springframework/ws/soap/saaj/package.html | 5 + .../ws/soap/saaj/support/SaajUtils.java | 165 ++++ .../ws/soap/saaj/support/package.html | 5 + .../ws/soap/soap11/Soap11Body.java | 46 + .../ws/soap/soap11/Soap11Fault.java | 41 + .../ws/soap/soap11/package.html | 5 + .../ws/soap/soap12/Soap12Body.java | 43 + .../ws/soap/soap12/Soap12Fault.java | 67 ++ .../ws/soap/soap12/Soap12Header.java | 51 ++ .../ws/soap/soap12/package.html | 5 + .../ws/transport/TransportContext.java | 15 + .../ws/transport/TransportException.java | 35 + .../ws/transport/TransportRequest.java | 53 ++ .../ws/transport/TransportResponse.java | 34 + .../transport/http/HttpTransportContext.java | 56 ++ .../transport/http/HttpTransportRequest.java | 97 ++ .../transport/http/HttpTransportResponse.java | 57 ++ .../http/MessageEndpointHandlerAdapter.java | 111 +++ .../http/WsdlDefinitionHandlerAdapter.java | 208 +++++ .../ws/transport/http/package.html | 5 + .../springframework/ws/transport/package.html | 5 + .../ws/wsdl/WsdlDefinition.java | 35 + .../ws/wsdl/WsdlDefinitionException.java | 35 + .../org/springframework/ws/wsdl/package.html | 6 + .../wsdl/wsdl11/SimpleWsdl11Definition.java | 57 ++ .../ws/wsdl/wsdl11/Wsdl11Definition.java | 26 + .../ws/wsdl/wsdl11/package.html | 5 + .../ws/MessageDispatcher.properties | 5 + .../ws/AbstractWebServiceMessageTestCase.java | 163 ++++ .../ws/MessageDispatcherTest.java | 275 ++++++ .../ws/endpoint/AbstractEndpointTestCase.java | 91 ++ .../AbstractMessageEndpointTestCase.java | 52 ++ .../AbstractPayloadEndpointTestCase.java | 55 ++ .../ws/endpoint/Dom4jPayloadEndpointTest.java | 47 + .../ws/endpoint/DomPayloadEndpointTest.java | 47 + .../ws/endpoint/JDomPayloadEndpointTest.java | 44 + .../MarshallingPayloadEndpointTest.java | 123 +++ .../endpoint/MessageEndpointAdapterTest.java | 51 ++ .../endpoint/PayloadEndpointAdapterTest.java | 83 ++ .../ws/endpoint/SaxPayloadEndpointTest.java | 71 ++ .../StaxEventPayloadEndpointTest.java | 81 ++ .../StaxStreamPayloadEndpointTest.java | 101 +++ .../ws/endpoint/XomPayloadEndpointTest.java | 51 ++ .../PayloadLoggingInterceptorTest.java | 99 ++ .../PayloadTransformingInterceptorTest.java | 118 +++ .../PayloadValidatingInterceptorTest.java | 237 +++++ .../endpoint/mapping/EndpointMappingTest.java | 115 +++ .../MapBasedSoapEndpointMappingTest.java | 120 +++ .../PayloadRootQNameEndpointMappingTest.java | 48 + .../ws/mock/MockMessageContext.java | 59 ++ .../ws/mock/MockTransportContext.java | 55 ++ .../ws/mock/MockTransportRequest.java | 83 ++ .../ws/mock/MockTransportResponse.java | 62 ++ .../ws/mock/MockWebServiceMessage.java | 143 +++ .../dom/DomPoxMessageContextFactoryTest.java | 39 + .../ws/pox/dom/DomPoxMessageContextTest.java | 74 ++ .../ws/pox/dom/DomPoxMessageTest.java | 64 ++ .../ws/soap/AbstractSoapBodyTestCase.java | 65 ++ .../ws/soap/AbstractSoapEnvelopeTestCase.java | 47 + .../ws/soap/AbstractSoapHeaderTestCase.java | 100 ++ .../ws/soap/AbstractSoapMessageTestCase.java | 82 ++ .../ws/soap/SoapMessageDispatcherTest.java | 230 +++++ .../ws/soap/axiom/AxiomSoap11BodyTest.java | 35 + .../soap/axiom/AxiomSoap11EnvelopeTest.java | 15 + .../ws/soap/axiom/AxiomSoap11HeaderTest.java | 16 + .../AxiomSoap11MessageContextFactoryTest.java | 31 + .../ws/soap/axiom/AxiomSoap11MessageTest.java | 22 + .../ws/soap/axiom/AxiomSoap12BodyTest.java | 32 + .../soap/axiom/AxiomSoap12EnvelopeTest.java | 31 + .../ws/soap/axiom/AxiomSoap12HeaderTest.java | 32 + .../AxiomSoap12MessageContextFactoryTest.java | 15 + .../ws/soap/axiom/AxiomSoap12MessageTest.java | 38 + .../ws/soap/axiom/support/AxiomUtilsTest.java | 78 ++ ...ctSoap11MessageContextFactoryTestCase.java | 54 ++ .../AbstractSoap11MessageContextTestCase.java | 44 + ...ctSoap12MessageContextFactoryTestCase.java | 38 + .../AbstractSoap12MessageContextTestCase.java | 44 + ...ractSoapMessageContextFactoryTestCase.java | 32 + .../AbstractSoapMessageContextTestCase.java | 46 + .../SimpleSoapExceptionResolverTest.java | 68 ++ .../SoapFaultDefinitionEditorTest.java | 78 ++ ...SoapFaultMappingExceptionResolverTest.java | 175 ++++ .../SoapEnvelopeLoggingInterceptorTest.java | 116 +++ .../DelegatingSoapEndpointMappingTest.java | 54 ++ .../SoapActionEndpointMappingTest.java | 55 ++ .../ws/soap/saaj/SaajAttachmentTest.java | 82 ++ .../ws/soap/saaj/SaajSoap11BodyTest.java | 34 + .../ws/soap/saaj/SaajSoap11EnvelopeTest.java | 33 + .../ws/soap/saaj/SaajSoap11HeaderTest.java | 33 + .../SaajSoap11MessageContextFactoryTest.java | 28 + .../saaj/SaajSoap11MessageContextTest.java | 33 + .../ws/soap/saaj/SaajSoap11MessageTest.java | 64 ++ .../ws/soap/saaj/SaajSoap12BodyTest.java | 20 + .../ws/soap/saaj/SaajSoap12EnvelopeTest.java | 18 + .../ws/soap/saaj/SaajSoap12HeaderTest.java | 18 + .../SaajSoap12MessageContextFactoryTest.java | 16 + .../ws/soap/saaj/SaajSoap12MessageTest.java | 49 + .../ws/soap/saaj/support/SaajUtilsTest.java | 117 +++ .../soap11/AbstractSoap11BodyTestCase.java | 108 +++ .../AbstractSoap11EnvelopeTestCase.java | 40 + .../soap11/AbstractSoap11HeaderTestCase.java | 41 + .../soap11/AbstractSoap11MessageTestCase.java | 43 + .../soap12/AbstractSoap12BodyTestCase.java | 129 +++ .../AbstractSoap12EnvelopeTestCase.java | 39 + .../soap12/AbstractSoap12HeaderTestCase.java | 70 ++ .../soap12/AbstractSoap12MessageTestCase.java | 46 + .../http/HttpTransportRequestTest.java | 59 ++ .../MessageEndpointHandlerAdapterTest.java | 208 +++++ .../WsdlDefinitionHandlerAdapterTest.java | 152 ++++ .../wsdl11/SimpleWsdl11DefinitionTest.java | 35 + doc/pom.xml | 54 ++ doc/src/docbkx/bibliography.xml | 33 + doc/src/docbkx/contract-first.xml | 365 ++++++++ doc/src/docbkx/images/oxm-exceptions.png | Bin 0 -> 20807 bytes doc/src/docbkx/images/oxm-exceptions.svg | 48 + doc/src/docbkx/index.xml | 49 + doc/src/docbkx/overview.xml | 140 +++ doc/src/docbkx/oxm.xml | 617 +++++++++++++ doc/src/docbkx/preface.xml | 20 + doc/src/docbkx/security.xml | 858 ++++++++++++++++++ doc/src/docbkx/ws.xml | 193 ++++ oxm-tiger/build-maven2.xml | 29 + oxm-tiger/pom.xml | 75 ++ .../src/etc/test-resources/log4j.properties | 6 + .../org/springframework/oxm/flight.xsd | 20 + .../oxm/jaxb/Jaxb2Marshaller.java | 276 ++++++ .../oxm/jaxb/Jaxb2MarshallerTest.java | 188 ++++ .../oxm/jaxb/Jaxb2UnmarshallerTest.java | 119 +++ .../oxm/jaxb/JaxbUtilsTest.java | 30 + oxm/build-maven2.xml | 56 ++ oxm/pom.xml | 149 +++ oxm/src/etc/test-resources/log4j.properties | 6 + .../springframework/oxm/castor/mapping.xml | 31 + .../org/springframework/oxm/flight.xsd | 20 + .../org/springframework/oxm/jibx/binding.xml | 13 + .../oxm/AbstractMarshaller.java | 504 ++++++++++ .../GenericMarshallingFailureException.java | 42 + .../org/springframework/oxm/Marshaller.java | 44 + .../oxm/MarshallingFailureException.java | 43 + .../oxm/UncategorizedXmlMappingException.java | 32 + .../org/springframework/oxm/Unmarshaller.java | 39 + .../oxm/UnmarshallingFailureException.java | 38 + .../oxm/ValidationFailureException.java | 38 + .../oxm/XmlMappingException.java | 39 + .../oxm/castor/CastorMarshaller.java | 301 ++++++ .../CastorMarshallingFailureException.java | 34 + .../oxm/castor/CastorSystemException.java | 31 + .../CastorUnmarshallingFailureException.java | 38 + .../oxm/castor/CastorUtils.java | 60 ++ .../CastorValidationFailureException.java | 33 + .../springframework/oxm/castor/package.html | 6 + .../oxm/jaxb/AbstractJaxbMarshaller.java | 204 +++++ .../oxm/jaxb/Jaxb1Marshaller.java | 81 ++ .../jaxb/JaxbMarshallingFailureException.java | 34 + .../oxm/jaxb/JaxbSystemException.java | 34 + .../JaxbUnmarshallingFailureException.java | 33 + .../springframework/oxm/jaxb/JaxbUtils.java | 82 ++ .../jaxb/JaxbValidationFailureException.java | 34 + .../org/springframework/oxm/jaxb/package.html | 6 + .../oxm/jibx/JibxMarshaller.java | 289 ++++++ .../jibx/JibxMarshallingFailureException.java | 34 + .../oxm/jibx/JibxSystemException.java | 33 + .../JibxUnmarshallingFailureException.java | 35 + .../springframework/oxm/jibx/JibxUtils.java | 56 ++ .../jibx/JibxValidationFailureException.java | 35 + .../org/springframework/oxm/jibx/package.html | 6 + .../java/org/springframework/oxm/package.html | 6 + .../oxm/xmlbeans/XmlBeansMarshaller.java | 243 +++++ .../XmlBeansMarshallingFailureException.java | 39 + .../oxm/xmlbeans/XmlBeansSystemException.java | 32 + ...XmlBeansUnmarshallingFailureException.java | 39 + .../oxm/xmlbeans/XmlBeansUtils.java | 69 ++ .../XmlBeansValidationFailureException.java | 38 + .../oxm/xmlbeans/XmlOptionsFactoryBean.java | 85 ++ .../springframework/oxm/xmlbeans/package.html | 5 + .../oxm/xstream/XStreamMarshaller.java | 281 ++++++ .../XStreamMarshallingFailureException.java | 49 + .../oxm/xstream/XStreamSystemException.java | 33 + .../XStreamUnmarshallingFailureException.java | 54 ++ .../oxm/xstream/XStreamUtils.java | 73 ++ .../springframework/oxm/xstream/package.html | 5 + .../oxm/AbstractMarshallerTestCase.java | 116 +++ .../oxm/AbstractUnmarshallerTestCase.java | 106 +++ .../oxm/castor/CastorMarshallerTest.java | 69 ++ .../oxm/castor/CastorUnmarshallerTest.java | 67 ++ .../oxm/castor/CastorUtilsTest.java | 42 + .../jaxb/AbstractJaxbMarshallerTestCase.java | 56 ++ .../oxm/jaxb/Jaxb1MarshallerTest.java | 75 ++ .../oxm/jaxb/Jaxb1UnmarshallerTest.java | 42 + .../oxm/jaxb/JaxbUtilsTest.java | 50 + .../springframework/oxm/jibx/FlightType.java | 30 + .../org/springframework/oxm/jibx/Flights.java | 36 + .../oxm/jibx/JibxMarshallerTest.java | 49 + .../oxm/jibx/JibxUnmarshallerTest.java | 40 + .../oxm/jibx/JibxUtilsTest.java | 39 + .../oxm/xmlbeans/XmlBeansMarshallerTest.java | 56 ++ .../xmlbeans/XmlBeansUnmarshallerTest.java | 57 ++ .../oxm/xmlbeans/XmlBeansUtilsTest.java | 53 ++ .../xmlbeans/XmlOptionsFactoryBeanTest.java | 40 + .../springframework/oxm/xstream/Flight.java | 30 + .../oxm/xstream/XStreamMarshallerTest.java | 142 +++ .../oxm/xstream/XStreamUnmarshallerTest.java | 84 ++ .../oxm/xstream/XStreamUtilsTest.java | 38 + pom.xml | 695 ++++++++++++++ release/build-maven2.xml | 69 ++ release/changelog.txt | 166 ++++ release/license.txt | 201 ++++ release/pom.xml | 195 ++++ release/readme.txt | 86 ++ release/src/assembly/full.xml | 102 +++ release/src/assembly/minimal.xml | 31 + samples/airline/build-maven2.xml | 22 + samples/airline/client/cs/Makefile | 3 + samples/airline/client/cs/bin/airline.exe | Bin 0 -> 9728 bytes samples/airline/client/cs/bin/getmileage.exe | Bin 0 -> 6144 bytes .../airline/client/cs/build-getmileage.bat | 4 + samples/airline/client/cs/build-wse.bat | 3 + samples/airline/client/cs/build.bat | 2 + samples/airline/client/cs/readme.txt | 20 + .../client/cs/src/AirlineService-wse.cs | 78 ++ .../airline/client/cs/src/AirlineService.cs | 204 +++++ samples/airline/client/cs/src/main.cs | 66 ++ samples/airline/client/cs/src/wse.cs | 32 + samples/airline/client/readme.txt | 6 + samples/airline/client/saaj/build.xml | 59 ++ .../airline/client/saaj/lib/activation.jar | Bin 0 -> 44623 bytes samples/airline/client/saaj/lib/mail.jar | Bin 0 -> 270394 bytes samples/airline/client/saaj/lib/saaj-api.jar | Bin 0 -> 19162 bytes samples/airline/client/saaj/lib/saaj-impl.jar | Bin 0 -> 272810 bytes .../airline/client/saaj/lib/xercesImpl.jar | Bin 0 -> 1207073 bytes samples/airline/client/saaj/lib/xmldsig.jar | Bin 0 -> 159930 bytes samples/airline/client/saaj/lib/xmlsec.jar | Bin 0 -> 299587 bytes .../airline/client/saaj/lib/xws-security.jar | Bin 0 -> 1265582 bytes samples/airline/client/saaj/readme.txt | 11 + .../airline/client/saaj/GetFlights.java | 127 +++ .../client/saaj/GetFrequentFlyerMileage.java | 147 +++ .../airline/client/saaj/securityPolicy.xml | 3 + samples/airline/pom.xml | 172 ++++ samples/airline/readme.txt | 32 + samples/airline/src/etc/db/mysql/dropDB.sql | 1 + samples/airline/src/etc/db/mysql/initDB.sql | 53 ++ samples/airline/src/etc/db/populateDB.sql | 8 + .../airline/src/etc/db/postgresql/dropDB.sql | 6 + .../airline/src/etc/db/postgresql/initDB.sql | 46 + .../samples/airline/ws/bookFlightRequest.xml | 11 + .../ws/bookFlightRequestFrequentFlyer.xml | 8 + .../samples/airline/ws/bookFlightResponse.xml | 27 + .../ws/samples/airline/dao/FlightDao.java | 37 + .../samples/airline/dao/FrequentFlyerDao.java | 28 + .../ws/samples/airline/dao/TicketDao.java | 26 + .../dao/hibernate/HibernateFlightDao.java | 52 ++ .../hibernate/HibernateFrequentFlyerDao.java | 37 + .../dao/hibernate/HibernateTicketDao.java | 29 + .../ws/samples/airline/domain/Airport.java | 76 ++ .../ws/samples/airline/domain/Entity.java | 32 + .../ws/samples/airline/domain/Flight.java | 140 +++ .../samples/airline/domain/FrequentFlyer.java | 82 ++ .../ws/samples/airline/domain/Passenger.java | 78 ++ .../samples/airline/domain/ServiceClass.java | 56 ++ .../ws/samples/airline/domain/Ticket.java | 59 ++ .../hibernate/ServiceClassUserType.java | 84 ++ .../AcegiFrequentFlyerSecurityService.java | 59 ++ .../security/FrequentFlyerDetails.java | 73 ++ .../security/FrequentFlyerDetailsService.java | 49 + .../FrequentFlyerSecurityService.java | 43 + .../GetFrequentFlyerMileageEndpoint.java | 53 ++ .../airline/service/AirlineService.java | 71 ++ .../service/NoSeatAvailableException.java | 38 + .../service/NoSuchFlightException.java | 45 + .../service/impl/AirlineServiceImpl.java | 123 +++ .../airline/ws/BookFlightEndpoint.java | 166 ++++ .../airline/ws/GetFlightsEndpoint.java | 131 +++ .../applicationContext-hibernate.xml | 50 + .../dao/hibernate/hibernate.properties | 8 + .../ws/samples/airline/dao/jdbc.properties | 14 + .../airline/domain/hibernate/airline.hbm.xml | 53 ++ .../security/applicationContext-security.xml | 111 +++ .../airline/security/securityPolicy.xml | 3 + .../airline/service/applicationContext.xml | 25 + .../airline/ws/applicationContext-ws.xml | 121 +++ .../main/webapp/WEB-INF/airline-servlet.xml | 25 + .../src/main/webapp/WEB-INF/log4j.properties | 15 + .../airline/src/main/webapp/WEB-INF/web.xml | 48 + samples/airline/src/main/webapp/airline.wsdl | 82 ++ samples/airline/src/main/webapp/airline.xsd | 118 +++ .../dao/hibernate/HibernateFlightDaoTest.java | 105 +++ .../HibernateFrequentFlyerDaoTest.java | 48 + .../dao/hibernate/HibernateTicketDaoTest.java | 91 ++ ...AcegiFrequentFlyerSecurityServiceTest.java | 65 ++ .../GetFrequentFlyerMileageEndpointTest.java | 53 ++ .../service/impl/AirlineServiceImplTest.java | 190 ++++ .../airline/ws/BookFlightEndpointTest.java | 116 +++ .../airline/ws/GetFlightsEndpointTest.java | 75 ++ samples/echo/client/saaj/build.xml | 35 + samples/echo/client/saaj/lib/activation.jar | Bin 0 -> 44623 bytes samples/echo/client/saaj/lib/mail.jar | Bin 0 -> 270394 bytes samples/echo/client/saaj/lib/saaj-api.jar | Bin 0 -> 19162 bytes samples/echo/client/saaj/lib/saaj-impl.jar | Bin 0 -> 272810 bytes samples/echo/client/saaj/lib/xercesImpl.jar | Bin 0 -> 1207073 bytes samples/echo/client/saaj/readme.txt | 10 + .../samples/echo/client/saaj/EchoClient.java | 101 +++ samples/echo/pom.xml | 18 + samples/echo/readme.txt | 13 + .../src/etc/test-resources/log4j.properties | 16 + .../ws/samples/echo/service/EchoService.java | 33 + .../echo/service/impl/EchoServiceImpl.java | 32 + .../ws/samples/echo/ws/EchoEndpoint.java | 89 ++ .../webapp/WEB-INF/applicationContext.xml | 56 ++ .../src/main/webapp/WEB-INF/log4j.properties | 7 + .../main/webapp/WEB-INF/springws-servlet.xml | 32 + samples/echo/src/main/webapp/WEB-INF/web.xml | 57 ++ samples/echo/src/main/webapp/echo.wsdl | 48 + samples/echo/src/main/webapp/echo.xsd | 15 + samples/echo/src/main/webapp/index.html | 14 + .../ws/samples/echo/ws/EchoEndpointTest.java | 71 ++ samples/pom.xml | 72 ++ samples/readme.txt | 10 + security/pom.xml | 59 ++ .../src/etc/test-resources/log4j.properties | 6 + .../security/xwss/callback/jaas/jaas.config | 6 + .../ws/soap/security/xwss/decrypt-config.xml | 3 + .../ws/soap/security/xwss/empty-soap.xml | 5 + .../security/xwss/encrypt-alias-config.xml | 5 + .../ws/soap/security/xwss/encrypt-config.xml | 3 + .../ws/soap/security/xwss/encrypted-soap.xml | 22 + .../security/xwss/requireSignature-config.xml | 3 + .../requireUsernameToken-digest-config.xml | 3 + .../requireUsernameToken-plainText-config.xml | 3 + .../soap/security/xwss/sign-alias-config.xml | 5 + .../ws/soap/security/xwss/sign-config.xml | 3 + .../ws/soap/security/xwss/signed-soap.xml | 20 + .../ws/soap/security/xwss/test-keystore.jks | Bin 0 -> 1376 bytes .../ws/soap/security/xwss/test-truststore.jks | Bin 0 -> 1602 bytes .../xwss/usernameToken-digest-config.xml | 3 + .../xwss/usernameToken-plainText-config.xml | 3 + .../xwss/usernameTokenDigest-soap.xml | 6 + .../xwss/usernameTokenPlainText-soap.xml | 19 + .../AbstractWsSecurityInterceptor.java | 136 +++ .../ws/soap/security/WsSecurityException.java | 36 + .../WsSecuritySecurementException.java | 36 + .../WsSecurityValidationException.java | 36 + .../ws/soap/security/package.html | 5 + .../security/support/KeyStoreFactoryBean.java | 131 +++ .../ws/soap/security/support/package.html | 5 + .../security/xwss/XwsSecurityInterceptor.java | 172 ++++ .../xwss/XwsSecuritySecurementException.java | 30 + .../xwss/XwsSecurityValidationException.java | 30 + .../callback/AbstractCallbackHandler.java | 59 ++ .../xwss/callback/CallbackHandlerChain.java | 175 ++++ .../callback/CryptographyCallbackHandler.java | 492 ++++++++++ .../callback/DefaultTimestampValidator.java | 131 +++ .../callback/KeyStoreCallbackHandler.java | 772 ++++++++++++++++ .../MockValidationCallbackHandler.java | 83 ++ ...mplePasswordValidationCallbackHandler.java | 100 ++ ...SimpleUsernamePasswordCallbackHandler.java | 72 ++ ...iCertificateValidationCallbackHandler.java | 115 +++ ...gestPasswordValidationCallbackHandler.java | 152 ++++ ...TextPasswordValidationCallbackHandler.java | 115 +++ .../security/xwss/callback/acegi/package.html | 6 + ...AbstractJaasValidationCallbackHandler.java | 53 ++ ...sCertificateValidationCallbackHandler.java | 101 +++ ...TextPasswordValidationCallbackHandler.java | 123 +++ .../security/xwss/callback/jaas/package.html | 6 + .../soap/security/xwss/callback/package.html | 5 + .../ws/soap/security/xwss/package.html | 6 + .../xwss/XwsSecurityInterceptorTest.java | 101 +++ .../XwssMessageInterceptorEncryptTest.java | 127 +++ ...wssMessageInterceptorKeyStoreTestCase.java | 47 + .../xwss/XwssMessageInterceptorSignTest.java | 127 +++ .../xwss/XwssMessageInterceptorTestCase.java | 97 ++ ...ssMessageInterceptorUsernameTokenTest.java | 170 ++++ .../callback/CallbackHandlerChainTest.java | 64 ++ .../callback/KeyStoreCallbackHandlerTest.java | 34 + ...PasswordValidationCallbackHandlerTest.java | 89 ++ ...leUsernamePasswordCallbackHandlerTest.java | 44 + ...tificateValidationCallbackHandlerTest.java | 88 ++ ...PasswordValidationCallbackHandlerTest.java | 84 ++ ...PasswordValidationCallbackHandlerTest.java | 76 ++ .../callback/jaas/CertificateLoginModule.java | 80 ++ ...tificateValidationCallbackHandlerTest.java | 59 ++ ...PasswordValidationCallbackHandlerTest.java | 50 + .../callback/jaas/PlainTextLoginModule.java | 134 +++ .../xwss/callback/jaas/SimplePrincipal.java | 51 ++ xml/pom.xml | 36 + xml/src/etc/test-resources/log4j.properties | 6 + .../xml/validation/invalidDocument.xml | 4 + .../springframework/xml/validation/schema.xsd | 22 + .../xml/validation/validDocument.xml | 5 + .../springframework/xml/xpath/namespaces.xml | 8 + .../xml/xpath/nonamespaces.xml | 8 + .../org/springframework/xml/JaxpVersion.java | 80 ++ .../org/springframework/xml/XmlException.java | 46 + .../xml/namespace/QNameEditor.java | 72 ++ .../xml/namespace/QNameUtils.java | 189 ++++ .../xml/namespace/SimpleNamespaceContext.java | 165 ++++ .../xml/namespace/package.html | 5 + .../java/org/springframework/xml/package.html | 6 + .../org/springframework/xml/sax/SaxUtils.java | 57 ++ .../org/springframework/xml/sax/package.html | 5 + .../xml/stream/AbstractXmlStreamReader.java | 181 ++++ .../xml/stream/StaxContentHandler.java | 152 ++++ .../xml/stream/StaxEventContentHandler.java | 181 ++++ .../xml/stream/StaxEventXmlReader.java | 187 ++++ .../xml/stream/StaxStreamContentHandler.java | 102 +++ .../xml/stream/StaxStreamXmlReader.java | 187 ++++ .../xml/stream/StaxXmlReader.java | 215 +++++ .../xml/stream/XmlEventStreamReader.java | 253 ++++++ .../springframework/xml/stream/package.html | 5 + .../xml/transform/StaxResult.java | 115 +++ .../xml/transform/StaxSource.java | 118 +++ .../xml/transform/StringResult.java | 43 + .../xml/transform/StringSource.java | 50 + .../xml/transform/package.html | 5 + .../validation/Jaxp10ValidatorFactory.java | 179 ++++ .../validation/Jaxp13ValidatorFactory.java | 91 ++ .../xml/validation/SchemaLoaderUtils.java | 99 ++ .../validation/XmlValidationException.java | 35 + .../xml/validation/XmlValidator.java | 47 + .../xml/validation/XmlValidatorFactory.java | 104 +++ .../xml/validation/package.html | 5 + .../xpath/JaxenXPathExpressionFactory.java | 131 +++ .../xpath/Jaxp13XPathExpressionFactory.java | 140 +++ .../xml/xpath/XPathException.java | 46 + .../xml/xpath/XPathExpression.java | 75 ++ .../xml/xpath/XPathExpressionFactory.java | 117 +++ .../xml/xpath/XPathParseException.java | 45 + .../xpath/XalanXPathExpressionFactory.java | 173 ++++ .../springframework/xml/xpath/package.html | 5 + .../xml/namespace/QNameEditorTest.java | 58 ++ .../xml/namespace/QNameUtilsTest.java | 105 +++ .../namespace/SimpleNamespaceContextTest.java | 104 +++ .../AbstractStaxContentHandlerTestCase.java | 62 ++ .../stream/AbstractStaxXmlReaderTestCase.java | 202 +++++ .../stream/StaxEventContentHandlerTest.java | 30 + .../xml/stream/StaxEventXmlReaderTest.java | 31 + .../stream/StaxStreamContentHandlerTest.java | 30 + .../xml/stream/StaxStreamXmlReaderTest.java | 31 + .../xml/stream/XmlEventStreamReaderTest.java | 56 ++ .../xml/transform/StaxResultTest.java | 65 ++ .../xml/transform/StaxSourceTest.java | 62 ++ .../xml/transform/StringResultTest.java | 46 + .../xml/transform/StringSourceTest.java | 39 + .../AbstractValidatorFactoryTestCase.java | 105 +++ .../Jaxp10ValidatorFactoryTest.java | 28 + .../Jaxp13ValidatorFactoryTest.java | 28 + .../xml/validation/SchemaLoaderUtilsTest.java | 66 ++ .../validation/XmlValidatorFactoryTest.java | 92 ++ ...bstractXPathExpressionFactoryTestCase.java | 192 ++++ .../JaxenXPathExpressionFactoryTest.java | 42 + .../Jaxp13XPathExpressionFactoryTest.java | 30 + .../xml/xpath/XPathExpressionFactoryTest.java | 37 + .../XalanXPathExpressionFactoryTest.java | 33 + 623 files changed, 44122 insertions(+) create mode 100644 core/pom.xml create mode 100644 core/src/etc/test-resources/log4j.properties create mode 100644 core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/invalidMessage.xml create mode 100644 core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/productSchema.xsd create mode 100644 core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/schema.xsd create mode 100644 core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/schema2.xsd create mode 100644 core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/sizeSchema.xsd create mode 100644 core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/transformInput.xml create mode 100644 core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/transformOutput.xml create mode 100644 core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/transformation.xslt create mode 100644 core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/validMessage.xml create mode 100644 core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/validSoapMessage.xml create mode 100644 core/src/etc/test-resources/org/springframework/ws/payload.xml create mode 100644 core/src/etc/test-resources/org/springframework/ws/soap/context/soap11-attachment.bin create mode 100644 core/src/etc/test-resources/org/springframework/ws/soap/context/soap11.xml create mode 100644 core/src/etc/test-resources/org/springframework/ws/soap/context/soap12-attachment.bin create mode 100644 core/src/etc/test-resources/org/springframework/ws/soap/context/soap12.xml create mode 100644 core/src/etc/test-resources/org/springframework/ws/soap/saaj/support/soapMessage.xml create mode 100644 core/src/etc/test-resources/org/springframework/ws/soap/soap11/soap11.xsd create mode 100644 core/src/etc/test-resources/org/springframework/ws/soap/soap12/soap12.xsd create mode 100644 core/src/etc/test-resources/org/springframework/ws/soap/soap12/xml.xsd create mode 100644 core/src/etc/test-resources/org/springframework/ws/transport/http/wsdl11-expected.wsdl create mode 100644 core/src/etc/test-resources/org/springframework/ws/transport/http/wsdl11-input.wsdl create mode 100644 core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/abstract.wsdl create mode 100644 core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/complete.wsdl create mode 100644 core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/concrete.wsdl create mode 100644 core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/types.xsd create mode 100644 core/src/main/java/org/springframework/ws/EndpointAdapter.java create mode 100644 core/src/main/java/org/springframework/ws/EndpointExceptionResolver.java create mode 100644 core/src/main/java/org/springframework/ws/EndpointInterceptor.java create mode 100644 core/src/main/java/org/springframework/ws/EndpointInvocationChain.java create mode 100644 core/src/main/java/org/springframework/ws/EndpointMapping.java create mode 100644 core/src/main/java/org/springframework/ws/MessageDispatcher.java create mode 100644 core/src/main/java/org/springframework/ws/NoEndpointFoundException.java create mode 100644 core/src/main/java/org/springframework/ws/WebServiceException.java create mode 100644 core/src/main/java/org/springframework/ws/WebServiceMessage.java create mode 100644 core/src/main/java/org/springframework/ws/WebServiceMessageException.java create mode 100644 core/src/main/java/org/springframework/ws/context/AbstractMessageContext.java create mode 100644 core/src/main/java/org/springframework/ws/context/MessageContext.java create mode 100644 core/src/main/java/org/springframework/ws/context/MessageContextFactory.java create mode 100644 core/src/main/java/org/springframework/ws/context/package.html create mode 100644 core/src/main/java/org/springframework/ws/endpoint/AbstractDom4jPayloadEndpoint.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/AbstractDomPayloadEndpoint.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/AbstractEndpointExceptionResolver.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/AbstractJDomPayloadEndpoint.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/AbstractLoggingInterceptor.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/AbstractMarshallingPayloadEndpoint.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/AbstractSaxPayloadEndpoint.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/AbstractStaxEventPayloadEndpoint.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/AbstractStaxPayloadEndpoint.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/AbstractStaxStreamPayloadEndpoint.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/AbstractXomPayloadEndpoint.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/MessageEndpoint.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/MessageEndpointAdapter.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/PayloadEndpoint.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/PayloadEndpointAdapter.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/TransformerObjectSupport.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/interceptor/AbstractValidatingInterceptor.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/interceptor/EndpointInterceptorAdapter.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/interceptor/PayloadLoggingInterceptor.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/interceptor/PayloadTransformingInterceptor.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/interceptor/PayloadValidatingInterceptor.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/interceptor/package.html create mode 100644 core/src/main/java/org/springframework/ws/endpoint/mapping/AbstractEndpointMapping.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/mapping/AbstractMapBasedEndpointMapping.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/mapping/AbstractQNameEndpointMapping.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/mapping/PayloadRootQNameEndpointMapping.java create mode 100644 core/src/main/java/org/springframework/ws/endpoint/mapping/package.html create mode 100644 core/src/main/java/org/springframework/ws/endpoint/package.html create mode 100644 core/src/main/java/org/springframework/ws/package.html create mode 100644 core/src/main/java/org/springframework/ws/pox/PoxMessage.java create mode 100644 core/src/main/java/org/springframework/ws/pox/PoxMessageException.java create mode 100644 core/src/main/java/org/springframework/ws/pox/context/AbstractPoxMessageContext.java create mode 100644 core/src/main/java/org/springframework/ws/pox/context/PoxMessageContext.java create mode 100644 core/src/main/java/org/springframework/ws/pox/context/package.html create mode 100644 core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessage.java create mode 100644 core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessageContext.java create mode 100644 core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessageContextFactory.java create mode 100644 core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessageException.java create mode 100644 core/src/main/java/org/springframework/ws/pox/dom/package.html create mode 100644 core/src/main/java/org/springframework/ws/pox/package.html create mode 100644 core/src/main/java/org/springframework/ws/soap/AbstractSoapMessage.java create mode 100644 core/src/main/java/org/springframework/ws/soap/Attachment.java create mode 100644 core/src/main/java/org/springframework/ws/soap/AttachmentException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapBody.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapBodyException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapElement.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapEndpointInterceptor.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapEndpointInvocationChain.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapEndpointMapping.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapEnvelope.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapEnvelopeException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapFault.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapFaultDetail.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapFaultDetailElement.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapFaultException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapHeader.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapHeaderElement.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapHeaderException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapMessage.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapMessageCreationException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapMessageDispatcher.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapMessageException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/SoapVersion.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomAttachmentException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomContentHandler.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Body.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Fault.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Body.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Fault.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Header.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapBody.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapBodyException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapEnvelope.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapEnvelopeException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFault.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFaultDetail.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFaultDetailElement.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFaultException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapHeader.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapHeaderElement.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapHeaderException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessage.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageContext.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageContextFactory.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageCreationException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/package.html create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/support/AxiomUtils.java create mode 100644 core/src/main/java/org/springframework/ws/soap/axiom/support/package.html create mode 100644 core/src/main/java/org/springframework/ws/soap/context/AbstractSoapMessageContext.java create mode 100644 core/src/main/java/org/springframework/ws/soap/context/SoapMessageContext.java create mode 100644 core/src/main/java/org/springframework/ws/soap/context/package.html create mode 100644 core/src/main/java/org/springframework/ws/soap/endpoint/SimpleSoapExceptionResolver.java create mode 100644 core/src/main/java/org/springframework/ws/soap/endpoint/SoapFaultDefinition.java create mode 100644 core/src/main/java/org/springframework/ws/soap/endpoint/SoapFaultDefinitionEditor.java create mode 100644 core/src/main/java/org/springframework/ws/soap/endpoint/SoapFaultMappingExceptionResolver.java create mode 100644 core/src/main/java/org/springframework/ws/soap/endpoint/interceptor/SoapEnvelopeLoggingInterceptor.java create mode 100644 core/src/main/java/org/springframework/ws/soap/endpoint/interceptor/package.html create mode 100644 core/src/main/java/org/springframework/ws/soap/endpoint/mapping/DelegatingSoapEndpointMapping.java create mode 100644 core/src/main/java/org/springframework/ws/soap/endpoint/mapping/SoapActionEndpointMapping.java create mode 100644 core/src/main/java/org/springframework/ws/soap/endpoint/package.html create mode 100644 core/src/main/java/org/springframework/ws/soap/package.html create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj12Soap11Body.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj12Soap11Fault.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapEnvelope.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapFaultDetail.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapFaultDetailElement.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapHeader.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapHeaderElement.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap11Body.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap11Fault.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap12Body.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap12Fault.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap12Header.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapBody.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapEnvelope.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapFaultDetail.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapHeader.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapHeaderElement.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/SaajAttachmentException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/SaajMessageFactoryBean.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapBodyException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapEnvelopeException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapFaultException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapHeaderException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessage.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageContext.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageContextFactory.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageCreationException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageException.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/package.html create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/support/SaajUtils.java create mode 100644 core/src/main/java/org/springframework/ws/soap/saaj/support/package.html create mode 100644 core/src/main/java/org/springframework/ws/soap/soap11/Soap11Body.java create mode 100644 core/src/main/java/org/springframework/ws/soap/soap11/Soap11Fault.java create mode 100644 core/src/main/java/org/springframework/ws/soap/soap11/package.html create mode 100644 core/src/main/java/org/springframework/ws/soap/soap12/Soap12Body.java create mode 100644 core/src/main/java/org/springframework/ws/soap/soap12/Soap12Fault.java create mode 100644 core/src/main/java/org/springframework/ws/soap/soap12/Soap12Header.java create mode 100644 core/src/main/java/org/springframework/ws/soap/soap12/package.html create mode 100644 core/src/main/java/org/springframework/ws/transport/TransportContext.java create mode 100644 core/src/main/java/org/springframework/ws/transport/TransportException.java create mode 100644 core/src/main/java/org/springframework/ws/transport/TransportRequest.java create mode 100644 core/src/main/java/org/springframework/ws/transport/TransportResponse.java create mode 100644 core/src/main/java/org/springframework/ws/transport/http/HttpTransportContext.java create mode 100644 core/src/main/java/org/springframework/ws/transport/http/HttpTransportRequest.java create mode 100644 core/src/main/java/org/springframework/ws/transport/http/HttpTransportResponse.java create mode 100644 core/src/main/java/org/springframework/ws/transport/http/MessageEndpointHandlerAdapter.java create mode 100644 core/src/main/java/org/springframework/ws/transport/http/WsdlDefinitionHandlerAdapter.java create mode 100644 core/src/main/java/org/springframework/ws/transport/http/package.html create mode 100644 core/src/main/java/org/springframework/ws/transport/package.html create mode 100644 core/src/main/java/org/springframework/ws/wsdl/WsdlDefinition.java create mode 100644 core/src/main/java/org/springframework/ws/wsdl/WsdlDefinitionException.java create mode 100644 core/src/main/java/org/springframework/ws/wsdl/package.html create mode 100644 core/src/main/java/org/springframework/ws/wsdl/wsdl11/SimpleWsdl11Definition.java create mode 100644 core/src/main/java/org/springframework/ws/wsdl/wsdl11/Wsdl11Definition.java create mode 100644 core/src/main/java/org/springframework/ws/wsdl/wsdl11/package.html create mode 100644 core/src/main/resources/org/springframework/ws/MessageDispatcher.properties create mode 100644 core/src/test/java/org/springframework/ws/AbstractWebServiceMessageTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/MessageDispatcherTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/AbstractEndpointTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/AbstractMessageEndpointTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/AbstractPayloadEndpointTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/Dom4jPayloadEndpointTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/DomPayloadEndpointTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/JDomPayloadEndpointTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/MarshallingPayloadEndpointTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/MessageEndpointAdapterTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/PayloadEndpointAdapterTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/SaxPayloadEndpointTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/StaxEventPayloadEndpointTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/StaxStreamPayloadEndpointTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/XomPayloadEndpointTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/interceptor/PayloadLoggingInterceptorTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/interceptor/PayloadTransformingInterceptorTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/interceptor/PayloadValidatingInterceptorTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/mapping/EndpointMappingTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/mapping/MapBasedSoapEndpointMappingTest.java create mode 100644 core/src/test/java/org/springframework/ws/endpoint/mapping/PayloadRootQNameEndpointMappingTest.java create mode 100644 core/src/test/java/org/springframework/ws/mock/MockMessageContext.java create mode 100644 core/src/test/java/org/springframework/ws/mock/MockTransportContext.java create mode 100644 core/src/test/java/org/springframework/ws/mock/MockTransportRequest.java create mode 100644 core/src/test/java/org/springframework/ws/mock/MockTransportResponse.java create mode 100644 core/src/test/java/org/springframework/ws/mock/MockWebServiceMessage.java create mode 100644 core/src/test/java/org/springframework/ws/pox/dom/DomPoxMessageContextFactoryTest.java create mode 100644 core/src/test/java/org/springframework/ws/pox/dom/DomPoxMessageContextTest.java create mode 100644 core/src/test/java/org/springframework/ws/pox/dom/DomPoxMessageTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/AbstractSoapBodyTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/AbstractSoapEnvelopeTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/AbstractSoapHeaderTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/AbstractSoapMessageTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/SoapMessageDispatcherTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11BodyTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11EnvelopeTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11HeaderTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageContextFactoryTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12BodyTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12EnvelopeTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12HeaderTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12MessageContextFactoryTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12MessageTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/axiom/support/AxiomUtilsTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/context/AbstractSoap11MessageContextFactoryTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/context/AbstractSoap11MessageContextTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/context/AbstractSoap12MessageContextFactoryTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/context/AbstractSoap12MessageContextTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/context/AbstractSoapMessageContextFactoryTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/context/AbstractSoapMessageContextTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/endpoint/SimpleSoapExceptionResolverTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/endpoint/SoapFaultDefinitionEditorTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/endpoint/SoapFaultMappingExceptionResolverTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/endpoint/interceptor/SoapEnvelopeLoggingInterceptorTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/endpoint/mapping/DelegatingSoapEndpointMappingTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/endpoint/mapping/SoapActionEndpointMappingTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/saaj/SaajAttachmentTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11BodyTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11EnvelopeTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11HeaderTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageContextFactoryTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageContextTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12BodyTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12EnvelopeTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12HeaderTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12MessageContextFactoryTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12MessageTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/saaj/support/SaajUtilsTest.java create mode 100644 core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11BodyTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11EnvelopeTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11HeaderTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11MessageTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12BodyTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12EnvelopeTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12HeaderTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12MessageTestCase.java create mode 100644 core/src/test/java/org/springframework/ws/transport/http/HttpTransportRequestTest.java create mode 100644 core/src/test/java/org/springframework/ws/transport/http/MessageEndpointHandlerAdapterTest.java create mode 100644 core/src/test/java/org/springframework/ws/transport/http/WsdlDefinitionHandlerAdapterTest.java create mode 100644 core/src/test/java/org/springframework/ws/wsdl/wsdl11/SimpleWsdl11DefinitionTest.java create mode 100644 doc/pom.xml create mode 100644 doc/src/docbkx/bibliography.xml create mode 100644 doc/src/docbkx/contract-first.xml create mode 100644 doc/src/docbkx/images/oxm-exceptions.png create mode 100644 doc/src/docbkx/images/oxm-exceptions.svg create mode 100644 doc/src/docbkx/index.xml create mode 100644 doc/src/docbkx/overview.xml create mode 100644 doc/src/docbkx/oxm.xml create mode 100644 doc/src/docbkx/preface.xml create mode 100644 doc/src/docbkx/security.xml create mode 100644 doc/src/docbkx/ws.xml create mode 100644 oxm-tiger/build-maven2.xml create mode 100644 oxm-tiger/pom.xml create mode 100644 oxm-tiger/src/etc/test-resources/log4j.properties create mode 100644 oxm-tiger/src/etc/test-resources/org/springframework/oxm/flight.xsd create mode 100644 oxm-tiger/src/main/java/org/springframework/oxm/jaxb/Jaxb2Marshaller.java create mode 100644 oxm-tiger/src/test/java/org/springframework/oxm/jaxb/Jaxb2MarshallerTest.java create mode 100644 oxm-tiger/src/test/java/org/springframework/oxm/jaxb/Jaxb2UnmarshallerTest.java create mode 100644 oxm-tiger/src/test/java/org/springframework/oxm/jaxb/JaxbUtilsTest.java create mode 100644 oxm/build-maven2.xml create mode 100644 oxm/pom.xml create mode 100644 oxm/src/etc/test-resources/log4j.properties create mode 100644 oxm/src/etc/test-resources/org/springframework/oxm/castor/mapping.xml create mode 100644 oxm/src/etc/test-resources/org/springframework/oxm/flight.xsd create mode 100644 oxm/src/etc/test-resources/org/springframework/oxm/jibx/binding.xml create mode 100644 oxm/src/main/java/org/springframework/oxm/AbstractMarshaller.java create mode 100644 oxm/src/main/java/org/springframework/oxm/GenericMarshallingFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/Marshaller.java create mode 100644 oxm/src/main/java/org/springframework/oxm/MarshallingFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/UncategorizedXmlMappingException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/Unmarshaller.java create mode 100644 oxm/src/main/java/org/springframework/oxm/UnmarshallingFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/ValidationFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/XmlMappingException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/castor/CastorMarshaller.java create mode 100644 oxm/src/main/java/org/springframework/oxm/castor/CastorMarshallingFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/castor/CastorSystemException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/castor/CastorUnmarshallingFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/castor/CastorUtils.java create mode 100644 oxm/src/main/java/org/springframework/oxm/castor/CastorValidationFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/castor/package.html create mode 100644 oxm/src/main/java/org/springframework/oxm/jaxb/AbstractJaxbMarshaller.java create mode 100644 oxm/src/main/java/org/springframework/oxm/jaxb/Jaxb1Marshaller.java create mode 100644 oxm/src/main/java/org/springframework/oxm/jaxb/JaxbMarshallingFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/jaxb/JaxbSystemException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/jaxb/JaxbUnmarshallingFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/jaxb/JaxbUtils.java create mode 100644 oxm/src/main/java/org/springframework/oxm/jaxb/JaxbValidationFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/jaxb/package.html create mode 100644 oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshaller.java create mode 100644 oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshallingFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/jibx/JibxSystemException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/jibx/JibxUnmarshallingFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/jibx/JibxUtils.java create mode 100644 oxm/src/main/java/org/springframework/oxm/jibx/JibxValidationFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/jibx/package.html create mode 100644 oxm/src/main/java/org/springframework/oxm/package.html create mode 100644 oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansMarshaller.java create mode 100644 oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansMarshallingFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansSystemException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansUnmarshallingFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansUtils.java create mode 100644 oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansValidationFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlOptionsFactoryBean.java create mode 100644 oxm/src/main/java/org/springframework/oxm/xmlbeans/package.html create mode 100644 oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshaller.java create mode 100644 oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshallingFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/xstream/XStreamSystemException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/xstream/XStreamUnmarshallingFailureException.java create mode 100644 oxm/src/main/java/org/springframework/oxm/xstream/XStreamUtils.java create mode 100644 oxm/src/main/java/org/springframework/oxm/xstream/package.html create mode 100644 oxm/src/test/java/org/springframework/oxm/AbstractMarshallerTestCase.java create mode 100644 oxm/src/test/java/org/springframework/oxm/AbstractUnmarshallerTestCase.java create mode 100644 oxm/src/test/java/org/springframework/oxm/castor/CastorMarshallerTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/castor/CastorUnmarshallerTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/castor/CastorUtilsTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/jaxb/AbstractJaxbMarshallerTestCase.java create mode 100644 oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb1MarshallerTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb1UnmarshallerTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/jaxb/JaxbUtilsTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/jibx/FlightType.java create mode 100644 oxm/src/test/java/org/springframework/oxm/jibx/Flights.java create mode 100644 oxm/src/test/java/org/springframework/oxm/jibx/JibxMarshallerTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/jibx/JibxUnmarshallerTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/jibx/JibxUtilsTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlBeansMarshallerTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlBeansUnmarshallerTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlBeansUtilsTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlOptionsFactoryBeanTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/xstream/Flight.java create mode 100644 oxm/src/test/java/org/springframework/oxm/xstream/XStreamMarshallerTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/xstream/XStreamUnmarshallerTest.java create mode 100644 oxm/src/test/java/org/springframework/oxm/xstream/XStreamUtilsTest.java create mode 100644 pom.xml create mode 100644 release/build-maven2.xml create mode 100644 release/changelog.txt create mode 100644 release/license.txt create mode 100644 release/pom.xml create mode 100644 release/readme.txt create mode 100644 release/src/assembly/full.xml create mode 100644 release/src/assembly/minimal.xml create mode 100644 samples/airline/build-maven2.xml create mode 100644 samples/airline/client/cs/Makefile create mode 100755 samples/airline/client/cs/bin/airline.exe create mode 100755 samples/airline/client/cs/bin/getmileage.exe create mode 100644 samples/airline/client/cs/build-getmileage.bat create mode 100644 samples/airline/client/cs/build-wse.bat create mode 100644 samples/airline/client/cs/build.bat create mode 100644 samples/airline/client/cs/readme.txt create mode 100644 samples/airline/client/cs/src/AirlineService-wse.cs create mode 100644 samples/airline/client/cs/src/AirlineService.cs create mode 100644 samples/airline/client/cs/src/main.cs create mode 100644 samples/airline/client/cs/src/wse.cs create mode 100644 samples/airline/client/readme.txt create mode 100644 samples/airline/client/saaj/build.xml create mode 100644 samples/airline/client/saaj/lib/activation.jar create mode 100644 samples/airline/client/saaj/lib/mail.jar create mode 100644 samples/airline/client/saaj/lib/saaj-api.jar create mode 100644 samples/airline/client/saaj/lib/saaj-impl.jar create mode 100644 samples/airline/client/saaj/lib/xercesImpl.jar create mode 100644 samples/airline/client/saaj/lib/xmldsig.jar create mode 100644 samples/airline/client/saaj/lib/xmlsec.jar create mode 100644 samples/airline/client/saaj/lib/xws-security.jar create mode 100644 samples/airline/client/saaj/readme.txt create mode 100644 samples/airline/client/saaj/src/org/springframework/ws/samples/airline/client/saaj/GetFlights.java create mode 100644 samples/airline/client/saaj/src/org/springframework/ws/samples/airline/client/saaj/GetFrequentFlyerMileage.java create mode 100644 samples/airline/client/saaj/src/org/springframework/ws/samples/airline/client/saaj/securityPolicy.xml create mode 100644 samples/airline/pom.xml create mode 100644 samples/airline/readme.txt create mode 100644 samples/airline/src/etc/db/mysql/dropDB.sql create mode 100644 samples/airline/src/etc/db/mysql/initDB.sql create mode 100644 samples/airline/src/etc/db/populateDB.sql create mode 100644 samples/airline/src/etc/db/postgresql/dropDB.sql create mode 100644 samples/airline/src/etc/db/postgresql/initDB.sql create mode 100644 samples/airline/src/etc/test-resources/org/springframework/ws/samples/airline/ws/bookFlightRequest.xml create mode 100644 samples/airline/src/etc/test-resources/org/springframework/ws/samples/airline/ws/bookFlightRequestFrequentFlyer.xml create mode 100644 samples/airline/src/etc/test-resources/org/springframework/ws/samples/airline/ws/bookFlightResponse.xml create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/FlightDao.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/FrequentFlyerDao.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/TicketDao.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFlightDao.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFrequentFlyerDao.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateTicketDao.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Airport.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Entity.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Flight.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/FrequentFlyer.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Passenger.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/ServiceClass.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Ticket.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/hibernate/ServiceClassUserType.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/security/AcegiFrequentFlyerSecurityService.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/security/FrequentFlyerDetails.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/security/FrequentFlyerDetailsService.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/security/FrequentFlyerSecurityService.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/security/GetFrequentFlyerMileageEndpoint.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/service/AirlineService.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/service/NoSeatAvailableException.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/service/NoSuchFlightException.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/service/impl/AirlineServiceImpl.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/ws/BookFlightEndpoint.java create mode 100644 samples/airline/src/main/java/org/springframework/ws/samples/airline/ws/GetFlightsEndpoint.java create mode 100644 samples/airline/src/main/resources/org/springframework/ws/samples/airline/dao/hibernate/applicationContext-hibernate.xml create mode 100644 samples/airline/src/main/resources/org/springframework/ws/samples/airline/dao/hibernate/hibernate.properties create mode 100644 samples/airline/src/main/resources/org/springframework/ws/samples/airline/dao/jdbc.properties create mode 100644 samples/airline/src/main/resources/org/springframework/ws/samples/airline/domain/hibernate/airline.hbm.xml create mode 100644 samples/airline/src/main/resources/org/springframework/ws/samples/airline/security/applicationContext-security.xml create mode 100644 samples/airline/src/main/resources/org/springframework/ws/samples/airline/security/securityPolicy.xml create mode 100644 samples/airline/src/main/resources/org/springframework/ws/samples/airline/service/applicationContext.xml create mode 100644 samples/airline/src/main/resources/org/springframework/ws/samples/airline/ws/applicationContext-ws.xml create mode 100644 samples/airline/src/main/webapp/WEB-INF/airline-servlet.xml create mode 100644 samples/airline/src/main/webapp/WEB-INF/log4j.properties create mode 100644 samples/airline/src/main/webapp/WEB-INF/web.xml create mode 100644 samples/airline/src/main/webapp/airline.wsdl create mode 100644 samples/airline/src/main/webapp/airline.xsd create mode 100644 samples/airline/src/test/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFlightDaoTest.java create mode 100644 samples/airline/src/test/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFrequentFlyerDaoTest.java create mode 100644 samples/airline/src/test/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateTicketDaoTest.java create mode 100644 samples/airline/src/test/java/org/springframework/ws/samples/airline/security/AcegiFrequentFlyerSecurityServiceTest.java create mode 100644 samples/airline/src/test/java/org/springframework/ws/samples/airline/security/GetFrequentFlyerMileageEndpointTest.java create mode 100644 samples/airline/src/test/java/org/springframework/ws/samples/airline/service/impl/AirlineServiceImplTest.java create mode 100644 samples/airline/src/test/java/org/springframework/ws/samples/airline/ws/BookFlightEndpointTest.java create mode 100644 samples/airline/src/test/java/org/springframework/ws/samples/airline/ws/GetFlightsEndpointTest.java create mode 100644 samples/echo/client/saaj/build.xml create mode 100644 samples/echo/client/saaj/lib/activation.jar create mode 100644 samples/echo/client/saaj/lib/mail.jar create mode 100644 samples/echo/client/saaj/lib/saaj-api.jar create mode 100644 samples/echo/client/saaj/lib/saaj-impl.jar create mode 100644 samples/echo/client/saaj/lib/xercesImpl.jar create mode 100644 samples/echo/client/saaj/readme.txt create mode 100644 samples/echo/client/saaj/src/org/springframework/ws/samples/echo/client/saaj/EchoClient.java create mode 100644 samples/echo/pom.xml create mode 100644 samples/echo/readme.txt create mode 100644 samples/echo/src/etc/test-resources/log4j.properties create mode 100644 samples/echo/src/main/java/org/springframework/ws/samples/echo/service/EchoService.java create mode 100755 samples/echo/src/main/java/org/springframework/ws/samples/echo/service/impl/EchoServiceImpl.java create mode 100755 samples/echo/src/main/java/org/springframework/ws/samples/echo/ws/EchoEndpoint.java create mode 100755 samples/echo/src/main/webapp/WEB-INF/applicationContext.xml create mode 100644 samples/echo/src/main/webapp/WEB-INF/log4j.properties create mode 100755 samples/echo/src/main/webapp/WEB-INF/springws-servlet.xml create mode 100755 samples/echo/src/main/webapp/WEB-INF/web.xml create mode 100644 samples/echo/src/main/webapp/echo.wsdl create mode 100755 samples/echo/src/main/webapp/echo.xsd create mode 100755 samples/echo/src/main/webapp/index.html create mode 100644 samples/echo/src/test/java/org/springframework/ws/samples/echo/ws/EchoEndpointTest.java create mode 100644 samples/pom.xml create mode 100644 samples/readme.txt create mode 100644 security/pom.xml create mode 100644 security/src/etc/test-resources/log4j.properties create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/callback/jaas/jaas.config create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/decrypt-config.xml create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/empty-soap.xml create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/encrypt-alias-config.xml create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/encrypt-config.xml create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/encrypted-soap.xml create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/requireSignature-config.xml create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/requireUsernameToken-digest-config.xml create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/requireUsernameToken-plainText-config.xml create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/sign-alias-config.xml create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/sign-config.xml create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/signed-soap.xml create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/test-keystore.jks create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/test-truststore.jks create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameToken-digest-config.xml create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameToken-plainText-config.xml create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameTokenDigest-soap.xml create mode 100644 security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameTokenPlainText-soap.xml create mode 100644 security/src/main/java/org/springframework/ws/soap/security/AbstractWsSecurityInterceptor.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/WsSecurityException.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/WsSecuritySecurementException.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/WsSecurityValidationException.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/package.html create mode 100644 security/src/main/java/org/springframework/ws/soap/security/support/KeyStoreFactoryBean.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/support/package.html create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/XwsSecurityInterceptor.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/XwsSecuritySecurementException.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/XwsSecurityValidationException.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/AbstractCallbackHandler.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/CallbackHandlerChain.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/CryptographyCallbackHandler.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/DefaultTimestampValidator.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/KeyStoreCallbackHandler.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/MockValidationCallbackHandler.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/SimplePasswordValidationCallbackHandler.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/SimpleUsernamePasswordCallbackHandler.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiCertificateValidationCallbackHandler.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiDigestPasswordValidationCallbackHandler.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiPlainTextPasswordValidationCallbackHandler.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/package.html create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/AbstractJaasValidationCallbackHandler.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasCertificateValidationCallbackHandler.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasPlainTextPasswordValidationCallbackHandler.java create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/package.html create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/callback/package.html create mode 100644 security/src/main/java/org/springframework/ws/soap/security/xwss/package.html create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/XwsSecurityInterceptorTest.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorEncryptTest.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorKeyStoreTestCase.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorSignTest.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorTestCase.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorUsernameTokenTest.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/callback/CallbackHandlerChainTest.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/callback/KeyStoreCallbackHandlerTest.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/callback/SimplePasswordValidationCallbackHandlerTest.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/callback/SimpleUsernamePasswordCallbackHandlerTest.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiCertificateValidationCallbackHandlerTest.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiDigestPasswordValidationCallbackHandlerTest.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiPlainTextPasswordValidationCallbackHandlerTest.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/CertificateLoginModule.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasCertificateValidationCallbackHandlerTest.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasPlainTextPasswordValidationCallbackHandlerTest.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/PlainTextLoginModule.java create mode 100644 security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/SimplePrincipal.java create mode 100644 xml/pom.xml create mode 100644 xml/src/etc/test-resources/log4j.properties create mode 100644 xml/src/etc/test-resources/org/springframework/xml/validation/invalidDocument.xml create mode 100644 xml/src/etc/test-resources/org/springframework/xml/validation/schema.xsd create mode 100644 xml/src/etc/test-resources/org/springframework/xml/validation/validDocument.xml create mode 100644 xml/src/etc/test-resources/org/springframework/xml/xpath/namespaces.xml create mode 100644 xml/src/etc/test-resources/org/springframework/xml/xpath/nonamespaces.xml create mode 100644 xml/src/main/java/org/springframework/xml/JaxpVersion.java create mode 100644 xml/src/main/java/org/springframework/xml/XmlException.java create mode 100644 xml/src/main/java/org/springframework/xml/namespace/QNameEditor.java create mode 100644 xml/src/main/java/org/springframework/xml/namespace/QNameUtils.java create mode 100644 xml/src/main/java/org/springframework/xml/namespace/SimpleNamespaceContext.java create mode 100644 xml/src/main/java/org/springframework/xml/namespace/package.html create mode 100644 xml/src/main/java/org/springframework/xml/package.html create mode 100644 xml/src/main/java/org/springframework/xml/sax/SaxUtils.java create mode 100644 xml/src/main/java/org/springframework/xml/sax/package.html create mode 100644 xml/src/main/java/org/springframework/xml/stream/AbstractXmlStreamReader.java create mode 100644 xml/src/main/java/org/springframework/xml/stream/StaxContentHandler.java create mode 100644 xml/src/main/java/org/springframework/xml/stream/StaxEventContentHandler.java create mode 100644 xml/src/main/java/org/springframework/xml/stream/StaxEventXmlReader.java create mode 100644 xml/src/main/java/org/springframework/xml/stream/StaxStreamContentHandler.java create mode 100644 xml/src/main/java/org/springframework/xml/stream/StaxStreamXmlReader.java create mode 100644 xml/src/main/java/org/springframework/xml/stream/StaxXmlReader.java create mode 100644 xml/src/main/java/org/springframework/xml/stream/XmlEventStreamReader.java create mode 100644 xml/src/main/java/org/springframework/xml/stream/package.html create mode 100644 xml/src/main/java/org/springframework/xml/transform/StaxResult.java create mode 100644 xml/src/main/java/org/springframework/xml/transform/StaxSource.java create mode 100644 xml/src/main/java/org/springframework/xml/transform/StringResult.java create mode 100644 xml/src/main/java/org/springframework/xml/transform/StringSource.java create mode 100644 xml/src/main/java/org/springframework/xml/transform/package.html create mode 100644 xml/src/main/java/org/springframework/xml/validation/Jaxp10ValidatorFactory.java create mode 100644 xml/src/main/java/org/springframework/xml/validation/Jaxp13ValidatorFactory.java create mode 100644 xml/src/main/java/org/springframework/xml/validation/SchemaLoaderUtils.java create mode 100644 xml/src/main/java/org/springframework/xml/validation/XmlValidationException.java create mode 100644 xml/src/main/java/org/springframework/xml/validation/XmlValidator.java create mode 100644 xml/src/main/java/org/springframework/xml/validation/XmlValidatorFactory.java create mode 100644 xml/src/main/java/org/springframework/xml/validation/package.html create mode 100644 xml/src/main/java/org/springframework/xml/xpath/JaxenXPathExpressionFactory.java create mode 100644 xml/src/main/java/org/springframework/xml/xpath/Jaxp13XPathExpressionFactory.java create mode 100644 xml/src/main/java/org/springframework/xml/xpath/XPathException.java create mode 100644 xml/src/main/java/org/springframework/xml/xpath/XPathExpression.java create mode 100644 xml/src/main/java/org/springframework/xml/xpath/XPathExpressionFactory.java create mode 100644 xml/src/main/java/org/springframework/xml/xpath/XPathParseException.java create mode 100644 xml/src/main/java/org/springframework/xml/xpath/XalanXPathExpressionFactory.java create mode 100644 xml/src/main/java/org/springframework/xml/xpath/package.html create mode 100644 xml/src/test/java/org/springframework/xml/namespace/QNameEditorTest.java create mode 100644 xml/src/test/java/org/springframework/xml/namespace/QNameUtilsTest.java create mode 100644 xml/src/test/java/org/springframework/xml/namespace/SimpleNamespaceContextTest.java create mode 100644 xml/src/test/java/org/springframework/xml/stream/AbstractStaxContentHandlerTestCase.java create mode 100644 xml/src/test/java/org/springframework/xml/stream/AbstractStaxXmlReaderTestCase.java create mode 100644 xml/src/test/java/org/springframework/xml/stream/StaxEventContentHandlerTest.java create mode 100644 xml/src/test/java/org/springframework/xml/stream/StaxEventXmlReaderTest.java create mode 100644 xml/src/test/java/org/springframework/xml/stream/StaxStreamContentHandlerTest.java create mode 100644 xml/src/test/java/org/springframework/xml/stream/StaxStreamXmlReaderTest.java create mode 100644 xml/src/test/java/org/springframework/xml/stream/XmlEventStreamReaderTest.java create mode 100644 xml/src/test/java/org/springframework/xml/transform/StaxResultTest.java create mode 100644 xml/src/test/java/org/springframework/xml/transform/StaxSourceTest.java create mode 100644 xml/src/test/java/org/springframework/xml/transform/StringResultTest.java create mode 100644 xml/src/test/java/org/springframework/xml/transform/StringSourceTest.java create mode 100644 xml/src/test/java/org/springframework/xml/validation/AbstractValidatorFactoryTestCase.java create mode 100644 xml/src/test/java/org/springframework/xml/validation/Jaxp10ValidatorFactoryTest.java create mode 100644 xml/src/test/java/org/springframework/xml/validation/Jaxp13ValidatorFactoryTest.java create mode 100644 xml/src/test/java/org/springframework/xml/validation/SchemaLoaderUtilsTest.java create mode 100644 xml/src/test/java/org/springframework/xml/validation/XmlValidatorFactoryTest.java create mode 100644 xml/src/test/java/org/springframework/xml/xpath/AbstractXPathExpressionFactoryTestCase.java create mode 100644 xml/src/test/java/org/springframework/xml/xpath/JaxenXPathExpressionFactoryTest.java create mode 100644 xml/src/test/java/org/springframework/xml/xpath/Jaxp13XPathExpressionFactoryTest.java create mode 100644 xml/src/test/java/org/springframework/xml/xpath/XPathExpressionFactoryTest.java create mode 100644 xml/src/test/java/org/springframework/xml/xpath/XalanXPathExpressionFactoryTest.java diff --git a/core/pom.xml b/core/pom.xml new file mode 100644 index 00000000..c67dff2d --- /dev/null +++ b/core/pom.xml @@ -0,0 +1,104 @@ + + + + spring-ws + org.springframework.ws + 1.0-m3-SNAPSHOT + + 4.0.0 + spring-ws-core + jar + Spring WS Core + Spring Web Services Core package. + + + + org.springframework.ws + spring-xml + + + org.springframework.ws + spring-oxm + true + + + + org.springframework + spring-context + + + org.springframework + spring-web + + + org.springframework + spring-webmvc + + + org.springframework + spring-mock + + + + jdom + jdom + true + + + dom4j + dom4j + true + + + xom + xom + true + + + stax + stax-api + + + xerces + xercesImpl + test + + + woodstox + wstx-asl + test + + + + ws-commons + axiom-api + true + + + ws-commons + axiom-impl + true + + + com.sun.xml.messaging.saaj + saaj-impl + + + + javax.xml.soap + saaj-api + + + javax.servlet + servlet-api + + + javax.mail + mail + + + javax.activation + activation + + + diff --git a/core/src/etc/test-resources/log4j.properties b/core/src/etc/test-resources/log4j.properties new file mode 100644 index 00000000..92e896c8 --- /dev/null +++ b/core/src/etc/test-resources/log4j.properties @@ -0,0 +1,6 @@ +log4j.rootCategory=INFO, stdout +log4j.logger.org.springframework.ws=DEBUG + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n \ No newline at end of file diff --git a/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/invalidMessage.xml b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/invalidMessage.xml new file mode 100644 index 00000000..a7551338 --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/invalidMessage.xml @@ -0,0 +1,4 @@ + + + 20 + \ No newline at end of file diff --git a/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/productSchema.xsd b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/productSchema.xsd new file mode 100644 index 00000000..83146da1 --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/productSchema.xsd @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + diff --git a/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/schema.xsd b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/schema.xsd new file mode 100644 index 00000000..60d338c5 --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/schema.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/schema2.xsd b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/schema2.xsd new file mode 100644 index 00000000..8f41ba4a --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/schema2.xsd @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/sizeSchema.xsd b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/sizeSchema.xsd new file mode 100644 index 00000000..60613d2b --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/sizeSchema.xsd @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/transformInput.xml b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/transformInput.xml new file mode 100644 index 00000000..e60dcdad --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/transformInput.xml @@ -0,0 +1,5 @@ + + + 42 + 10 + \ No newline at end of file diff --git a/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/transformOutput.xml b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/transformOutput.xml new file mode 100644 index 00000000..0174ca66 --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/transformOutput.xml @@ -0,0 +1,6 @@ + + + 2006-01-01 + 42 + 10 + \ No newline at end of file diff --git a/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/transformation.xslt b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/transformation.xslt new file mode 100644 index 00000000..79100bb6 --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/transformation.xslt @@ -0,0 +1,18 @@ + + + + + diff --git a/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/validMessage.xml b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/validMessage.xml new file mode 100644 index 00000000..ccd9449b --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/validMessage.xml @@ -0,0 +1,5 @@ + + + 42 + 10 + \ No newline at end of file diff --git a/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/validSoapMessage.xml b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/validSoapMessage.xml new file mode 100644 index 00000000..0b968837 --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/endpoint/interceptor/validSoapMessage.xml @@ -0,0 +1,12 @@ + + + + + + 123 + Fritz + Meier + + + + \ No newline at end of file diff --git a/core/src/etc/test-resources/org/springframework/ws/payload.xml b/core/src/etc/test-resources/org/springframework/ws/payload.xml new file mode 100644 index 00000000..5f2f3067 --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/payload.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/core/src/etc/test-resources/org/springframework/ws/soap/context/soap11-attachment.bin b/core/src/etc/test-resources/org/springframework/ws/soap/context/soap11-attachment.bin new file mode 100644 index 0000000000000000000000000000000000000000..bff842e88a0e1977b26dd647b37470c73164294c GIT binary patch literal 1807 zcmdPZ1p(XmfW)Gbc!PLDLlZ+Y6C(pXAj8tk($d_*+|<;Bm&-XnuOv0EL^q_eAk|8t zB(my4InCfMIGK-bkT%*r*dEHx*;AXNbw_5jsZfpjN_Gg-JW>-=Qj7GFM4a+dDuH}`n89!h?RdGsz97{b znYoGSsrp$3sp$w0dZt(@WCHzKl$MyBYGerV;r|=|A20}bxp}%VFfuYSBmg19|A!1> zt`(VS3=E#0S_~WvF!292gEIpM8yhvcDq>wPbh^&;noUD|L zjDm`ux`L99vW$#|xu%YRp^1r!yt<{Wg^`V(v567L5JpZ;P9AO^30__aBSjfSBa*@Y z0}O&33=Rwq%#2D5OoEKef{g!Jq?U}9uu zW@2GxWo2Ojs;&jfGq4D<3Mm>ovIz$!vMUve7&T5@$f4}C@t|nX#SbdRNkvVZTw>x9 zl2WQ_>Kd9_CZ=ZQ7M51dF0O9w9-dyoA)#U65s^{JDXD4c8JStdC8cHM6_r)ZEv;?s z9i3g1CQq3GGAU*RJ2V zdF$b$$4{OPfBE|D`;VW$K>lK6V1{@L?lUxh2?G7a#KOYN!VdBmBU3pL zGYhh?DjKp0IR>&P778mFHFAhJOeezV=I>}?PkjE;og%;8E16Kvyy92ar_)yi@83DLzce+$Zl=lU%BNfBrZu_s zxxP46ko`0>y>#W-W2<%-+ZYqD>tW(pl%Wr^@b^dRSFQt;?aEsl<)vM* zAnTjP%l&*?qq{?PTHU_2yHCXJCi9*4zuM|Yrdcg-&exSSefdtU;GDr3v$w|sBA&=x z_g+=;?{nauf9F2zoqbmE{QH~6KN?@Y%ktGeFwxcE${zp9Z?jiQ)by*Lo_ApK_x|ln zdsCfwH3EMB;$8C1xF&INc34%-uPwK}d~*22q&vN+m8U|!S|)AR`u3Fh>`{}vh2Ee1 z&ros2Ua0az&i${~?4JkMSp8?1Xmt7S^ZyJNdP{?v+O$q@xU_lW6(jA1VGJuJ6uz%Z z4)_qd=E>eU%kG~4AUNee!|U)+57(0Ghc2yK8yK@}vZbuJ!@kQ;cWv7#crv?K?pjJ- zOUdIGzD0H_AGUYuy?ea1>6+)7+{K|C?2Mkr&lJwvxjyD71J|?2Tv1kudnf$VC%-JS zv$(i+-}%I4j$HHiI4z5QReV-&?eZV*V>gSHe=D?MZBBj?=kAw%O;hU{o7vN6WqiRs z*J`X+_pICdf}RcryKbAZDw8mkT<)0Nk!JZb03*}dXB8f`D!V1-LcV)HD5}w U=jWd_*7E;v5?MXy>hf{{02yE6Y5)KL literal 0 HcmV?d00001 diff --git a/core/src/etc/test-resources/org/springframework/ws/soap/context/soap11.xml b/core/src/etc/test-resources/org/springframework/ws/soap/context/soap11.xml new file mode 100644 index 00000000..09c6e70b --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/soap/context/soap11.xml @@ -0,0 +1,8 @@ + + + + DIS + + + \ No newline at end of file diff --git a/core/src/etc/test-resources/org/springframework/ws/soap/context/soap12-attachment.bin b/core/src/etc/test-resources/org/springframework/ws/soap/context/soap12-attachment.bin new file mode 100644 index 0000000000000000000000000000000000000000..1836a6b6a7ee4fb6bde47a8d5ace2696ac188be0 GIT binary patch literal 1887 zcmdPZ1p(XmfW)Gbc!PLDLlZ+Y6C(pXAj8tk($d_*+|<;Bm&-XnuOv0EL^q_eAk|7C zv7jI)GdZy&Ge1wiI6tvKyCOG-my4InCN;0j$~CVnH7CCyRRJiNS8N3ovQ^J0DJihh z*Do(G*DE*H%P&gTH!?6V);BN(Yu5#;0c%mW1DoKKpHgXOlWUcjlUh^)H6|BsNNPo5 zZb42e*c7k|psrl2+~Rb*fXw721{mcVtT56RzYeyBEURTtQ0bVVONxvn4D^42nwbDH~v3h z5b$#IbYoy-WMoJHLWchj8N^&GGSe6sJUz7-I2d5y|7`|m1`akhb~aWHc6N47P7W>} z5ndi{ZXQV?VSW)=DS0_rDH$0B6+LwYB^_lM84Yty9RouX6BBuLOIr&g8$DwaBak7C zoSd9I+&mJzyb?x=GKxkdgZ~E@1UVQS7#x@xl^B==8JPtc{~uwHXJBAt1^NQy5h!3} zVrF4wW9Q)H;sz?%D!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf z*=gfJ(V&YTRE(2~nmD<{#3dx9RMpfqG__1j&CD$WKS#c@69{;yl(wme1fGL-^|!0}nGJF!GoM8SELp|7!Z=skC*H$6_ImRbC4% z&TsYixN8`!y<<1y$*3Q%uKCn1x)ibbTxc`@%UIEAi!)ca@4Hqqp`3ZeudYw0uL$11 zb8LTUYJ%NNlhc(?x6Vy#a_e(_ajGEuX=Zxq%CpB-?J|D8?fHgh(>Cm}Ue_DPw25K6 z;oq;a9A8Cu$NRf&(RK`JzBnuHp{q#P0#W~J8Z&NF~bJU#oUUF|MO|Ke3?pZ>}7 z6h!&R)bEX}T;r{E=djRDSA`-zw&K{gn`@UJ*dExo?bCC)o9w@?*vVabo65iPm9JD} z^gNy&x6arWzl_?Iw>HX4yJA7sH;tG3`L;%PhwQYveQS50h}%u(JMDk9)sIZGTHc(m zD{K1lom#;;gEMAtj|W6Nk-6@@s^Z`0z&-!Yeb_tutm66iH;sQZzI>PEt9@XitHG5$ z{*~Wmuav0iS3f=Pz~t}!+nM&JI`L`*{Qkweph`J^w*)%72E};h`R`CD#vKTDLYZX4zy* zS#gJbm!Iz1wo~wAcCp;Gl)RRb$1i+~>{LE%@6>zucx%%&&o#M=Lp#_RJ&&I$oVRm* z%uxoeXOX$0tP=N5_^D5RS!QQ(aqYhIiOU?h=I?P@7X7ODtlrw?Kir_ajxf_tvjSg-K?@bA7`gU + + + Pick up Mary at school at 2pm + + + \ No newline at end of file diff --git a/core/src/etc/test-resources/org/springframework/ws/soap/saaj/support/soapMessage.xml b/core/src/etc/test-resources/org/springframework/ws/soap/saaj/support/soapMessage.xml new file mode 100644 index 00000000..bdf261ea --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/soap/saaj/support/soapMessage.xml @@ -0,0 +1,5 @@ + + + QQQ + + \ No newline at end of file diff --git a/core/src/etc/test-resources/org/springframework/ws/soap/soap11/soap11.xsd b/core/src/etc/test-resources/org/springframework/ws/soap/soap11/soap11.xsd new file mode 100644 index 00000000..24eb4c67 --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/soap/soap11/soap11.xsd @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Prose in the spec does not specify that attributes are allowed on the Body + element + + + + + + + + + + + + + + + + + + + 'encodingStyle' indicates any canonicalization conventions followed in the contents of the containing + element. For example, the value 'http://schemas.xmlsoap.org/soap/encoding/' indicates the pattern + described in SOAP specification + + + + + + + + + + + + + + Fault reporting structure + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/src/etc/test-resources/org/springframework/ws/soap/soap12/soap12.xsd b/core/src/etc/test-resources/org/springframework/ws/soap/soap12/soap12.xsd new file mode 100644 index 00000000..7b720804 --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/soap/soap12/soap12.xsd @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + Elements replacing the wildcard MUST be namespace qualified, but can be in the + targetNamespace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fault reporting structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/src/etc/test-resources/org/springframework/ws/soap/soap12/xml.xsd b/core/src/etc/test-resources/org/springframework/ws/soap/soap12/xml.xsd new file mode 100644 index 00000000..0d4c3845 --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/soap/soap12/xml.xsd @@ -0,0 +1,114 @@ + + + + + + See http://www.w3.org/XML/1998/namespace.html and http://www.w3.org/TR/REC-xml for information about this + namespace. + + This schema document describes the XML namespace, in a form suitable for import by other schema documents. + + Note that local names in this namespace are intended to be defined only by the World Wide Web Consortium or + its subgroups. The following names are currently defined in this namespace and should not be used with + conflicting semantics by any Working Group, specification, or document instance: + + base (as an attribute name): denotes an attribute whose value provides a URI to be used as the base for + interpreting any relative URIs in the scope of the element on which it appears; its value is inherited. This + name is reserved by virtue of its definition in the XML Base specification. + + id (as an attribute name): denotes an attribute whose value should be interpreted as if declared to be of + type ID. The xml:id specification is not yet a W3C Recommendation, but this attribute is included here to + facilitate experimentation with the mechanisms it proposes. Note that it is _not_ included in the + specialAttrs attribute group. + + lang (as an attribute name): denotes an attribute whose value is a language code for the natural language of + the content of any element; its value is inherited. This name is reserved by virtue of its definition in the + XML specification. + + space (as an attribute name): denotes an attribute whose value is a keyword indicating what whitespace + processing discipline is intended for the content of the element; its value is inherited. This name is + reserved by virtue of its definition in the XML specification. + + Father (in any context at all): denotes Jon Bosak, the chair of the original XML Working Group. This name is + reserved by the following decision of the W3C XML Plenary and XML Coordination groups: + + In appreciation for his vision, leadership and dedication the W3C XML Plenary on this 10th day of February, + 2000 reserves for Jon Bosak in perpetuity the XML name xml:Father + + + + This schema defines attributes and an attribute group suitable for use by schemas wishing to + allow xml:base, xml:lang, xml:space or xml:id attributes on elements they define. + + To enable this, such a schema must import this schema for the XML namespace, e.g. as follows: <schema . . + .> . . . <import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2001/xml.xsd"/> + + Subsequently, qualified reference to any of the attributes or the group defined below will have the desired + effect, e.g. + + <type . . .> . . . <attributeGroup ref="xml:specialAttrs"/> + + will define a type which will schema-validate an instance element with any of those + attributes + + + + In keeping with the XML Schema WG's standard versioning policy, this schema document will + persist at http://www.w3.org/2005/08/xml.xsd. At the date of issue it can also be found at + http://www.w3.org/2001/xml.xsd. The schema document at that URI may however change in the future, in order + to remain compatible with the latest version of XML Schema itself, or with the XML namespace itself. In + other words, if the XML Schema or XML namespaces change, the version of this document at + http://www.w3.org/2001/xml.xsd will change accordingly; the version at http://www.w3.org/2005/08/xml.xsd + will not change. + + + + + Attempting to install the relevant ISO 2- and 3-letter codes as the enumerated possible + values is probably never going to be a realistic possibility. See RFC 3066 at + http://www.ietf.org/rfc/rfc3066.txt and the IANA registry at + http://www.iana.org/assignments/lang-tag-apps.htm for further information. + + The union allows for the 'un-declaration' of xml:lang with the empty string. + + + + + + + + + + + + + + + + + + + + + + + + See http://www.w3.org/TR/xmlbase/ for information about this attribute. + + + + + + See http://www.w3.org/TR/xml-id/ for information about this attribute. + + + + + + + + + + diff --git a/core/src/etc/test-resources/org/springframework/ws/transport/http/wsdl11-expected.wsdl b/core/src/etc/test-resources/org/springframework/ws/transport/http/wsdl11-expected.wsdl new file mode 100644 index 00000000..38a86f7f --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/transport/http/wsdl11-expected.wsdl @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/src/etc/test-resources/org/springframework/ws/transport/http/wsdl11-input.wsdl b/core/src/etc/test-resources/org/springframework/ws/transport/http/wsdl11-input.wsdl new file mode 100644 index 00000000..ae208091 --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/transport/http/wsdl11-input.wsdl @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/abstract.wsdl b/core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/abstract.wsdl new file mode 100644 index 00000000..97d9e6e4 --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/abstract.wsdl @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/complete.wsdl b/core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/complete.wsdl new file mode 100644 index 00000000..19c36925 --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/complete.wsdl @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/concrete.wsdl b/core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/concrete.wsdl new file mode 100644 index 00000000..e75e2b5d --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/concrete.wsdl @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/types.xsd b/core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/types.xsd new file mode 100644 index 00000000..88e0c486 --- /dev/null +++ b/core/src/etc/test-resources/org/springframework/ws/wsdl/wsdl11/types.xsd @@ -0,0 +1,6 @@ + + + + + diff --git a/core/src/main/java/org/springframework/ws/EndpointAdapter.java b/core/src/main/java/org/springframework/ws/EndpointAdapter.java new file mode 100644 index 00000000..d6663d32 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/EndpointAdapter.java @@ -0,0 +1,52 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws; + +import org.springframework.ws.context.MessageContext; + +/** + * Interface that must be implemented for each endpoint type to handle a message request. This interface is used to + * allow the MessageDispatcher to be indefintely extensible. It accesses all installed endpoints through + * this interface, meaning that is does not contain code specific to any endpoint type. + *

+ * This interface is not intended for application developers. It is available for those who want to develop their own + * message flow. + * + * @author Arjen Poutsma + * @see MessageDispatcher + */ +public interface EndpointAdapter { + + /** + * Given an endpoint instance, return whether or not this EndpointAdapter can support it. Typical + * EndpointAdapters will base the decision on the endpoint type. + * + * @param endpoint endpoint object to check + * @return whether or not this adapter can adapt the given endpoint + */ + boolean supports(Object endpoint); + + /** + * Use the given endpoint to handle the request. + * + * @param messageContext the current message context + * @param endpoint the endpoint to use. This object must have previously been passed to the + * supports method of this interface, which must have returned true + * @throws Exception in case of errors + */ + void invoke(MessageContext messageContext, Object endpoint) throws Exception; +} diff --git a/core/src/main/java/org/springframework/ws/EndpointExceptionResolver.java b/core/src/main/java/org/springframework/ws/EndpointExceptionResolver.java new file mode 100644 index 00000000..69c3a080 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/EndpointExceptionResolver.java @@ -0,0 +1,38 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws; + +import org.springframework.ws.context.MessageContext; + +/** + * Defines the interface for objects than can resolve exceptions thrown during endpoint execution, resulting in SOAP + * messages. + * + * @author Arjen Poutsma + */ +public interface EndpointExceptionResolver { + + /** + * Try to resolve the given exception that got thrown during on endpoint execution. + * + * @param messageContext current message context + * @param endpoint the executed endpoint, or null if none chosen at the time of the exception + * @param ex the exception that got thrown during endpoint execution + * @return true if resolved; false otherwise + */ + boolean resolveException(MessageContext messageContext, Object endpoint, Exception ex); +} diff --git a/core/src/main/java/org/springframework/ws/EndpointInterceptor.java b/core/src/main/java/org/springframework/ws/EndpointInterceptor.java new file mode 100644 index 00000000..c02aeb8f --- /dev/null +++ b/core/src/main/java/org/springframework/ws/EndpointInterceptor.java @@ -0,0 +1,62 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws; + +import org.springframework.ws.context.MessageContext; + +/** + * Workflow interface that allows for customized endpoint invocation chains. Applications can register any number of + * existing or custom interceptors for certain groups of endpoints, to add common preprocessing behavior without needing + * to modify each endpoint implementation. + *

+ * A EndpointInterceptor gets called before the appropriate EndpointAdapter triggers the + * invocation of the endpoint itself. This mechanism can be used for a large field of preprocessing aspects, e.g. for + * authorization checks, or message header checks. Its main purpose is to allow for factoring out repetitive endpoint + * code. + *

+ * Typically an interceptor chain is defined per EndpointMapping bean, sharing its granularity. To be able + * to apply a certain interceptor chain to a group of handlers, one needs to map the desired handlers via one + * EndpointMapping bean. + * + * @author Arjen Poutsma + * @see EndpointInvocationChain#getInterceptors() + * @see org.springframework.ws.endpoint.interceptor.EndpointInterceptorAdapter + * @see org.springframework.ws.endpoint.mapping.AbstractEndpointMapping#setInterceptors(EndpointInterceptor[]) + */ +public interface EndpointInterceptor { + + /** + * Processes the incoming request message. + * + * @param messageContext contains the incoming request message + * @param endpoint chosen endpoint to invoke + * @return true to continue processing of the request interceptor chain; false to indicate + * blocking of the request handler chain, without invoking the endpoint + */ + boolean handleRequest(MessageContext messageContext, Object endpoint) throws Exception; + + /** + * Processes the outgoing response message. + * + * @param messageContext contains both request and response messages + * @param endpoint chosen endpoint to invoke + * @return true to continue processing of the reponse interceptor chain; false to indicate + * blocking of the response handler chain. + */ + boolean handleResponse(MessageContext messageContext, Object endpoint) throws Exception; + +} diff --git a/core/src/main/java/org/springframework/ws/EndpointInvocationChain.java b/core/src/main/java/org/springframework/ws/EndpointInvocationChain.java new file mode 100644 index 00000000..8e09d3e7 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/EndpointInvocationChain.java @@ -0,0 +1,69 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws; + +/** + * Endpoint invocation chain, consisting of an endpoint object and any preprocessing interceptors. + * + * @author Arjen Poutsma + * @see EndpointInterceptor + */ +public class EndpointInvocationChain { + + private Object endpoint; + + private EndpointInterceptor[] interceptors; + + /** + * Create new EndpointInvocationChain. + * + * @param endpoint the endpoint object to invoke + */ + public EndpointInvocationChain(Object endpoint) { + this.endpoint = endpoint; + } + + /** + * Create new EndpointInvocationChain. + * + * @param endpoint the endpoint object to invoke + * @param interceptors the array of interceptors to apply + */ + public EndpointInvocationChain(Object endpoint, EndpointInterceptor[] interceptors) { + this.endpoint = endpoint; + this.interceptors = interceptors; + } + + /** + * Returns the endpoint object to invoke. + * + * @return the endpoint object + */ + public Object getEndpoint() { + return endpoint; + } + + /** + * Returns the array of interceptors to apply before the handler executes. + * + * @return the array of interceptors + */ + public EndpointInterceptor[] getInterceptors() { + return interceptors; + } + +} diff --git a/core/src/main/java/org/springframework/ws/EndpointMapping.java b/core/src/main/java/org/springframework/ws/EndpointMapping.java new file mode 100644 index 00000000..c582fb17 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/EndpointMapping.java @@ -0,0 +1,58 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws; + +import org.springframework.ws.context.MessageContext; + +/** + * Interface to be implemented by objects that define a mapping between message requests and endpoint objects. + *

+ * This class can be implemented by application developers, although this is not necessary, as + * PayloadRootQNameEndpointMapping and SoapActionEndpointMapping are included. + *

+ * HandlerMapping implementations can support mapped interceptors but do not have to. An endpoint will always be wrapped + * in a EndpointExecutionChain instance, optionally accompanied by some EndpointInterceptor + * instances. The MessageDispacher will first call each EndpointInterceptor's + * handlerRequest method in the given order, finally invoking the endpoint itself if all + * handlerRequest methods have returned true. + * + * @author Arjen Poutsma + * @see org.springframework.ws.endpoint.mapping.AbstractEndpointMapping + * @see org.springframework.ws.endpoint.mapping.PayloadRootQNameEndpointMapping + * @see org.springframework.ws.soap.endpoint.mapping.SoapActionEndpointMapping + */ +public interface EndpointMapping { + + /** + * Returns an endpoint and any interceptors for this message context. The choice may be made on message contents, + * transport request url, a routing table, or any factor the implementing class chooses. + *

+ * The returned EndpointExecutionChain contains an endpoint Object, rather than even a tag interface, + * so that endpoints are not constrained in any way. For example, a EndpointAdapter could be written to + * allow another framework's endpoint objects to be used. + *

+ * Returns null if no match was found. This is not an error. The MessageDispatcher will + * query all registered EndpointMapping beans to find a match, and only decide there is an error if + * none can find an endpoint. + * + * @return a HandlerExecutionChain instance containing endpoint object and any interceptors, or null if + * no mapping found + * @throws Exception if there is an internal error + */ + EndpointInvocationChain getEndpoint(MessageContext messageContext) throws Exception; + +} diff --git a/core/src/main/java/org/springframework/ws/MessageDispatcher.java b/core/src/main/java/org/springframework/ws/MessageDispatcher.java new file mode 100644 index 00000000..de63fa63 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/MessageDispatcher.java @@ -0,0 +1,398 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Properties; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.BeanInitializationException; +import org.springframework.beans.factory.BeanNameAware; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.support.ApplicationObjectSupport; +import org.springframework.core.io.ClassPathResource; +import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.endpoint.MessageEndpoint; + +/** + * Central dispatcher for use withing Spring-WS. Dispatches SOAP messages to registered endoints. + *

+ * This dispatcher is quite similar to Spring MVCs DispatcherServlet. Just like it's counterpart, this + * dispatcher is very flexible.

  • It can use any EndpointMapping implementation - whether standard, + * or provided as part of an application - to control the routing of request messages to endpoint objects. Endpoint + * mappings can be registerd using the endpointMappings property.
  • It can use any + * EndpointAdapter; this allows to use any endpoint interface or form. Default are + * MessageEndpointAdapter and PayloadEndpointAdapter, for MessageEndpoint and + * PayloadEndpoint, respectively. Additional endpoint adapters can be added through the + * endpointAdapters property.
  • Its exception resolution strategy can be specified via a + * EndpointExceptionResolver, for example mapping certain exceptions to SOAP Faults. Default is none. + * Additional exception resolvers can be added through the endpointExceptionResolvers property.
+ * A web application can use any number of MessageDispatchers. Since a MessageDispatcher + * also implements MessageEndpoint, it is also possible to chain them: one dispatcher can be registered as + * the endpoint of another. + * + * @author Arjen Poutsma + * @see EndpointMapping + * @see EndpointAdapter + * @see EndpointExceptionResolver + * @see org.springframework.web.servlet.DispatcherServlet + */ +public class MessageDispatcher extends ApplicationObjectSupport implements MessageEndpoint, BeanNameAware { + + /** + * Name of the class path resource (relative to the MessageDispatcher class) that defines MessageDispatcher's + * default strategy names. + */ + private static final String DEFAULT_STRATEGIES_PATH = "MessageDispatcher.properties"; + + /** + * Log category to use when no mapped endpoint is found for a request. + */ + public static final String ENDPOINT_NOT_FOUND_LOG_CATEGORY = "org.springframework.ws.EndpointNotFound"; + + /** + * Additional logger to use when no mapped endpoint is found for a request. + */ + protected static final Log endpointNotFoundLogger = LogFactory.getLog(ENDPOINT_NOT_FOUND_LOG_CATEGORY); + + private static final Properties defaultStrategies = new Properties(); + + static { + // Load default strategy implementations from properties file. + // This is currently strictly internal and not meant to be customized + // by application developers. + try { + ClassPathResource resource = new ClassPathResource(DEFAULT_STRATEGIES_PATH, MessageDispatcher.class); + InputStream is = resource.getInputStream(); + try { + defaultStrategies.load(is); + } + finally { + is.close(); + } + } + catch (IOException ex) { + throw new IllegalStateException("Could not load '" + DEFAULT_STRATEGIES_PATH + "': " + ex.getMessage()); + } + } + + /** + * List of EndpointMappings used in this dispatcher + */ + private List endpointMappings; + + /** + * List of EndpointAdapters used in this dispatcher + */ + private List endpointAdapters; + + /** + * List of EndpointExceptionResolvers used in this dispatcher + */ + private List endpointExceptionResolvers; + + /** + * The registered bean name for this dispatcher. + */ + private String beanName; + + /** + * Initializes the dispatcher. + */ + public void initApplicationContext() throws BeansException { + initEndpointMappings(); + initEndpointAdapters(); + initEndpointExceptionResolvers(); + } + + /** + * Initialize the EndpointMappings used in this class. + */ + private void initEndpointMappings() { + // Ensure we have at least one EndpointMapping, by registering a default if not others are found + if (endpointMappings == null) { + endpointMappings = getDefaultStrategies(EndpointMapping.class); + logger.info("No EndpointMapping found: using default"); + } + } + + /** + * Initialize the EndpointAdapters used by this class. + */ + private void initEndpointAdapters() { + if (endpointAdapters == null) { + // Ensure we have at least some EndpointAdapters, by registereing a default if no others are found + endpointAdapters = getDefaultStrategies(EndpointAdapter.class); + logger.info("No EndpointAdapters found: using default"); + } + } + + /** + * Initialize the EndpointExceptionResolvers used in this class. + */ + private void initEndpointExceptionResolvers() { + if (endpointExceptionResolvers == null) { + // Ensure we have at least some EndpointExceptionResolvers, by registereing a default if no others are found + endpointAdapters = getDefaultStrategies(EndpointExceptionResolver.class); + logger.info("No EndpointExceptionResolver found: using default"); + } + } + + /** + * Create a List of default strategy objects for the given strategy interface.

The default implementation uses + * the "MessageDispatcher.properties" file (in the same package as the MessageDispatcher class) to determine the + * class names. It instantiates the strategy objects and satisifies ApplicationContextAware and InitializingBean if + * necessary. + * + * @param strategyInterface the strategy interface + * @return the List of corresponding strategy objects + * @throws BeansException if initialization failed + */ + protected List getDefaultStrategies(Class strategyInterface) throws BeansException { + String key = strategyInterface.getName(); + try { + List strategies = null; + String value = defaultStrategies.getProperty(key); + if (value != null) { + String[] classNames = StringUtils.commaDelimitedListToStringArray(value); + strategies = new ArrayList(classNames.length); + for (int i = 0; i < classNames.length; i++) { + Class clazz = Class.forName(classNames[i], true, getClass().getClassLoader()); + Object strategy = BeanUtils.instantiateClass(clazz); + if (strategy instanceof ApplicationContextAware) { + ((ApplicationContextAware) strategy).setApplicationContext(getApplicationContext()); + } + strategies.add(strategy); + } + } + else { + strategies = Collections.EMPTY_LIST; + } + return strategies; + } + catch (ClassNotFoundException ex) { + throw new BeanInitializationException( + "Could not find MessageDispatcher's default strategy class for interface [" + key + "]", + ex); + } + } + + public void invoke(MessageContext messageContext) throws Exception { + if (logger.isDebugEnabled()) { + logger.debug("MessageDispatcher with name '" + beanName + "' received request [" + + messageContext.getRequest() + "]"); + } + dispatch(messageContext); + if (logger.isDebugEnabled() && messageContext.hasResponse()) { + logger.debug("MessageDispatcher with name '" + beanName + "' sends response [" + + messageContext.getResponse() + "]"); + } + } + + /** + * Dispatches the request in the given MessageContext according to the configuration. + * + * @param messageContext the message context + * @throws NoEndpointFoundException thrown when an endpoint cannot be resolved for the incoming message + */ + protected final void dispatch(MessageContext messageContext) throws Exception { + EndpointInvocationChain mappedEndpoint = null; + int interceptorIndex = -1; + try { + // Determine endpoint for the current context + mappedEndpoint = getEndpoint(messageContext); + if (mappedEndpoint == null || mappedEndpoint.getEndpoint() == null) { + throw new NoEndpointFoundException(messageContext.getRequest()); + } + if (!handleRequest(mappedEndpoint, messageContext)) { + return; + } + // Apply handleRequest of registered interceptors + if (!ObjectUtils.isEmpty(mappedEndpoint.getInterceptors())) { + for (int i = 0; i < mappedEndpoint.getInterceptors().length; i++) { + EndpointInterceptor interceptor = mappedEndpoint.getInterceptors()[i]; + interceptorIndex = i; + if (!interceptor.handleRequest(messageContext, mappedEndpoint.getEndpoint())) { + triggerHandleResponse(mappedEndpoint, interceptorIndex, messageContext); + return; + } + } + } + // Acutally invoke the endpoint + EndpointAdapter endpointAdapter = getEndpointAdapter(mappedEndpoint.getEndpoint()); + endpointAdapter.invoke(messageContext, mappedEndpoint.getEndpoint()); + + // Apply handleResponse methods of registered interceptors + triggerHandleResponse(mappedEndpoint, interceptorIndex, messageContext); + } + catch (NoEndpointFoundException ex) { + // No triggering of interceptors if no endpoint is found + if (endpointNotFoundLogger.isWarnEnabled()) { + endpointNotFoundLogger.warn("No endpoint mapping found for [" + messageContext.getRequest() + "]"); + } + throw ex; + } + catch (Exception ex) { + Object endpoint = mappedEndpoint != null ? mappedEndpoint.getEndpoint() : null; + processEndpointException(messageContext, endpoint, ex); + triggerHandleResponse(mappedEndpoint, interceptorIndex, messageContext); + } + } + + /** + * Callback for pre-processing of given invocation chain and message context. Gets called before invocation of + * handleRequest on the interceptors. + *

+ * Default implementation does nothing, and returns true. + * + * @param mappedEndpoint the mapped EndpointInvocationChain + * @param messageContext the message context + * @return true if processing should continue; false otherwise + */ + protected boolean handleRequest(EndpointInvocationChain mappedEndpoint, MessageContext messageContext) { + return true; + } + + /** + * Trigger handleResponse or handleFault on the mapped EndpointInterceptors. Will just invoke said method on all + * interceptors whose handleRequest invocation returned true, in addition to the last interceptor who + * returned false. + * + * @param mappedEndpoint the mapped EndpointInvocationChain + * @param interceptorIndex index of last interceptor that was called + * @param messageContext the message context, whose request and response are filled + * @see EndpointInterceptor#handleResponse(MessageContext, Object) + */ + protected void triggerHandleResponse(EndpointInvocationChain mappedEndpoint, + int interceptorIndex, + MessageContext messageContext) throws Exception { + if (mappedEndpoint != null && messageContext.hasResponse() && + !ObjectUtils.isEmpty(mappedEndpoint.getInterceptors())) { + boolean resume = true; + for (int i = interceptorIndex; resume && i >= 0; i--) { + EndpointInterceptor interceptor = mappedEndpoint.getInterceptors()[i]; + resume = interceptor.handleResponse(messageContext, mappedEndpoint.getEndpoint()); + } + } + } + + /** + * Returns the endpoint for this request. All endpoint mappings are tried, in order. + * + * @return the EndpointInvocationChain, or null if no endpoint could be found. + */ + protected EndpointInvocationChain getEndpoint(MessageContext messageContext) throws Exception { + for (Iterator iterator = endpointMappings.iterator(); iterator.hasNext();) { + EndpointMapping endpointMapping = (EndpointMapping) iterator.next(); + EndpointInvocationChain endpoint = endpointMapping.getEndpoint(messageContext); + if (endpoint != null) { + if (logger.isDebugEnabled()) { + logger.debug("Endpoint mapping [" + endpointMapping + "] maps request to endpoint [" + + endpoint.getEndpoint() + "]"); + } + return endpoint; + } + else if (logger.isDebugEnabled()) { + logger.debug("Endpoint mapping [" + endpointMapping + "] has no mapping for request"); + } + + } + return null; + } + + /** + * Returns the EndpointAdapter for the given endpoint. + * + * @param endpoint the endpoint to find an adapter for + * @return the adapter + */ + protected EndpointAdapter getEndpointAdapter(Object endpoint) { + for (Iterator iterator = endpointAdapters.iterator(); iterator.hasNext();) { + EndpointAdapter endpointAdapter = (EndpointAdapter) iterator.next(); + if (logger.isDebugEnabled()) { + logger.debug("Testing endpoint adapter [" + endpointAdapter + "]"); + } + if (endpointAdapter.supports(endpoint)) { + return endpointAdapter; + } + } + throw new IllegalStateException("No adapter for endpoint [" + endpoint + "]: Does your endpoint implement a " + + "supported interface like MessageHandler or PayloadEndpoint?"); + } + + /** + * Determine an error SOAPMessage respone via the registered EndpointExceptionResolvers. + * Most likely, the response contains a SOAPFault. If no suitable resolver was found, the exception is + * rethrown. + * + * @param messageContext current SOAPMessage request + * @param endpoint the executed endpoint, or null if none chosen at the time of the exception + * @param ex the exception that got thrown during handler execution + * @throws Exception if no suitable resolver is found + */ + protected void processEndpointException(MessageContext messageContext, Object endpoint, Exception ex) + throws Exception { + for (Iterator iterator = endpointExceptionResolvers.iterator(); iterator.hasNext();) { + EndpointExceptionResolver resolver = (EndpointExceptionResolver) iterator.next(); + if (logger.isDebugEnabled()) { + logger.debug("Testing endpoint exception resolver [" + resolver + "]"); + } + if (resolver.resolveException(messageContext, endpoint, ex)) { + logger.warn("Endpoint invocation resulted in exception - responding with SOAP Fault", ex); + return; + } + } + // exception not resolved + throw ex; + } + + /** + * Sets the EndpointMappings to use by this MessageDispatcher. + */ + public void setEndpointMappings(List endpointMappings) { + this.endpointMappings = endpointMappings; + } + + /** + * Sets the EndpointAdapters to use by this MessageDispatcher. + */ + public void setEndpointAdapters(List endpointAdapters) { + this.endpointAdapters = endpointAdapters; + } + + /** + * Sets the EndpointExceptionResolvers to use by this MessageDispatcher. + */ + public void setEndpointExceptionResolvers(List endpointExceptionResolvers) { + this.endpointExceptionResolvers = endpointExceptionResolvers; + } + + public void setBeanName(String beanName) { + this.beanName = beanName; + } + +} diff --git a/core/src/main/java/org/springframework/ws/NoEndpointFoundException.java b/core/src/main/java/org/springframework/ws/NoEndpointFoundException.java new file mode 100644 index 00000000..113644a0 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/NoEndpointFoundException.java @@ -0,0 +1,29 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws; + +/** + * Exception thrown when an endpoint cannot be resolved for an incoming message request. + * + * @author Arjen Poutsma + */ +public final class NoEndpointFoundException extends WebServiceException { + + public NoEndpointFoundException(WebServiceMessage request) { + super("No endpoint can be found for request [" + request + "]"); + } +} diff --git a/core/src/main/java/org/springframework/ws/WebServiceException.java b/core/src/main/java/org/springframework/ws/WebServiceException.java new file mode 100644 index 00000000..e030ef7b --- /dev/null +++ b/core/src/main/java/org/springframework/ws/WebServiceException.java @@ -0,0 +1,43 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws; + +import java.io.Serializable; + +import org.springframework.core.NestedRuntimeException; + +/** + * Root of the hierarchy of Web Service exceptions. + * + * @author Arjen Poutsma + */ +public abstract class WebServiceException extends NestedRuntimeException implements Serializable { + + /** + * Constructor for WebServiceException. + */ + public WebServiceException(String msg) { + super(msg); + } + + /** + * Constructor for WebServiceException. + */ + public WebServiceException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/WebServiceMessage.java b/core/src/main/java/org/springframework/ws/WebServiceMessage.java new file mode 100644 index 00000000..ddde8ffe --- /dev/null +++ b/core/src/main/java/org/springframework/ws/WebServiceMessage.java @@ -0,0 +1,57 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws; + +import java.io.IOException; +import java.io.OutputStream; +import javax.xml.transform.Result; +import javax.xml.transform.Source; + +/** + * Represents a protocol agnostic XML message. Contains methods that provide access to the payload of the message. + * + * @author Arjen Poutsma + * @see org.springframework.ws.soap.SoapMessage + */ +public interface WebServiceMessage { + + /** + * Returns the contents of the message as a java.xml.transform.Source. Depending on the implementation, + * this can be retrieved multiple times, or just a single time. + * + * @return the message contents + */ + Source getPayloadSource(); + + /** + * Returns the contents of the message as a java.xml.transform.Result. Some implementations are + * read-only, and may throws an UnsupportedOperationException. + * + * @return the messaage contents + * @throws UnsupportedOperationException if the message is read-only + */ + Result getPayloadResult(); + + /** + * Writes the entire message to the given output stream. + * + * @param outputStream the stream to write to + * @throws IOException if an I/O exception occurs + */ + void writeTo(OutputStream outputStream) throws IOException; + +} diff --git a/core/src/main/java/org/springframework/ws/WebServiceMessageException.java b/core/src/main/java/org/springframework/ws/WebServiceMessageException.java new file mode 100644 index 00000000..991cff93 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/WebServiceMessageException.java @@ -0,0 +1,39 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws; + +/** + * Base class for all web service message exceptions. + * + * @author Arjen Poutsma + */ +public abstract class WebServiceMessageException extends WebServiceException { + + /** + * Constructor for WebServiceMessageException. + */ + public WebServiceMessageException(String msg) { + super(msg); + } + + /** + * Constructor for WebServiceMessageException. + */ + public WebServiceMessageException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/context/AbstractMessageContext.java b/core/src/main/java/org/springframework/ws/context/AbstractMessageContext.java new file mode 100644 index 00000000..22be2c99 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/context/AbstractMessageContext.java @@ -0,0 +1,123 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.context; + +import java.util.HashMap; +import java.util.Map; + +import org.springframework.util.Assert; +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.transport.TransportRequest; + +/** + * Abstract implementation of the MessageContext interface. Contains functionality to set and remove + * properties. + * + * @author Arjen Poutsma + */ +public abstract class AbstractMessageContext implements MessageContext { + + private WebServiceMessage request; + + private WebServiceMessage response; + + private final TransportRequest transportRequest; + + /** + * Keys are Strings, values are Objects. Lazily initalized by + * getProperties(). + */ + private Map properties; + + /** + * Construct a new instance of the AbstractMessageContext with the given request message and + * transportRequest. + */ + protected AbstractMessageContext(WebServiceMessage request, TransportRequest transportRequest) { + Assert.notNull(request, "No request given"); + Assert.notNull(transportRequest, "No transport request given"); + this.request = request; + this.transportRequest = transportRequest; + } + + public final WebServiceMessage getRequest() { + return request; + } + + /** + * Protected method that sets the request message directly. + */ + protected final void setRequest(WebServiceMessage request) { + Assert.notNull(request); + this.request = request; + } + + public final WebServiceMessage getResponse() { + if (response == null) { + response = createResponseMessage(); + } + return response; + } + + public final boolean hasResponse() { + return response != null; + } + + public final TransportRequest getTransportRequest() { + return transportRequest; + } + + /** + * Protected method that sets the response message directly. + */ + protected final void setResponse(WebServiceMessage response) { + Assert.notNull(response); + this.response = response; + } + + private Map getProperties() { + if (properties == null) { + properties = new HashMap(); + } + return properties; + } + + public boolean containsProperty(String name) { + return getProperties().containsKey(name); + } + + public Object getProperty(String name) { + return getProperties().get(name); + } + + public String[] getPropertyNames() { + return (String[]) getProperties().keySet().toArray(new String[getProperties().size()]); + } + + public void removeProperty(String name) { + getProperties().remove(name); + } + + public void setProperty(String name, Object value) { + getProperties().put(name, value); + } + + /** + * Abstract template method that creates a new WebServiceMessage. + */ + protected abstract WebServiceMessage createResponseMessage(); +} diff --git a/core/src/main/java/org/springframework/ws/context/MessageContext.java b/core/src/main/java/org/springframework/ws/context/MessageContext.java new file mode 100644 index 00000000..b5071f8b --- /dev/null +++ b/core/src/main/java/org/springframework/ws/context/MessageContext.java @@ -0,0 +1,113 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.context; + +import java.io.IOException; + +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.transport.TransportRequest; +import org.springframework.ws.transport.TransportResponse; + +/** + * Context holder for message requests. Contains both the message request as well as the response. Response message are + * usually lazily created. + *

+ * MessageContext implementations are constructed using a MessageContextFactory, taking a + * TransportContext as a parameter. + * + * @author Arjen Poutsma + * @see MessageContextFactory#createContext(org.springframework.ws.transport.TransportContext) + */ +public interface MessageContext { + + /** + * Returns the request message. + * + * @return the request message + */ + WebServiceMessage getRequest(); + + /** + * Returns the response message. Creates a new response if no response is present. + * + * @return the response message + * @see #hasResponse() + */ + WebServiceMessage getResponse(); + + /** + * Indicates whether this context has a resonse. + * + * @return true if this context has a response; false otherwise + */ + boolean hasResponse(); + + /** + * Returns the transport request used to create this context. Call be used for URL-based message routing. + * + * @return the transport request + */ + TransportRequest getTransportRequest(); + + /** + * Sends the response to the given transport response. + * + * @param transportResponse the transport used for sending + * @throws IOException if an I/O exception occurs + */ + void sendResponse(TransportResponse transportResponse) throws IOException; + + /** + * Sets the name and value of a property associated with the MessageContext. If the + * MessageContext contains a value of the same property, the old value is replaced. + * + * @param name name of the property associated with the value + * @param value value of the property + */ + void setProperty(String name, Object value); + + /** + * Gets the value of a specific property from the MessageContext. + * + * @param name name of the property whose value is to be retrieved + * @return value of the property + */ + Object getProperty(String name); + + /** + * Removes a property from the MessageContext. + * + * @param name name of the property to be removed + */ + void removeProperty(String name); + + /** + * Check if this message context contains a property with the given name. + * + * @param name the name of the property to look fo + * @return true if the MessageContext contains the property; false otherwise + */ + boolean containsProperty(String name); + + /** + * Return the names of all properties in this MessageContext. + * + * @return the names of all properties in this context, or an empty array if none defined + */ + String[] getPropertyNames(); + +} \ No newline at end of file diff --git a/core/src/main/java/org/springframework/ws/context/MessageContextFactory.java b/core/src/main/java/org/springframework/ws/context/MessageContextFactory.java new file mode 100644 index 00000000..2b17f279 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/context/MessageContextFactory.java @@ -0,0 +1,45 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.context; + +import java.io.IOException; + +import org.springframework.ws.transport.TransportContext; + +/** + * The MessageContextFactory serves as factory for MessageContexts. Allows creation of + * contexts based on TransportRequest. + * + * @author Arjen Poutsma + */ +public interface MessageContextFactory { + + /** + * Creates a MessageContext based on the given transport context. Implementations use the context + * request's input stream to create a request message, and possibly copy the request headers to the message. + *

+ * Implementations are free to store the transport context for later reference. For instance, streaming + * implementations of MessageContextFactory might use the transport response to directly write a + * response message. + * + * @param transportContext the transport context which contains the request + * @return the created message context + * @throws IOException if an I/O exception occurs + */ + MessageContext createContext(TransportContext transportContext) throws IOException; + +} diff --git a/core/src/main/java/org/springframework/ws/context/package.html b/core/src/main/java/org/springframework/ws/context/package.html new file mode 100644 index 00000000..3ac40184 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/context/package.html @@ -0,0 +1,5 @@ + + +Contains the MessageContext, and MessageContextFactory interfaces. + + diff --git a/core/src/main/java/org/springframework/ws/endpoint/AbstractDom4jPayloadEndpoint.java b/core/src/main/java/org/springframework/ws/endpoint/AbstractDom4jPayloadEndpoint.java new file mode 100644 index 00000000..a3acd9eb --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/AbstractDom4jPayloadEndpoint.java @@ -0,0 +1,62 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; + +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import org.dom4j.io.DocumentResult; +import org.dom4j.io.DocumentSource; + +/** + * Abstract base class for endpoints that handle the message payload as dom4j elements. Offers the message payload as a + * dom4j Element, and allows subclasses to create a response by returning an Element. + *

+ * An AbstractDom4JPayloadEndpoint only accept one payload element. Multiple payload elements are not in + * accordance with WS-I. + * + * @author Arjen Poutsma + * @see org.dom4j.Element + */ +public abstract class AbstractDom4jPayloadEndpoint extends TransformerObjectSupport implements PayloadEndpoint { + + public final Source invoke(Source request) throws Exception { + Transformer transformer = createTransformer(); + DocumentResult dom4jResult = new DocumentResult(); + transformer.transform(request, dom4jResult); + Element requestElement = dom4jResult.getDocument().getRootElement(); + Document responseDocument = DocumentHelper.createDocument(); + Element responseElement = invokeInternal(requestElement, responseDocument); + return responseElement != null ? new DocumentSource(responseElement) : null; + } + + /** + * Template method. Subclasses must implement this. Offers the request payload as a dom4j Element, and + * allows subclasses to return a response Element. + *

+ * The given dom4j Document is to be used for constructing a response element, by using + * addElement. + * + * @param requestElement the contents of the SOAP message as dom4j elements + * @param responseDocument a dom4j document to be used for constructing a response + * @return the response element. Can be null to specify no response. + */ + protected abstract Element invokeInternal(Element requestElement, Document responseDocument) throws Exception; +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/AbstractDomPayloadEndpoint.java b/core/src/main/java/org/springframework/ws/endpoint/AbstractDomPayloadEndpoint.java new file mode 100644 index 00000000..5c6d4a81 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/AbstractDomPayloadEndpoint.java @@ -0,0 +1,123 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +/** + * Abstract base class for endpoints that handle the message payload as DOM elements. Offers the message payload as a + * DOM Element, and allows subclasses to create a response by returning an Element. + *

+ * An AbstractDomPayloadEndpoint only accept one payload element. Multiple payload elements are not in + * accordance with WS-I. + * + * @author Arjen Poutsma + * @author Alef Arendsen + * @see #invokeInternal(org.w3c.dom.Element, org.w3c.dom.Document) + */ +public abstract class AbstractDomPayloadEndpoint extends TransformerObjectSupport implements PayloadEndpoint { + + private DocumentBuilderFactory documentBuilderFactory; + + private boolean validating = false; + + private boolean namespaceAware = true; + + /** + * Set whether or not the XML parser should be XML namespace aware. Default is true. + */ + public void setNamespaceAware(boolean namespaceAware) { + this.namespaceAware = namespaceAware; + } + + /** + * Set if the XML parser should validate the document. Default is false. + */ + public void setValidating(boolean validating) { + this.validating = validating; + } + + public final Source invoke(Source request) throws Exception { + Transformer transformer = createTransformer(); + if (documentBuilderFactory == null) { + documentBuilderFactory = createDocumentBuilderFactory(); + } + DocumentBuilder documentBuilder = createDocumentBuilder(documentBuilderFactory); + Document requestDocument = documentBuilder.newDocument(); + DOMResult domResult = new DOMResult(requestDocument); + transformer.transform(request, domResult); + Element requestElement = (Element) requestDocument.getFirstChild(); + Document resonseDocument = documentBuilder.newDocument(); + Element responseElement = invokeInternal(requestElement, resonseDocument); + if (responseElement != null) { + return new DOMSource(responseElement); + } + else { + return null; + } + } + + /** + * Create a DocumentBuilder that this endpoint will use for parsing XML documents. Can be overridden in + * subclasses, adding further initialization of the builder. + * + * @param factory the DocumentBuilderFactory that the DocumentBuilder should be created with + * @return the DocumentBuilder + * @throws ParserConfigurationException if thrown by JAXP methods + */ + protected DocumentBuilder createDocumentBuilder(DocumentBuilderFactory factory) + throws ParserConfigurationException { + return factory.newDocumentBuilder(); + } + + /** + * Create a DocumentBuilderFactory that this endpoint will use for constructing XML documents. Can be + * overridden in subclasses, adding further initialization of the factory. The resulting + * DocumentBuilderFactory is cached, so this method will only be called once. + * + * @return the DocumentBuilderFactory + * @throws ParserConfigurationException if thrown by JAXP methods + */ + protected DocumentBuilderFactory createDocumentBuilderFactory() throws ParserConfigurationException { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setValidating(this.validating); + factory.setNamespaceAware(this.namespaceAware); + return factory; + } + + /** + * Template method. Subclasses must implement this. Offers the request payload as a DOM Element, and + * allows subclasses to return a response Element. + *

+ * The given DOM Document is to be used for constructing Nodes, by using the various + * create methods. + * + * @param requestElement the contents of the SOAP message as DOM elements + * @param responseDocument a DOM document to be used for constructing Nodes + * @return the response element. Can be null to specify no response. + */ + protected abstract Element invokeInternal(Element requestElement, Document responseDocument) throws Exception; +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/AbstractEndpointExceptionResolver.java b/core/src/main/java/org/springframework/ws/endpoint/AbstractEndpointExceptionResolver.java new file mode 100644 index 00000000..a171bf7f --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/AbstractEndpointExceptionResolver.java @@ -0,0 +1,76 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import java.util.Set; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import org.springframework.ws.EndpointExceptionResolver; +import org.springframework.ws.context.MessageContext; + +/** + * Abstract base class for ExceptionResolvers. Provides a set of mapped endpoints that the resolver should + * map. + * + * @author Arjen Poutsma + */ +public abstract class AbstractEndpointExceptionResolver implements EndpointExceptionResolver { + + protected final Log logger = LogFactory.getLog(getClass()); + + private Set mappedEndpoints; + + /** + * Specify the set of endpoints that this exception resolver should map. The exception mappings and the default + * fault will only apply to the specified endpoints. + *

+ * If no endpoints set, both the exception mappings and the default fault will apply to all handlers. This means + * that a specified default fault will be used as fallback for all exceptions; any further + * EndpointExceptionResolvers in the chain will be ignored in this case. + */ + public void setMappedEndpoints(Set mappedEndpoints) { + this.mappedEndpoints = mappedEndpoints; + } + + /** + * Default implementation. Checks whether the given endpoint is in the set of mapped endpoints. Calls + * resolveExceptionInternal. + * + * @see #resolveExceptionInternal(org.springframework.ws.context.MessageContext, Object, Exception) + */ + public final boolean resolveException(MessageContext messageContext, Object endpoint, Exception ex) { + if (this.mappedEndpoints != null && !this.mappedEndpoints.contains(endpoint)) { + return false; + } + return resolveExceptionInternal(messageContext, endpoint, ex); + } + + /** + * Template method for resolving exceptions. Gets called after resolveException. + * + * @param messageContext current message context + * @param endpoint the executed endpoint, or null if none chosen at the time of the exception + * @param ex the exception that got thrown during endpoint execution + * @return true if resolved; false otherwise + * @see #resolveException(org.springframework.ws.context.MessageContext, Object, Exception) + */ + protected abstract boolean resolveExceptionInternal(MessageContext messageContext, Object endpoint, Exception ex); + + +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/AbstractJDomPayloadEndpoint.java b/core/src/main/java/org/springframework/ws/endpoint/AbstractJDomPayloadEndpoint.java new file mode 100644 index 00000000..5ee7b7a7 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/AbstractJDomPayloadEndpoint.java @@ -0,0 +1,57 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; + +import org.jdom.Element; +import org.jdom.transform.JDOMResult; +import org.jdom.transform.JDOMSource; + +/** + * Abstract base class for endpoints that handle the message payload as JDOM elements. Offers the message payload as a + * JDOM Element, and allows subclasses to create a response by returning an Element. + *

+ * An AbstractJDomPayloadEndpoint only accept one payload element. Multiple payload elements are not in + * accordance with WS-I. + * + * @author Arjen Poutsma + * @see Element + */ +public abstract class AbstractJDomPayloadEndpoint extends TransformerObjectSupport implements PayloadEndpoint { + + public final Source invoke(Source request) throws Exception { + Transformer transformer = createTransformer(); + JDOMResult jdomResult = new JDOMResult(); + transformer.transform(request, jdomResult); + Element requestElement = jdomResult.getDocument().getRootElement(); + Element responseElement = invokeInternal(requestElement); + return responseElement != null ? new JDOMSource(responseElement) : null; + } + + /** + * Template method. Subclasses must implement this. Offers the request payload as a JDOM Element, and + * allows subclasses to return a response Element. + * + * @param requestElement the contents of the SOAP message as JDOM element + * @return the response element. Can be null to specify no response. + */ + protected abstract Element invokeInternal(Element requestElement) throws Exception; + + +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/AbstractLoggingInterceptor.java b/core/src/main/java/org/springframework/ws/endpoint/AbstractLoggingInterceptor.java new file mode 100644 index 00000000..b48ec0d4 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/AbstractLoggingInterceptor.java @@ -0,0 +1,112 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import java.io.StringWriter; + +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.stream.StreamResult; + +import org.springframework.ws.EndpointInterceptor; +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.context.MessageContext; + +/** + * Abstract base class for EndpointInterceptor instances that log a part of a + * WebServiceMessage. By default, both request and response messages are logged, but this behaviour can be + * changed using the logRequest and logResponse properties. + * + * @author Arjen Poutsma + */ +public abstract class AbstractLoggingInterceptor extends TransformerObjectSupport implements EndpointInterceptor { + + private boolean logRequest = true; + + private boolean logResponse = true; + + /** + * Indicates whether the request should be logged. Default is true. + */ + public final void setLogRequest(boolean logRequest) { + this.logRequest = logRequest; + } + + /** + * Indicates whether the response should be logged. Default is true. + */ + public final void setLogResponse(boolean logResponse) { + this.logResponse = logResponse; + } + + /** + * Logs the request message payload. Logging only ocurs if logRequest is set to true, + * which is the default. + * + * @param messageContext the message context + * @return true + * @throws TransformerException when the payload cannot be transformed to a string + */ + public final boolean handleRequest(MessageContext messageContext, Object endpoint) throws TransformerException { + if (logRequest && logger.isDebugEnabled()) { + logMessageSource("Request: ", getSource(messageContext.getRequest())); + } + return true; + } + + /** + * Logs the response message payload. Logging only ocurs if logResponse is set to true, + * which is the default. + * + * @param messageContext the message context + * @return true + * @throws TransformerException when the payload cannot be transformed to a string + */ + public boolean handleResponse(MessageContext messageContext, Object endpoint) throws Exception { + if (logResponse && logger.isDebugEnabled()) { + logMessageSource("Response: ", getSource(messageContext.getResponse())); + } + return true; + } + + private Transformer createNonIndentingTransformer() throws TransformerConfigurationException { + Transformer transformer = createTransformer(); + transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); + transformer.setOutputProperty(OutputKeys.INDENT, "no"); + return transformer; + } + + protected void logMessageSource(String logMessage, Source source) throws TransformerException { + if (source != null) { + Transformer transformer = createNonIndentingTransformer(); + StringWriter writer = new StringWriter(); + transformer.transform(source, new StreamResult(writer)); + logger.debug(logMessage + writer.toString()); + } + } + + /** + * Abstract template method that returns the Source for the given WebServiceMessage. + * + * @param message the message + * @return the source of the message + */ + protected abstract Source getSource(WebServiceMessage message); +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/AbstractMarshallingPayloadEndpoint.java b/core/src/main/java/org/springframework/ws/endpoint/AbstractMarshallingPayloadEndpoint.java new file mode 100644 index 00000000..8e6a2962 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/AbstractMarshallingPayloadEndpoint.java @@ -0,0 +1,115 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.oxm.Marshaller; +import org.springframework.oxm.Unmarshaller; +import org.springframework.util.Assert; +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.context.MessageContext; + +/** + * Endpoint that unmarshals the request payload, and marshals the response object. This endpoint needs a + * Marshaller and Unmarshaller, both of which can be set using properties. An abstract + * template method is invoked using the request object as a parameter, and allows for a response object to be returned. + * + * @author Arjen Poutsma + * @see #setMarshaller(org.springframework.oxm.Marshaller) + * @see Marshaller + * @see #setUnmarshaller(org.springframework.oxm.Unmarshaller) + * @see Unmarshaller + * @see #invokeInternal(Object) + */ +public abstract class AbstractMarshallingPayloadEndpoint implements MessageEndpoint, InitializingBean { + + /** + * Logger available to subclasses. + */ + protected final Log logger = LogFactory.getLog(getClass()); + + private Marshaller marshaller; + + private Unmarshaller unmarshaller; + + /** + * Returns the marshalling used for transforming objects into XML. + */ + public final Marshaller getMarshaller() { + return marshaller; + } + + /** + * Sets the marshalling used for transforming objects into XML. + */ + public final void setMarshaller(Marshaller marshaller) { + this.marshaller = marshaller; + } + + /** + * Returns the unmarshaller used for transforming XML into objects. + */ + public final Unmarshaller getUnmarshaller() { + return unmarshaller; + } + + /** + * Sets the unmarshaller used for transforming XML into objects. + */ + public final void setUnmarshaller(Unmarshaller unmarshaller) { + this.unmarshaller = unmarshaller; + } + + public final void afterPropertiesSet() throws Exception { + Assert.notNull(marshaller, "marshaller is required"); + Assert.notNull(unmarshaller, "unmarshaller is required"); + afterMarshallerSet(); + } + + public final void invoke(MessageContext messageContext) throws Exception { + WebServiceMessage request = messageContext.getRequest(); + Object requestObject = unmarshaller.unmarshal(request.getPayloadSource()); + if (logger.isDebugEnabled()) { + logger.debug("Unmarshalled payload request to [" + requestObject + "]"); + } + Object responseObject = invokeInternal(requestObject); + if (responseObject != null) { + if (logger.isDebugEnabled()) { + logger.debug("Marshalling [" + responseObject + "] to response payload"); + } + WebServiceMessage response = messageContext.getResponse(); + marshaller.marshal(responseObject, response.getPayloadResult()); + } + } + + /** + * Template method that gets called after the marshaller and unmarshaller have been set. + */ + public void afterMarshallerSet() throws Exception { + } + + /** + * Template method. Subclasses must implement this. The unmarshaled request object is passed as a parameter, and an + * the returned object is marshalled to a response. If no response is required, return null. + * + * @param requestObject the unnmarshalled message payload as object + * @return the object to be marshalled as response, or null if a response is not required + */ + protected abstract Object invokeInternal(Object requestObject) throws Exception; +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/AbstractSaxPayloadEndpoint.java b/core/src/main/java/org/springframework/ws/endpoint/AbstractSaxPayloadEndpoint.java new file mode 100644 index 00000000..e8431413 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/AbstractSaxPayloadEndpoint.java @@ -0,0 +1,70 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.sax.SAXResult; + +import org.xml.sax.ContentHandler; + +/** + * Abstract base class for endpoints that handle the message payload with a SAX ContentHandler. Allows + * subclasses to create a response by returning a Source. + *

+ * Implementations of this class should create a new handler for each call of createContentHandler, because + * of thread safety. The handlers is later passed on to createResponse, so it can be used for holding + * request-specific state. + * + * @author Arjen Poutsma + * @see #createContentHandler() + * @see #getResponse(org.xml.sax.ContentHandler) + */ +public abstract class AbstractSaxPayloadEndpoint extends TransformerObjectSupport implements PayloadEndpoint { + + /** + * Invokes the provided ContentHandler and LexicalHandler on the given request. After + * parsing has been done, the provided response is returned. + * + * @see #createContentHandler() + * @see #getResponse(org.xml.sax.ContentHandler) + */ + public final Source invoke(Source request) throws Exception { + Transformer transformer = createTransformer(); + ContentHandler contentHandler = createContentHandler(); + SAXResult result = new SAXResult(contentHandler); + transformer.transform(request, result); + return getResponse(contentHandler); + } + + /** + * Returns the SAX ContentHandler used to parse the incoming request payload. A new instance should be + * created for each call, because of thread-safety. The content handler can be used to hold request-specific state. + * + * @return a SAX content handler to be used for parsing + */ + protected abstract ContentHandler createContentHandler(); + + /** + * Returns the response to be given, if any. This method is called after the request payload has been parse using + * the SAX ContentHandler. The passed ContentHandler is created by + * createContentHandler: it can be used to hold request-specific state. + * + * @param contentHandler the content handler used to parse the request + */ + protected abstract Source getResponse(ContentHandler contentHandler); +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/AbstractStaxEventPayloadEndpoint.java b/core/src/main/java/org/springframework/ws/endpoint/AbstractStaxEventPayloadEndpoint.java new file mode 100644 index 00000000..58a0f4d1 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/AbstractStaxEventPayloadEndpoint.java @@ -0,0 +1,235 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; + +import javax.xml.namespace.NamespaceContext; +import javax.xml.stream.XMLEventFactory; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLEventWriter; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.events.XMLEvent; +import javax.xml.stream.util.XMLEventConsumer; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.context.MessageContext; +import org.springframework.xml.transform.StaxResult; +import org.springframework.xml.transform.StaxSource; + +/** + * Abstract base class for endpoints that handle the message payload with event-based StAX. Allows subclasses to read + * the request with a XMLEventReader, and to create a response using a XMLEventWriter. + * + * @author Arjen Poutsma + * @see #invokeInternal(javax.xml.stream.XMLEventReader, javax.xml.stream.util.XMLEventConsumer, + * javax.xml.stream.XMLEventFactory) + * @see XMLEventReader + * @see XMLEventWriter + */ +public abstract class AbstractStaxEventPayloadEndpoint extends AbstractStaxPayloadEndpoint implements MessageEndpoint { + + private XMLEventFactory eventFactory; + + public final void invoke(MessageContext messageContext) throws Exception { + XMLEventReader eventReader = getEventReader(messageContext.getRequest().getPayloadSource()); + XMLEventWriter streamWriter = new ResponseCreatingEventWriter(messageContext); + invokeInternal(eventReader, streamWriter, getEventFactory()); + streamWriter.flush(); + } + + /** + * Create a XMLEventFactory that this endpoint will use to create XMLEvents. Can be + * overridden in subclasses, adding further initialization of the factory. The resulting + * XMLEventFactory is cached, so this method will only be called once. + * + * @return the created XMLEventFactory + */ + protected XMLEventFactory createXmlEventFactory() { + return XMLEventFactory.newInstance(); + } + + /** + * Returns an XMLEventFactory to read XML from. + */ + private XMLEventFactory getEventFactory() { + if (eventFactory == null) { + eventFactory = createXmlEventFactory(); + } + return eventFactory; + } + + private XMLEventReader getEventReader(Source source) throws XMLStreamException, TransformerException { + XMLEventReader eventReader = null; + if (source instanceof StaxSource) { + StaxSource staxSource = (StaxSource) source; + eventReader = staxSource.getXMLEventReader(); + if (eventReader == null && staxSource.getXMLStreamReader() != null) { + try { + eventReader = getInputFactory().createXMLEventReader(staxSource.getXMLStreamReader()); + } + catch (XMLStreamException ex) { + // ignore + } + } + } + if (eventReader == null) { + try { + eventReader = getInputFactory().createXMLEventReader(source); + } + catch (XMLStreamException ex) { + // ignore + } + } + if (eventReader == null) { + // as a final resort, transform the source to a stream, and read from that + Transformer transformer = createTransformer(); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + transformer.transform(source, new StreamResult(os)); + ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray()); + eventReader = getInputFactory().createXMLEventReader(is); + } + return eventReader; + } + + private XMLEventWriter getEventWriter(Result result) { + XMLEventWriter eventWriter = null; + if (result instanceof StaxResult) { + StaxResult staxResult = (StaxResult) result; + eventWriter = staxResult.getXMLEventWriter(); + } + if (eventWriter == null) { + try { + eventWriter = getOutputFactory().createXMLEventWriter(result); + } + catch (XMLStreamException ex) { + // ignore + } + } + return eventWriter; + } + + /** + * Template method. Subclasses must implement this. Offers the request payload as a XMLEventReader, and + * a XMLEventWriter to write the response payload to. + * + * @param eventReader the reader to read the payload events from + * @param eventWriter the writer to write payload events to + * @param eventFactory an XMLEventFactory that can be used to create events + */ + protected abstract void invokeInternal(XMLEventReader eventReader, + XMLEventConsumer eventWriter, + XMLEventFactory eventFactory) throws Exception; + + /** + * Implementation of the XMLEventWriter interface that creates a response + * WebServiceMessage as soon as any method is called, thus lazily creating the response. + */ + private class ResponseCreatingEventWriter implements XMLEventWriter { + + private XMLEventWriter eventWriter; + + private MessageContext messageContext; + + private ByteArrayOutputStream os; + + public ResponseCreatingEventWriter(MessageContext messageContext) { + this.messageContext = messageContext; + } + + public NamespaceContext getNamespaceContext() { + return eventWriter.getNamespaceContext(); + } + + public void setNamespaceContext(NamespaceContext context) throws XMLStreamException { + createEventWriter(); + eventWriter.setNamespaceContext(context); + } + + public void add(XMLEventReader reader) throws XMLStreamException { + createEventWriter(); + while (reader.hasNext()) { + add(reader.nextEvent()); + } + } + + public void add(XMLEvent event) throws XMLStreamException { + createEventWriter(); + eventWriter.add(event); + if (event.isEndDocument()) { + if (os != null) { + eventWriter.flush(); + // if we used an output stream cache, we have to transform it to the response again + try { + Transformer transformer = createTransformer(); + ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray()); + transformer.transform(new StreamSource(is), messageContext.getResponse().getPayloadResult()); + } + catch (TransformerException ex) { + throw new XMLStreamException(ex); + } + } + } + } + + public void close() throws XMLStreamException { + if (eventWriter != null) { + eventWriter.close(); + } + } + + public void flush() throws XMLStreamException { + if (eventWriter != null) { + eventWriter.flush(); + } + } + + public String getPrefix(String uri) throws XMLStreamException { + createEventWriter(); + return eventWriter.getPrefix(uri); + } + + public void setDefaultNamespace(String uri) throws XMLStreamException { + createEventWriter(); + eventWriter.setDefaultNamespace(uri); + } + + public void setPrefix(String prefix, String uri) throws XMLStreamException { + createEventWriter(); + eventWriter.setPrefix(prefix, uri); + } + + private void createEventWriter() throws XMLStreamException { + if (eventWriter == null) { + WebServiceMessage response = messageContext.getResponse(); + eventWriter = getEventWriter(response.getPayloadResult()); + if (eventWriter == null) { + // as a final resort, use a stream, and transform that at endDocument() + os = new ByteArrayOutputStream(); + eventWriter = getOutputFactory().createXMLEventWriter(os); + } + } + } + } +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/AbstractStaxPayloadEndpoint.java b/core/src/main/java/org/springframework/ws/endpoint/AbstractStaxPayloadEndpoint.java new file mode 100644 index 00000000..3d57418c --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/AbstractStaxPayloadEndpoint.java @@ -0,0 +1,77 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLOutputFactory; + +/** + * Abstract base class for endpoints use StAX. Provides an XMLInputFactory and an + * XMLOutputFactory. + * + * @author Arjen Poutsma + * @see XMLInputFactory + * @see XMLOutputFactory + */ +public abstract class AbstractStaxPayloadEndpoint extends TransformerObjectSupport { + + private XMLInputFactory inputFactory; + + private XMLOutputFactory outputFactory; + + /** + * Returns an XMLInputFactory to read XML from. + */ + protected final XMLInputFactory getInputFactory() { + if (inputFactory == null) { + inputFactory = createXmlInputFactory(); + } + return inputFactory; + } + + /** + * Returns an XMLOutputFactory to write XML to. + */ + protected final XMLOutputFactory getOutputFactory() { + if (outputFactory == null) { + outputFactory = createXmlOutputFactory(); + } + return outputFactory; + } + + /** + * Create a XMLInputFactory that this endpoint will use to create XMLStreamReaders or + * XMLEventReader. Can be overridden in subclasses, adding further initialization of the factory. The + * resulting XMLInputFactory is cached, so this method will only be called once. + * + * @return the created XMLInputFactory + */ + protected XMLInputFactory createXmlInputFactory() { + return XMLInputFactory.newInstance(); + } + + /** + * Create a XMLOutputFactory that this endpoint will use to create XMLStreamWriterss or + * XMLEventWriters. Can be overridden in subclasses, adding further initialization of the factory. The + * resulting XMLOutputFactory is cached, so this method will only be called once. + * + * @return the created XMLOutputFactory + */ + protected XMLOutputFactory createXmlOutputFactory() { + return XMLOutputFactory.newInstance(); + } +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/AbstractStaxStreamPayloadEndpoint.java b/core/src/main/java/org/springframework/ws/endpoint/AbstractStaxStreamPayloadEndpoint.java new file mode 100644 index 00000000..2448f217 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/AbstractStaxStreamPayloadEndpoint.java @@ -0,0 +1,321 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import javax.xml.namespace.NamespaceContext; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.context.MessageContext; +import org.springframework.xml.stream.XmlEventStreamReader; +import org.springframework.xml.transform.StaxResult; +import org.springframework.xml.transform.StaxSource; + +/** + * Abstract base class for endpoints that handle the message payload with streaming StAX. Allows subclasses to read the + * request with a XMLStreamReader, and to create a response using a XMLStreamWriter. + * + * @author Arjen Poutsma + * @see #invokeInternal(javax.xml.stream.XMLStreamReader, javax.xml.stream.XMLStreamWriter) + * @see XMLStreamReader + * @see XMLStreamWriter + */ +public abstract class AbstractStaxStreamPayloadEndpoint extends AbstractStaxPayloadEndpoint implements MessageEndpoint { + + public final void invoke(MessageContext messageContext) throws Exception { + XMLStreamReader streamReader = getStreamReader(messageContext.getRequest().getPayloadSource()); + XMLStreamWriter streamWriter = new ResponseCreatingStreamWriter(messageContext); + invokeInternal(streamReader, streamWriter); + streamWriter.close(); + } + + private XMLStreamReader getStreamReader(Source source) throws XMLStreamException, TransformerException { + XMLStreamReader streamReader = null; + if (source instanceof StaxSource) { + streamReader = ((StaxSource) source).getXMLStreamReader(); + StaxSource staxSource = (StaxSource) source; + streamReader = staxSource.getXMLStreamReader(); + if (streamReader == null && staxSource.getXMLEventReader() != null) { + try { + streamReader = new XmlEventStreamReader(staxSource.getXMLEventReader()); + } + catch (XMLStreamException ex) { + // ignore + } + } + + } + if (streamReader == null) { + try { + streamReader = getInputFactory().createXMLStreamReader(source); + } + catch (XMLStreamException ex) { + // ignore + } + } + if (streamReader == null) { + // as a final resort, transform the source to a stream, and read from that + Transformer transformer = createTransformer(); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + transformer.transform(source, new StreamResult(os)); + ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray()); + streamReader = getInputFactory().createXMLStreamReader(is); + } + return streamReader; + } + + private XMLStreamWriter getStreamWriter(Result result) { + XMLStreamWriter streamWriter = null; + if (result instanceof StaxResult) { + StaxResult staxResult = (StaxResult) result; + streamWriter = staxResult.getXMLStreamWriter(); + } + if (streamWriter == null) { + try { + streamWriter = getOutputFactory().createXMLStreamWriter(result); + } + catch (XMLStreamException ex) { + // ignore + } + } + return streamWriter; + } + + /** + * Template method. Subclasses must implement this. Offers the request payload as a XMLStreamReader, + * and a XMLStreamWriter to write the response payload to. + * + * @param streamReader the reader to read the payload from + * @param streamWriter the writer to write the payload to + */ + protected abstract void invokeInternal(XMLStreamReader streamReader, XMLStreamWriter streamWriter) throws Exception; + + /** + * Implementation of the XMLStreamWriter interface that creates a response + * WebServiceMessage as soon as any method is called, thus lazily creating the response. + */ + private class ResponseCreatingStreamWriter implements XMLStreamWriter { + + private MessageContext messageContext; + + private XMLStreamWriter streamWriter; + + private ByteArrayOutputStream os; + + private ResponseCreatingStreamWriter(MessageContext messageContext) { + this.messageContext = messageContext; + } + + public NamespaceContext getNamespaceContext() { + return streamWriter.getNamespaceContext(); + } + + public void setNamespaceContext(NamespaceContext context) throws XMLStreamException { + createStreamWriter(); + streamWriter.setNamespaceContext(context); + } + + public void close() throws XMLStreamException { + if (streamWriter != null) { + streamWriter.close(); + if (os != null) { + streamWriter.flush(); + // if we used an output stream cache, we have to transform it to the response again + try { + Transformer transformer = createTransformer(); + ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray()); + transformer.transform(new StreamSource(is), messageContext.getResponse().getPayloadResult()); + os = null; + } + catch (TransformerException ex) { + throw new XMLStreamException(ex); + } + } + streamWriter = null; + } + + } + + public void flush() throws XMLStreamException { + if (streamWriter != null) { + streamWriter.flush(); + } + } + + public String getPrefix(String uri) throws XMLStreamException { + createStreamWriter(); + return streamWriter.getPrefix(uri); + } + + public Object getProperty(String name) throws IllegalArgumentException { + return streamWriter.getProperty(name); + } + + public void setDefaultNamespace(String uri) throws XMLStreamException { + createStreamWriter(); + streamWriter.setDefaultNamespace(uri); + } + + public void setPrefix(String prefix, String uri) throws XMLStreamException { + createStreamWriter(); + streamWriter.setPrefix(prefix, uri); + } + + public void writeAttribute(String localName, String value) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeAttribute(localName, value); + } + + public void writeAttribute(String namespaceURI, String localName, String value) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeAttribute(namespaceURI, localName, value); + } + + public void writeAttribute(String prefix, String namespaceURI, String localName, String value) + throws XMLStreamException { + createStreamWriter(); + streamWriter.writeAttribute(prefix, namespaceURI, localName, value); + } + + public void writeCData(String data) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeCData(data); + } + + public void writeCharacters(String text) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeCharacters(text); + } + + public void writeCharacters(char[] text, int start, int len) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeCharacters(text, start, len); + } + + public void writeComment(String data) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeComment(data); + } + + public void writeDTD(String dtd) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeDTD(dtd); + } + + public void writeDefaultNamespace(String namespaceURI) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeDefaultNamespace(namespaceURI); + } + + public void writeEmptyElement(String localName) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeEmptyElement(localName); + } + + public void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeEmptyElement(namespaceURI, localName); + } + + public void writeEmptyElement(String prefix, String localName, String namespaceURI) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeEmptyElement(prefix, localName, namespaceURI); + } + + public void writeEndDocument() throws XMLStreamException { + createStreamWriter(); + streamWriter.writeEndDocument(); + } + + public void writeEndElement() throws XMLStreamException { + createStreamWriter(); + streamWriter.writeEndElement(); + } + + public void writeEntityRef(String name) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeEntityRef(name); + } + + public void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeNamespace(prefix, namespaceURI); + } + + public void writeProcessingInstruction(String target) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeProcessingInstruction(target); + } + + public void writeProcessingInstruction(String target, String data) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeProcessingInstruction(target, data); + } + + public void writeStartDocument() throws XMLStreamException { + createStreamWriter(); + streamWriter.writeStartDocument(); + } + + public void writeStartDocument(String version) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeStartDocument(version); + } + + public void writeStartDocument(String encoding, String version) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeStartDocument(encoding, version); + } + + public void writeStartElement(String localName) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeStartElement(localName); + } + + public void writeStartElement(String namespaceURI, String localName) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeStartElement(namespaceURI, localName); + } + + public void writeStartElement(String prefix, String localName, String namespaceURI) throws XMLStreamException { + createStreamWriter(); + streamWriter.writeStartElement(prefix, localName, namespaceURI); + } + + private void createStreamWriter() throws XMLStreamException { + if (streamWriter == null) { + WebServiceMessage response = messageContext.getResponse(); + streamWriter = getStreamWriter(response.getPayloadResult()); + if (streamWriter == null) { + // as a final resort, use a stream, and transform that at endDocument() + os = new ByteArrayOutputStream(); + streamWriter = getOutputFactory().createXMLStreamWriter(os); + } + } + } + } +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/AbstractXomPayloadEndpoint.java b/core/src/main/java/org/springframework/ws/endpoint/AbstractXomPayloadEndpoint.java new file mode 100644 index 00000000..6366fb4d --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/AbstractXomPayloadEndpoint.java @@ -0,0 +1,123 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import java.io.IOException; + +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.sax.SAXSource; +import javax.xml.transform.stream.StreamSource; + +import nu.xom.Builder; +import nu.xom.Document; +import nu.xom.Element; +import nu.xom.ParsingException; +import nu.xom.converters.DOMConverter; +import org.w3c.dom.Node; +import org.xml.sax.InputSource; + +import org.springframework.xml.transform.StringSource; + +/** + * Abstract base class for endpoints that handle the message payload as XOM elements. Offers the message payload as a + * XOM Element, and allows subclasses to create a response by returning an Element. + *

+ * An AbstractXomPayloadEndpoint only accept one payload element. Multiple payload elements are not in + * accordance with WS-I. + * + * @author Arjen Poutsma + * @see Element + */ +public abstract class AbstractXomPayloadEndpoint implements PayloadEndpoint { + + public final Source invoke(Source request) throws Exception { + Element requestElement = null; + if (request instanceof DOMSource) { + requestElement = handleDomSource(request); + } + else if (request instanceof SAXSource) { + requestElement = handleSaxSource(request); + } + else if (request instanceof StreamSource) { + requestElement = handleStreamSource(request); + } + else { + throw new IllegalArgumentException( + "Source [" + request.getClass().getName() + "] is neither SAXSource, DOMSource, nor StreamSource"); + } + Element responseElement = invokeInternal(requestElement); + return responseElement != null ? new StringSource(responseElement.toXML()) : null; + } + + private Element handleStreamSource(Source request) throws ParsingException, IOException { + StreamSource streamSource = (StreamSource) request; + Builder builder = new Builder(); + Document document = null; + if (streamSource.getInputStream() != null) { + document = builder.build(streamSource.getInputStream()); + } + else if (streamSource.getReader() != null) { + document = builder.build(streamSource.getReader()); + } + else { + throw new IllegalArgumentException("StreamSource contains neither byte stream nor character stream"); + } + return document.getRootElement(); + } + + private Element handleSaxSource(Source request) throws ParsingException, IOException { + SAXSource saxSource = (SAXSource) request; + Builder builder = new Builder(saxSource.getXMLReader()); + InputSource inputSource = saxSource.getInputSource(); + Document document = null; + if (inputSource.getByteStream() != null) { + document = builder.build(inputSource.getByteStream()); + } + else if (inputSource.getCharacterStream() != null) { + document = builder.build(inputSource.getCharacterStream()); + } + else { + throw new IllegalArgumentException( + "InputSource in SAXSource contains neither byte stream nor " + "character stream"); + } + return document.getRootElement(); + } + + private Element handleDomSource(Source request) { + Node w3cNode = ((DOMSource) request).getNode(); + org.w3c.dom.Element w3cElement = null; + if (w3cNode.getNodeType() == Node.ELEMENT_NODE) { + w3cElement = (org.w3c.dom.Element) w3cNode; + } + else if (w3cNode.getNodeType() == Node.DOCUMENT_NODE) { + org.w3c.dom.Document w3cDocument = (org.w3c.dom.Document) w3cNode; + w3cElement = w3cDocument.getDocumentElement(); + } + return DOMConverter.convert(w3cElement); + } + + /** + * Template method. Subclasses must implement this. Offers the request payload as a XOM Element, and + * allows subclasses to return a response Element. + * + * @param requestElement the contents of the SOAP message as XOM element + * @return the response element. Can be null to specify no response. + */ + protected abstract Element invokeInternal(Element requestElement) throws Exception; + +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/MessageEndpoint.java b/core/src/main/java/org/springframework/ws/endpoint/MessageEndpoint.java new file mode 100644 index 00000000..d606d5f9 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/MessageEndpoint.java @@ -0,0 +1,40 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import org.springframework.ws.context.MessageContext; + +/** + * Defines the basic contract for Web Services interested in the entire mesage payload. + *

+ * The main entrypoint is invoke, which gets invoked with the a message context. This context contains the + * request, and can be used to create a response. + * + * @author Arjen Poutsma + * @see #invoke(org.springframework.ws.context.MessageContext) + */ +public interface MessageEndpoint { + + /** + * Invokes an operation. The given message context can be used to create a response. + * + * @param messageContext the message context + * @throws Exception if an exception occurs + */ + void invoke(MessageContext messageContext) throws Exception; + +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/MessageEndpointAdapter.java b/core/src/main/java/org/springframework/ws/endpoint/MessageEndpointAdapter.java new file mode 100644 index 00000000..22cd94ca --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/MessageEndpointAdapter.java @@ -0,0 +1,37 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import org.springframework.ws.EndpointAdapter; +import org.springframework.ws.context.MessageContext; + +/** + * Adapter to use a MessageEndpoint as the endpoint for a EndpointInvocationChain. + * + * @author Arjen Poutsma + * @see org.springframework.ws.EndpointInvocationChain + */ +public class MessageEndpointAdapter implements EndpointAdapter { + + public boolean supports(Object endpoint) { + return endpoint instanceof MessageEndpoint; + } + + public void invoke(MessageContext messageContext, Object endpoint) throws Exception { + ((MessageEndpoint) endpoint).invoke(messageContext); + } +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/PayloadEndpoint.java b/core/src/main/java/org/springframework/ws/endpoint/PayloadEndpoint.java new file mode 100644 index 00000000..5d7a8916 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/PayloadEndpoint.java @@ -0,0 +1,39 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import javax.xml.transform.Source; + +/** + * Defines the basic contract for Web Services interested in the mesage payload. + *

+ * The main entrypoint is invoke, which gets invoked with the contents of the requesting message. + * + * @author Arjen Poutsma + * @see #invoke(javax.xml.transform.Source) + */ +public interface PayloadEndpoint { + + /** + * Invokes an operation. + * + * @param request the request message + * @return the response message, may be null + * @throws Exception if an exception occurs + */ + Source invoke(Source request) throws Exception; +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/PayloadEndpointAdapter.java b/core/src/main/java/org/springframework/ws/endpoint/PayloadEndpointAdapter.java new file mode 100644 index 00000000..44ef5a55 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/PayloadEndpointAdapter.java @@ -0,0 +1,49 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; + +import org.springframework.ws.EndpointAdapter; +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.context.MessageContext; + +/** + * Adapter to use a PayloadEndpoint as the endpoint for a EndpointInvocationChain. + * + * @author Arjen Poutsma + * @see PayloadEndpoint + * @see org.springframework.ws.EndpointInvocationChain + */ +public class PayloadEndpointAdapter extends TransformerObjectSupport implements EndpointAdapter { + + public boolean supports(Object endpoint) { + return endpoint instanceof PayloadEndpoint; + } + + public void invoke(MessageContext messageContext, Object endpoint) throws Exception { + PayloadEndpoint payloadEndpoint = (PayloadEndpoint) endpoint; + Source requestSource = messageContext.getRequest().getPayloadSource(); + Source responseSource = payloadEndpoint.invoke(requestSource); + if (responseSource != null) { + WebServiceMessage response = messageContext.getResponse(); + Transformer transformer = createTransformer(); + transformer.transform(responseSource, response.getPayloadResult()); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/TransformerObjectSupport.java b/core/src/main/java/org/springframework/ws/endpoint/TransformerObjectSupport.java new file mode 100644 index 00000000..1b12f9c0 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/TransformerObjectSupport.java @@ -0,0 +1,72 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.TransformerFactoryConfigurationError; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * Convenient base class for objects that use a Transformer. Subclasses can call + * createTransformer to obtain a transformer. This should be done per incoming request, because + * Transformer instances are not thread-safe. + * + * @author Arjen Poutsma + * @see Transformer + * @see #createTransformer() + */ +public abstract class TransformerObjectSupport { + + /** + * Logger available to subclasses. + */ + protected final Log logger = LogFactory.getLog(getClass()); + + private static TransformerFactory transformerFactory; + + /** + * Creates a new Transformer. Must be called per request, as transformer is not thread-safe. + * + * @return the created transformer + * @throws TransformerConfigurationException + * if thrown by JAXP methods + */ + protected final Transformer createTransformer() throws TransformerConfigurationException { + if (transformerFactory == null) { + transformerFactory = createTransformerFactory(); + } + return transformerFactory.newTransformer(); + } + + /** + * Create a TransformerFactory that this endpoint will use to create Transformers. Can be + * overridden in subclasses, adding further initialization of the factory. The resulting + * TransformerFactory is cached, so this method will only be called once. + * + * @return the created TransformerFactory + * @throws TransformerFactoryConfigurationError + * if thrown by JAXP methods + */ + protected TransformerFactory createTransformerFactory() throws TransformerFactoryConfigurationError { + return TransformerFactory.newInstance(); + } + +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/interceptor/AbstractValidatingInterceptor.java b/core/src/main/java/org/springframework/ws/endpoint/interceptor/AbstractValidatingInterceptor.java new file mode 100644 index 00000000..78c7a59b --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/interceptor/AbstractValidatingInterceptor.java @@ -0,0 +1,327 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.interceptor; + +import java.io.IOException; +import java.util.Locale; +import javax.xml.namespace.QName; +import javax.xml.transform.Source; +import javax.xml.transform.TransformerException; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.core.io.Resource; +import org.springframework.util.Assert; +import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; +import org.springframework.ws.EndpointInterceptor; +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.endpoint.TransformerObjectSupport; +import org.springframework.ws.soap.SoapBody; +import org.springframework.ws.soap.SoapFault; +import org.springframework.ws.soap.SoapFaultDetail; +import org.springframework.ws.soap.SoapFaultDetailElement; +import org.springframework.ws.soap.context.SoapMessageContext; +import org.springframework.xml.namespace.QNameUtils; +import org.springframework.xml.validation.XmlValidator; +import org.springframework.xml.validation.XmlValidatorFactory; +import org.xml.sax.SAXException; +import org.xml.sax.SAXParseException; + +/** + * Abstract base class for EndpointInterceptor implementations that validate part of the message using a + * schema. The exact message part is determined by the getValidationRequestSource and + * getValidationResponseSource template methods. + *

+ * By default, only the request message is validated, but this behaviour can be changed using the + * validateRequest and validateResponse properties. Responses that contains SOAP faults are + * not validated. + * + * @author Arjen Poutsma + * @see #getValidationRequestSource(org.springframework.ws.WebServiceMessage) + * @see #getValidationResponseSource(org.springframework.ws.WebServiceMessage) + */ +public abstract class AbstractValidatingInterceptor extends TransformerObjectSupport + implements EndpointInterceptor, InitializingBean { + + /** + * Default SOAP Fault Detail name used when a validation errors occur on the request. + * + * @see #setDetailElementName(javax.xml.namespace.QName) + */ + public static final QName DEFAULT_DETAIL_ELEMENT_NAME = + QNameUtils.createQName("http://springframework.org/spring-ws", "ValidationError", "spring-ws"); + + /** + * Default SOAP Fault string used when a validation errors occur on the request. + * + * @see #setFaultStringOrReason(String) + */ + public static final String DEFAULT_FAULTSTRING_OR_REASON = "Validation error"; + + protected final Log logger = LogFactory.getLog(getClass()); + + private boolean addValidationErrorDetail = true; + + private QName detailElementName = DEFAULT_DETAIL_ELEMENT_NAME; + + private String faultStringOrReason = DEFAULT_FAULTSTRING_OR_REASON; + + private Locale faultStringOrReasonLocale = Locale.ENGLISH; + + private String schemaLanguage = XmlValidatorFactory.SCHEMA_W3C_XML; + + private Resource[] schemas; + + private boolean validateRequest = true; + + private boolean validateResponse = false; + + private XmlValidator validator; + + public boolean getAddValidationErrorDetail() { + return addValidationErrorDetail; + } + + /** + * Indicates whether a SOAP Fault detail element should be created when a validation error occurs. This detail + * element will contain the exact validation errors. It is only added when the underlying message is a + * SoapMessage. Defaults to true. + * + * @see org.springframework.ws.soap.SoapFault#addFaultDetail() + */ + public void setAddValidationErrorDetail(boolean addValidationErrorDetail) { + this.addValidationErrorDetail = addValidationErrorDetail; + } + + /** + * Returns the fault detail element name when validation errors occur on the request. + */ + public QName getDetailElementName() { + return detailElementName; + } + + /** + * Sets the fault detail element name when validation errors occur on the request. Defaults to + * DEFAULT_DETAIL_ELEMENT_NAME. + * + * @see #DEFAULT_DETAIL_ELEMENT_NAME + */ + public void setDetailElementName(QName detailElementName) { + this.detailElementName = detailElementName; + } + + /** + * Sets the SOAP faultstring or Reason used when validation errors occur on the request. + */ + public String getFaultStringOrReason() { + return faultStringOrReason; + } + + /** + * Sets the SOAP faultstring or Reason used when validation errors occur on the request. + * It is only added when the underlying message is a SoapMessage. Defaults to + * DEFAULT_FAULTSTRING_OR_REASON. + * + * @see #DEFAULT_FAULTSTRING_OR_REASON + */ + public void setFaultStringOrReason(String faultStringOrReason) { + this.faultStringOrReason = faultStringOrReason; + } + + /** + * Returns the SOAP fault reason locale used when validation errors occur on the request. + */ + public Locale getFaultStringOrReasonLocale() { + return faultStringOrReasonLocale; + } + + /** + * Sets the SOAP fault reason locale used when validation errors occur on the request. It is only added when the + * underlying message is a SoapMessage. Defaults to English. + * + * @see java.util.Locale#ENGLISH + */ + public void setFaultStringOrReasonLocale(Locale faultStringOrReasonLocale) { + this.faultStringOrReasonLocale = faultStringOrReasonLocale; + } + + public String getSchemaLanguage() { + return schemaLanguage; + } + + /** + * Sets the schema language. Default is the W3C XML Schema: http://www.w3.org/2001/XMLSchema". + * + * @see org.springframework.xml.validation.XmlValidatorFactory#SCHEMA_W3C_XML + * @see org.springframework.xml.validation.XmlValidatorFactory#SCHEMA_RELAX_NG + */ + public void setSchemaLanguage(String schemaLanguage) { + this.schemaLanguage = schemaLanguage; + } + + /** + * Returns the schema resources to use for validation. + */ + public Resource[] getSchemas() { + return schemas; + } + + /** + * Sets the schema resources to use for validation. Setting either this property or schema is + * required. + */ + public void setSchemas(Resource[] schemas) { + Assert.notEmpty(schemas, "schemas must not be empty or null"); + for (int i = 0; i < schemas.length; i++) { + Assert.notNull(schemas[i], "schema must not be null"); + Assert.isTrue(schemas[i].exists(), "schema \"" + schemas[i] + "\" does not exit"); + } + this.schemas = schemas; + } + + /** + * Sets the schema resource to use for validation. Setting either this property or schemas is + * required. + */ + public void setSchema(Resource schema) { + setSchemas(new Resource[]{schema}); + } + + /** + * Indicates whether the request should be validated against the schema. Default is true. + */ + public void setValidateRequest(boolean validateRequest) { + this.validateRequest = validateRequest; + } + + /** + * Indicates whether the response should be validated against the schema. Default is false. + */ + public void setValidateResponse(boolean validateResponse) { + this.validateResponse = validateResponse; + } + + /** + * Validates the request message in the given message context. Validation only occurs if + * validateRequest is set to true, which is the default. + *

+ * Returns true if the request is valid, or false if it isn't. Additionally, when the + * messageContext is a SoapMessageContext, a SOAP Fault is added as response. + * + * @param messageContext the message context + * @return true if the message is valid; false otherwise + * @see #setValidateRequest(boolean) + */ + public boolean handleRequest(MessageContext messageContext, Object endpoint) + throws IOException, SAXException, TransformerException { + if (validateRequest) { + Source requestSource = getValidationRequestSource(messageContext.getRequest()); + if (requestSource != null) { + SAXParseException[] errors = validator.validate(requestSource); + if (!ObjectUtils.isEmpty(errors)) { + for (int i = 0; i < errors.length; i++) { + logger.warn("XML validation error on request: " + errors[i].getMessage()); + } + if (messageContext instanceof SoapMessageContext) { + createRequestValidationFault((SoapMessageContext) messageContext, errors); + } + return false; + } + else if (logger.isDebugEnabled()) { + logger.debug("Request message validated"); + } + } + } + return true; + } + + /** + * Validates the response message in the given message context. Validation only occurs if + * validateResponse is set to true, which is not the default. + *

+ * Returns true if the request is valid, or false if it isn't. + * + * @param messageContext the message context. + * @return true if the response is valid; false otherwise + * @see #setValidateResponse(boolean) + */ + public boolean handleResponse(MessageContext messageContext, Object endpoint) throws IOException, SAXException { + if (validateResponse) { + Source responseSource = getValidationResponseSource(messageContext.getResponse()); + if (responseSource != null) { + SAXParseException[] errors = validator.validate(responseSource); + if (!ObjectUtils.isEmpty(errors)) { + for (int i = 0; i < errors.length; i++) { + logger.error("XML validation error on response: " + errors[i].getMessage()); + } + return false; + } + else if (logger.isDebugEnabled()) { + logger.debug("Response message validated"); + } + } + } + return true; + } + + public void afterPropertiesSet() throws Exception { + Assert.notEmpty(schemas, "setting either the schema or schemas property is required"); + Assert.hasLength(schemaLanguage, "schemaLanguage is required"); + for (int i = 0; i < schemas.length; i++) { + Assert.isTrue(schemas[i].exists(), "schema [" + schemas + "] does not exist"); + } + if (logger.isInfoEnabled()) { + logger.info("Validating using " + StringUtils.arrayToCommaDelimitedString(schemas)); + } + validator = XmlValidatorFactory.createValidator(schemas, schemaLanguage); + } + + /** + * Creates a response soap message containing a SoapFault that descibes the validation errors. + */ + protected void createRequestValidationFault(SoapMessageContext context, SAXParseException[] errors) + throws TransformerException { + SoapBody body = context.getSoapResponse().getSoapBody(); + SoapFault fault = body.addClientOrSenderFault(getFaultStringOrReason(), getFaultStringOrReasonLocale()); + if (getAddValidationErrorDetail()) { + SoapFaultDetail detail = fault.addFaultDetail(); + for (int i = 0; i < errors.length; i++) { + SoapFaultDetailElement detailElement = detail.addFaultDetailElement(getDetailElementName()); + detailElement.addText(errors[i].getMessage()); + } + } + } + + /** + * Abstract template method that returns the part of the request message that is to be validated. + * + * @param request the request message + * @return the part of the message that is to validated, or null not to validate anything + */ + protected abstract Source getValidationRequestSource(WebServiceMessage request); + + /** + * Abstract template method that returns the part of the response message that is to be validated. + * + * @param response the response message + * @return the part of the message that is to validated, or null not to validate anything + */ + protected abstract Source getValidationResponseSource(WebServiceMessage response); +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/interceptor/EndpointInterceptorAdapter.java b/core/src/main/java/org/springframework/ws/endpoint/interceptor/EndpointInterceptorAdapter.java new file mode 100644 index 00000000..c9e14a23 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/interceptor/EndpointInterceptorAdapter.java @@ -0,0 +1,71 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.interceptor; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.ws.EndpointInterceptor; +import org.springframework.ws.context.MessageContext; +import org.w3c.dom.Element; + +/** + * Default implementation of the EndpointInterceptor interface, for simplified implementation of + * pre-only/post-only interceptors. + * + * @author Arjen Poutsma + */ +public class EndpointInterceptorAdapter implements EndpointInterceptor { + + /** + * Logger available to subclasses + */ + protected final Log logger = LogFactory.getLog(getClass()); + + /** + * Returns false. + */ + public boolean understands(Element header) { + return false; + } + + /** + * Returns true. + * + * @return true + */ + public boolean handleRequest(MessageContext messageContext, Object endpoint) throws Exception { + return true; + } + + /** + * Returns true. + * + * @return true + */ + public boolean handleResponse(MessageContext messageContext, Object endpoint) throws Exception { + return true; + } + + /** + * Returns true. + * + * @return true + */ + public boolean handleFault(MessageContext messageContext, Object endpoint) { + return true; + } +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/interceptor/PayloadLoggingInterceptor.java b/core/src/main/java/org/springframework/ws/endpoint/interceptor/PayloadLoggingInterceptor.java new file mode 100644 index 00000000..9167112d --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/interceptor/PayloadLoggingInterceptor.java @@ -0,0 +1,38 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.interceptor; + +import javax.xml.transform.Source; + +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.endpoint.AbstractLoggingInterceptor; + +/** + * Simple EndpointInterceptor that logs the payload of request and response messages. By default, both + * request and response messages are logged, but this behaviour can be changed using the logRequest and + * logResponse properties. + * + * @author Arjen Poutsma + * @see #setLogRequest(boolean) + * @see #setLogResponse(boolean) + */ +public class PayloadLoggingInterceptor extends AbstractLoggingInterceptor { + + protected Source getSource(WebServiceMessage message) { + return message.getPayloadSource(); + } +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/interceptor/PayloadTransformingInterceptor.java b/core/src/main/java/org/springframework/ws/endpoint/interceptor/PayloadTransformingInterceptor.java new file mode 100644 index 00000000..64450831 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/interceptor/PayloadTransformingInterceptor.java @@ -0,0 +1,131 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.interceptor; + +import javax.xml.transform.Templates; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.sax.SAXSource; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.core.io.Resource; +import org.springframework.util.Assert; +import org.springframework.ws.EndpointInterceptor; +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.context.MessageContext; +import org.springframework.xml.sax.SaxUtils; + +/** + * Interceptor that transforms the payload of WebServiceMessages using XSLT stylesheet. Allows for seperate + * stylesheets for request and response. This interceptor is especially useful when supporting with multiple version of + * a Web service: you can transform the older message format to the new format. + *

+ * The stylesheets to use can be set using the requestXslt and responseXslt properties. Both + * of these are optional: if not set, the message is simply not transformed. Setting one of the two is required, + * though. + * + * @author Arjen Poutsma + * @see #setRequestXslt(org.springframework.core.io.Resource) + * @see #setResponseXslt(org.springframework.core.io.Resource) + */ +public class PayloadTransformingInterceptor implements EndpointInterceptor, InitializingBean { + + private static final Log logger = LogFactory.getLog(PayloadTransformingInterceptor.class); + + private Resource requestXslt; + + private Resource responseXslt; + + private Templates requestTemplates; + + private Templates responseTemplates; + + /** + * Sets the XSLT stylesheet to use for transforming incoming request. + */ + public void setRequestXslt(Resource requestXslt) { + this.requestXslt = requestXslt; + } + + /** + * Sets the XSLT stylesheet to use for transforming outgoing responses. + */ + public void setResponseXslt(Resource responseXslt) { + this.responseXslt = responseXslt; + } + + /** + * Transforms the request message in the given message context using a provided stylesheet. Transformation only + * occurs if the requestXslt has been set. + * + * @param messageContext the message context + * @return always returns true + * @see #setRequestXslt(org.springframework.core.io.Resource) + */ + public boolean handleRequest(MessageContext messageContext, Object endpoint) throws Exception { + if (requestTemplates != null) { + WebServiceMessage request = messageContext.getRequest(); + Transformer transformer = requestTemplates.newTransformer(); + transformer.transform(request.getPayloadSource(), request.getPayloadResult()); + logger.debug("Request message transformed"); + } + return true; + } + + /** + * Transforms the response message in the given message context using a stylesheet. Transformation only occurs if + * the responseXslt has been set. + * + * @param messageContext the message context + * @return always returns true + * @see #setResponseXslt(org.springframework.core.io.Resource) + */ + public boolean handleResponse(MessageContext messageContext, Object endpoint) throws Exception { + if (responseTemplates != null) { + WebServiceMessage response = messageContext.getResponse(); + Transformer transformer = responseTemplates.newTransformer(); + transformer.transform(response.getPayloadSource(), response.getPayloadResult()); + logger.debug("Response message transformed"); + } + return true; + } + + public void afterPropertiesSet() throws Exception { + if (requestXslt == null && responseXslt == null) { + throw new IllegalArgumentException("Setting either 'requestXslt' or 'responseXslt' is required"); + } + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + if (requestXslt != null) { + Assert.isTrue(requestXslt.exists(), "requestXslt \"" + requestXslt + "\" does not exit"); + if (logger.isInfoEnabled()) { + logger.info("Transforming request using " + requestXslt); + } + SAXSource requestSource = new SAXSource(SaxUtils.createInputSource(requestXslt)); + requestTemplates = transformerFactory.newTemplates(requestSource); + } + if (responseXslt != null) { + Assert.isTrue(responseXslt.exists(), "responseXslt \"" + responseXslt + "\" does not exit"); + if (logger.isInfoEnabled()) { + logger.info("Transforming response using " + responseXslt); + } + SAXSource responseSource = new SAXSource(SaxUtils.createInputSource(responseXslt)); + responseTemplates = transformerFactory.newTemplates(responseSource); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/interceptor/PayloadValidatingInterceptor.java b/core/src/main/java/org/springframework/ws/endpoint/interceptor/PayloadValidatingInterceptor.java new file mode 100644 index 00000000..e33819a9 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/interceptor/PayloadValidatingInterceptor.java @@ -0,0 +1,54 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.interceptor; + +import javax.xml.transform.Source; + +import org.springframework.ws.WebServiceMessage; + +/** + * Interceptor that validates the contents of WebServiceMessages using a schema. Allows for both W3C XML + * and RELAX NG schemas. + *

+ * When the payload is invalid, this interceptor stops processing of the interceptor chain. Additionally, if the message + * is a SOAP request message, a SOAP Fault is created as reply. Invalid SOAP responses do not result in a fault. + *

+ * The schema to validate against is set with the schema property. By default, only the request message is + * validated, but this behaviour can be changed using the validateRequest and validateResponse + * properties. Responses that contains faults are not validated. + * + * @author Arjen Poutsma + * @see #setSchema + * @see #setValidateRequest(boolean) + * @see #setValidateResponse(boolean) + */ +public class PayloadValidatingInterceptor extends AbstractValidatingInterceptor { + + /** + * Returns the payload source of the given message. + */ + protected Source getValidationRequestSource(WebServiceMessage request) { + return request.getPayloadSource(); + } + + /** + * Returns the payload source of the given message. + */ + protected Source getValidationResponseSource(WebServiceMessage response) { + return response.getPayloadSource(); + } +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/interceptor/package.html b/core/src/main/java/org/springframework/ws/endpoint/interceptor/package.html new file mode 100644 index 00000000..639946a6 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/interceptor/package.html @@ -0,0 +1,5 @@ + + +Provides miscellaneous endpoints EndpointInterceptor implementations. + + diff --git a/core/src/main/java/org/springframework/ws/endpoint/mapping/AbstractEndpointMapping.java b/core/src/main/java/org/springframework/ws/endpoint/mapping/AbstractEndpointMapping.java new file mode 100644 index 00000000..9097414f --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/mapping/AbstractEndpointMapping.java @@ -0,0 +1,147 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.mapping; + +import org.springframework.context.support.ApplicationObjectSupport; +import org.springframework.ws.EndpointInterceptor; +import org.springframework.ws.EndpointInvocationChain; +import org.springframework.ws.EndpointMapping; +import org.springframework.ws.context.MessageContext; + +/** + * Abstract base class for EndpointMapping implementations. Supports a default endpoint, and endpoint interceptors. + * + * @author Arjen Poutsma + * @see #getEndpointInternal(org.springframework.ws.context.MessageContext) + * @see org.springframework.ws.EndpointInterceptor + */ +public abstract class AbstractEndpointMapping extends ApplicationObjectSupport implements EndpointMapping { + + private Object defaultEndpoint; + + private EndpointInterceptor[] interceptors; + + /** + * Returns the default endpoint for this endpoint mapping. + * + * @return the default endpoint mapping, or null if none + */ + protected final Object getDefaultEndpoint() { + return defaultEndpoint; + } + + /** + * Sets the default endpoint for this endpoint mapping. This endpoint will be returned if no specific mapping was + * found. + *

+ * Default is null, indicating no default endpoint. + * + * @param defaultEndpoint the default endpoint, or null if none + */ + public final void setDefaultEndpoint(Object defaultEndpoint) { + this.defaultEndpoint = defaultEndpoint; + logger.info("Default mapping to endpoint [" + this.defaultEndpoint + "]"); + } + + /** + * Returns the the endpoint interceptors to apply to all endpoints mapped by this endpoint mapping. + * + * @return array of endpoint interceptors, or null if none + */ + public EndpointInterceptor[] getInterceptors() { + return interceptors; + } + + /** + * Sets the endpoint interceptors to apply to all endpoints mapped by this endpoint mapping. + * + * @param interceptors array of endpoint interceptors, or null if none + */ + public final void setInterceptors(EndpointInterceptor[] interceptors) { + this.interceptors = interceptors; + } + + /** + * Look up an endpoint for the given message context, falling back to the default endpoint if no specific one is + * found. + * + * @return the looked up endpoint instance, or the default endpoint + * @see #getEndpointInternal(org.springframework.ws.context.MessageContext) + */ + public final EndpointInvocationChain getEndpoint(MessageContext messageContext) throws Exception { + Object endpoint = getEndpointInternal(messageContext); + if (endpoint == null) { + endpoint = defaultEndpoint; + } + if (endpoint == null) { + return null; + } + if (endpoint instanceof String) { + String endpointName = (String) endpoint; + endpoint = resolveStringEndpoint(endpointName); + if (endpoint == null) { + return null; + } + } + return createEndpointInvocationChain(messageContext, endpoint, interceptors); + } + + /** + * Creates a new EndpointInvocationChain based on the given message context, endpoint, and + * interceptors. Default implementation creates a simple EndpointInvocationChain based on the set + * interceptors. + * + * @param endpoint the endpoint + * @param interceptors the endpoint interceptors + * @return the created invocation chain + * @see #setInterceptors(org.springframework.ws.EndpointInterceptor[]) + */ + protected EndpointInvocationChain createEndpointInvocationChain(MessageContext messageContext, + Object endpoint, + EndpointInterceptor[] interceptors) { + return new EndpointInvocationChain(endpoint, interceptors); + } + + /** + * Resolves an endpoint string. If the given string can is a bean name, it is resolved using the application + * context. + * + * @param endpointName the endpoint name + * @return the resolved enpoint, or null if the name could not be resolved + */ + protected Object resolveStringEndpoint(String endpointName) { + if (getApplicationContext().containsBean(endpointName)) { + return getApplicationContext().getBean(endpointName); + } + else { + return null; + } + } + + /** + * Lookup an endpoint for the given request, returning null if no specific one is found. This template + * method is called by getEndpoint, a null return value will lead to the default handler, if one is + * set. + *

+ * The returned endpoint can be a string, in which case it is resolved as a bean name. Also, it can take the form + * beanName#method, in which case the method is resolved. + * + * @return the looked up endpoint instance, or null + * @throws Exception if there is an error + */ + protected abstract Object getEndpointInternal(MessageContext messageContext) throws Exception; +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/mapping/AbstractMapBasedEndpointMapping.java b/core/src/main/java/org/springframework/ws/endpoint/mapping/AbstractMapBasedEndpointMapping.java new file mode 100644 index 00000000..f4db00b9 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/mapping/AbstractMapBasedEndpointMapping.java @@ -0,0 +1,194 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.mapping; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Properties; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContextException; +import org.springframework.util.StringUtils; +import org.springframework.ws.context.MessageContext; + +/** + * Abstract base class for endpoint mapping that are based on a Map. Provides mappings of application + * context beans as well as a settable map. + *

+ * Subclasses determine the exact nature of the key in the enpoint map; this can be a qualified name, a SOAP Header, the + * result of a XPath validation. The values are always endpoint objects, or bean names of endpoint objects. + * + * @author Arjen Poutsma + */ +public abstract class AbstractMapBasedEndpointMapping extends AbstractEndpointMapping { + + private boolean lazyInitEndpoints = false; + + private boolean registerBeanNames = false; + + private final Map endpointMap = new HashMap(); + + // holds mappings set via setEndpointMap and setMappings + private Map temporaryEndpointMap = new HashMap(); + + /** + * Set whether to lazily initialize endpoints. Only applicable to singleton endpoints, as prototypes are always + * lazily initialized. Default is false, as eager initialization allows for more efficiency through + * referencing the controller objects directly. + *

+ * If you want to allow your endpoints to be lazily initialized, make them "lazy-init" and set this flag to + * true. Just making them "lazy-init" will not work, as they are initialized through the references + * from the endpoint mapping in this case. + */ + public void setLazyInitEndpoints(boolean lazyInitEndpoints) { + this.lazyInitEndpoints = lazyInitEndpoints; + } + + /** + * Set whether to register bean names found in the application context. Setting this to true will + * register all beans found in the application context under their name. Default is false. + */ + public final void setRegisterBeanNames(boolean registerBeanNames) { + this.registerBeanNames = registerBeanNames; + } + + /** + * Sets a Map with keys and endpoint beans as values. The nature of the keys in the given map depends on the exact + * subclass used. They can be qualified names, for instance, or mime headers. + * + * @throws IllegalArgumentException if the endpoint is invalid + */ + public final void setEndpointMap(Map endpointMap) { + temporaryEndpointMap.putAll(endpointMap); + } + + /** + * Maps keys to endpoint bean names. The nature of the property names depends on the exact subclass used. They can + * be qualified names, for instance, or mime headers. + */ + public void setMappings(Properties mappings) { + temporaryEndpointMap.putAll(mappings); + } + + /** + * Validates the given endpoint key. Should return true is the given string is valid. + */ + protected abstract boolean validateLookupKey(String key); + + /** + * Returns the the endpoint keys for the given message context. + * + * @return the registration keys + */ + protected abstract String getLookupKeyForMessage(MessageContext messageContext) throws Exception; + + /** + * Lookup an endpoint for the given message. The extraction of the endpoint key is delegated to the concrete + * subclass. + * + * @return the looked up endpoint, or null + */ + protected Object getEndpointInternal(MessageContext messageContext) throws Exception { + String key = getLookupKeyForMessage(messageContext); + if (!StringUtils.hasLength(key)) { + return null; + } + if (logger.isDebugEnabled()) { + logger.debug("Looking up endpoint for [" + key + "]"); + } + return lookupEndpoint(key); + } + + /** + * Looks up an endpoint instance for the given keys. All keys are tried in order. + * + * @param key key the beans are mapped to + * @return the associated endpoint instance, or null if not found + */ + protected Object lookupEndpoint(String key) { + return endpointMap.get(key); + } + + /** + * Register the given endpoint instance under the registration key. + * + * @param key the string representation of the registration key + * @param endpoint the endpoint instance + * @throws org.springframework.beans.BeansException + * if the endpoint could not be registered + */ + protected void registerEndpoint(String key, Object endpoint) throws BeansException { + Object mappedEndpoint = endpointMap.get(key); + if (mappedEndpoint != null) { + throw new ApplicationContextException("Cannot map endpoint [" + endpoint + "] on registration key [" + key + + "]: there's already endpoint [" + mappedEndpoint + "] mapped"); + } + if (!lazyInitEndpoints && endpoint instanceof String) { + String endpointName = (String) endpoint; + endpoint = resolveStringEndpoint(endpointName); + } + if (endpoint == null) { + throw new ApplicationContextException("Could not find endpoint for key [" + key + "]"); + } + endpointMap.put(key, endpoint); + if (logger.isDebugEnabled()) { + logger.debug("Mapped key [" + key + "] onto endpoint [" + endpoint + "]"); + } + } + + /** + * Registers annd checks the set endpoints. Checks the beans set through setEndpointMap and + * setMappings, and registers the bean names found in the application context, if + * registerBeanNames is set to true. + * + * @throws ApplicationContextException if either of the endpoints defined via setEndpointMap or + * setMappings is invalid + * @see #setEndpointMap(java.util.Map) + * @see #setMappings(java.util.Properties) + * @see #setRegisterBeanNames(boolean) + */ + protected final void initApplicationContext() throws BeansException { + for (Iterator iter = temporaryEndpointMap.keySet().iterator(); iter.hasNext();) { + String key = (String) iter.next(); + Object endpoint = temporaryEndpointMap.get(key); + if (!validateLookupKey(key)) { + throw new ApplicationContextException("Invalid key [" + key + "] for endpoint [" + endpoint + "]"); + } + registerEndpoint(key, endpoint); + } + temporaryEndpointMap = null; + if (registerBeanNames) { + if (logger.isDebugEnabled()) { + logger.debug("Looking for endpoint mappings in application context: [" + getApplicationContext() + "]"); + } + String[] beanNames = getApplicationContext().getBeanDefinitionNames(); + for (int i = 0; i < beanNames.length; i++) { + if (validateLookupKey(beanNames[i])) { + registerEndpoint(beanNames[i], beanNames[i]); + } + String[] aliases = getApplicationContext().getAliases(beanNames[i]); + for (int j = 0; j < aliases.length; j++) { + if (validateLookupKey(aliases[j])) { + registerEndpoint(aliases[j], beanNames[i]); + } + } + } + } + } + +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/mapping/AbstractQNameEndpointMapping.java b/core/src/main/java/org/springframework/ws/endpoint/mapping/AbstractQNameEndpointMapping.java new file mode 100644 index 00000000..91c0f6a6 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/mapping/AbstractQNameEndpointMapping.java @@ -0,0 +1,47 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.mapping; + +import javax.xml.namespace.QName; + +import org.springframework.ws.context.MessageContext; +import org.springframework.xml.namespace.QNameUtils; + +/** + * Abstract base class for EndpointMappings that resolve qualified names as registration keys. + * + * @author Arjen Poutsma + */ +public abstract class AbstractQNameEndpointMapping extends AbstractMapBasedEndpointMapping { + + protected final String getLookupKeyForMessage(MessageContext messageContext) throws Exception { + QName qName = resolveQName(messageContext); + return qName != null ? qName.toString() : null; + } + + /** + * Template method that resolves the qualified names from the given SOAP message. + * + * @return an array of qualified names that serve as registration keys + */ + protected abstract QName resolveQName(MessageContext messageContext) throws Exception; + + protected boolean validateLookupKey(String key) { + return QNameUtils.validateQName(key); + } + +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/mapping/PayloadRootQNameEndpointMapping.java b/core/src/main/java/org/springframework/ws/endpoint/mapping/PayloadRootQNameEndpointMapping.java new file mode 100644 index 00000000..16b1b0c3 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/mapping/PayloadRootQNameEndpointMapping.java @@ -0,0 +1,70 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.mapping; + +import javax.xml.namespace.QName; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMResult; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.context.MessageContext; +import org.springframework.xml.namespace.QNameUtils; +import org.w3c.dom.Element; + +/** + * Implementation of the EndpointMapping interface to map from the qualified name of the request payload + * root element. Supports both mapping to bean instances and mapping to bean names: the latter is required for prototype + * handlers. + *

+ * The endpointMap property is suitable for populating the endpoint map with bean references, e.g. via the + * map element in XML bean definitions. + *

+ * Mappings to bean names can be set via the mappings property, in a form accepted by the + * java.util.Properties class, like as follows: + *

+ * {http://www.springframework.org/spring-ws/samples/airline/schemas}BookFlight=bookFlightEndpoint
+ * {http://www.springframework.org/spring-ws/samples/airline/schemas}GetFlights=getFlightsEndpoint
+ * 
+ * The syntax is QNAME=ENDPOINT_BEAN_NAME. Qualified names are parsed using the syntax described in + * QNameEditor. + * + * @author Arjen Poutsma + * @see org.springframework.xml.namespace.QNameEditor + */ +public class PayloadRootQNameEndpointMapping extends AbstractQNameEndpointMapping implements InitializingBean { + + private static TransformerFactory transformerFactory; + + protected QName resolveQName(MessageContext messageContext) throws TransformerException { + Element payloadElement = getMessagePayloadElement(messageContext.getRequest()); + return QNameUtils.getQNameForNode(payloadElement); + } + + private Element getMessagePayloadElement(WebServiceMessage message) throws TransformerException { + Transformer transformer = transformerFactory.newTransformer(); + DOMResult domResult = new DOMResult(); + transformer.transform(message.getPayloadSource(), domResult); + return (Element) domResult.getNode().getFirstChild(); + } + + public final void afterPropertiesSet() throws Exception { + transformerFactory = TransformerFactory.newInstance(); + } +} diff --git a/core/src/main/java/org/springframework/ws/endpoint/mapping/package.html b/core/src/main/java/org/springframework/ws/endpoint/mapping/package.html new file mode 100644 index 00000000..97023738 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/mapping/package.html @@ -0,0 +1,5 @@ + + +Provides miscellaneous endpoints EndpointMapping implementations. + + diff --git a/core/src/main/java/org/springframework/ws/endpoint/package.html b/core/src/main/java/org/springframework/ws/endpoint/package.html new file mode 100644 index 00000000..66aa032a --- /dev/null +++ b/core/src/main/java/org/springframework/ws/endpoint/package.html @@ -0,0 +1,5 @@ + + +Provides standard endpoint, and EndpointAdapter implementations. + + diff --git a/core/src/main/java/org/springframework/ws/package.html b/core/src/main/java/org/springframework/ws/package.html new file mode 100644 index 00000000..1eaa583d --- /dev/null +++ b/core/src/main/java/org/springframework/ws/package.html @@ -0,0 +1,5 @@ + + +Provides the core functionality of the Spring Web Services framework. + + diff --git a/core/src/main/java/org/springframework/ws/pox/PoxMessage.java b/core/src/main/java/org/springframework/ws/pox/PoxMessage.java new file mode 100644 index 00000000..122c6c97 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/pox/PoxMessage.java @@ -0,0 +1,28 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.pox; + +import org.springframework.ws.WebServiceMessage; + +/** + * Defines the contract for Plain Old XML messages. Currently only a tagging interface. + * + * @author Arjen Poutsma + */ +public interface PoxMessage extends WebServiceMessage { + +} diff --git a/core/src/main/java/org/springframework/ws/pox/PoxMessageException.java b/core/src/main/java/org/springframework/ws/pox/PoxMessageException.java new file mode 100644 index 00000000..0875499c --- /dev/null +++ b/core/src/main/java/org/springframework/ws/pox/PoxMessageException.java @@ -0,0 +1,35 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.pox; + +import org.springframework.ws.WebServiceMessageException; + +/** + * Specific subclass of WebServiceMessageException for Plain Old XML messages. + * + * @author Arjen Poutsma + */ +public abstract class PoxMessageException extends WebServiceMessageException { + + public PoxMessageException(String msg) { + super(msg); + } + + public PoxMessageException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/pox/context/AbstractPoxMessageContext.java b/core/src/main/java/org/springframework/ws/pox/context/AbstractPoxMessageContext.java new file mode 100644 index 00000000..e75910fc --- /dev/null +++ b/core/src/main/java/org/springframework/ws/pox/context/AbstractPoxMessageContext.java @@ -0,0 +1,49 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.pox.context; + +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.context.AbstractMessageContext; +import org.springframework.ws.pox.PoxMessage; +import org.springframework.ws.transport.TransportRequest; + +/** + * Abstract implementation of the PoxMessageContext interface. Implements base MessageContext + * methods by delegating to PoxMessageContext functionality. + * + * @author Arjen Poutsma + */ +public abstract class AbstractPoxMessageContext extends AbstractMessageContext implements PoxMessageContext { + + protected AbstractPoxMessageContext(PoxMessage request, TransportRequest transportRequest) { + super(request, transportRequest); + } + + public final PoxMessage getPoxResponse() { + return (PoxMessage) getResponse(); + } + + public final PoxMessage getPoxRequest() { + return (PoxMessage) getRequest(); + } + + protected final WebServiceMessage createResponseMessage() { + return createResponsePoxMessage(); + } + + protected abstract PoxMessage createResponsePoxMessage(); +} diff --git a/core/src/main/java/org/springframework/ws/pox/context/PoxMessageContext.java b/core/src/main/java/org/springframework/ws/pox/context/PoxMessageContext.java new file mode 100644 index 00000000..658965dd --- /dev/null +++ b/core/src/main/java/org/springframework/ws/pox/context/PoxMessageContext.java @@ -0,0 +1,45 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.pox.context; + +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.pox.PoxMessage; + +/** + * Plain Old Xml-specific extension of the MessageContext interface. Contains methods to obtain + * PoxMessages instead of WebServiceMessages. + * + * @author Arjen Poutsma + */ +public interface PoxMessageContext extends MessageContext { + + /** + * Returns the request POX message. + * + * @return the request message + */ + PoxMessage getPoxRequest(); + + /** + * Returns the response message, if created. Returns null if no response message was created so far. + * + * @return the response message, or null if none was created + * @see #hasResponse() + */ + PoxMessage getPoxResponse(); + +} diff --git a/core/src/main/java/org/springframework/ws/pox/context/package.html b/core/src/main/java/org/springframework/ws/pox/context/package.html new file mode 100644 index 00000000..3b4c1eaf --- /dev/null +++ b/core/src/main/java/org/springframework/ws/pox/context/package.html @@ -0,0 +1,5 @@ + + +Contains the PoxMessageContext interface. + + \ No newline at end of file diff --git a/core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessage.java b/core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessage.java new file mode 100644 index 00000000..c40f273b --- /dev/null +++ b/core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessage.java @@ -0,0 +1,77 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.pox.dom; + +import java.io.IOException; +import java.io.OutputStream; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.springframework.ws.pox.PoxMessage; +import org.w3c.dom.Document; + +/** + * Implementation of the PoxMessage interface that is based on a DOM Document. + * + * @author Arjen Poutsma + * @see Document + */ +public class DomPoxMessage implements PoxMessage { + + private final Document document; + + private Transformer transformer; + + /** + * Constructs a new instance of the DomPoxMessage with the given document. + * + * @param document the document to base the message on + */ + public DomPoxMessage(Document document, Transformer transformer) { + this.document = document; + this.transformer = transformer; + } + + /** + * Returns the document underlying this message. + */ + public Document getDocument() { + return document; + } + + public Result getPayloadResult() { + return new DOMResult(document); + } + + public Source getPayloadSource() { + return new DOMSource(document); + } + + public void writeTo(OutputStream outputStream) throws IOException { + try { + transformer.transform(getPayloadSource(), new StreamResult(outputStream)); + } + catch (TransformerException ex) { + throw new DomPoxMessageException("Could not create transformer", ex); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessageContext.java b/core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessageContext.java new file mode 100644 index 00000000..5a5bbd23 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessageContext.java @@ -0,0 +1,67 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.pox.dom; + +import java.io.IOException; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.transform.Transformer; + +import org.springframework.util.Assert; +import org.springframework.ws.pox.PoxMessage; +import org.springframework.ws.pox.context.AbstractPoxMessageContext; +import org.springframework.ws.transport.TransportRequest; +import org.springframework.ws.transport.TransportResponse; +import org.w3c.dom.Document; + +/** + * Implementation of the MessageContext that contains a DomPoxMessage. + * + * @author Arjen Poutsma + * @see DomPoxMessage + */ +public class DomPoxMessageContext extends AbstractPoxMessageContext { + + private DocumentBuilder documentBuilder; + + private Transformer transformer; + + /** + * Creates a new DomPoxMessageContext with the given parameters. + */ + public DomPoxMessageContext(Document request, + TransportRequest transportRequest, + DocumentBuilder documentBuilder, + Transformer transformer) { + super(new DomPoxMessage(request, transformer), transportRequest); + Assert.notNull(documentBuilder, "documentBuilder must not be null"); + Assert.notNull(transformer, "transformer must not be null"); + this.documentBuilder = documentBuilder; + this.transformer = transformer; + } + + protected PoxMessage createResponsePoxMessage() { + Document document = documentBuilder.newDocument(); + return new DomPoxMessage(document, transformer); + } + + public void sendResponse(TransportResponse transportResponse) throws IOException { + if (hasResponse()) { + transportResponse.addHeader("Content-Type", "text/xml"); + getResponse().writeTo(transportResponse.getOutputStream()); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessageContextFactory.java b/core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessageContextFactory.java new file mode 100644 index 00000000..0a2cf0a0 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessageContextFactory.java @@ -0,0 +1,91 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.pox.dom; + +import java.io.IOException; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerFactory; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.context.MessageContextFactory; +import org.springframework.ws.transport.TransportContext; +import org.springframework.ws.transport.TransportRequest; +import org.w3c.dom.Document; +import org.xml.sax.SAXException; + +/** + * Implementation of the MessageContextFactory interface that creates a DOM + * + * @author Arjen Poutsma + * @see DomPoxMessageContext + */ +public class DomPoxMessageContextFactory implements MessageContextFactory, InitializingBean { + + private DocumentBuilderFactory documentBuilderFactory; + + private boolean namespaceAware = true; + + private TransformerFactory transformerFactory; + + private boolean validating = false; + + /** + * Set whether or not the XML parser should be XML namespace aware. Default is true. + */ + public void setNamespaceAware(boolean namespaceAware) { + this.namespaceAware = namespaceAware; + } + + /** + * Set if the XML parser should validate the document. Default is false. + */ + public void setValidating(boolean validating) { + this.validating = validating; + } + + public void afterPropertiesSet() throws Exception { + documentBuilderFactory = DocumentBuilderFactory.newInstance(); + documentBuilderFactory.setValidating(validating); + documentBuilderFactory.setNamespaceAware(namespaceAware); + transformerFactory = TransformerFactory.newInstance(); + } + + public MessageContext createContext(TransportContext transportContext) throws IOException { + TransportRequest transportRequest = transportContext.getTransportRequest(); + try { + DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); + Document request = documentBuilder.parse(transportRequest.getInputStream()); + return new DomPoxMessageContext(request, + transportRequest, + documentBuilder, + transformerFactory.newTransformer()); + } + catch (ParserConfigurationException ex) { + throw new DomPoxMessageException("Could not create message context", ex); + } + catch (SAXException ex) { + throw new DomPoxMessageException("Could not parse request message", ex); + } + catch (TransformerConfigurationException ex) { + throw new DomPoxMessageException("Could not create transormer", ex); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessageException.java b/core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessageException.java new file mode 100644 index 00000000..7d1075df --- /dev/null +++ b/core/src/main/java/org/springframework/ws/pox/dom/DomPoxMessageException.java @@ -0,0 +1,35 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.pox.dom; + +import org.springframework.ws.pox.PoxMessageException; + +/** + * Specific subclass of PoxMessageException for DOM Plain Old XML messages. + * + * @author Arjen Poutsma + */ +public class DomPoxMessageException extends PoxMessageException { + + public DomPoxMessageException(String msg) { + super(msg); + } + + public DomPoxMessageException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/pox/dom/package.html b/core/src/main/java/org/springframework/ws/pox/dom/package.html new file mode 100644 index 00000000..808e0a65 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/pox/dom/package.html @@ -0,0 +1,5 @@ + + +Contains an implementation of the POX interfaces that is based on DOM. + + diff --git a/core/src/main/java/org/springframework/ws/pox/package.html b/core/src/main/java/org/springframework/ws/pox/package.html new file mode 100644 index 00000000..83ff844d --- /dev/null +++ b/core/src/main/java/org/springframework/ws/pox/package.html @@ -0,0 +1,6 @@ + + +Provides the Plain Old XML (POX) functionality of the Spring Web Services framework. Contains the PoxMessage and related +interfaces. + + diff --git a/core/src/main/java/org/springframework/ws/soap/AbstractSoapMessage.java b/core/src/main/java/org/springframework/ws/soap/AbstractSoapMessage.java new file mode 100644 index 00000000..894e2d72 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/AbstractSoapMessage.java @@ -0,0 +1,76 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import javax.xml.transform.Result; +import javax.xml.transform.Source; + +/** + * Abstract implementation of the SoapMessage interface. + * + * @author Arjen Poutsma + */ +public abstract class AbstractSoapMessage implements SoapMessage { + + private SoapVersion version; + + /** + * Returns getEnvelope().getBody(). + */ + public SoapBody getSoapBody() { + return getEnvelope().getBody(); + } + + /** + * Returns getEnvelope().getHeader(). + */ + public SoapHeader getSoapHeader() { + return getEnvelope().getHeader(); + } + + /** + * Returns getSoapBody().getPayloadSource(). + */ + public Source getPayloadSource() { + return getSoapBody().getPayloadSource(); + } + + /** + * Returns getSoapBody().getPayloadResult(). + */ + public Result getPayloadResult() { + return getSoapBody().getPayloadResult(); + } + + public SoapVersion getVersion() { + if (version == null) { + String envelopeNamespace = getEnvelope().getName().getNamespaceURI(); + if (SoapVersion.SOAP_11.getEnvelopeNamespaceUri().equals(envelopeNamespace)) { + version = SoapVersion.SOAP_11; + } + else if (SoapVersion.SOAP_12.getEnvelopeNamespaceUri().equals(envelopeNamespace)) { + version = SoapVersion.SOAP_12; + } + else { + throw new IllegalStateException( + "Unknown Envelope namespace uri '" + envelopeNamespace + "'. " + "Cannot deduce SoapVersion."); + } + } + return version; + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/Attachment.java b/core/src/main/java/org/springframework/ws/soap/Attachment.java new file mode 100644 index 00000000..42bc89fa --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/Attachment.java @@ -0,0 +1,70 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import java.io.IOException; +import java.io.InputStream; + +/** + * Represents an attachment to a SoapMessage. + * + * @author Arjen Poutsma + * @see SoapMessage#getAttachments() + * @see SoapMessage#addAttachment(java.io.File) + * @see SoapMessage#addAttachment(org.springframework.core.io.InputStreamSource, String) + */ +public interface Attachment { + + /** + * Returns the identifier of the attachment. Depending on the implementation used, this may be a MIME + * Content-Id header, a DIME ID, etc. + * + * @return the attachment identifier, or null if empty or not defined + */ + String getId(); + + /** + * Sets the identifier of the attachment. Depending on the implementation used, this may be a MIME + * Content-Id header, a DIME ID, etc. + * + * @param id the new attachment identifier, or null if empty or not defined + */ + void setId(String id); + + /** + * Returns the content type of the attachment. + * + * @return the content type, or null if empty or not defined + */ + String getContentType(); + + /** + * Return an InputStream to read the contents of the attachment from. The user is responsible for + * closing the stream. + * + * @return the contents of the file as stream, or an empty stream if empty + * @throws IOException in case of access I/O errors + */ + InputStream getInputStream() throws IOException; + + /** + * Returns the size of the attachment in bytes. + * + * @return the size of the attachment, or 0 if empty + */ + long getSize(); +} diff --git a/core/src/main/java/org/springframework/ws/soap/AttachmentException.java b/core/src/main/java/org/springframework/ws/soap/AttachmentException.java new file mode 100644 index 00000000..ff8d9e3d --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/AttachmentException.java @@ -0,0 +1,39 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +/** + * Exception thrown when a SOAP attachment could not be accessed. + * + * @author Arjen Poutsma + * @see Attachment + */ +public class AttachmentException extends SoapMessageException { + + public AttachmentException(String msg) { + super(msg); + } + + public AttachmentException(String msg, Throwable ex) { + super(msg, ex); + } + + public AttachmentException(Throwable ex) { + super("Could not access body: " + ex.getMessage(), ex); + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapBody.java b/core/src/main/java/org/springframework/ws/soap/SoapBody.java new file mode 100644 index 00000000..279c70fa --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapBody.java @@ -0,0 +1,112 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import java.util.Locale; +import javax.xml.transform.Result; +import javax.xml.transform.Source; + +/** + * Represents the Body element in a SOAP message. A SOAP body contains the payload of the + * message. This payload can be custom XML, or a SoapFault (but not both). + *

+ * Note that the source returned by getSource() includes the SOAP Body element itself. For the contents of + * the body, use getPayloadSource(). + * + * @author Arjen Poutsma + * @see SoapEnvelope#getBody() + * @see #getPayloadSource() + * @see #getPayloadResult() + * @see SoapFault + */ +public interface SoapBody extends SoapElement { + + /** + * Returns a Source that represents the contents of the body. + * + * @return the message contents + */ + Source getPayloadSource(); + + /** + * Returns a Result that represents the contents of the body. + * + * @return the messaage contents + */ + Result getPayloadResult(); + + /** + * Adds a MustUnderstand fault to the body. A MustUnderstand is returned when a SOAP + * header with a MustUnderstand attribute is not understood. + *

+ * Adding a fault removes the current content of the body. + * + * @param faultStringOrReason the SOAP 1.1 fault string or SOAP 1.2 reason text + * @param locale the language of faultStringOrReason. Optional for SOAP 1.1 + * @return the created SoapFault + */ + SoapFault addMustUnderstandFault(String faultStringOrReason, Locale locale) throws SoapFaultException; + + /** + * Adds a Client/Sender fault to the body. For SOAP 1.1, this adds a fault with a + * Client fault code. For SOAP 1.2, this adds a fault with a Sender code. + *

+ * Adding a fault removes the current content of the body. + * + * @param faultStringOrReason the SOAP 1.1 fault string or SOAP 1.2 reason text + * @param locale the language of faultStringOrReason. Optional for SOAP 1.1 + * @return the created SoapFault + */ + SoapFault addClientOrSenderFault(String faultStringOrReason, Locale locale) throws SoapFaultException; + + /** + * Adds a Server/Receiver fault to the body.For SOAP 1.1, this adds a fault with a + * Server fault code. For SOAP 1.2, this adds a fault with a Receiver code. + *

+ * Adding a fault removes the current content of the body. + * + * @param faultStringOrReason the SOAP 1.1 fault string or SOAP 1.2 reason text + * @param locale the language of faultStringOrReason. Optional for SOAP 1.1 + * @return the created SoapFault + */ + SoapFault addServerOrReceiverFault(String faultStringOrReason, Locale locale) throws SoapFaultException; + + /** + * Adds a VersionMismatch fault to the body. + *

+ * Adding a fault removes the current content of the body. + * + * @param faultStringOrReason the SOAP 1.1 fault string or SOAP 1.2 reason text + * @param locale the language of faultStringOrReason. Optional for SOAP 1.1 + * @return the created SoapFault + */ + SoapFault addVersionMismatchFault(String faultStringOrReason, Locale locale) throws SoapFaultException; + + /** + * Indicates whether this body has a SoapFault. + * + * @return true if the body has a fault; false otherwise + */ + boolean hasFault(); + + /** + * Returns the SoapFault of this body. + * + * @return the SoapFault, or null if none is present + */ + SoapFault getFault(); +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapBodyException.java b/core/src/main/java/org/springframework/ws/soap/SoapBodyException.java new file mode 100644 index 00000000..21406797 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapBodyException.java @@ -0,0 +1,38 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +/** + * Exception thrown when a SOAP body could not be accessed. + * + * @author Arjen Poutsma + */ +public class SoapBodyException extends SoapMessageException { + + public SoapBodyException(String msg) { + super(msg); + } + + public SoapBodyException(String msg, Throwable ex) { + super(msg, ex); + } + + public SoapBodyException(Throwable ex) { + super("Could not access body: " + ex.getMessage(), ex); + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapElement.java b/core/src/main/java/org/springframework/ws/soap/SoapElement.java new file mode 100644 index 00000000..02f9746f --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapElement.java @@ -0,0 +1,45 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import javax.xml.namespace.QName; +import javax.xml.transform.Source; + +/** + * The base interface for all elements that are contained in a SOAP message. + * + * @author Arjen Poutsma + * @see SoapMessage + */ +public interface SoapElement { + + /** + * Returns the qualified name of this element. + * + * @return the qualified name of this element + */ + QName getName(); + + /** + * Returns the Source of this element. This includes the element itself, i.e. + * SoapEnvelope.getSource() will include the Envelope tag. + * + * @return the Source of this element + */ + Source getSource(); + +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapEndpointInterceptor.java b/core/src/main/java/org/springframework/ws/soap/SoapEndpointInterceptor.java new file mode 100644 index 00000000..4f758697 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapEndpointInterceptor.java @@ -0,0 +1,50 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import org.springframework.ws.EndpointInterceptor; +import org.springframework.ws.context.MessageContext; + +/** + * SOAP-specific extension of the EndpointInterceptor interface. Allows for handling of SOAP faults, which + * are considered different from regular responses. + * + * @author Arjen Poutsma + */ +public interface SoapEndpointInterceptor extends EndpointInterceptor { + + /** + * Processes the fault. Both request and response of the message context should be filled; the body of the response + * message contains the fault. + * + * @param messageContext contains both request and response messages, the response should contains a SOAP Fault + * @param endpoint chosen endpoint to invoke + * @return true to continue processing of the reponse interceptor chain; false to indicate + * blocking of the response handler chain. + */ + boolean handleFault(MessageContext messageContext, Object endpoint) throws Exception; + + /** + * Given a SoapHeaderElement, return whether or not this SoapEndpointInterceptor + * understands it. + * + * @param header the header + * @return true if understood, false otherwise + */ + boolean understands(SoapHeaderElement header); + +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapEndpointInvocationChain.java b/core/src/main/java/org/springframework/ws/soap/SoapEndpointInvocationChain.java new file mode 100644 index 00000000..0acee05a --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapEndpointInvocationChain.java @@ -0,0 +1,75 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import org.springframework.ws.EndpointInterceptor; +import org.springframework.ws.EndpointInvocationChain; + +/** + * SOAP-specific subclass of the EndpointInvocationChain. Adds associated actors (SOAP 1.1) or roles (SOAP + * 1.2). Used by the SoapMessageDispatcher to determine the MustUnderstand headers for particular + * endpoint. + * + * @author Arjen Poutsma + * @see #getActorsOrRoles() + * @see SoapMessageDispatcher + */ +public class SoapEndpointInvocationChain extends EndpointInvocationChain { + + private String[] actorsOrRoles; + + /** + * Create new SoapEndpointInvocationChain. + * + * @param endpoint the endpoint object to invoke + */ + public SoapEndpointInvocationChain(Object endpoint) { + super(endpoint); + } + + /** + * Create new SoapEndpointInvocationChain. + * + * @param endpoint the endpoint object to invoke + * @param interceptors the array of interceptors to apply + */ + public SoapEndpointInvocationChain(Object endpoint, EndpointInterceptor[] interceptors) { + super(endpoint, interceptors); + } + + /** + * Create new EndpointInvocationChain. + * + * @param endpoint the endpoint object to invoke + * @param interceptors the array of interceptors to apply + * @param actorsOrRoles the array of actorsOrRoles to set + */ + public SoapEndpointInvocationChain(Object endpoint, EndpointInterceptor[] interceptors, String[] actorsOrRoles) { + super(endpoint, interceptors); + this.actorsOrRoles = actorsOrRoles; + } + + /** + * Gets the actors (SOAP 1.1) or roles (SOAP 1.2) associated with an invocation of this chain and its contained + * interceptors and endpoint. + * + * @return a string array of URIs for SOAP actors/roles + */ + public String[] getActorsOrRoles() { + return actorsOrRoles; + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapEndpointMapping.java b/core/src/main/java/org/springframework/ws/soap/SoapEndpointMapping.java new file mode 100644 index 00000000..16cf0725 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapEndpointMapping.java @@ -0,0 +1,43 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import org.springframework.ws.EndpointMapping; + +/** + * SOAP-specific sub-interface of the EndpointMapping. Adds associated actors (SOAP 1.1) or roles (SOAP + * 1.2). Used by the SoapMessageDispatcher to determine the MustUnderstand headers for particular + * endpoint. + *

+ * The main purpose for this interface is to add consitency between all SOAP-specific EndpointMappings. The + * SoapMessageDispatcher does not require all endpoint mappings to implement this interface. + * + * @author Arjen Poutsma + */ +public interface SoapEndpointMapping extends EndpointMapping { + + /** + * Sets a single SOAP actor/actorOrRole to apply to all endpoints mapped by the delegate endpoint mapping. + */ + void setActorOrRole(String actorOrRole); + + /** + * Sets the array of SOAP actors/actorsOrRoles to apply to all endpoints mapped by the delegate endpoint mapping. + */ + void setActorsOrRoles(String[] actorsOrRoles); + +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapEnvelope.java b/core/src/main/java/org/springframework/ws/soap/SoapEnvelope.java new file mode 100644 index 00000000..48bacbd3 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapEnvelope.java @@ -0,0 +1,43 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +/** + * Represents the Envelope element in a SOAP message. The header contains the optional + * SoapHeader and SoapBody. + * + * @author Arjen Poutsma + */ +public interface SoapEnvelope extends SoapElement { + + /** + * Returns the SoapHeader. Returns null if no header is present. + * + * @return the SoapHeader, or null + * @throws SoapHeaderException if the header cannot be returned + */ + SoapHeader getHeader() throws SoapHeaderException; + + /** + * Returns the SoapBody. + * + * @return the SoapBody + * @throws SoapBodyException if the header cannot be returned + */ + SoapBody getBody() throws SoapBodyException; + +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapEnvelopeException.java b/core/src/main/java/org/springframework/ws/soap/SoapEnvelopeException.java new file mode 100644 index 00000000..718d1614 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapEnvelopeException.java @@ -0,0 +1,38 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +/** + * Exception thrown when a SOAP body could not be accessed. + * + * @author Arjen Poutsma + */ +public class SoapEnvelopeException extends SoapMessageException { + + public SoapEnvelopeException(String msg) { + super(msg); + } + + public SoapEnvelopeException(String msg, Throwable ex) { + super(msg, ex); + } + + public SoapEnvelopeException(Throwable ex) { + super("Could not access envelope: " + ex.getMessage(), ex); + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapFault.java b/core/src/main/java/org/springframework/ws/soap/SoapFault.java new file mode 100644 index 00000000..9b12ef14 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapFault.java @@ -0,0 +1,59 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import javax.xml.namespace.QName; + +/** + * Represents the Fault element in the body of a SOAP message. A faul consists of a fault code, string, and + * role. + * + * @author Arjen Poutsma + */ +public interface SoapFault extends SoapElement { + + /** + * Returns the fault code. + * + * @return a QName representing the fault code + */ + QName getFaultCode(); + + /** + * Returns the fault actor or role. For SOAP 1.1, this returns the actor. For SOAP 1.2, this returns the role. + */ + String getFaultActorOrRole(); + + /** + * Sets the fault actor. For SOAP 1.1, this sets the actor. For SOAP 1.2, this sets the role. + */ + void setFaultActorOrRole(String faultActor); + + /** + * Creates an optional SoapFaultDetail object and assigns it to this fault. + * + * @return the created detail + */ + SoapFaultDetail getFaultDetail(); + + /** + * Returns the optional detail element for this SoapFault. + * + * @return a fault detail + */ + SoapFaultDetail addFaultDetail(); +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapFaultDetail.java b/core/src/main/java/org/springframework/ws/soap/SoapFaultDetail.java new file mode 100644 index 00000000..526c6f86 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapFaultDetail.java @@ -0,0 +1,48 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import java.util.Iterator; + +import javax.xml.namespace.QName; + +/** + * Represents the detail element in a SOAP fault. A detail contains SoapFaultDetailElements, + * which represent the individual details. + * + * @author Arjen Poutsma + * @see SoapFaultDetailElement + */ +public interface SoapFaultDetail extends SoapElement { + + /** + * Adds a new SoapFaultDetailElement with the specified qualified name to this detail. + * + * @param name the qualified name of the new detail element + * @return the created SoapFaultDetailElement + */ + SoapFaultDetailElement addFaultDetailElement(QName name); + + /** + * Gets an iterator over all of the SoapFaultDetailElements in this detail. + * + * @return an iterator over all the SoapFaultDetailElements + * @see SoapFaultDetailElement + */ + Iterator getDetailEntries(); + +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapFaultDetailElement.java b/core/src/main/java/org/springframework/ws/soap/SoapFaultDetailElement.java new file mode 100644 index 00000000..e1367c00 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapFaultDetailElement.java @@ -0,0 +1,39 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import javax.xml.transform.Result; + +/** + * Represents the content for an individual SOAP detail entry in a SOAP Message. All + * SoapFaultDetailElements are contained in a SoapDetail. + * + * @author Arjen Poutsma + * @see SoapFaultDetail + */ +public interface SoapFaultDetailElement extends SoapElement { + + /** + * Returns a Result that allows for writing to the contents of the detail element. + */ + Result getResult(); + + /** + * Adds a new text node to this element. + */ + void addText(String text); +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapFaultException.java b/core/src/main/java/org/springframework/ws/soap/SoapFaultException.java new file mode 100644 index 00000000..f9cccb89 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapFaultException.java @@ -0,0 +1,38 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +/** + * Exception thrown when a SOAP fault could not be accessed. + * + * @author Arjen Poutsma + */ +public class SoapFaultException extends SoapEnvelopeException { + + public SoapFaultException(String msg) { + super(msg); + } + + public SoapFaultException(String msg, Throwable ex) { + super(msg, ex); + } + + public SoapFaultException(Throwable ex) { + super("Could not access fault: " + ex.getMessage(), ex); + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapHeader.java b/core/src/main/java/org/springframework/ws/soap/SoapHeader.java new file mode 100644 index 00000000..6a9e3a63 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapHeader.java @@ -0,0 +1,61 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import java.util.Iterator; +import javax.xml.namespace.QName; + +/** + * Represents the Header element in a SOAP message. A SOAP header contains SoapHeaderElements, + * which represent the individual headers. + * + * @author Arjen Poutsma + * @see SoapHeaderElement + * @see SoapEnvelope#getHeader() + */ +public interface SoapHeader extends SoapElement { + + /** + * Adds a new SoapHeaderElement with the specified qualified name to this header. + * + * @param name the qualified name of the new header element + * @return the created SoapHeaderElement + * @throws SoapHeaderException if the header cannot be created + */ + SoapHeaderElement addHeaderElement(QName name) throws SoapHeaderException; + + /** + * Returns an Iterator over all the SoapHeaderElements that have the specified actor or + * role and that have a MustUnderstand attribute whose value is equivalent to true. + * + * @param actorOrRole the actor (SOAP 1.1) or role (SOAP 1.2) for which to search + * @return an iterator over all the header elements that contain the specified actor/role and are marked as + * MustUnderstand + * @throws SoapHeaderException if the headers cannot be returned + * @see SoapHeaderElement + */ + Iterator examineMustUnderstandHeaderElements(String actorOrRole) throws SoapHeaderException; + + /** + * Returns an Iterator over all the SoapHeaderElements in this header. + * + * @return an iterator over all the header elements + * @throws SoapHeaderException if the header cannot be returned + * @see SoapHeaderElement + */ + Iterator examineAllHeaderElements() throws SoapHeaderException; +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapHeaderElement.java b/core/src/main/java/org/springframework/ws/soap/SoapHeaderElement.java new file mode 100644 index 00000000..0cc5fbf5 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapHeaderElement.java @@ -0,0 +1,67 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import javax.xml.transform.Result; + +/** + * Represents the contents of an individual SOAP header in the a SOAP message. All SoapHeaderElements are + * contained in a SoapHeader. + * + * @author Arjen Poutsma + * @see SoapHeader + */ +public interface SoapHeaderElement extends SoapElement { + + /** + * Returns the actor or role for this header element. In a SOAP 1.1 compliant message, this will read the + * actor attribute; in SOAP 1.2, the role attribute. + * + * @return the role of the header + */ + String getActorOrRole() throws SoapHeaderException; + + /** + * Sets the actor or role for this header element. In a SOAP 1.1 compliant message, this will result in an + * actor attribute being set; in SOAP 1.2, a actorOrRole attribute. + * + * @param actorOrRole the actorOrRole value + */ + void setActorOrRole(String actorOrRole) throws SoapHeaderException; + + /** + * Indicates whether the mustUnderstand attribute for this header element is set. + * + * @return true if the mustUnderstand attribute is set; false otherwise + */ + boolean getMustUnderstand() throws SoapHeaderException; + + /** + * Sets the mustUnderstand attribute for this header element. If the attribute is on, the role who + * receives the header must process it. + * + * @param mustUnderstand true to set the mustUnderstand attribute on; false + * to turn it off + */ + void setMustUnderstand(boolean mustUnderstand) throws SoapHeaderException; + + /** + * Returns a Result that allows for writing to the contents of the header element. + */ + Result getResult() throws SoapHeaderException; + +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapHeaderException.java b/core/src/main/java/org/springframework/ws/soap/SoapHeaderException.java new file mode 100644 index 00000000..e68b142f --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapHeaderException.java @@ -0,0 +1,38 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +/** + * Exception thrown when a SOAP header could not be accessed. + * + * @author Arjen Poutsma + */ +public class SoapHeaderException extends SoapMessageException { + + public SoapHeaderException(String msg) { + super(msg); + } + + public SoapHeaderException(String msg, Throwable ex) { + super(msg, ex); + } + + public SoapHeaderException(Throwable ex) { + super("Could not access header: " + ex.getMessage(), ex); + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapMessage.java b/core/src/main/java/org/springframework/ws/soap/SoapMessage.java new file mode 100644 index 00000000..46dd8743 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapMessage.java @@ -0,0 +1,115 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import java.io.File; +import java.util.Iterator; + +import org.springframework.core.io.InputStreamSource; +import org.springframework.ws.WebServiceMessage; + +/** + * Represents an abstraction for SOAP messages, providing access to a SOAP Envelope. The contents of the SOAP body can + * be retrieved by getPayloadSource() and getPayloadResult() on + * WebServiceMessage, the super-interface of this interface. + * + * @author Arjen Poutsma + * @see #getPayloadSource() + * @see #getPayloadResult() + * @see #getEnvelope() + */ +public interface SoapMessage extends WebServiceMessage { + + /** + * Returns the SoapEnvelope associated with this SoapMessage. + */ + SoapEnvelope getEnvelope() throws SoapEnvelopeException; + + /** + * Returns the SoapBody associated with this SoapMessage. This is a convenience method for + * getEnvelope().getBody(). + * + * @see SoapEnvelope#getBody() + */ + SoapBody getSoapBody() throws SoapBodyException; + + /** + * Returns the SoapHeader associated with this SoapMessage. This is a convenience method + * for getEnvelope().getHeader(). + * + * @see SoapEnvelope#getHeader() + */ + SoapHeader getSoapHeader() throws SoapHeaderException; + + /** + * Returns the SOAP version of this message. This can be either SOAP 1.1 or SOAP 1.2. + * + * @return the SOAP version + * @see SoapVersion#SOAP_11 + * @see SoapVersion#SOAP_12 + */ + SoapVersion getVersion(); + + /** + * Returns the Attachment with the specified content Id. + * + * @return the attachment with the specified content id; or null if it cannot be found + * @throws AttachmentException in case of errors + */ + Attachment getAttachment(String contentId) throws AttachmentException; + + /** + * Returns an Iterator over all Attachments that are part of this + * SoapMessage. + * + * @return an iterator over all attachments + * @throws AttachmentException in case of errors + * @see Attachment + */ + Iterator getAttachments() throws AttachmentException; + + /** + * Add an attachment to the SoapMessage, taking the content from a java.io.File. + *

+ * The content type will be determined by the name of the given content file. Do not use this for temporary files + * with arbitrary filenames (possibly ending in ".tmp" or the like)! + * + * @param file the File resource to take the content from + * @return the added attachment + * @throws AttachmentException in case of errors + * @see #addAttachment(InputStreamSource, String) + */ + Attachment addAttachment(File file) throws AttachmentException; + + /** + * Add an attachment to the SoapMessage, taking the content from an + * org.springframework.core.io.InputStreamResource. + *

+ * Note that the InputStream returned by the source needs to be a fresh one on each call, as + * underlying implementations can invoke getInputStream() multiple times. + * + * @param inputStreamSource the resource to take the content from (all of Spring's Resource implementations can be + * passed in here) + * @param contentType the content type to use for the element + * @return the added attachment + * @throws AttachmentException in case of errors + * @see #addAttachment(java.io.File) + * @see org.springframework.core.io.Resource + */ + Attachment addAttachment(InputStreamSource inputStreamSource, String contentType); + +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapMessageCreationException.java b/core/src/main/java/org/springframework/ws/soap/SoapMessageCreationException.java new file mode 100644 index 00000000..750e9572 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapMessageCreationException.java @@ -0,0 +1,39 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +/** + * Exception thrown when a web service message cannot be created. + * + * @author Arjen Poutsma + */ +public class SoapMessageCreationException extends SoapMessageException { + + /** + * Constructor for SoapMessageCreationException. + */ + public SoapMessageCreationException(String msg) { + super(msg); + } + + /** + * Constructor for SoapMessageCreationException. + */ + public SoapMessageCreationException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapMessageDispatcher.java b/core/src/main/java/org/springframework/ws/soap/SoapMessageDispatcher.java new file mode 100644 index 00000000..451b2bf6 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapMessageDispatcher.java @@ -0,0 +1,213 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import javax.xml.namespace.QName; + +import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; +import org.springframework.ws.EndpointInterceptor; +import org.springframework.ws.EndpointInvocationChain; +import org.springframework.ws.MessageDispatcher; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.soap.context.SoapMessageContext; +import org.springframework.ws.soap.soap12.Soap12Header; + +/** + * SOAP-specific subclass of the MessageDispatcher. Adds functionality for adding actor roles to a endpoint + * invocation chain, and endpoint interception using SoapEndpointInterceptors. + * + * @author Arjen Poutsma + * @see SoapMessage + * @see SoapEndpointInterceptor + */ +public class SoapMessageDispatcher extends MessageDispatcher { + + /** + * Default message used when creating a SOAP MustUnderstand fault. + */ + public static final String DEFAULT_MUST_UNDERSTAND_FAULT = + "One or more mandatory SOAP header blocks not understood"; + + private String mustUnderstandFault = DEFAULT_MUST_UNDERSTAND_FAULT; + + private Locale mustUnderstandFaultLocale = Locale.ENGLISH; + + /** + * Sets the message used for MustUnderstand fault. Default to DEFAULT_MUST_UNDERSTAND_FAULT. + * + * @see #DEFAULT_MUST_UNDERSTAND_FAULT + */ + public void setMustUnderstandFault(String mustUnderstandFault) { + this.mustUnderstandFault = mustUnderstandFault; + } + + /** + * Sets the locale of the message used for MustUnderstand fault. Default to + * Locale.ENGLISH. + */ + public void setMustUnderstandFaultLocale(Locale mustUnderstandFaultLocale) { + this.mustUnderstandFaultLocale = mustUnderstandFaultLocale; + } + + /** + * Process the MustUnderstand headers in the incoming SOAP request message. Iterates over all SOAP + * headers which should be understood, and determines whether these are supported. Generates a SOAP MustUnderstand + * fault if a header is not understood. + * + * @param mappedEndpoint the mapped EndpointInvocationChain + * @param messageContext the message context + * @return true if all necessary headers are understood; false otherwise + * @see SoapEndpointInvocationChain#getActorsOrRoles() + * @see SoapHeader#examineMustUnderstandHeaderElements(String) + */ + protected boolean handleRequest(EndpointInvocationChain mappedEndpoint, MessageContext messageContext) { + if (messageContext instanceof SoapMessageContext) { + SoapMessageContext soapContext = (SoapMessageContext) messageContext; + if (soapContext.getSoapRequest().getSoapHeader() == null) { + // no headers to process + return true; + } + String[] roles = getRoles(mappedEndpoint, soapContext.getSoapRequest().getVersion()); + if (logger.isDebugEnabled()) { + logger.debug("Handling MustUnderstand headers for actors/roles [" + + StringUtils.arrayToCommaDelimitedString(roles)); + } + for (int i = 0; i < roles.length; i++) { + if (!handleRequestForRole(mappedEndpoint, soapContext, roles[i])) { + return false; + } + } + } + return true; + } + + /** + * Determines the roles for a specific SOAP invocation chain. Gets the roles specified on the chain, and adds the + * SOAP-version specific 'next' role to it. + * + * @see SoapVersion#getNextActorOrRoleUri() + */ + protected String[] getRoles(EndpointInvocationChain mappedEndpoint, SoapVersion version) { + String[] mappedRoles = null; + if (mappedEndpoint instanceof SoapEndpointInvocationChain) { + SoapEndpointInvocationChain soapEndpoint = (SoapEndpointInvocationChain) mappedEndpoint; + mappedRoles = soapEndpoint.getActorsOrRoles(); + } + if (mappedRoles == null) { + mappedRoles = new String[0]; + } + return StringUtils.addStringToArray(mappedRoles, version.getNextActorOrRoleUri()); + } + + /** + * Handles the request for a single SOAP actor/role. Iterates over all MustUnderstand headers for a + * specific SOAP 1.1 actor or SOAP 1.2 role, and determines whether these are understood by any of the registered + * SoapEndpointInterceptor. If they are, returns true. If they are not, a SOAP fault is + * created, and false is returned. + * + * @see SoapEndpointInterceptor#understands(SoapHeaderElement) + */ + private boolean handleRequestForRole(EndpointInvocationChain mappedEndpoint, + SoapMessageContext messageContext, + String actorOrRole) { + SoapHeader requestHeader = messageContext.getSoapRequest().getSoapHeader(); + List notUnderstoodHeaderNames = new ArrayList(); + for (Iterator iterator = requestHeader.examineMustUnderstandHeaderElements(actorOrRole); iterator.hasNext();) { + SoapHeaderElement headerElement = (SoapHeaderElement) iterator.next(); + QName headerName = headerElement.getName(); + if (logger.isDebugEnabled()) { + logger.debug( + "Received mustUnderstand header [" + headerName + "] for actor/role [" + actorOrRole + "]"); + } + boolean understood = false; + for (int i = 0; i < mappedEndpoint.getInterceptors().length; i++) { + EndpointInterceptor interceptor = mappedEndpoint.getInterceptors()[i]; + if (interceptor instanceof SoapEndpointInterceptor && + ((SoapEndpointInterceptor) interceptor).understands(headerElement)) { + understood = true; + break; + } + } + if (!understood) { + notUnderstoodHeaderNames.add(headerName); + } + } + if (notUnderstoodHeaderNames.isEmpty()) { + return true; + } + else { + if (logger.isWarnEnabled()) { + logger.warn("Could not handle mustUnderstand headers: " + + StringUtils.collectionToCommaDelimitedString(notUnderstoodHeaderNames) + ". Returning fault"); + } + SoapBody responseBody = messageContext.getSoapResponse().getSoapBody(); + SoapFault fault = responseBody.addMustUnderstandFault(mustUnderstandFault, mustUnderstandFaultLocale); + fault.setFaultActorOrRole(actorOrRole); + SoapHeader header = messageContext.getSoapResponse().getSoapHeader(); + if (header instanceof Soap12Header) { + Soap12Header soap12Header = (Soap12Header) header; + for (Iterator iterator = notUnderstoodHeaderNames.iterator(); iterator.hasNext();) { + QName headerName = (QName) iterator.next(); + soap12Header.addNotUnderstoodHeaderElement(headerName); + } + } + return false; + } + } + + /** + * Trigger handleResponse or handleFault on the mapped EndpointInterceptors. Will just invoke said method on all + * interceptors whose handleRequest invocation returned true, in addition to the last interceptor who + * returned false. + * + * @param mappedEndpoint the mapped EndpointInvocationChain + * @param interceptorIndex index of last interceptor that was called + * @param messageContext the message context, whose request and response are filled + * @see org.springframework.ws.EndpointInterceptor#handleResponse(org.springframework.ws.context.MessageContext, + * Object) + */ + protected void triggerHandleResponse(EndpointInvocationChain mappedEndpoint, + int interceptorIndex, + MessageContext messageContext) throws Exception { + if (mappedEndpoint != null && messageContext.hasResponse() && + !ObjectUtils.isEmpty(mappedEndpoint.getInterceptors())) { + boolean hasFault = false; + if (messageContext instanceof SoapMessageContext) { + SoapMessageContext soapMessageContext = (SoapMessageContext) messageContext; + hasFault = soapMessageContext.getSoapResponse().getSoapBody().hasFault(); + } + boolean resume = true; + for (int i = interceptorIndex; resume && i >= 0; i--) { + EndpointInterceptor interceptor = mappedEndpoint.getInterceptors()[i]; + if (hasFault) { + if (interceptor instanceof SoapEndpointInterceptor) { + SoapEndpointInterceptor soapEndpointInterceptor = (SoapEndpointInterceptor) interceptor; + resume = soapEndpointInterceptor.handleFault(messageContext, mappedEndpoint.getEndpoint()); + } + } + else { + resume = interceptor.handleResponse(messageContext, mappedEndpoint.getEndpoint()); + } + } + } + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapMessageException.java b/core/src/main/java/org/springframework/ws/soap/SoapMessageException.java new file mode 100644 index 00000000..6196dea3 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapMessageException.java @@ -0,0 +1,41 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import org.springframework.ws.WebServiceMessageException; + +/** + * Base class for all SOAP message exceptions. + * + * @author Arjen Poutsma + */ +public abstract class SoapMessageException extends WebServiceMessageException { + + /** + * Constructor for SoapMessageException. + */ + public SoapMessageException(String msg) { + super(msg); + } + + /** + * Constructor for SoapMessageException. + */ + public SoapMessageException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/SoapVersion.java b/core/src/main/java/org/springframework/ws/soap/SoapVersion.java new file mode 100644 index 00000000..66312994 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/SoapVersion.java @@ -0,0 +1,308 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import javax.xml.namespace.QName; + +/** + * Interface that defines a specific version of the SOAP specification. Contains properties for elements that make up a + * soap envelope. + * + * @author Arjen Poutsma + * @see #SOAP_11 + * @see #SOAP_12 + */ +public interface SoapVersion { + + /** + * Represents version 1.1 of the SOAP specification. + * + * @see SOAP 1.1 specification + */ + SoapVersion SOAP_11 = new SoapVersion() { + + private static final String ENVELOPE_NAMESPACE_URI = "http://schemas.xmlsoap.org/soap/envelope/"; + + private static final String NEXT_ROLE_URI = "http://schemas.xmlsoap.org/soap/actor/next"; + + private static final String CONTENT_TYPE = "text/xml"; + + private final QName ENVELOPE_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Envelope"); + + private final QName HEADER_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Header"); + + private final QName BODY_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Body"); + + private final QName FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Fault"); + + private final QName MUST_UNDERSTAND_ATTRIBUTE_NAME = new QName(ENVELOPE_NAMESPACE_URI, "mustUnderstand"); + + private final QName ACTOR_NAME = new QName(ENVELOPE_NAMESPACE_URI, "actor"); + + private final QName CLIENT_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Client"); + + private final QName SERVER_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Server"); + + private final QName MUST_UNDERSTAND_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "MustUnderstand"); + + private final QName VERSION_MISMATCH_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "VersionMismatch"); + + public QName getBodyName() { + return BODY_NAME; + } + + public QName getEnvelopeName() { + return ENVELOPE_NAME; + } + + public String getEnvelopeNamespaceUri() { + return ENVELOPE_NAMESPACE_URI; + } + + public QName getFaultName() { + return FAULT_NAME; + } + + public QName getHeaderName() { + return HEADER_NAME; + } + + public String getNextActorOrRoleUri() { + return NEXT_ROLE_URI; + } + + public String getNoneActorOrRoleUri() { + return ""; + } + + public QName getServerOrReceiverFaultName() { + return SERVER_FAULT_NAME; + } + + public String getUltimateReceiverRoleUri() { + return ""; + } + + public QName getActorOrRoleName() { + return ACTOR_NAME; + } + + public QName getClientOrSenderFaultName() { + return CLIENT_FAULT_NAME; + } + + public String getContentType() { + return CONTENT_TYPE; + } + + public QName getMustUnderstandAttributeName() { + return MUST_UNDERSTAND_ATTRIBUTE_NAME; + } + + public QName getMustUnderstandFaultName() { + return MUST_UNDERSTAND_FAULT_NAME; + } + + public QName getVersionMismatchFaultName() { + return VERSION_MISMATCH_FAULT_NAME; + } + + public String toString() { + return "SOAP 1.1"; + } + }; + + /** + * Represents version 1.2 of the SOAP specification. + * + * @see SOAP 1.2 specification + */ + SoapVersion SOAP_12 = new SoapVersion() { + + private static final String ENVELOPE_NAMESPACE_URI = "http://www.w3.org/2003/05/soap-envelope"; + + private static final String NEXT_ROLE_URI = ENVELOPE_NAMESPACE_URI + "/role/next"; + + private static final String NONE_ROLE_URI = ENVELOPE_NAMESPACE_URI + "/role/none"; + + private static final String ULTIMATE_RECEIVER_ROLE_URI = ENVELOPE_NAMESPACE_URI + "/role/ultimateReceiver"; + + private static final String CONTENT_TYPE = "application/soap+xml"; + + private final QName ENVELOPE_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Envelope"); + + private final QName HEADER_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Header"); + + private final QName BODY_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Body"); + + private final QName FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Fault"); + + private final QName MUST_UNDERSTAND_ATTRIBUTE_NAME = new QName(ENVELOPE_NAMESPACE_URI, "mustUnderstand"); + + private final QName ROLE_NAME = new QName(ENVELOPE_NAMESPACE_URI, "role"); + + private final QName SENDER_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Sender"); + + private final QName RECEIVER_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "Receiver"); + + private final QName MUST_UNDERSTAND_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "MustUnderstand"); + + private final QName VERSION_MISMATCH_FAULT_NAME = new QName(ENVELOPE_NAMESPACE_URI, "VersionMismatch"); + + public QName getBodyName() { + return BODY_NAME; + } + + public QName getEnvelopeName() { + return ENVELOPE_NAME; + } + + public String getEnvelopeNamespaceUri() { + return ENVELOPE_NAMESPACE_URI; + } + + public QName getFaultName() { + return FAULT_NAME; + } + + public QName getHeaderName() { + return HEADER_NAME; + } + + public String getNextActorOrRoleUri() { + return NEXT_ROLE_URI; + } + + public String getNoneActorOrRoleUri() { + return NONE_ROLE_URI; + } + + public QName getServerOrReceiverFaultName() { + return RECEIVER_FAULT_NAME; + } + + public String getUltimateReceiverRoleUri() { + return ULTIMATE_RECEIVER_ROLE_URI; + } + + public QName getActorOrRoleName() { + return ROLE_NAME; + } + + public QName getClientOrSenderFaultName() { + return SENDER_FAULT_NAME; + } + + public String getContentType() { + return CONTENT_TYPE; + } + + public QName getMustUnderstandAttributeName() { + return MUST_UNDERSTAND_ATTRIBUTE_NAME; + } + + public QName getMustUnderstandFaultName() { + return MUST_UNDERSTAND_FAULT_NAME; + } + + public QName getVersionMismatchFaultName() { + return VERSION_MISMATCH_FAULT_NAME; + } + + public String toString() { + return "SOAP 1.2"; + } + + }; + + /** + * Returns the qualified name for a SOAP body. + */ + QName getBodyName(); + + /** + * Returns the Content-Type MIME header for a SOAP message. + */ + String getContentType(); + + /** + * Returns the qualified name for a SOAP envelope. + */ + QName getEnvelopeName(); + + /** + * Returns the namespace URI for the SOAP envelope namespace. + */ + String getEnvelopeNamespaceUri(); + + /** + * Returns the qualified name for a SOAP fault. + */ + QName getFaultName(); + + /** + * Returns the qualified name for a SOAP header. + */ + QName getHeaderName(); + + /** + * Returns the qualified name of the SOAP MustUnderstand attribute. + */ + QName getMustUnderstandAttributeName(); + + /** + * Returns the URI indicating that a header element is intended for the next SOAP application that processes the + * message. + */ + String getNextActorOrRoleUri(); + + /** + * Returns the URI indicating that a header element should never be directly processed. + */ + String getNoneActorOrRoleUri(); + + /** + * Returns the qualified name of the MustUnderstand SOAP Fault value. + */ + QName getMustUnderstandFaultName(); + + /** + * Returns the qualified name of the Receiver/Server SOAP Fault value. + */ + QName getServerOrReceiverFaultName(); + + /** + * Returns the qualified name of the VersionMismatch SOAP Fault value. + */ + QName getVersionMismatchFaultName(); + + /** + * Returns the qualified name of the SOAP actor/role attribute. + */ + QName getActorOrRoleName(); + + /** + * Returns the qualified name of the Sender/Client SOAP Fault value. + */ + QName getClientOrSenderFaultName(); + + /** + * Returns the URI indicating that a header element should only be processed by nodes acting as the ultimate + * receiver of a message. + */ + String getUltimateReceiverRoleUri(); +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomAttachmentException.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomAttachmentException.java new file mode 100644 index 00000000..a8852c96 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomAttachmentException.java @@ -0,0 +1,37 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import org.springframework.ws.soap.AttachmentException; + +/** + * @author Arjen Poutsma + */ +public class AxiomAttachmentException extends AttachmentException { + + public AxiomAttachmentException(String msg) { + super(msg); + } + + public AxiomAttachmentException(String msg, Throwable ex) { + super(msg, ex); + } + + public AxiomAttachmentException(Throwable ex) { + super(ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomContentHandler.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomContentHandler.java new file mode 100644 index 00000000..8190dcf9 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomContentHandler.java @@ -0,0 +1,43 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.impl.builder.SAXOMBuilder; +import org.springframework.util.Assert; +import org.xml.sax.SAXException; + +/** + * Specific SAX ContentHandler that adds the resulting AXIOM OMElement to a specified parent element when + * endDocument is called. Used for returing SAXResults from Axiom elements. + * + * @author Arjen Poutsma + */ +class AxiomContentHandler extends SAXOMBuilder { + + private OMElement parentElement = null; + + public AxiomContentHandler(OMElement parentElement) { + Assert.notNull(parentElement, "No parentElement given"); + this.parentElement = parentElement; + } + + public void endDocument() throws SAXException { + super.endDocument(); + parentElement.addChild(super.getRootElement()); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Body.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Body.java new file mode 100644 index 00000000..6249d7a8 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Body.java @@ -0,0 +1,117 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import java.util.Locale; +import javax.xml.namespace.QName; + +import org.apache.axiom.om.OMNamespace; +import org.apache.axiom.soap.SOAP11Constants; +import org.apache.axiom.soap.SOAPBody; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPFault; +import org.apache.axiom.soap.SOAPFaultCode; +import org.apache.axiom.soap.SOAPFaultReason; +import org.apache.axiom.soap.SOAPFaultText; +import org.apache.axiom.soap.SOAPFaultValue; +import org.apache.axiom.soap.SOAPProcessingException; +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; +import org.springframework.ws.soap.SoapFault; +import org.springframework.ws.soap.axiom.support.AxiomUtils; +import org.springframework.ws.soap.soap11.Soap11Body; +import org.springframework.ws.soap.soap11.Soap11Fault; +import org.springframework.xml.namespace.QNameUtils; + +/** + * Axiom-specific version of org.springframework.ws.soap.Soap11Body. + * + * @author Arjen Poutsma + */ +class AxiomSoap11Body extends AxiomSoapBody implements Soap11Body { + + AxiomSoap11Body(SOAPBody axiomBody, SOAPFactory axiomFactory, boolean payloadCaching) { + super(axiomBody, axiomFactory, payloadCaching); + } + + public SoapFault addMustUnderstandFault(String faultString, Locale locale) { + SOAPFault fault = addStandardFault(SOAP11Constants.FAULT_CODE_MUST_UNDERSTAND, faultString, locale); + return new AxiomSoap11Fault(fault, axiomFactory); + } + + public SoapFault addClientOrSenderFault(String faultString, Locale locale) { + SOAPFault fault = addStandardFault(SOAP11Constants.FAULT_CODE_SENDER, faultString, locale); + return new AxiomSoap11Fault(fault, axiomFactory); + } + + public SoapFault addServerOrReceiverFault(String faultString, Locale locale) { + SOAPFault fault = addStandardFault(SOAP11Constants.FAULT_CODE_RECEIVER, faultString, locale); + return new AxiomSoap11Fault(fault, axiomFactory); + } + + public SoapFault addVersionMismatchFault(String faultString, Locale locale) { + SOAPFault fault = addStandardFault(SOAP11Constants.FAULT_CODE_VERSION_MISMATCH, faultString, locale); + return new AxiomSoap11Fault(fault, axiomFactory); + } + + public Soap11Fault addFault(QName code, String faultString, Locale locale) { + Assert.notNull(code, "No faultCode given"); + Assert.hasLength(faultString, "faultString cannot be empty"); + if (!StringUtils.hasLength(code.getNamespaceURI())) { + throw new IllegalArgumentException( + "A fault code with namespace and local part must be specific for a custom fault code"); + } + try { + detachAllBodyChildren(); + SOAPFault fault = axiomFactory.createSOAPFault(axiomBody); + SOAPFaultCode faultCode = axiomFactory.createSOAPFaultCode(fault); + SOAPFaultValue faultCodeValue = axiomFactory.createSOAPFaultValue(faultCode); + setValueText(code, fault, faultCodeValue); + SOAPFaultReason faultReason = axiomFactory.createSOAPFaultReason(fault); + SOAPFaultText faultText = axiomFactory.createSOAPFaultText(faultReason); + if (locale != null) { + faultText.setLang(AxiomUtils.toLanguage(locale)); + } + faultText.setText(faultString); + return new AxiomSoap11Fault(fault, axiomFactory); + + } + catch (SOAPProcessingException ex) { + throw new AxiomSoapFaultException(ex); + } + + } + + private void setValueText(QName code, SOAPFault fault, SOAPFaultValue faultValue) { + String prefix = QNameUtils.getPrefix(code); + if (StringUtils.hasLength(code.getNamespaceURI()) && StringUtils.hasLength(prefix)) { + OMNamespace namespace = fault.findNamespaceURI(prefix); + if (namespace == null) { + fault.declareNamespace(code.getNamespaceURI(), prefix); + } + } + else if (StringUtils.hasLength(code.getNamespaceURI())) { + OMNamespace namespace = fault.findNamespace(code.getNamespaceURI(), null); + if (namespace == null) { + throw new IllegalArgumentException("Could not resolve namespace of code [" + code + "]"); + } + code = QNameUtils.createQName(code.getNamespaceURI(), code.getLocalPart(), namespace.getPrefix()); + } + faultValue.setText(prefix + ":" + code.getLocalPart()); + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Fault.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Fault.java new file mode 100644 index 00000000..893456ea --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap11Fault.java @@ -0,0 +1,62 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import java.util.Locale; + +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPFault; +import org.apache.axiom.soap.SOAPFaultText; +import org.springframework.ws.soap.axiom.support.AxiomUtils; +import org.springframework.ws.soap.soap11.Soap11Fault; + +/** + * Axiom-specific version of org.springframework.ws.soap.Soap11Fault. + * + * @author Arjen Poutsma + */ +class AxiomSoap11Fault extends AxiomSoapFault implements Soap11Fault { + + AxiomSoap11Fault(SOAPFault axiomFault, SOAPFactory axiomFactory) { + super(axiomFault, axiomFactory); + } + + public String getFaultString() { + if (axiomFault.getReason() != null) { + SOAPFaultText soapText = axiomFault.getReason().getFirstSOAPText(); + if (soapText != null) { + return soapText.getText(); + } + } + return null; + } + + public Locale getFaultStringLocale() { + if (axiomFault.getReason() != null) { + SOAPFaultText soapText = axiomFault.getReason().getFirstSOAPText(); + if (soapText != null) { + String xmlLangString = soapText.getLang(); + if (xmlLangString != null) { + return AxiomUtils.toLocale(xmlLangString); + } + + } + } + return null; + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Body.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Body.java new file mode 100644 index 00000000..ee65c130 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Body.java @@ -0,0 +1,72 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import java.util.Locale; +import javax.xml.namespace.QName; + +import org.apache.axiom.soap.SOAP12Constants; +import org.apache.axiom.soap.SOAPBody; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPFault; +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapFault; +import org.springframework.ws.soap.soap12.Soap12Body; +import org.springframework.ws.soap.soap12.Soap12Fault; + +/** + * Axiom-specific version of org.springframework.ws.soap.Soap12Body. + * + * @author Arjen Poutsma + */ +class AxiomSoap12Body extends AxiomSoapBody implements Soap12Body { + + AxiomSoap12Body(SOAPBody axiomBody, SOAPFactory axiomFactory, boolean payloadCaching) { + super(axiomBody, axiomFactory, payloadCaching); + } + + public SoapFault addMustUnderstandFault(String reason, Locale locale) { + Assert.notNull(locale, "No locale given"); + SOAPFault fault = addStandardFault(SOAP12Constants.FAULT_CODE_MUST_UNDERSTAND, reason, locale); + return new AxiomSoap12Fault(fault, axiomFactory); + } + + public SoapFault addClientOrSenderFault(String reason, Locale locale) { + Assert.notNull(locale, "No locale given"); + SOAPFault fault = addStandardFault(SOAP12Constants.FAULT_CODE_SENDER, reason, locale); + return new AxiomSoap12Fault(fault, axiomFactory); + } + + public SoapFault addServerOrReceiverFault(String reason, Locale locale) { + Assert.notNull(locale, "No locale given"); + SOAPFault fault = addStandardFault(SOAP12Constants.FAULT_CODE_RECEIVER, reason, locale); + return new AxiomSoap12Fault(fault, axiomFactory); + } + + public SoapFault addVersionMismatchFault(String reason, Locale locale) { + Assert.notNull(locale, "No locale given"); + SOAPFault fault = addStandardFault(SOAP12Constants.FAULT_CODE_VERSION_MISMATCH, reason, locale); + return new AxiomSoap12Fault(fault, axiomFactory); + } + + public Soap12Fault addDataEncodingUnknownFault(QName[] subcodes, String reason, Locale locale) { + Assert.notNull(locale, "No locale given"); + SOAPFault fault = addStandardFault(SOAP12Constants.FAULT_CODE_DATA_ENCODING_UNKNOWN, reason, locale); + return new AxiomSoap12Fault(fault, axiomFactory); + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Fault.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Fault.java new file mode 100644 index 00000000..3f9166c1 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Fault.java @@ -0,0 +1,140 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import javax.xml.namespace.QName; + +import org.apache.axiom.om.OMNamespace; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPFault; +import org.apache.axiom.soap.SOAPFaultCode; +import org.apache.axiom.soap.SOAPFaultNode; +import org.apache.axiom.soap.SOAPFaultReason; +import org.apache.axiom.soap.SOAPFaultSubCode; +import org.apache.axiom.soap.SOAPFaultText; +import org.apache.axiom.soap.SOAPFaultValue; +import org.apache.axiom.soap.SOAPProcessingException; +import org.springframework.util.StringUtils; +import org.springframework.ws.soap.axiom.support.AxiomUtils; +import org.springframework.ws.soap.soap12.Soap12Fault; +import org.springframework.xml.namespace.QNameUtils; + +/** + * Axiom-specific version of org.springframework.ws.soap.Soap12Fault. + */ +class AxiomSoap12Fault extends AxiomSoapFault implements Soap12Fault { + + AxiomSoap12Fault(SOAPFault axiomFault, SOAPFactory axiomFactory) { + super(axiomFault, axiomFactory); + } + + public Iterator getFaultSubcodes() { + List subcodes = new ArrayList(); + SOAPFaultSubCode subcode = axiomFault.getCode().getSubCode(); + while (subcode != null) { + subcodes.add(getFaultCode(subcode.getValue())); + subcode = subcode.getSubCode(); + } + return subcodes.iterator(); + } + + public void addFaultSubcode(QName subcode) { + SOAPFaultCode faultCode = axiomFault.getCode(); + SOAPFaultSubCode faultSubCode = null; + if (faultCode.getSubCode() == null) { + faultSubCode = axiomFactory.createSOAPFaultSubCode(faultCode); + } + else { + faultSubCode = faultCode.getSubCode(); + while (true) { + if (faultSubCode.getSubCode() != null) { + faultSubCode = faultSubCode.getSubCode(); + } + else { + faultSubCode = axiomFactory.createSOAPFaultSubCode(faultSubCode); + break; + } + } + } + SOAPFaultValue faultValue = axiomFactory.createSOAPFaultValue(faultSubCode); + setValueText(subcode, faultValue); + } + + private void setValueText(QName code, SOAPFaultValue faultValue) { + String prefix = QNameUtils.getPrefix(code); + if (StringUtils.hasLength(code.getNamespaceURI()) && StringUtils.hasLength(prefix)) { + OMNamespace namespace = axiomFault.findNamespaceURI(prefix); + if (namespace == null) { + axiomFault.declareNamespace(code.getNamespaceURI(), prefix); + } + } + else if (StringUtils.hasLength(code.getNamespaceURI())) { + OMNamespace namespace = axiomFault.findNamespace(code.getNamespaceURI(), null); + if (namespace == null) { + throw new IllegalArgumentException("Could not resolve namespace of code [" + code + "]"); + } + code = QNameUtils.createQName(code.getNamespaceURI(), code.getLocalPart(), namespace.getPrefix()); + } + faultValue.setText(prefix + ":" + code.getLocalPart()); + } + + public String getFaultNode() { + SOAPFaultNode faultNode = axiomFault.getNode(); + if (faultNode == null) { + return null; + } + else { + return faultNode.getNodeValue(); + } + } + + public void setFaultNode(String uri) { + try { + SOAPFaultNode faultNode = axiomFactory.createSOAPFaultNode(axiomFault); + faultNode.setNodeValue(uri); + axiomFault.setNode(faultNode); + } + catch (SOAPProcessingException ex) { + throw new AxiomSoapFaultException(ex); + } + } + + public String getFaultReasonText(Locale locale) { + SOAPFaultReason faultReason = axiomFault.getReason(); + String language = AxiomUtils.toLanguage(locale); + SOAPFaultText faultText = faultReason.getSOAPFaultText(language); + return faultText != null ? faultText.getText() : null; + } + + public void setFaultReasonText(Locale locale, String text) { + SOAPFaultReason faultReason = axiomFault.getReason(); + String language = AxiomUtils.toLanguage(locale); + try { + SOAPFaultText faultText = axiomFactory.createSOAPFaultText(faultReason); + faultText.setLang(language); + faultText.setText(text); + } + catch (SOAPProcessingException ex) { + throw new AxiomSoapFaultException(ex); + } + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Header.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Header.java new file mode 100644 index 00000000..11fcc0f2 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoap12Header.java @@ -0,0 +1,71 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import javax.xml.namespace.QName; + +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMException; +import org.apache.axiom.om.OMNamespace; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPHeader; +import org.apache.axiom.soap.SOAPHeaderBlock; +import org.apache.axiom.soap.SOAPProcessingException; +import org.springframework.ws.soap.SoapHeaderElement; +import org.springframework.ws.soap.soap12.Soap12Header; +import org.springframework.xml.namespace.QNameUtils; + +/** + * Axiom-specific version of org.springframework.ws.soap.Soap12Header. + * + * @author Arjen Poutsma + */ +class AxiomSoap12Header extends AxiomSoapHeader implements Soap12Header { + + AxiomSoap12Header(SOAPHeader axiomHeader, SOAPFactory axiomFactory) { + super(axiomHeader, axiomFactory); + } + + public SoapHeaderElement addNotUnderstoodHeaderElement(QName headerName) { + try { + SOAPHeaderBlock notUnderstood = axiomHeader.addHeaderBlock("NotUnderstood", axiomHeader.getNamespace()); + OMNamespace headerNamespace = + notUnderstood.declareNamespace(headerName.getNamespaceURI(), QNameUtils.getPrefix(headerName)); + notUnderstood.addAttribute("qname", headerNamespace.getPrefix() + ":" + headerName.getLocalPart(), null); + return new AxiomSoapHeaderElement(notUnderstood, axiomFactory); + } + catch (SOAPProcessingException ex) { + throw new AxiomSoapHeaderException(ex); + } + } + + public SoapHeaderElement addUpgradeHeaderElement(String[] supportedSoapUris) { + try { + SOAPHeaderBlock upgrade = axiomHeader.addHeaderBlock("Upgrade", axiomHeader.getNamespace()); + for (int i = 0; i < supportedSoapUris.length; i++) { + OMElement supportedEnvelope = + axiomFactory.createOMElement("SupportedEnvelope", axiomHeader.getNamespace(), upgrade); + OMNamespace namespace = supportedEnvelope.declareNamespace(supportedSoapUris[i], ""); + supportedEnvelope.addAttribute("qname", namespace.getPrefix() + ":Envelope", null); + } + return new AxiomSoapHeaderElement(upgrade, axiomFactory); + } + catch (OMException ex) { + throw new AxiomSoapHeaderException(ex); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapBody.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapBody.java new file mode 100644 index 00000000..7930c8e6 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapBody.java @@ -0,0 +1,139 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import java.util.Iterator; +import java.util.Locale; +import javax.xml.namespace.QName; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.sax.SAXResult; + +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMException; +import org.apache.axiom.soap.SOAPBody; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPFault; +import org.apache.axiom.soap.SOAPFaultCode; +import org.apache.axiom.soap.SOAPFaultReason; +import org.apache.axiom.soap.SOAPFaultText; +import org.apache.axiom.soap.SOAPFaultValue; +import org.apache.axiom.soap.SOAPProcessingException; +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapBody; +import org.springframework.ws.soap.SoapFault; +import org.springframework.ws.soap.axiom.support.AxiomUtils; +import org.springframework.xml.transform.StaxSource; + +/** + * Axiom-specific version of org.springframework.ws.soap.Soap11Body. + * + * @author Arjen Poutsma + */ +abstract class AxiomSoapBody implements SoapBody { + + protected final SOAPBody axiomBody; + + protected final SOAPFactory axiomFactory; + + private boolean payloadCaching; + + protected AxiomSoapBody(SOAPBody axiomBody, SOAPFactory axiomFactory, boolean payloadCaching) { + Assert.notNull(axiomBody, "No axiomBody given"); + Assert.notNull(axiomFactory, "No axiomFactory given"); + this.axiomBody = axiomBody; + this.axiomFactory = axiomFactory; + this.payloadCaching = payloadCaching; + } + + public Source getPayloadSource() { + try { + OMElement payloadElement = getPayloadElement(); + if (payloadElement == null) { + return null; + } + else if (payloadCaching) { + return new StaxSource(payloadElement.getXMLStreamReader()); + } + else { + return new StaxSource(payloadElement.getXMLStreamReaderWithoutCaching()); + } + } + catch (OMException ex) { + throw new AxiomSoapBodyException(ex); + } + } + + public Result getPayloadResult() { + return new SAXResult(new AxiomContentHandler(axiomBody)); + } + + public boolean hasFault() { + return axiomBody.hasFault(); + } + + public SoapFault getFault() { + SOAPFault axiomFault = axiomBody.getFault(); + return axiomFault != null ? new AxiomSoap11Fault(axiomFault, axiomFactory) : null; + } + + public QName getName() { + return axiomBody.getQName(); + } + + public Source getSource() { + return new StaxSource(axiomBody.getXMLStreamReader()); + } + + private OMElement getPayloadElement() throws OMException { + return axiomBody.getFirstElement(); + } + + protected void detachAllBodyChildren() { + try { + for (Iterator iterator = axiomBody.getChildElements(); iterator.hasNext();) { + OMElement child = (OMElement) iterator.next(); + child.detach(); + } + } + catch (OMException ex) { + throw new AxiomSoapBodyException(ex); + } + + } + + protected SOAPFault addStandardFault(String localName, String faultStringOrReason, Locale locale) { + Assert.notNull(faultStringOrReason, "No faultStringOrReason given"); + try { + detachAllBodyChildren(); + SOAPFault fault = axiomFactory.createSOAPFault(axiomBody); + SOAPFaultCode code = axiomFactory.createSOAPFaultCode(fault); + SOAPFaultValue value = axiomFactory.createSOAPFaultValue(code); + value.setText(fault.getNamespace().getPrefix() + ":" + localName); + SOAPFaultReason reason = axiomFactory.createSOAPFaultReason(fault); + SOAPFaultText text = axiomFactory.createSOAPFaultText(reason); + if (locale != null) { + text.setLang(AxiomUtils.toLanguage(locale)); + } + text.setText(faultStringOrReason); + return fault; + } + catch (SOAPProcessingException ex) { + throw new AxiomSoapFaultException(ex); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapBodyException.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapBodyException.java new file mode 100644 index 00000000..1e3fdfc3 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapBodyException.java @@ -0,0 +1,37 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import org.springframework.ws.soap.SoapEnvelopeException; + +/** + * @author Arjen Poutsma + */ +public class AxiomSoapBodyException extends SoapEnvelopeException { + + public AxiomSoapBodyException(String msg) { + super(msg); + } + + public AxiomSoapBodyException(String msg, Throwable ex) { + super(msg, ex); + } + + public AxiomSoapBodyException(Throwable ex) { + super(ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapEnvelope.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapEnvelope.java new file mode 100644 index 00000000..287b541e --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapEnvelope.java @@ -0,0 +1,100 @@ +package org.springframework.ws.soap.axiom; + +import javax.xml.namespace.QName; +import javax.xml.transform.Source; + +import org.apache.axiom.om.OMException; +import org.apache.axiom.soap.SOAP11Constants; +import org.apache.axiom.soap.SOAP12Constants; +import org.apache.axiom.soap.SOAPBody; +import org.apache.axiom.soap.SOAPEnvelope; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPHeader; +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapBody; +import org.springframework.ws.soap.SoapEnvelope; +import org.springframework.ws.soap.SoapHeader; +import org.springframework.xml.transform.StaxSource; + +/** + * Axiom-Specific version of org.springframework.ws.soap.SoapEnvelope. + * + * @author Arjen Poutsma + */ +class AxiomSoapEnvelope implements SoapEnvelope { + + private final SOAPEnvelope axiomEnvelope; + + private final SOAPFactory axiomFactory; + + boolean payloadCaching; + + private AxiomSoapBody body; + + public AxiomSoapEnvelope(SOAPEnvelope axiomEnvelope, SOAPFactory axiomFactory, boolean payloadCaching) { + Assert.notNull(axiomEnvelope, "No axiomEnvelope given"); + Assert.notNull(axiomFactory, "No axiomFactory given"); + this.axiomEnvelope = axiomEnvelope; + this.axiomFactory = axiomFactory; + this.payloadCaching = payloadCaching; + } + + public QName getName() { + return axiomEnvelope.getQName(); + } + + public Source getSource() { + try { + return new StaxSource(axiomEnvelope.getXMLStreamReader()); + } + catch (OMException ex) { + throw new AxiomSoapEnvelopeException(ex); + } + } + + public SoapHeader getHeader() { + try { + if (axiomEnvelope.getHeader() == null) { + return null; + } + else { + SOAPHeader axiomHeader = axiomEnvelope.getHeader(); + String namespaceURI = axiomEnvelope.getNamespace().getName(); + if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(namespaceURI)) { + return new AxiomSoapHeader(axiomHeader, axiomFactory); + } + else if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(namespaceURI)) { + return new AxiomSoap12Header(axiomHeader, axiomFactory); + } + else { + throw new AxiomSoapEnvelopeException("Unknown SOAP namespace \"" + namespaceURI + "\""); + } + } + } + catch (OMException ex) { + throw new AxiomSoapHeaderException(ex); + } + } + + public SoapBody getBody() { + if (body == null) { + try { + SOAPBody axiomBody = axiomEnvelope.getBody(); + String namespaceURI = axiomEnvelope.getNamespace().getName(); + if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(namespaceURI)) { + body = new AxiomSoap11Body(axiomBody, axiomFactory, payloadCaching); + } + else if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(namespaceURI)) { + body = new AxiomSoap12Body(axiomBody, axiomFactory, payloadCaching); + } + else { + throw new AxiomSoapEnvelopeException("Unknown SOAP namespace \"" + namespaceURI + "\""); + } + } + catch (OMException ex) { + throw new AxiomSoapBodyException(ex); + } + } + return body; + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapEnvelopeException.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapEnvelopeException.java new file mode 100644 index 00000000..189fdef6 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapEnvelopeException.java @@ -0,0 +1,37 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import org.springframework.ws.soap.SoapEnvelopeException; + +/** + * @author Arjen Poutsma + */ +public class AxiomSoapEnvelopeException extends SoapEnvelopeException { + + public AxiomSoapEnvelopeException(String msg) { + super(msg); + } + + public AxiomSoapEnvelopeException(String msg, Throwable ex) { + super(msg, ex); + } + + public AxiomSoapEnvelopeException(Throwable ex) { + super(ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFault.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFault.java new file mode 100644 index 00000000..8de42347 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFault.java @@ -0,0 +1,112 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import javax.xml.namespace.QName; +import javax.xml.transform.Source; + +import org.apache.axiom.om.OMException; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPFault; +import org.apache.axiom.soap.SOAPFaultDetail; +import org.apache.axiom.soap.SOAPFaultRole; +import org.apache.axiom.soap.SOAPFaultValue; +import org.apache.axiom.soap.SOAPProcessingException; +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapFault; +import org.springframework.ws.soap.SoapFaultDetail; +import org.springframework.xml.namespace.QNameUtils; +import org.springframework.xml.transform.StaxSource; + +/** + * @author Arjen Poutsma + */ +abstract class AxiomSoapFault implements SoapFault { + + protected final SOAPFault axiomFault; + + protected final SOAPFactory axiomFactory; + + protected AxiomSoapFault(SOAPFault axiomFault, SOAPFactory axiomFactory) { + Assert.notNull(axiomFault, "No axiomFault given"); + Assert.notNull(axiomFactory, "No axiomFactory given"); + this.axiomFault = axiomFault; + this.axiomFactory = axiomFactory; + } + + public QName getName() { + return axiomFault.getQName(); + } + + public Source getSource() { + return new StaxSource(axiomFault.getXMLStreamReader()); + } + + public QName getFaultCode() { + return getFaultCode(axiomFault.getCode().getValue()); + } + + /** + * Axiom 1.0's getTextAsQName is broken for SOAPFaultValues, hence this. + */ + protected QName getFaultCode(SOAPFaultValue value) { + String text = value.getText(); + int idx = text.indexOf(':'); + String prefix = text.substring(0, idx); + String localPart = text.substring(idx + 1); + String namespaceUri = axiomFault.getCode().getValue().findNamespaceURI(prefix).getName(); + return QNameUtils.createQName(namespaceUri, localPart, prefix); + } + + public String getFaultActorOrRole() { + SOAPFaultRole faultRole = axiomFault.getRole(); + return faultRole != null ? faultRole.getRoleValue() : null; + } + + public void setFaultActorOrRole(String actor) { + try { + SOAPFaultRole axiomFaultRole = axiomFactory.createSOAPFaultRole(axiomFault); + axiomFaultRole.setRoleValue(actor); + } + catch (SOAPProcessingException ex) { + throw new AxiomSoapFaultException(ex); + } + + } + + public SoapFaultDetail getFaultDetail() { + try { + SOAPFaultDetail axiomFaultDetail = axiomFault.getDetail(); + return axiomFaultDetail != null ? new AxiomSoapFaultDetail(axiomFaultDetail, axiomFactory) : null; + } + catch (OMException ex) { + throw new AxiomSoapFaultException(ex); + } + + } + + public SoapFaultDetail addFaultDetail() { + try { + SOAPFaultDetail axiomFaultDetail = axiomFactory.createSOAPFaultDetail(axiomFault); + return new AxiomSoapFaultDetail(axiomFaultDetail, axiomFactory); + } + catch (OMException ex) { + throw new AxiomSoapFaultException(ex); + } + + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFaultDetail.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFaultDetail.java new file mode 100644 index 00000000..47ab1f16 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFaultDetail.java @@ -0,0 +1,107 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import java.util.Iterator; +import javax.xml.namespace.QName; +import javax.xml.transform.Source; + +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMException; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPFaultDetail; +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapFaultDetail; +import org.springframework.ws.soap.SoapFaultDetailElement; +import org.springframework.xml.transform.StaxSource; + +/** + * Axiom-specific version of org.springframework.ws.soap.SoapFaultDetail. + * + * @author Arjen Poutsma + */ +class AxiomSoapFaultDetail implements SoapFaultDetail { + + private final SOAPFaultDetail axiomFaultDetail; + + private final SOAPFactory axiomFactory; + + public AxiomSoapFaultDetail(SOAPFaultDetail axiomFaultDetail, SOAPFactory axiomFactory) { + Assert.notNull(axiomFaultDetail, "No axiomFaultDetail given"); + Assert.notNull(axiomFactory, "No axiomFactory given"); + this.axiomFaultDetail = axiomFaultDetail; + this.axiomFactory = axiomFactory; + } + + public SoapFaultDetailElement addFaultDetailElement(QName name) { + try { + OMElement element = axiomFactory.createOMElement(name, axiomFaultDetail); + return new AxiomSoapFaultDetailElement(element); + } + catch (OMException ex) { + throw new AxiomSoapFaultException(ex); + } + + } + + public Iterator getDetailEntries() { + return new AxiomSoapFaultDetailElementIterator(axiomFaultDetail.getAllDetailEntries()); + } + + public QName getName() { + return axiomFaultDetail.getQName(); + } + + public Source getSource() { + try { + return new StaxSource(axiomFaultDetail.getXMLStreamReader()); + } + catch (OMException ex) { + throw new AxiomSoapFaultException(ex); + } + + } + + private class AxiomSoapFaultDetailElementIterator implements Iterator { + + private final Iterator axiomIterator; + + private AxiomSoapFaultDetailElementIterator(Iterator axiomIterator) { + this.axiomIterator = axiomIterator; + } + + public boolean hasNext() { + return axiomIterator.hasNext(); + } + + public Object next() { + try { + OMElement axiomElement = (OMElement) axiomIterator.next(); + return new AxiomSoapFaultDetailElement(axiomElement); + } + catch (OMException ex) { + throw new AxiomSoapFaultException(ex); + } + + } + + public void remove() { + axiomIterator.remove(); + } + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFaultDetailElement.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFaultDetailElement.java new file mode 100644 index 00000000..86f4af4c --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFaultDetailElement.java @@ -0,0 +1,74 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import javax.xml.namespace.QName; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.sax.SAXResult; + +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMException; +import org.springframework.ws.soap.SoapFaultDetailElement; +import org.springframework.xml.transform.StaxSource; + +/** + * Axiom-specific version of org.springframework.ws.soap.SoapFaultDetailElement. + * + * @author Arjen Poutsma + */ +class AxiomSoapFaultDetailElement implements SoapFaultDetailElement { + + private final OMElement axiomElement; + + public AxiomSoapFaultDetailElement(OMElement axiomElement) { + this.axiomElement = axiomElement; + } + + public Result getResult() { + try { + return new SAXResult(new AxiomContentHandler(axiomElement)); + } + catch (OMException ex) { + throw new AxiomSoapFaultException(ex); + } + + } + + public void addText(String text) { + try { + axiomElement.setText(text); + } + catch (OMException ex) { + throw new AxiomSoapFaultException(ex); + } + } + + public QName getName() { + return axiomElement.getQName(); + } + + public Source getSource() { + try { + return new StaxSource(axiomElement.getXMLStreamReader()); + } + catch (OMException ex) { + throw new AxiomSoapFaultException(ex); + } + + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFaultException.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFaultException.java new file mode 100644 index 00000000..6c4f5c42 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapFaultException.java @@ -0,0 +1,37 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import org.springframework.ws.soap.SoapFaultException; + +/** + * @author Arjen Poutsma + */ +public class AxiomSoapFaultException extends SoapFaultException { + + public AxiomSoapFaultException(String msg) { + super(msg); + } + + public AxiomSoapFaultException(String msg, Throwable ex) { + super(msg, ex); + } + + public AxiomSoapFaultException(Throwable ex) { + super(ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapHeader.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapHeader.java new file mode 100644 index 00000000..b7d2f09a --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapHeader.java @@ -0,0 +1,116 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import java.util.Iterator; +import javax.xml.namespace.QName; +import javax.xml.transform.Source; + +import org.apache.axiom.om.OMException; +import org.apache.axiom.om.OMNamespace; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPHeader; +import org.apache.axiom.soap.SOAPHeaderBlock; +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapHeader; +import org.springframework.ws.soap.SoapHeaderElement; +import org.springframework.xml.namespace.QNameUtils; +import org.springframework.xml.transform.StaxSource; + +/** + * Axiom-specific version of org.springframework.ws.soap.SoapHeader. + * + * @author Arjen Poutsma + */ +class AxiomSoapHeader implements SoapHeader { + + protected final SOAPHeader axiomHeader; + + protected final SOAPFactory axiomFactory; + + AxiomSoapHeader(SOAPHeader axiomHeader, SOAPFactory axiomFactory) { + Assert.notNull(axiomHeader, "No axiomHeader given"); + Assert.notNull(axiomFactory, "No axiomFactory given"); + this.axiomHeader = axiomHeader; + this.axiomFactory = axiomFactory; + } + + public QName getName() { + return axiomHeader.getQName(); + } + + public Source getSource() { + return new StaxSource(axiomHeader.getXMLStreamReader()); + } + + public SoapHeaderElement addHeaderElement(QName name) { + try { + OMNamespace namespace = axiomFactory.createOMNamespace(name.getNamespaceURI(), QNameUtils.getPrefix(name)); + SOAPHeaderBlock axiomHeaderBlock = axiomHeader.addHeaderBlock(name.getLocalPart(), namespace); + return new AxiomSoapHeaderElement(axiomHeaderBlock, axiomFactory); + } + catch (OMException ex) { + throw new AxiomSoapHeaderException(ex); + } + } + + public Iterator examineMustUnderstandHeaderElements(String role) { + try { + return new AxiomSoapHeaderElementIterator(axiomHeader.examineMustUnderstandHeaderBlocks(role)); + } + catch (OMException ex) { + throw new AxiomSoapHeaderException(ex); + } + } + + public Iterator examineAllHeaderElements() { + try { + return new AxiomSoapHeaderElementIterator(axiomHeader.examineAllHeaderBlocks()); + } + catch (OMException ex) { + throw new AxiomSoapHeaderException(ex); + } + + } + + private class AxiomSoapHeaderElementIterator implements Iterator { + + private final Iterator axiomIterator; + + private AxiomSoapHeaderElementIterator(Iterator axiomIterator) { + this.axiomIterator = axiomIterator; + } + + public boolean hasNext() { + return axiomIterator.hasNext(); + } + + public Object next() { + try { + SOAPHeaderBlock axiomHeaderBlock = (SOAPHeaderBlock) axiomIterator.next(); + return new AxiomSoapHeaderElement(axiomHeaderBlock, axiomFactory); + } + catch (OMException ex) { + throw new AxiomSoapHeaderException(ex); + } + } + + public void remove() { + axiomIterator.remove(); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapHeaderElement.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapHeaderElement.java new file mode 100644 index 00000000..95cf2b43 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapHeaderElement.java @@ -0,0 +1,101 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import javax.xml.namespace.QName; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.sax.SAXResult; + +import org.apache.axiom.om.OMAttribute; +import org.apache.axiom.om.OMException; +import org.apache.axiom.om.OMNamespace; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPHeaderBlock; +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapHeaderElement; +import org.springframework.ws.soap.SoapHeaderException; +import org.springframework.xml.namespace.QNameUtils; +import org.springframework.xml.transform.StaxSource; + +/** + * Axiom-specific version of org.springframework.ws.soap.SoapHeaderHeaderElement. + */ +class AxiomSoapHeaderElement implements SoapHeaderElement { + + private final SOAPHeaderBlock axiomHeaderBlock; + + private final SOAPFactory axiomFactory; + + public AxiomSoapHeaderElement(SOAPHeaderBlock axiomHeaderBlock, SOAPFactory axiomFactory) { + Assert.notNull(axiomHeaderBlock, "No axiomHeaderBlock given"); + Assert.notNull(axiomFactory, "No axiomFactory given"); + this.axiomHeaderBlock = axiomHeaderBlock; + this.axiomFactory = axiomFactory; + } + + public QName getName() { + return axiomHeaderBlock.getQName(); + } + + public Source getSource() { + try { + return new StaxSource(axiomHeaderBlock.getXMLStreamReader()); + } + catch (OMException ex) { + throw new AxiomSoapHeaderException(ex); + } + + } + + public String getActorOrRole() { + return axiomHeaderBlock.getRole(); + } + + public void setActorOrRole(String role) { + axiomHeaderBlock.setRole(role); + } + + public boolean getMustUnderstand() { + return axiomHeaderBlock.getMustUnderstand(); + } + + public void setMustUnderstand(boolean mustUnderstand) { + axiomHeaderBlock.setMustUnderstand(mustUnderstand); + } + + public Result getResult() { + try { + return new SAXResult(new AxiomContentHandler(axiomHeaderBlock)); + } + catch (OMException ex) { + throw new AxiomSoapHeaderException(ex); + } + + } + + public void addAttribute(QName name, String value) throws SoapHeaderException { + try { + OMNamespace namespace = axiomFactory.createOMNamespace(name.getNamespaceURI(), QNameUtils.getPrefix(name)); + OMAttribute attribute = axiomFactory.createOMAttribute(name.getLocalPart(), namespace, value); + axiomHeaderBlock.addAttribute(attribute); + } + catch (OMException ex) { + throw new AxiomSoapHeaderException(ex); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapHeaderException.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapHeaderException.java new file mode 100644 index 00000000..11eea38b --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapHeaderException.java @@ -0,0 +1,37 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import org.springframework.ws.soap.SoapHeaderException; + +/** + * @author Arjen Poutsma + */ +public class AxiomSoapHeaderException extends SoapHeaderException { + + public AxiomSoapHeaderException(String msg) { + super(msg); + } + + public AxiomSoapHeaderException(String msg, Throwable ex) { + super(msg, ex); + } + + public AxiomSoapHeaderException(Throwable ex) { + super(ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessage.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessage.java new file mode 100644 index 00000000..489a6059 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessage.java @@ -0,0 +1,224 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.Arrays; +import java.util.Iterator; +import javax.mail.MessagingException; +import javax.xml.stream.XMLStreamException; + +import org.apache.axiom.attachments.Attachments; +import org.apache.axiom.attachments.Part; +import org.apache.axiom.om.OMException; +import org.apache.axiom.soap.SOAPEnvelope; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPMessage; +import org.apache.axiom.soap.SOAPProcessingException; +import org.springframework.core.io.InputStreamSource; +import org.springframework.ws.soap.AbstractSoapMessage; +import org.springframework.ws.soap.Attachment; +import org.springframework.ws.soap.SoapEnvelope; + +/** + * AXIOM-specific implementation of the SoapMessage interface. Accessed via the + * AxiomSoapMessageContext. + *

+ * Note that Axiom does support reading SOAP with Attachments (SwA) messages, but does not support creating them + * manually. Hence, the addAttachment methods throw an UnsupportedOperationException. + * + * @author Arjen Poutsma + * @see SOAPMessage + * @see AxiomSoapMessageContext + */ +public class AxiomSoapMessage extends AbstractSoapMessage { + + private final SOAPMessage axiomMessage; + + private final SOAPFactory axiomFactory; + + private final Attachments attachments; + + private boolean payloadCaching; + + private AxiomSoapEnvelope envelope; + + /** + * Create a new, empty AxiomSoapMessage. + * + * @param soapFactory the AXIOM SOAPFactory + */ + public AxiomSoapMessage(SOAPFactory soapFactory) { + SOAPEnvelope soapEnvelope = soapFactory.getDefaultEnvelope(); + axiomFactory = soapFactory; + axiomMessage = axiomFactory.createSOAPMessage(soapEnvelope, soapEnvelope.getBuilder()); + attachments = null; + payloadCaching = true; + } + + /** + * Create a new AxiomSoapMessage based on the given AXIOM SOAPMessage. + * + * @param soapMessage the AXIOM SOAPMessage + * @param attachments the attachments + * @param payloadCaching whether the contents of the SOAP body should be cached or not + */ + public AxiomSoapMessage(SOAPMessage soapMessage, Attachments attachments, boolean payloadCaching) { + axiomMessage = soapMessage; + axiomFactory = (SOAPFactory) soapMessage.getSOAPEnvelope().getOMFactory(); + this.attachments = attachments; + this.payloadCaching = payloadCaching; + } + + /** + * Return the AXIOM SOAPMessage that this AxiomSoapMessage is based on. + */ + public final SOAPMessage getAxiomMessage() { + return axiomMessage; + } + + public SoapEnvelope getEnvelope() { + if (envelope == null) { + try { + envelope = new AxiomSoapEnvelope(axiomMessage.getSOAPEnvelope(), axiomFactory, payloadCaching); + } + catch (SOAPProcessingException ex) { + throw new AxiomSoapEnvelopeException(ex); + } + } + return envelope; + } + + public Attachment getAttachment(String contentId) { + Part part = attachments.getPart(contentId); + return part != null ? new AxiomAttachment(part) : null; + } + + public Iterator getAttachments() { + return new AxiomAttachmentIterator(); + } + + /** + * Axiom does not support adding attachments manually. + * + * @throws UnsupportedOperationException always + */ + public Attachment addAttachment(File file) throws UnsupportedOperationException { + throw new UnsupportedOperationException("Axiom does not support adding SwA attachments."); + } + + /** + * Axiom does not support adding attachments manually. + * + * @throws UnsupportedOperationException always + */ + public Attachment addAttachment(InputStreamSource inputStreamSource, String contentType) + throws UnsupportedOperationException { + throw new UnsupportedOperationException("Axiom does not support adding SwA attachments."); + } + + public void writeTo(OutputStream outputStream) throws IOException { + try { + axiomMessage.serialize(outputStream); + } + catch (XMLStreamException ex) { + throw new AxiomSoapMessageException("Could not write message to OutputStream: " + ex.getMessage(), ex); + } + catch (OMException ex) { + throw new AxiomSoapMessageException("Could not write message to OutputStream: " + ex.getMessage(), ex); + } + } + + /** + * Axiom-specific implementation of org.springframework.ws.soap.Attachment + */ + private static class AxiomAttachment implements Attachment { + + private final Part part; + + private AxiomAttachment(Part part) { + this.part = part; + } + + public String getId() { + try { + return part.getContentID(); + } + catch (MessagingException ex) { + throw new AxiomAttachmentException(ex); + } + } + + public void setId(String id) { + throw new UnsupportedOperationException("Axiom does not support setting the Content-ID of attachments."); + } + + public String getContentType() { + try { + return part.getContentType(); + } + catch (MessagingException ex) { + throw new AxiomAttachmentException(ex); + } + } + + public InputStream getInputStream() throws IOException { + try { + return part.getInputStream(); + } + catch (MessagingException ex) { + throw new AxiomAttachmentException(ex); + } + } + + public long getSize() { + try { + return part.getSize(); + } + catch (MessagingException ex) { + throw new AxiomAttachmentException(ex); + } + } + } + + private class AxiomAttachmentIterator implements Iterator { + + private final Iterator iterator; + + private AxiomAttachmentIterator() { + iterator = Arrays.asList(attachments.getAllContentIDs()).iterator(); + } + + public boolean hasNext() { + return iterator.hasNext(); + } + + public Object next() { + String contentId = (String) iterator.next(); + Part part = attachments.getPart(contentId); + return part != null ? new AxiomAttachment(part) : null; + } + + public void remove() { + iterator.remove(); + } + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageContext.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageContext.java new file mode 100644 index 00000000..7e43aace --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageContext.java @@ -0,0 +1,90 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import java.io.IOException; +import javax.xml.stream.XMLStreamException; + +import org.apache.axiom.om.OMOutputFormat; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPMessage; +import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.soap.SoapVersion; +import org.springframework.ws.soap.context.AbstractSoapMessageContext; +import org.springframework.ws.transport.TransportRequest; +import org.springframework.ws.transport.TransportResponse; + +/** + * AXIOM-specific implementation of the SoapMessageContext interface. Created by the + * AxiomSoapMessageContextFactory. + * + * @author Arjen Poutsma + * @see AxiomSoapMessageContextFactory + */ +public class AxiomSoapMessageContext extends AbstractSoapMessageContext { + + /** + * Creates a new instance based on the given Axiom request message, and a SOAP factory. + * + * @param messageRequest the request message + */ + public AxiomSoapMessageContext(AxiomSoapMessage messageRequest, TransportRequest transportRequest) { + super(messageRequest, transportRequest); + } + + protected SoapMessage createResponseSoapMessage() { + SOAPFactory soapFactory = (SOAPFactory) getAxiomRequest().getSOAPEnvelope().getOMFactory(); + return new AxiomSoapMessage(soapFactory); + } + + /** + * Returns the request as an Axiom SOAP message. + */ + public SOAPMessage getAxiomRequest() { + return ((AxiomSoapMessage) getSoapRequest()).getAxiomMessage(); + } + + /** + * Returns the response as an Axiom SOAP message. + */ + public SOAPMessage getAxiomResponse() { + return ((AxiomSoapMessage) getSoapResponse()).getAxiomMessage(); + } + + public void sendResponse(TransportResponse transportResponse) throws IOException { + try { + if (hasResponse()) { + AxiomSoapMessage response = (AxiomSoapMessage) getSoapResponse(); + SOAPMessage axiomResponse = response.getAxiomMessage(); + String charsetEncoding = axiomResponse.getCharsetEncoding(); + + OMOutputFormat format = new OMOutputFormat(); + format.setCharSetEncoding(charsetEncoding); + format.setSOAP11(response.getVersion() == SoapVersion.SOAP_11); + String contentType = format.getContentType(); + contentType += "; charset=\"" + charsetEncoding + "\""; + + transportResponse.addHeader("Content-Type", contentType); + axiomResponse.serializeAndConsume(transportResponse.getOutputStream(), format); + } + } + catch (XMLStreamException ex) { + throw new AxiomSoapMessageException("Could not write message to OutputStream: " + ex.getMessage(), ex); + } + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageContextFactory.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageContextFactory.java new file mode 100644 index 00000000..f4944c8a --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageContextFactory.java @@ -0,0 +1,212 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Iterator; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; + +import org.apache.axiom.attachments.Attachments; +import org.apache.axiom.om.OMException; +import org.apache.axiom.om.impl.MTOMConstants; +import org.apache.axiom.om.impl.mtom.MTOMStAXSOAPModelBuilder; +import org.apache.axiom.soap.SOAP11Constants; +import org.apache.axiom.soap.SOAP12Constants; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axiom.soap.SOAPMessage; +import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder; +import org.apache.axiom.soap.impl.llom.soap11.SOAP11Factory; +import org.apache.axiom.soap.impl.llom.soap12.SOAP12Factory; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.util.Assert; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.context.MessageContextFactory; +import org.springframework.ws.soap.SoapMessageCreationException; +import org.springframework.ws.transport.TransportContext; +import org.springframework.ws.transport.TransportRequest; + +/** + * Axiom-specific implementation of the MessageContextFactory interface. Creates a + * AxiomSoapMessageContext. + *

+ * To increase reading performance on the the SOAP request created by this message context factory, you can set the + * payloadCaching property to false (default is true). This this will read the + * contents of the body directly from the TransportRequest. However, when this setting is enabled, + * the payload can only be read once. This means that any endpoint mappings or interceptors which are based on + * the message payload (such as the PayloadRootQNameEndpointMapping, the + * PayloadValidatingInterceptor, or the PayloadLoggingInterceptor) cannot be used. Instead, + * use an endpoint mapping that does not consume the payload (i.e. the SoapActionEndpointMapping). + *

+ * Mostly derived from org.apache.axis2.transport.http.HTTPTransportUtils and + * org.apache.axis2.transport.TransportUtils, which we cannot use since they are not part of the Axiom + * distribution. + * + * @author Arjen Poutsma + * @see AxiomSoapMessageContext + * @see #setPayloadCaching(boolean) + */ +public class AxiomSoapMessageContextFactory implements MessageContextFactory, InitializingBean { + + private static final Log logger = LogFactory.getLog(AxiomSoapMessageContextFactory.class); + + private static final String CHAR_SET_ENCODING = "charset"; + + private static final String DEFAULT_CHAR_SET_ENCODING = "UTF-8"; + + private static final String CONTENT_TYPE_HEADER = "Content-Type"; + + private static final String MULTI_PART_RELATED_CONTENT_TYPE = "multipart/related"; + + private boolean payloadCaching = true; + + private SOAP11Factory soap11Factory; + + private SOAP12Factory soap12Factory; + + /** + * Indicates whether the SOAP Body payload should be cached or not. Default is true. Setting this to + * false will increase performance, but also result in the fact that the message payload can only be + * read once. + */ + public void setPayloadCaching(boolean payloadCaching) { + this.payloadCaching = payloadCaching; + } + + private XMLInputFactory inputFactory; + + public void afterPropertiesSet() throws Exception { + inputFactory = XMLInputFactory.newInstance(); + soap11Factory = new SOAP11Factory(); + soap12Factory = new SOAP12Factory(); + if (logger.isInfoEnabled()) { + logger.info(payloadCaching ? "Enabled payload caching" : "Disabled payload caching"); + } + } + + public MessageContext createContext(TransportContext transportContext) throws IOException { + TransportRequest transportRequest = transportContext.getTransportRequest(); + Iterator iterator = transportRequest.getHeaders(CONTENT_TYPE_HEADER); + Assert.isTrue(iterator.hasNext(), "No " + CONTENT_TYPE_HEADER + " header present of TransportRequest"); + String contentType = (String) iterator.next(); + Assert.hasLength(contentType, "No " + CONTENT_TYPE_HEADER + " header present of TransportRequest"); + InputStream inputStream = transportRequest.getInputStream(); + try { + AxiomSoapMessage requestMessage; + if (contentType.indexOf(MULTI_PART_RELATED_CONTENT_TYPE) == -1) { + XMLStreamReader reader = + inputFactory.createXMLStreamReader(inputStream, getCharSetEncoding(contentType)); + SOAPFactory soapFactory = getSoapFactory(contentType); + StAXSOAPModelBuilder builder = + new StAXSOAPModelBuilder(reader, soapFactory, soapFactory.getSoapVersionURI()); + requestMessage = createAxiomSoapMessage(builder, null); + } + else { + requestMessage = createMultiPartAxiomSoapMessage(inputStream, contentType); + } + return new AxiomSoapMessageContext(requestMessage, transportRequest); + + } + catch (XMLStreamException ex) { + throw new SoapMessageCreationException("Could not create message: " + ex.getMessage(), ex); + } + catch (OMException ex) { + throw new SoapMessageCreationException("Could not create message: " + ex.getMessage(), ex); + } + } + + private AxiomSoapMessage createMultiPartAxiomSoapMessage(InputStream inputStream, String contentType) + throws XMLStreamException { + Attachments attachments = new Attachments(inputStream, contentType); + if (!(attachments.getAttachmentSpecType().equals(MTOMConstants.SWA_TYPE) || + attachments.getAttachmentSpecType().equals(MTOMConstants.MTOM_TYPE))) { + throw new SoapMessageCreationException( + "Unknown attachment type: [" + attachments.getAttachmentSpecType() + "]"); + } + XMLStreamReader reader = inputFactory.createXMLStreamReader(attachments.getSOAPPartInputStream(), + getCharSetEncoding(attachments.getSOAPPartContentType())); + SOAPFactory soapFactory = getSoapFactory(attachments.getSOAPPartContentType()); + StAXSOAPModelBuilder builder = null; + if (attachments.getAttachmentSpecType().equals(MTOMConstants.SWA_TYPE)) { + builder = new StAXSOAPModelBuilder(reader, soapFactory, soapFactory.getSoapVersionURI()); + } + else if (attachments.getAttachmentSpecType().equals(MTOMConstants.MTOM_TYPE)) { + builder = new MTOMStAXSOAPModelBuilder(reader, attachments, soapFactory.getSoapVersionURI()); + } + return new AxiomSoapMessage(builder.getSoapMessage(), attachments, payloadCaching); + } + + /** + * Creates a new AxiomSoapMessage based on the given parameters. + * + * @param modelBuilder the builder used to optain the Axiom SOAPMessage + * @param attachments the attachments, can be null + * @return the created message + */ + private AxiomSoapMessage createAxiomSoapMessage(StAXSOAPModelBuilder modelBuilder, Attachments attachments) { + SOAPMessage soapMessage = modelBuilder.getSoapMessage(); + return new AxiomSoapMessage(soapMessage, attachments, payloadCaching); + } + + private SOAPFactory getSoapFactory(String contentType) { + if (contentType.indexOf(SOAP11Constants.SOAP_11_CONTENT_TYPE) != -1) { + return soap11Factory; + } + else if (contentType.indexOf(SOAP12Constants.SOAP_12_CONTENT_TYPE) != -1) { + return soap12Factory; + } + else { + throw new SoapMessageCreationException("Unknown content type '" + contentType + "'"); + } + } + + /** + * Returns the character set from the given content type. Mostly copied + * + * @return the character set encoding + */ + protected String getCharSetEncoding(String contentType) { + int index = contentType.indexOf(CHAR_SET_ENCODING); + if (index == -1) { + return DEFAULT_CHAR_SET_ENCODING; + } + int idx = contentType.indexOf("=", index); + + int indexOfSemiColon = contentType.indexOf(";", idx); + String value; + + if (indexOfSemiColon > 0) { + value = contentType.substring(idx + 1, indexOfSemiColon); + } + else { + value = contentType.substring(idx + 1, contentType.length()).trim(); + } + if (value.charAt(0) == '"' && value.charAt(value.length() - 1) == '"') { + return value.substring(1, value.length() - 1); + } + if ("null".equalsIgnoreCase(value)) { + return DEFAULT_CHAR_SET_ENCODING; + } + else { + return value.trim(); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageCreationException.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageCreationException.java new file mode 100644 index 00000000..e42253ec --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageCreationException.java @@ -0,0 +1,33 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import org.springframework.ws.soap.SoapMessageCreationException; + +/** + * @author Arjen Poutsma + */ +public class AxiomSoapMessageCreationException extends SoapMessageCreationException { + + public AxiomSoapMessageCreationException(String msg) { + super(msg); + } + + public AxiomSoapMessageCreationException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageException.java b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageException.java new file mode 100644 index 00000000..91aba4a6 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/AxiomSoapMessageException.java @@ -0,0 +1,33 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import org.springframework.ws.soap.SoapMessageException; + +/** + * @author Arjen Poutsma + */ +public class AxiomSoapMessageException extends SoapMessageException { + + public AxiomSoapMessageException(String msg) { + super(msg); + } + + public AxiomSoapMessageException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/package.html b/core/src/main/java/org/springframework/ws/soap/axiom/package.html new file mode 100644 index 00000000..d3660a66 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/package.html @@ -0,0 +1,5 @@ + + +AXis Object Model (AXIOM) support for Spring-WS' soap message infrastructure. + + diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/support/AxiomUtils.java b/core/src/main/java/org/springframework/ws/soap/axiom/support/AxiomUtils.java new file mode 100644 index 00000000..03cb498f --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/support/AxiomUtils.java @@ -0,0 +1,84 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom.support; + +import java.util.Locale; +import javax.xml.namespace.QName; + +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMException; +import org.apache.axiom.om.OMNamespace; +import org.springframework.util.StringUtils; +import org.springframework.xml.namespace.QNameUtils; + +/** + * Collection of generic utility methods to work with Axiom. Includes conversion from OMNamespaces to + * QNames. + * + * @author Arjen Poutsma + * @see org.apache.axiom.om.OMNamespace + * @see javax.xml.namespace.QName + */ +public abstract class AxiomUtils { + + /** + * Converts a javax.xml.namespace.QName to a org.apache.axiom.om.OMNamespace. A + * OMElement is used to resolve the namespace, or to declare a new one. + * + * @param qName the QName to convert + * @param resolveElement the element used to resolve the Q + * @return the converted SAAJ Name + * @throws OMException if conversion is unsuccessful + * @throws IllegalArgumentException if qName is not fully qualified + */ + public static OMNamespace toNamespace(QName qName, OMElement resolveElement) throws OMException { + String prefix = QNameUtils.getPrefix(qName); + if (StringUtils.hasLength(qName.getNamespaceURI()) && StringUtils.hasLength(prefix)) { + return resolveElement.declareNamespace(qName.getNamespaceURI(), prefix); + } + else if (StringUtils.hasLength(qName.getNamespaceURI())) { + // check for existing namespace, and declare if necessary + return resolveElement.declareNamespace(qName.getNamespaceURI(), ""); + } + else { + throw new IllegalArgumentException("qName [" + qName + "] does not contain a namespace"); + } + } + + /** + * Converts the given locale to a xml:lang string, as used in Axiom Faults. + * + * @param locale the locale + * @return the language string + */ + public static String toLanguage(Locale locale) { + return locale.toString().replace('_', '-'); + } + + /** + * Converts the given locale to a xml:lang string, as used in Axiom Faults. + * + * @param language the language string + * @return the locale + */ + public static Locale toLocale(String language) { + language = language.replace('-', '_'); + return StringUtils.parseLocaleString(language); + } + + +} diff --git a/core/src/main/java/org/springframework/ws/soap/axiom/support/package.html b/core/src/main/java/org/springframework/ws/soap/axiom/support/package.html new file mode 100644 index 00000000..cca976b3 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/axiom/support/package.html @@ -0,0 +1,5 @@ + + +Support classes for working with the AXis Object Model (AXIOM). + + diff --git a/core/src/main/java/org/springframework/ws/soap/context/AbstractSoapMessageContext.java b/core/src/main/java/org/springframework/ws/soap/context/AbstractSoapMessageContext.java new file mode 100644 index 00000000..7a32656d --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/context/AbstractSoapMessageContext.java @@ -0,0 +1,49 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.context; + +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.context.AbstractMessageContext; +import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.transport.TransportRequest; + +/** + * Abstract implementation of the SoapMessageContext interface. Implements base MessageContext + * methods by delegating to SoapMessageContext functionality. + * + * @author Arjen Poutsma + */ +public abstract class AbstractSoapMessageContext extends AbstractMessageContext implements SoapMessageContext { + + protected AbstractSoapMessageContext(SoapMessage request, TransportRequest transportRequest) { + super(request, transportRequest); + } + + public final SoapMessage getSoapResponse() { + return (SoapMessage) getResponse(); + } + + public final SoapMessage getSoapRequest() { + return (SoapMessage) getRequest(); + } + + protected final WebServiceMessage createResponseMessage() { + return createResponseSoapMessage(); + } + + protected abstract SoapMessage createResponseSoapMessage(); +} diff --git a/core/src/main/java/org/springframework/ws/soap/context/SoapMessageContext.java b/core/src/main/java/org/springframework/ws/soap/context/SoapMessageContext.java new file mode 100644 index 00000000..a5161271 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/context/SoapMessageContext.java @@ -0,0 +1,46 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.context; + +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.soap.SoapMessage; + +/** + * SOAP-specific extension of the MessageContext interface. Contains methods to obtain + * SoapMessages instead of WebServiceMessages. + * + * @author Arjen Poutsma + */ +public interface SoapMessageContext extends MessageContext { + + /** + * Returns the request SOAP message. + * + * @return the request message + */ + SoapMessage getSoapRequest(); + + /** + * Returns the response message, if created. Returns null if no response message was created so far. + * + * @return the response message, or null if none was created + * @see #hasResponse() + */ + SoapMessage getSoapResponse(); + + +} diff --git a/core/src/main/java/org/springframework/ws/soap/context/package.html b/core/src/main/java/org/springframework/ws/soap/context/package.html new file mode 100644 index 00000000..7f5e8b44 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/context/package.html @@ -0,0 +1,5 @@ + + +Contains the SoapMessageContext interface. + + diff --git a/core/src/main/java/org/springframework/ws/soap/endpoint/SimpleSoapExceptionResolver.java b/core/src/main/java/org/springframework/ws/soap/endpoint/SimpleSoapExceptionResolver.java new file mode 100644 index 00000000..bfa2ea64 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/endpoint/SimpleSoapExceptionResolver.java @@ -0,0 +1,38 @@ +package org.springframework.ws.soap.endpoint; + +import java.util.Locale; + +import org.springframework.util.StringUtils; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.endpoint.AbstractEndpointExceptionResolver; +import org.springframework.ws.soap.SoapBody; +import org.springframework.ws.soap.context.SoapMessageContext; + +/** + * Simple, SOAP-specific implementation of the EndpointExceptionResolver that stores the exception's + * message as the fault string. The fault code is always set to a Sender (in SOAP 1.1) or Receiver (SOAP 1.2). + * + * @author Arjen Poutsma + */ +public class SimpleSoapExceptionResolver extends AbstractEndpointExceptionResolver { + + private Locale locale = Locale.ENGLISH; + + /** + * Sets the locale for the faultstring or reason of the SOAP Fault. Defaults to english. + */ + public void setLocale(Locale locale) { + this.locale = locale; + } + + protected boolean resolveExceptionInternal(MessageContext messageContext, Object endpoint, Exception ex) { + if (!(messageContext instanceof SoapMessageContext)) { + throw new IllegalArgumentException("SimpleSoapExceptionResolver requires a SoapMessageContext"); + } + String faultString = StringUtils.hasLength(ex.getMessage()) ? ex.getMessage() : ex.toString(); + SoapMessageContext soapContext = (SoapMessageContext) messageContext; + SoapBody body = soapContext.getSoapResponse().getSoapBody(); + body.addServerOrReceiverFault(faultString, locale); + return true; + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/endpoint/SoapFaultDefinition.java b/core/src/main/java/org/springframework/ws/soap/endpoint/SoapFaultDefinition.java new file mode 100644 index 00000000..970ce666 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/endpoint/SoapFaultDefinition.java @@ -0,0 +1,111 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.endpoint; + +import java.util.Locale; +import javax.xml.namespace.QName; + +/** + * Defines properties for a SOAP Fault. Used by the SoapFaultDefinitionEditor and the + * SoapFaultMappingExceptionResolver. + * + * @author Arjen Poutsma + * @see SoapFaultDefinitionEditor + * @see SoapFaultMappingExceptionResolver + */ +public class SoapFaultDefinition { + + /** + * Constant QName used to indicate that a Client fault must be created. + * + * @see org.springframework.ws.soap.SoapBody#addClientOrSenderFault(String, java.util.Locale) + */ + public static final QName CLIENT = new QName("CLIENT"); + + /** + * Constant QName used to indicate that a Receiver fault must be created. + * + * @see org.springframework.ws.soap.SoapBody#addServerOrReceiverFault(String, java.util.Locale) + */ + public static final QName RECEIVER = new QName("RECEIVER"); + + /** + * Constant QName used to indicate that a Sender fault must be created. + * + * @see org.springframework.ws.soap.SoapBody#addServerOrReceiverFault(String, java.util.Locale) + */ + public static final QName SENDER = new QName("SENDER"); + + /** + * Constant QName used to indicate that a Server fault must be created. + * + * @see org.springframework.ws.soap.SoapBody#addClientOrSenderFault(String, java.util.Locale) + */ + public static final QName SERVER = new QName("SERVER"); + + private QName faultCode; + + private String faultStringOrReason; + + private Locale locale = Locale.ENGLISH; + + /** + * Returns the fault code. + */ + public QName getFaultCode() { + return faultCode; + } + + /** + * Sets the fault code. + */ + public void setFaultCode(QName faultCode) { + this.faultCode = faultCode; + } + + /** + * Returns the fault string or reason text. + */ + public String getFaultStringOrReason() { + return faultStringOrReason; + } + + /** + * Sets the fault string or reason text. + */ + public void setFaultStringOrReason(String faultStringOrReason) { + this.faultStringOrReason = faultStringOrReason; + } + + /** + * Gets the fault string locale. By default, it is English. + * + * @see Locale#ENGLISH + */ + public Locale getLocale() { + return locale; + } + + /** + * Sets the fault string locale. By default, it is English. + * + * @see Locale#ENGLISH + */ + public void setLocale(Locale locale) { + this.locale = locale; + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/endpoint/SoapFaultDefinitionEditor.java b/core/src/main/java/org/springframework/ws/soap/endpoint/SoapFaultDefinitionEditor.java new file mode 100644 index 00000000..34251ac1 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/endpoint/SoapFaultDefinitionEditor.java @@ -0,0 +1,88 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.endpoint; + +import java.beans.PropertyEditorSupport; +import java.util.Locale; +import javax.xml.namespace.QName; + +import org.springframework.beans.propertyeditors.LocaleEditor; +import org.springframework.util.StringUtils; +import org.springframework.xml.namespace.QNameEditor; + +/** + * PropertyEditor for SoapFaultDefinition objects. Takes strings of form + *

+ * faultCode,faultString,locale
+ * 
+ * where faultCode is the string representation of a QName, faultStringOrReason + * is the fault string, and locale is the optional string representations for the + * faultStringOrReasonlanguage. By default, the language is set to English. + *

+ * Instead of supplying a custom fault code, you can use the constants SERVER or RECEIVER + * indicate a Server/Receiver fault, or or CLIENT or SENDER + * toClient/Sender fault respectivaly. + *

+ * For example: + *

+ * RECEIVER,Server error
+ * 
+ * or + *
+ * CLIENT,Client error
+ * 
+ * + * @author Arjen Poutsma + * @see javax.xml.namespace.QName#toString() + * @see org.springframework.xml.namespace.QNameEditor + * @see SoapFaultDefinition#RECEIVER + * @see SoapFaultDefinition#SENDER + * @see org.springframework.ws.soap.SoapFault#getFaultCode() + */ +public class SoapFaultDefinitionEditor extends PropertyEditorSupport { + + private static final int FAULT_CODE_INDEX = 0; + + private static final int FAULT_STRING_INDEX = 1; + + private static final int FAULT_STRING_LOCALE_INDEX = 2; + + public void setAsText(String text) throws IllegalArgumentException { + if (!StringUtils.hasLength(text)) { + setValue(null); + } + else { + String[] tokens = StringUtils.commaDelimitedListToStringArray(text); + if (tokens.length < 2) { + throw new IllegalArgumentException("Invalid amount of comma delimited values in [" + text + + "]: SoapFaultDefinitionEditor requires at least 2"); + } + SoapFaultDefinition definition = new SoapFaultDefinition(); + QNameEditor qNameEditor = new QNameEditor(); + qNameEditor.setAsText(tokens[FAULT_CODE_INDEX].trim()); + definition.setFaultCode((QName) qNameEditor.getValue()); + definition.setFaultStringOrReason(tokens[FAULT_STRING_INDEX].trim()); + if (tokens.length > 2) { + LocaleEditor localeEditor = new LocaleEditor(); + localeEditor.setAsText(tokens[FAULT_STRING_LOCALE_INDEX].trim()); + definition.setLocale((Locale) localeEditor.getValue()); + } + setValue(definition); + } + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/endpoint/SoapFaultMappingExceptionResolver.java b/core/src/main/java/org/springframework/ws/soap/endpoint/SoapFaultMappingExceptionResolver.java new file mode 100644 index 00000000..8219215d --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/endpoint/SoapFaultMappingExceptionResolver.java @@ -0,0 +1,144 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.endpoint; + +import java.util.Enumeration; +import java.util.Properties; + +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.endpoint.AbstractEndpointExceptionResolver; +import org.springframework.ws.soap.SoapBody; +import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.soap.context.SoapMessageContext; +import org.springframework.ws.soap.soap11.Soap11Body; + +/** + * Exception resolver that generates a <soap:fault> based on the given exception. + * + * @author Arjen Poutsma + */ +public class SoapFaultMappingExceptionResolver extends AbstractEndpointExceptionResolver { + + private Properties exceptionMappings; + + private SoapFaultDefinition defaultFault; + + /** + * Set the mappings between exception class names and SOAP Faults. The exception class name can be a substring, with + * no wildcard support at present. + *

+ * The values of the given properties object should use the format described in + * SoapFaultDefinitionEditor. + *

+ * Follows the same matching algorithm as RuleBasedTransactionAttribute and RollbackRuleAttribute. + * + * @param mappings exception patterns (can also be fully qualified class names) as keys, fault definition texts as + * values + * @see SoapFaultDefinitionEditor + * @see org.springframework.web.servlet.handler.SimpleMappingExceptionResolver + */ + public void setExceptionMappings(Properties mappings) { + exceptionMappings = mappings; + } + + /** + * Set the default fault. This fault will be returned if no specific mapping was found. + */ + public void setDefaultFault(SoapFaultDefinition defaultFault) { + this.defaultFault = defaultFault; + } + + protected boolean resolveExceptionInternal(MessageContext messageContext, Object endpoint, Exception ex) { + if (!(messageContext instanceof SoapMessageContext)) { + throw new IllegalArgumentException("SoapFaultMappingExceptionResolver requires a SoapMessageContext"); + } + SoapFaultDefinition definition = getFaultDefinition(ex); + if (definition == null) { + return false; + } + SoapMessageContext soapContext = (SoapMessageContext) messageContext; + SoapMessage response = soapContext.getSoapResponse(); + SoapBody soapBody = response.getSoapBody(); + + if (SoapFaultDefinition.SERVER.equals(definition.getFaultCode()) || + SoapFaultDefinition.RECEIVER.equals(definition.getFaultCode())) { + soapBody.addServerOrReceiverFault(definition.getFaultStringOrReason(), definition.getLocale()); + } + else if (SoapFaultDefinition.CLIENT.equals(definition.getFaultCode()) || + SoapFaultDefinition.SENDER.equals(definition.getFaultCode())) { + soapBody.addClientOrSenderFault(definition.getFaultStringOrReason(), definition.getLocale()); + } + else { + // custom code, only supported for SOAP 1.1 + if (soapBody instanceof Soap11Body) { + Soap11Body soap11Body = (Soap11Body) soapBody; + soap11Body.addFault(definition.getFaultCode(), definition.getFaultStringOrReason(), + definition.getLocale()); + } + } + return true; + } + + private SoapFaultDefinition getFaultDefinition(Exception ex) { + SoapFaultDefinition definition = null; + if (exceptionMappings != null) { + String definitionText = null; + int deepest = Integer.MAX_VALUE; + for (Enumeration names = exceptionMappings.propertyNames(); names.hasMoreElements();) { + String exceptionMapping = (String) names.nextElement(); + int depth = getDepth(exceptionMapping, ex); + if (depth >= 0 && depth < deepest) { + deepest = depth; + definitionText = exceptionMappings.getProperty(exceptionMapping); + } + } + if (definitionText != null) { + SoapFaultDefinitionEditor editor = new SoapFaultDefinitionEditor(); + editor.setAsText(definitionText); + definition = (SoapFaultDefinition) editor.getValue(); + } + } + if (definition != null || defaultFault == null) { + return definition; + } + definition = defaultFault; + return definition; + } + + /** + * Return the depth to the superclass matching. 0 means ex matches exactly. Returns -1 if + * there's no match. Otherwise, returns depth. Lowest depth wins. + *

+ * Follows the same algorithm as RollbackRuleAttribute, and SimpleMappingExceptionResolver + * + * @see org.springframework.web.servlet.handler.SimpleMappingExceptionResolver + */ + public int getDepth(String exceptionMapping, Exception ex) { + return getDepth(exceptionMapping, ex.getClass(), 0); + } + + private int getDepth(String exceptionMapping, Class exceptionClass, int depth) { + if (exceptionClass.getName().indexOf(exceptionMapping) != -1) { + return depth; + } + if (exceptionClass.equals(Throwable.class)) { + return -1; + } + return getDepth(exceptionMapping, exceptionClass.getSuperclass(), depth + 1); + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/endpoint/interceptor/SoapEnvelopeLoggingInterceptor.java b/core/src/main/java/org/springframework/ws/soap/endpoint/interceptor/SoapEnvelopeLoggingInterceptor.java new file mode 100644 index 00000000..0e909887 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/endpoint/interceptor/SoapEnvelopeLoggingInterceptor.java @@ -0,0 +1,69 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.endpoint.interceptor; + +import javax.xml.transform.Source; + +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.endpoint.AbstractLoggingInterceptor; +import org.springframework.ws.soap.SoapEndpointInterceptor; +import org.springframework.ws.soap.SoapHeaderElement; +import org.springframework.ws.soap.SoapMessage; + +/** + * SOAP-specific EndpointInterceptor that logs the complete request and response envelope of + * SoapMessage messages. By default, request, response and fault messages are logged, but this behaviour + * can be changed using the logRequest, logResponse, logFault properties. + * + * @author Arjen Poutsma + * @see #setLogRequest(boolean) + * @see #setLogResponse(boolean) + * @see #setLogFault(boolean) + */ +public class SoapEnvelopeLoggingInterceptor extends AbstractLoggingInterceptor implements SoapEndpointInterceptor { + + private boolean logFault = true; + + /** + * Indicates whether a SOAP Fault should be logged. Default is true. + */ + public void setLogFault(boolean logFault) { + this.logFault = logFault; + } + + public boolean handleFault(MessageContext messageContext, Object endpoint) throws Exception { + if (logFault && logger.isDebugEnabled()) { + logMessageSource("Fault: ", getSource(messageContext.getResponse())); + } + return true; + } + + public boolean understands(SoapHeaderElement header) { + return false; + } + + protected Source getSource(WebServiceMessage message) { + if (message instanceof SoapMessage) { + SoapMessage soapMessage = (SoapMessage) message; + return soapMessage.getEnvelope().getSource(); + } + else { + return null; + } + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/endpoint/interceptor/package.html b/core/src/main/java/org/springframework/ws/soap/endpoint/interceptor/package.html new file mode 100644 index 00000000..f0928c3b --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/endpoint/interceptor/package.html @@ -0,0 +1,5 @@ + + +Provides miscellaneous endpoints EndpointInterceptor implementations for SOAP purposes. + + diff --git a/core/src/main/java/org/springframework/ws/soap/endpoint/mapping/DelegatingSoapEndpointMapping.java b/core/src/main/java/org/springframework/ws/soap/endpoint/mapping/DelegatingSoapEndpointMapping.java new file mode 100644 index 00000000..7975e11f --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/endpoint/mapping/DelegatingSoapEndpointMapping.java @@ -0,0 +1,82 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.endpoint.mapping; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.util.Assert; +import org.springframework.ws.EndpointInvocationChain; +import org.springframework.ws.EndpointMapping; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.soap.SoapEndpointInvocationChain; +import org.springframework.ws.soap.SoapEndpointMapping; + +/** + * EndpointMapping implement that adds SOAP actors or roles to a delegate endpoint. Delegates to another + * EndpointMapping, set by delegate, and adds the actors or roles specified by + * actorsOrRoles. + *

+ * This endpoint mapping makes it possible to set actors/roles on a specific endpoint, without making the all endpoint + * mappings depend on SOAP-specific functionality. For normal use, setting an actor or role on an endpoint is not + * required, the default 'next' role is sufficient. + *

+ * It is only in a scenario when a certain endpoint act as a SOAP intermediary for another endpoint, as described in the + * SOAP specificication, this mapping is useful. + * + * @author Arjen Poutsma + * @see org.springframework.ws.soap.SoapHeader#examineMustUnderstandHeaderElements(String) + * @see org.springframework.ws.soap.SoapVersion#getNextActorOrRoleUri() + */ +public class DelegatingSoapEndpointMapping implements InitializingBean, SoapEndpointMapping { + + private EndpointMapping delegate; + + private String[] actorsOrRoles; + + /** + * Sets the delegate EndpointMapping to resolve the endpoint with. + */ + public void setDelegate(EndpointMapping delegate) { + this.delegate = delegate; + } + + public final void setActorOrRole(String actorOrRole) { + Assert.notNull(actorOrRole, "actorOrRole must not be null"); + actorsOrRoles = new String[]{actorOrRole}; + } + + public final void setActorsOrRoles(String[] actorsOrRoles) { + Assert.notEmpty(actorsOrRoles, "actorsOrRoles must not be empty"); + this.actorsOrRoles = actorsOrRoles; + } + + /** + * Creates a new SoapEndpointInvocationChain based on the delegate endpoint, the delegate interceptors, + * and set actors/roles. + * + * @see #setActorsOrRoles(String[]) + */ + public EndpointInvocationChain getEndpoint(MessageContext messageContext) throws Exception { + EndpointInvocationChain delegateChain = delegate.getEndpoint(messageContext); + return new SoapEndpointInvocationChain(delegateChain.getEndpoint(), + delegateChain.getInterceptors(), + actorsOrRoles); + } + + public void afterPropertiesSet() throws Exception { + Assert.notNull(delegate, "delegate is required"); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/endpoint/mapping/SoapActionEndpointMapping.java b/core/src/main/java/org/springframework/ws/soap/endpoint/mapping/SoapActionEndpointMapping.java new file mode 100644 index 00000000..cd354fa7 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/endpoint/mapping/SoapActionEndpointMapping.java @@ -0,0 +1,105 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.endpoint.mapping; + +import java.util.Iterator; + +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; +import org.springframework.ws.EndpointInterceptor; +import org.springframework.ws.EndpointInvocationChain; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.endpoint.mapping.AbstractMapBasedEndpointMapping; +import org.springframework.ws.soap.SoapEndpointInvocationChain; +import org.springframework.ws.soap.SoapEndpointMapping; + +/** + * Implementation of the EndpointMapping interface to map from SOAPAction headers to endpoint + * beans. Supports both mapping to bean instances and mapping to bean names: the latter is required for prototype + * handlers. + *

+ * The endpointMap property is suitable for populating the endpoint map with bean references, e.g. via the + * map element in XML bean definitions. + *

+ * Mappings to bean names can be set via the mappings property, in a form accepted by the + * java.util.Properties class, like as follows: + *

+ * http://www.springframework.org/spring-ws/samples/airline/BookFlight=bookFlightEndpoint
+ * http://www.springframework.org/spring-ws/samples/airline/GetFlights=getFlightsEndpoint
+ * 
+ * The syntax is SOAP_ACTION=ENDPOINT_BEAN_NAME. + *

+ * This endpoint mapping does not read from the request message, and therefore is more suitable for message contexts + * which directly read from the transport request (such as the AxiomSoapMessageContextFactory with the + * payloadCaching disabled). + * + * @author Arjen Poutsma + */ +public class SoapActionEndpointMapping extends AbstractMapBasedEndpointMapping implements SoapEndpointMapping { + + /** + * The name of the SOAPAction TransportRequest header. + */ + public static final String SOAP_ACTION_HEADER = "SOAPAction"; + + private String[] actorsOrRoles; + + public final void setActorOrRole(String actorOrRole) { + Assert.notNull(actorOrRole, "actorOrRole must not be null"); + actorsOrRoles = new String[]{actorOrRole}; + } + + public final void setActorsOrRoles(String[] actorsOrRoles) { + Assert.notEmpty(actorsOrRoles, "actorsOrRoles must not be empty"); + this.actorsOrRoles = actorsOrRoles; + } + + /** + * Creates a new SoapEndpointInvocationChain based on the given endpoint, and the set interceptors, and + * actors/roles. + * + * @param endpoint the endpoint + * @param interceptors the endpoint interceptors + * @return the created invocation chain + * @see #setInterceptors(org.springframework.ws.EndpointInterceptor[]) + * @see #setActorsOrRoles(String[]) + */ + protected final EndpointInvocationChain createEndpointInvocationChain(MessageContext messageContext, + Object endpoint, + EndpointInterceptor[] interceptors) { + return new SoapEndpointInvocationChain(endpoint, interceptors, actorsOrRoles); + } + + protected String getLookupKeyForMessage(MessageContext messageContext) throws Exception { + Iterator iterator = messageContext.getTransportRequest().getHeaders(SOAP_ACTION_HEADER); + String soapAction = ""; + if (iterator.hasNext()) { + soapAction = (String) iterator.next(); + } + if (StringUtils.hasLength(soapAction) && soapAction.charAt(0) == '"' && + soapAction.charAt(soapAction.length() - 1) == '"') { + return soapAction.substring(1, soapAction.length() - 1); + } + else { + return soapAction; + } + } + + protected boolean validateLookupKey(String key) { + return StringUtils.hasLength(key); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/endpoint/package.html b/core/src/main/java/org/springframework/ws/soap/endpoint/package.html new file mode 100644 index 00000000..cd2074f2 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/endpoint/package.html @@ -0,0 +1,6 @@ + + +Provides EndpointAdapter, EndpointMapping, and EndpointExceptionResolver +implementations for SOAP. + + \ No newline at end of file diff --git a/core/src/main/java/org/springframework/ws/soap/package.html b/core/src/main/java/org/springframework/ws/soap/package.html new file mode 100644 index 00000000..b8e0e018 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/package.html @@ -0,0 +1,5 @@ + + +Provides the SOAP functionality of the Spring Web Services framework. Contains the SoapMessage and related interfaces. + + diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12Soap11Body.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12Soap11Body.java new file mode 100644 index 00000000..192a0740 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12Soap11Body.java @@ -0,0 +1,158 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.util.Iterator; +import java.util.Locale; +import javax.xml.namespace.QName; +import javax.xml.soap.Name; +import javax.xml.soap.SOAPBody; +import javax.xml.soap.SOAPBodyElement; +import javax.xml.soap.SOAPEnvelope; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPFault; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; +import org.springframework.ws.soap.SoapFault; +import org.springframework.ws.soap.saaj.support.SaajUtils; +import org.springframework.ws.soap.soap11.Soap11Body; +import org.springframework.ws.soap.soap11.Soap11Fault; + +/** + * Internal class that uses SAAJ 1.2 to implement the Soap11Body interface. + * + * @author Arjen Poutsma + */ +class Saaj12Soap11Body implements Soap11Body { + + private final SOAPBody saajBody; + + Saaj12Soap11Body(SOAPBody saajBody) { + Assert.notNull(saajBody, "No saajBody given"); + this.saajBody = saajBody; + } + + public Source getPayloadSource() { + SOAPBodyElement payloadElement = getPayloadElement(); + return payloadElement != null ? new DOMSource(payloadElement) : null; + } + + public Result getPayloadResult() { + saajBody.removeContents(); + return new DOMResult(saajBody); + } + + public Soap11Fault addFault(QName faultCode, String faultString, Locale faultStringLocale) { + Assert.notNull(faultCode, "No faultCode given"); + Assert.hasLength(faultString, "faultString cannot be empty"); + if (!StringUtils.hasLength(faultCode.getNamespaceURI())) { + throw new IllegalArgumentException( + "A fault code with namespace and local part must be specific for a custom fault code"); + } + try { + Name name = SaajUtils.toName(faultCode, saajBody, getEnvelope()); + saajBody.removeContents(); + SOAPFault saajFault; + if (faultStringLocale == null) { + saajFault = saajBody.addFault(name, faultString); + } + else { + saajFault = saajBody.addFault(name, faultString, faultStringLocale); + } + return new Saaj12Soap11Fault(saajFault); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public SoapFault addMustUnderstandFault(String faultString, Locale locale) { + return addStandardFault("MustUnderstand", faultString, locale); + } + + public SoapFault addClientOrSenderFault(String faultString, Locale locale) { + return addStandardFault("Client", faultString, locale); + } + + public SoapFault addServerOrReceiverFault(String faultString, Locale locale) { + return addStandardFault("Server", faultString, locale); + } + + public SoapFault addVersionMismatchFault(String faultString, Locale locale) { + return addStandardFault("VersionMismatch", faultString, locale); + } + + private Soap11Fault addStandardFault(String localName, String faultString, Locale locale) { + try { + Name faultCode = getEnvelope() + .createName(localName, saajBody.getElementName().getPrefix(), saajBody.getElementName().getURI()); + saajBody.removeContents(); + SOAPFault saajFault; + if (locale == null) { + saajFault = saajBody.addFault(faultCode, faultString); + } + else { + saajFault = saajBody.addFault(faultCode, faultString, locale); + } + return new Saaj12Soap11Fault(saajFault); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public boolean hasFault() { + return saajBody.hasFault(); + } + + public SoapFault getFault() { + return new Saaj12Soap11Fault(saajBody.getFault()); + } + + public QName getName() { + return SaajUtils.toQName(saajBody.getElementName()); + } + + public Source getSource() { + return new DOMSource(saajBody); + } + + private SOAPEnvelope getEnvelope() { + return (SOAPEnvelope) saajBody.getParentElement(); + } + + /** + * Retrieves the payload of the wrapped SAAJ message as a single DOM element. The payload of a message is the + * contents of the SOAP body. + * + * @return the message payload, or null if none is set. + */ + private SOAPBodyElement getPayloadElement() { + for (Iterator iterator = saajBody.getChildElements(); iterator.hasNext();) { + Object child = iterator.next(); + if (child instanceof SOAPBodyElement) { + return (SOAPBodyElement) child; + } + } + return null; + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12Soap11Fault.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12Soap11Fault.java new file mode 100644 index 00000000..2681a60a --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12Soap11Fault.java @@ -0,0 +1,93 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.util.Locale; +import javax.xml.namespace.QName; +import javax.xml.soap.Detail; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPFault; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapFaultDetail; +import org.springframework.ws.soap.saaj.support.SaajUtils; +import org.springframework.ws.soap.soap11.Soap11Fault; + +/** + * Internal class that uses SAAJ 1.2 to implement the Soap11Fault interface. + * + * @author Arjen Poutsma + */ +class Saaj12Soap11Fault implements Soap11Fault { + + private final SOAPFault saajFault; + + Saaj12Soap11Fault(SOAPFault saajFault) { + Assert.notNull(saajFault, "No saajFault given"); + this.saajFault = saajFault; + } + + public QName getName() { + return SaajUtils.toQName(saajFault.getElementName()); + } + + public Source getSource() { + return new DOMSource(saajFault); + } + + public QName getFaultCode() { + return SaajUtils.toQName(saajFault.getFaultCodeAsName()); + } + + public String getFaultString() { + return saajFault.getFaultString(); + } + + public String getFaultActorOrRole() { + return saajFault.getFaultActor(); + } + + public void setFaultActorOrRole(String faultActor) { + try { + saajFault.setFaultActor(faultActor); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public Locale getFaultStringLocale() { + return saajFault.getFaultStringLocale(); + } + + public SoapFaultDetail getFaultDetail() { + Detail saajDetail = saajFault.getDetail(); + return saajDetail != null ? new Saaj12SoapFaultDetail(saajDetail) : null; + } + + public SoapFaultDetail addFaultDetail() { + try { + Detail saajDetail = saajFault.addDetail(); + return saajDetail != null ? new Saaj12SoapFaultDetail(saajDetail) : null; + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapEnvelope.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapEnvelope.java new file mode 100644 index 00000000..c810369b --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapEnvelope.java @@ -0,0 +1,83 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import javax.xml.namespace.QName; +import javax.xml.soap.SOAPEnvelope; +import javax.xml.soap.SOAPException; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapBody; +import org.springframework.ws.soap.SoapEnvelope; +import org.springframework.ws.soap.SoapHeader; +import org.springframework.ws.soap.saaj.support.SaajUtils; + +/** + * Internal class that uses SAAJ 1.2 to implement the SoapEnvelope interface. Used by + * SaajSoapMessage. + * + * @author Arjen Poutsma + */ +class Saaj12SoapEnvelope implements SoapEnvelope { + + private final SOAPEnvelope saajEnvelope; + + private Saaj12SoapHeader header; + + private Saaj12Soap11Body body; + + Saaj12SoapEnvelope(SOAPEnvelope saajEnvelope) { + Assert.notNull(saajEnvelope, "No saajEnvelope given"); + this.saajEnvelope = saajEnvelope; + } + + public QName getName() { + return SaajUtils.toQName(saajEnvelope.getElementName()); + } + + public Source getSource() { + return new DOMSource(saajEnvelope); + } + + public SoapHeader getHeader() { + if (header != null) { + try { + header = saajEnvelope.getHeader() != null ? new Saaj12SoapHeader(saajEnvelope.getHeader()) : null; + } + catch (SOAPException ex) { + throw new SaajSoapHeaderException(ex); + } + } + return header; + } + + public SoapBody getBody() { + if (body == null) { + try { + body = new Saaj12Soap11Body(saajEnvelope.getBody()); + } + catch (SOAPException ex) { + throw new SaajSoapBodyException(ex); + } + } + return body; + } + + +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapFaultDetail.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapFaultDetail.java new file mode 100644 index 00000000..30523418 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapFaultDetail.java @@ -0,0 +1,100 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.util.Iterator; +import javax.xml.namespace.QName; +import javax.xml.soap.Detail; +import javax.xml.soap.DetailEntry; +import javax.xml.soap.Name; +import javax.xml.soap.SOAPEnvelope; +import javax.xml.soap.SOAPException; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapFaultDetail; +import org.springframework.ws.soap.SoapFaultDetailElement; +import org.springframework.ws.soap.saaj.support.SaajUtils; + +/** + * Internal class that uses SAAJ 1.2 to implement the SoapFaultDetail interface. + * + * @author Arjen Poutsma + */ +class Saaj12SoapFaultDetail implements SoapFaultDetail { + + private Detail saajDetail; + + Saaj12SoapFaultDetail(Detail saajDetail) { + Assert.notNull(saajDetail, "No saajDetail given"); + this.saajDetail = saajDetail; + } + + public QName getName() { + return SaajUtils.toQName(saajDetail.getElementName()); + } + + public Source getSource() { + return new DOMSource(saajDetail); + } + + public SoapFaultDetailElement addFaultDetailElement(QName name) { + try { + Name detailEntryName = SaajUtils.toName(name, saajDetail, getEnvelope()); + DetailEntry saajDetailEntry = saajDetail.addDetailEntry(detailEntryName); + return new Saaj12SoapFaultDetailElement(saajDetailEntry); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public Iterator getDetailEntries() { + return new Saaj12SoapFaultDetailIterator(saajDetail.getDetailEntries()); + } + + private SOAPEnvelope getEnvelope() { + return (SOAPEnvelope) saajDetail.getParentElement().getParentElement().getParentElement(); + } + + private static class Saaj12SoapFaultDetailIterator implements Iterator { + + private final Iterator saajIterator; + + public Saaj12SoapFaultDetailIterator(Iterator saajIterator) { + Assert.notNull(saajIterator, "No saajIterator given"); + this.saajIterator = saajIterator; + } + + public boolean hasNext() { + return saajIterator.hasNext(); + } + + public Object next() { + DetailEntry saajDetailEntry = (DetailEntry) saajIterator.next(); + return new Saaj12SoapFaultDetailElement(saajDetailEntry); + } + + public void remove() { + saajIterator.remove(); + } + + } + + +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapFaultDetailElement.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapFaultDetailElement.java new file mode 100644 index 00000000..6676f645 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapFaultDetailElement.java @@ -0,0 +1,65 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import javax.xml.namespace.QName; +import javax.xml.soap.DetailEntry; +import javax.xml.soap.SOAPException; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapFaultDetailElement; +import org.springframework.ws.soap.saaj.support.SaajUtils; + +/** + * Internal class that uses SAAJ 1.2 to implement the SoapFaultDetailElement interface. + * + * @author Arjen Poutsma + */ +class Saaj12SoapFaultDetailElement implements SoapFaultDetailElement { + + private DetailEntry saajDetailEntry; + + Saaj12SoapFaultDetailElement(DetailEntry saajDetailEntry) { + Assert.notNull(saajDetailEntry, "No saajDetailEntry given"); + this.saajDetailEntry = saajDetailEntry; + } + + public Result getResult() { + return new DOMResult(saajDetailEntry); + } + + public void addText(String text) { + try { + saajDetailEntry.addTextNode(text); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public QName getName() { + return SaajUtils.toQName(saajDetailEntry.getElementName()); + } + + public Source getSource() { + return new DOMSource(saajDetailEntry); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapHeader.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapHeader.java new file mode 100644 index 00000000..1a12b237 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapHeader.java @@ -0,0 +1,100 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.util.Iterator; +import javax.xml.namespace.QName; +import javax.xml.soap.Name; +import javax.xml.soap.SOAPEnvelope; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPHeader; +import javax.xml.soap.SOAPHeaderElement; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapHeader; +import org.springframework.ws.soap.SoapHeaderElement; +import org.springframework.ws.soap.saaj.support.SaajUtils; + +/** + * Internal class that uses SAAJ 1.2 to implement the SoapHeader interface. + * + * @author Arjen Poutsma + */ +class Saaj12SoapHeader implements SoapHeader { + + private final SOAPHeader saajHeader; + + Saaj12SoapHeader(SOAPHeader saajHeader) { + Assert.notNull(saajHeader, "No saajHeader given"); + this.saajHeader = saajHeader; + } + + public QName getName() { + return SaajUtils.toQName(saajHeader.getElementName()); + } + + public Source getSource() { + return new DOMSource(saajHeader); + } + + public SoapHeaderElement addHeaderElement(QName name) { + try { + Name saajName = SaajUtils.toName(name, saajHeader, getEnvelope()); + SOAPHeaderElement saajHeaderElement = saajHeader.addHeaderElement(saajName); + return new Saaj12SoapHeaderElement(saajHeaderElement); + } + catch (SOAPException ex) { + throw new SaajSoapHeaderException(ex); + } + } + + public Iterator examineMustUnderstandHeaderElements(String role) { + return new SaajSoapHeaderElementIterator(saajHeader.examineMustUnderstandHeaderElements(role)); + } + + public Iterator examineAllHeaderElements() { + return new SaajSoapHeaderElementIterator(saajHeader.examineAllHeaderElements()); + } + + private SOAPEnvelope getEnvelope() { + return (SOAPEnvelope) saajHeader.getParentElement(); + } + + private static class SaajSoapHeaderElementIterator implements Iterator { + + private final Iterator saajIterator; + + private SaajSoapHeaderElementIterator(Iterator saajIterator) { + this.saajIterator = saajIterator; + } + + public boolean hasNext() { + return saajIterator.hasNext(); + } + + public Object next() { + SOAPHeaderElement saajHeaderElement = (SOAPHeaderElement) saajIterator.next(); + return new Saaj12SoapHeaderElement(saajHeaderElement); + } + + public void remove() { + saajIterator.remove(); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapHeaderElement.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapHeaderElement.java new file mode 100644 index 00000000..9d112de1 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj12SoapHeaderElement.java @@ -0,0 +1,90 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import javax.xml.namespace.QName; +import javax.xml.soap.Name; +import javax.xml.soap.SOAPEnvelope; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPHeaderElement; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapHeaderElement; +import org.springframework.ws.soap.SoapHeaderException; +import org.springframework.ws.soap.saaj.support.SaajUtils; + +/** + * Internal class that uses SAAJ 1.2 to implement the SoapHeaderElement interface. + * + * @author Arjen Poutsma + */ +class Saaj12SoapHeaderElement implements SoapHeaderElement { + + private final SOAPHeaderElement saajHeaderElement; + + Saaj12SoapHeaderElement(SOAPHeaderElement saajHeaderElement) { + Assert.notNull(saajHeaderElement, "No saajHeaderElement given"); + this.saajHeaderElement = saajHeaderElement; + } + + public QName getName() { + return SaajUtils.toQName(saajHeaderElement.getElementName()); + } + + public Source getSource() { + return new DOMSource(saajHeaderElement); + } + + public String getActorOrRole() { + return saajHeaderElement.getActor(); + } + + public void setActorOrRole(String role) { + saajHeaderElement.setActor(role); + } + + public boolean getMustUnderstand() { + return saajHeaderElement.getMustUnderstand(); + } + + public void setMustUnderstand(boolean mustUnderstand) { + saajHeaderElement.setMustUnderstand(mustUnderstand); + } + + public Result getResult() { + return new DOMResult(saajHeaderElement); + } + + public void addAttribute(QName name, String value) throws SoapHeaderException { + try { + Name saajName = SaajUtils.toName(name, saajHeaderElement, getEnvelope()); + saajHeaderElement.addAttribute(saajName, value); + } + catch (SOAPException ex) { + throw new SaajSoapHeaderException(ex); + } + } + + private SOAPEnvelope getEnvelope() { + return (SOAPEnvelope) saajHeaderElement.getParentElement().getParentElement(); + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap11Body.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap11Body.java new file mode 100644 index 00000000..6c400ee1 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap11Body.java @@ -0,0 +1,102 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.util.Locale; +import javax.xml.namespace.QName; +import javax.xml.soap.SOAPBody; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPFault; + +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; +import org.springframework.ws.soap.SoapFault; +import org.springframework.ws.soap.soap11.Soap11Body; +import org.springframework.ws.soap.soap11.Soap11Fault; +import org.springframework.xml.namespace.QNameUtils; + +/** + * Internal class that uses SAAJ 1.3 to implement the Soap11Body interface. Used by + * Saaj13SoapEnvelope. + * + * @author Arjen Poutsma + */ +class Saaj13Soap11Body extends Saaj13SoapBody implements Soap11Body { + + Saaj13Soap11Body(SOAPBody saajBody) { + super(saajBody); + } + + public Soap11Fault addFault(QName faultCode, String faultString, Locale faultStringLocale) { + Assert.notNull(faultCode, "No faultCode given"); + Assert.notNull(faultString, "No faultString given"); + if (!StringUtils.hasLength(faultCode.getNamespaceURI())) { + throw new IllegalArgumentException("fault code has no namespace"); + } + try { + saajBody.removeContents(); + SOAPFault saajFault; + if (faultStringLocale == null) { + saajFault = saajBody.addFault(faultCode, faultString); + } + else { + saajFault = saajBody.addFault(faultCode, faultString, faultStringLocale); + } + return new Saaj13Soap11Fault(saajFault); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public SoapFault addMustUnderstandFault(String faultString, Locale locale) { + return addStandardFault("MustUnderstand", faultString, locale); + } + + public SoapFault addClientOrSenderFault(String faultString, Locale locale) { + return addStandardFault("Client", faultString, locale); + } + + public SoapFault addServerOrReceiverFault(String faultString, Locale locale) { + return addStandardFault("Server", faultString, locale); + } + + public SoapFault addVersionMismatchFault(String faultString, Locale locale) { + return addStandardFault("VersionMismatch", faultString, locale); + + } + + private Soap11Fault addStandardFault(String localName, String faultString, Locale faultStringLocale) { + try { + QName faultCode = QNameUtils.createQName(saajBody.getElementQName().getNamespaceURI(), + localName, + QNameUtils.getPrefix(saajBody.getElementQName())); + saajBody.removeContents(); + SOAPFault saajFault = faultStringLocale == null ? saajBody.addFault(faultCode, faultString) : + saajBody.addFault(faultCode, faultString, faultStringLocale); + return new Saaj12Soap11Fault(saajFault); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public SoapFault getFault() { + return new Saaj13Soap11Fault(saajBody.getFault()); + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap11Fault.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap11Fault.java new file mode 100644 index 00000000..f483eea3 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap11Fault.java @@ -0,0 +1,92 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.util.Locale; +import javax.xml.namespace.QName; +import javax.xml.soap.Detail; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPFault; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapFaultDetail; +import org.springframework.ws.soap.soap11.Soap11Fault; + +/** + * Internal class that uses SAAJ 1.3 to implement the Soap11Fault interface. + * + * @author Arjen Poutsma + */ +class Saaj13Soap11Fault implements Soap11Fault { + + private final SOAPFault saajFault; + + Saaj13Soap11Fault(SOAPFault saajFault) { + Assert.notNull(saajFault, "No saajFault given"); + this.saajFault = saajFault; + } + + public Locale getFaultStringLocale() { + return saajFault.getFaultStringLocale(); + } + + public String getFaultString() { + return saajFault.getFaultString(); + } + + public Source getSource() { + return new DOMSource(saajFault); + } + + public QName getName() { + return saajFault.getElementQName(); + } + + public SoapFaultDetail addFaultDetail() { + try { + Detail saajDetail = saajFault.addDetail(); + return saajDetail != null ? new Saaj13SoapFaultDetail(saajDetail) : null; + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public SoapFaultDetail getFaultDetail() { + Detail saajDetail = saajFault.getDetail(); + return saajDetail != null ? new Saaj13SoapFaultDetail(saajDetail) : null; + } + + public String getFaultActorOrRole() { + return saajFault.getFaultActor(); + } + + public void setFaultActorOrRole(String faultActor) { + try { + saajFault.setFaultActor(faultActor); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public QName getFaultCode() { + return saajFault.getFaultCodeAsQName(); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap12Body.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap12Body.java new file mode 100644 index 00000000..932bc9a1 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap12Body.java @@ -0,0 +1,85 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.util.Locale; +import javax.xml.namespace.QName; +import javax.xml.soap.SOAPBody; +import javax.xml.soap.SOAPConstants; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPFault; + +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; +import org.springframework.ws.soap.SoapFault; +import org.springframework.ws.soap.soap12.Soap12Body; +import org.springframework.ws.soap.soap12.Soap12Fault; + +/** + * Internal class that uses SAAJ 1.3 to implement the Soap12Body interface. Used by + * Saaj13SoapEnvelope. + * + * @author Arjen Poutsma + */ +class Saaj13Soap12Body extends Saaj13SoapBody implements Soap12Body { + + Saaj13Soap12Body(SOAPBody saajBody) { + super(saajBody); + } + + private Soap12Fault addFault(QName code, String reason, Locale locale) { + Assert.notNull(code, "No code given"); + Assert.hasLength(reason, "reason cannot be empty"); + Assert.notNull(locale, "No locale given"); + if (!StringUtils.hasLength(code.getNamespaceURI())) { + throw new IllegalArgumentException( + "A code with namespace and local part must be specific for a custom fault code"); + } + try { + saajBody.removeContents(); + SOAPFault saajFault = saajBody.addFault(code, reason, locale); + return new Saaj13Soap12Fault(saajFault); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public SoapFault addMustUnderstandFault(String reason, Locale locale) { + return addFault(SOAPConstants.SOAP_MUSTUNDERSTAND_FAULT, reason, locale); + } + + public SoapFault addClientOrSenderFault(String reason, Locale locale) { + return addFault(SOAPConstants.SOAP_SENDER_FAULT, reason, locale); + } + + public SoapFault addServerOrReceiverFault(String reason, Locale reasonLocale) { + return addFault(SOAPConstants.SOAP_RECEIVER_FAULT, reason, reasonLocale); + } + + public SoapFault addVersionMismatchFault(String reason, Locale locale) { + return addFault(SOAPConstants.SOAP_VERSIONMISMATCH_FAULT, reason, locale); + } + + public Soap12Fault addDataEncodingUnknownFault(QName[] subcodes, String reason, Locale reasonLocale) { + return addFault(SOAPConstants.SOAP_DATAENCODINGUNKNOWN_FAULT, reason, reasonLocale); + } + + public SoapFault getFault() { + return new Saaj13Soap12Fault(saajBody.getFault()); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap12Fault.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap12Fault.java new file mode 100644 index 00000000..7da9f499 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap12Fault.java @@ -0,0 +1,127 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.util.Iterator; +import java.util.Locale; +import javax.xml.namespace.QName; +import javax.xml.soap.Detail; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPFault; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.ws.soap.SoapFaultDetail; +import org.springframework.ws.soap.soap12.Soap12Fault; + +/** + * Internal class that uses SAAJ 1.3 to implement the Soap12Fault interface. + * + * @author Arjen Poutsma + */ +class Saaj13Soap12Fault implements Soap12Fault { + + private final SOAPFault saajFault; + + Saaj13Soap12Fault(SOAPFault saajFault) { + this.saajFault = saajFault; + } + + public QName getName() { + return saajFault.getElementQName(); + } + + public Source getSource() { + return new DOMSource(saajFault); + } + + public QName getFaultCode() { + return saajFault.getFaultCodeAsQName(); + } + + public SoapFaultDetail getFaultDetail() { + Detail saajDetail = saajFault.getDetail(); + return saajDetail != null ? new Saaj13SoapFaultDetail(saajDetail) : null; + } + + public SoapFaultDetail addFaultDetail() { + try { + Detail saajDetail = saajFault.addDetail(); + return saajDetail != null ? new Saaj13SoapFaultDetail(saajDetail) : null; + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public Iterator getFaultSubcodes() { + return saajFault.getFaultSubcodes(); + } + + public void addFaultSubcode(QName subcode) { + try { + saajFault.appendFaultSubcode(subcode); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public String getFaultActorOrRole() { + return saajFault.getFaultRole(); + } + + public void setFaultActorOrRole(String uri) { + try { + saajFault.setFaultRole(uri); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public String getFaultNode() { + return saajFault.getFaultNode(); + } + + public void setFaultNode(String uri) { + try { + saajFault.setFaultNode(uri); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public void setFaultReasonText(Locale locale, String text) { + try { + saajFault.addFaultReasonText(text, locale); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public String getFaultReasonText(Locale locale) { + try { + return saajFault.getFaultReasonText(locale); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap12Header.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap12Header.java new file mode 100644 index 00000000..12d5ed17 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13Soap12Header.java @@ -0,0 +1,57 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import javax.xml.namespace.QName; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPHeader; +import javax.xml.soap.SOAPHeaderElement; + +import org.springframework.ws.soap.SoapHeaderElement; +import org.springframework.ws.soap.soap12.Soap12Header; + +/** + * Internal class that uses SAAJ 1.3 to implement the Soap12Header interface. + * + * @author Arjen Poutsma + */ +class Saaj13Soap12Header extends Saaj13SoapHeader implements Soap12Header { + + Saaj13Soap12Header(SOAPHeader saajHeader) { + super(saajHeader); + } + + public SoapHeaderElement addNotUnderstoodHeaderElement(QName headerName) { + try { + SOAPHeaderElement saajHeaderElement = saajHeader.addNotUnderstoodHeaderElement(headerName); + return new Saaj13SoapHeaderElement(saajHeaderElement); + } + catch (SOAPException ex) { + throw new SaajSoapHeaderException(ex); + } + } + + public SoapHeaderElement addUpgradeHeaderElement(String[] supportedSoapUris) { + try { + SOAPHeaderElement saajHeaderElement = saajHeader.addUpgradeHeaderElement(supportedSoapUris); + return new Saaj13SoapHeaderElement(saajHeaderElement); + } + catch (SOAPException ex) { + throw new SaajSoapHeaderException(ex); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapBody.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapBody.java new file mode 100644 index 00000000..47293ac6 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapBody.java @@ -0,0 +1,84 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.util.Iterator; +import javax.xml.namespace.QName; +import javax.xml.soap.SOAPBody; +import javax.xml.soap.SOAPBodyElement; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapBody; + +/** + * * Internal class that uses SAAJ 1.3 to implement the SoapBody interface. Used by + * Saaj13SoapEnvelope. + * + * @author Arjen Poutsma + */ +abstract class Saaj13SoapBody implements SoapBody { + + protected final SOAPBody saajBody; + + Saaj13SoapBody(SOAPBody saajBody) { + Assert.notNull(saajBody, "No saajBody given"); + this.saajBody = saajBody; + } + + public final Source getPayloadSource() { + SOAPBodyElement payloadElement = getPayloadElement(); + return payloadElement != null ? new DOMSource(payloadElement) : null; + } + + public final Result getPayloadResult() { + saajBody.removeContents(); + return new DOMResult(saajBody); + } + + public final boolean hasFault() { + return saajBody.hasFault(); + } + + public final QName getName() { + return saajBody.getElementQName(); + } + + public final Source getSource() { + return new DOMSource(saajBody); + } + + /** + * Retrieves the payload of the wrapped SAAJ message as a single DOM element. The payload of a message is the + * contents of the SOAP body. + * + * @return the message payload, or null if none is set. + */ + private SOAPBodyElement getPayloadElement() { + for (Iterator iterator = saajBody.getChildElements(); iterator.hasNext();) { + Object child = iterator.next(); + if (child instanceof SOAPBodyElement) { + return (SOAPBodyElement) child; + } + } + return null; + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapEnvelope.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapEnvelope.java new file mode 100644 index 00000000..655d249f --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapEnvelope.java @@ -0,0 +1,110 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import javax.xml.namespace.QName; +import javax.xml.soap.SOAPBody; +import javax.xml.soap.SOAPConstants; +import javax.xml.soap.SOAPEnvelope; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPHeader; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapBody; +import org.springframework.ws.soap.SoapEnvelope; +import org.springframework.ws.soap.SoapHeader; + +/** + * Internal class that uses SAAJ 1.3 to implement the SoapEnvelope interface. Used by + * SaajSoapMessage. + * + * @author Arjen Poutsma + */ +class Saaj13SoapEnvelope implements SoapEnvelope { + + private final SOAPEnvelope saajEnvelope; + + private Saaj13SoapHeader header; + + private Saaj13SoapBody body; + + Saaj13SoapEnvelope(SOAPEnvelope saajEnvelope) { + Assert.notNull(saajEnvelope, "No saajEnvelope given"); + this.saajEnvelope = saajEnvelope; + } + + public QName getName() { + return saajEnvelope.getElementQName(); + } + + public Source getSource() { + return new DOMSource(saajEnvelope); + } + + public SoapHeader getHeader() { + if (header == null) { + try { + if (saajEnvelope.getHeader() == null) { + return null; + } + else { + SOAPHeader saajHeader = saajEnvelope.getHeader(); + String namespaceURI = saajEnvelope.getElementQName().getNamespaceURI(); + if (SOAPConstants.URI_NS_SOAP_1_1_ENVELOPE.equals(namespaceURI)) { + header = new Saaj13SoapHeader(saajHeader); + } + else if (SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE.equals(namespaceURI)) { + header = new Saaj13Soap12Header(saajHeader); + } + else { + throw new SaajSoapEnvelopeException("Unknown SOAP namespace \"" + namespaceURI + "\""); + } + } + } + catch (SOAPException ex) { + throw new SaajSoapHeaderException(ex); + } + } + return header; + } + + public SoapBody getBody() { + if (body == null) { + try { + SOAPBody saajBody = saajEnvelope.getBody(); + String namespaceURI = saajEnvelope.getElementQName().getNamespaceURI(); + if (SOAPConstants.URI_NS_SOAP_1_1_ENVELOPE.equals(namespaceURI)) { + body = new Saaj13Soap11Body(saajBody); + } + else if (SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE.equals(namespaceURI)) { + body = new Saaj13Soap12Body(saajBody); + } + else { + throw new SaajSoapEnvelopeException("Unknown SOAP namespace \"" + namespaceURI + "\""); + } + + } + catch (SOAPException ex) { + throw new SaajSoapBodyException(ex); + } + } + return body; + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapFaultDetail.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapFaultDetail.java new file mode 100644 index 00000000..20663941 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapFaultDetail.java @@ -0,0 +1,122 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.util.Iterator; +import javax.xml.namespace.QName; +import javax.xml.soap.Detail; +import javax.xml.soap.DetailEntry; +import javax.xml.soap.SOAPException; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapFaultDetail; +import org.springframework.ws.soap.SoapFaultDetailElement; + +/** + * @author Arjen Poutsma + */ +class Saaj13SoapFaultDetail implements SoapFaultDetail { + + private Detail saajDetail; + + Saaj13SoapFaultDetail(Detail saajDetail) { + Assert.notNull(saajDetail, "No saajDetail given"); + this.saajDetail = saajDetail; + } + + public QName getName() { + return saajDetail.getElementQName(); + } + + public Source getSource() { + return new DOMSource(saajDetail); + } + + public SoapFaultDetailElement addFaultDetailElement(QName name) { + try { + DetailEntry saajDetailEntry = saajDetail.addDetailEntry(name); + return new Saaj13SoapFaultDetailElement(saajDetailEntry); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public Iterator getDetailEntries() { + return new Saaj13SoapFaultDetailIterator(saajDetail.getDetailEntries()); + } + + private static class Saaj13SoapFaultDetailElement implements SoapFaultDetailElement { + + private DetailEntry saajDetailEntry; + + private Saaj13SoapFaultDetailElement(DetailEntry saajDetailEntry) { + Assert.notNull(saajDetailEntry, "No saajDetailEntry given"); + this.saajDetailEntry = saajDetailEntry; + } + + public Result getResult() { + return new DOMResult(saajDetailEntry); + } + + public void addText(String text) { + try { + saajDetailEntry.addTextNode(text); + } + catch (SOAPException ex) { + throw new SaajSoapFaultException(ex); + } + } + + public QName getName() { + return saajDetailEntry.getElementQName(); + } + + public Source getSource() { + return new DOMSource(saajDetailEntry); + } + } + + private static class Saaj13SoapFaultDetailIterator implements Iterator { + + private final Iterator saajIterator; + + public Saaj13SoapFaultDetailIterator(Iterator saajIterator) { + Assert.notNull(saajIterator, "No saajIterator given"); + this.saajIterator = saajIterator; + } + + public boolean hasNext() { + return saajIterator.hasNext(); + } + + public Object next() { + DetailEntry saajDetailEntry = (DetailEntry) saajIterator.next(); + return new Saaj13SoapFaultDetailElement(saajDetailEntry); + } + + public void remove() { + saajIterator.remove(); + } + + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapHeader.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapHeader.java new file mode 100644 index 00000000..7b75c592 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapHeader.java @@ -0,0 +1,92 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.util.Iterator; +import javax.xml.namespace.QName; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPHeader; +import javax.xml.soap.SOAPHeaderElement; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapHeader; +import org.springframework.ws.soap.SoapHeaderElement; + +/** + * Internal class that uses SAAJ 1.3 to implement the SoapHeader interface. + * + * @author Arjen Poutsma + */ +class Saaj13SoapHeader implements SoapHeader { + + protected final SOAPHeader saajHeader; + + Saaj13SoapHeader(SOAPHeader saajHeader) { + Assert.notNull(saajHeader, "No saajHeader given"); + this.saajHeader = saajHeader; + } + + public QName getName() { + return saajHeader.getElementQName(); + } + + public Source getSource() { + return new DOMSource(saajHeader); + } + + public SoapHeaderElement addHeaderElement(QName name) { + try { + SOAPHeaderElement saajHeaderElement = saajHeader.addHeaderElement(name); + return new Saaj13SoapHeaderElement(saajHeaderElement); + } + catch (SOAPException ex) { + throw new SaajSoapHeaderException(ex); + } + } + + public Iterator examineMustUnderstandHeaderElements(String role) { + return new SaajSoapHeaderElementIterator(saajHeader.examineMustUnderstandHeaderElements(role)); + } + + public Iterator examineAllHeaderElements() { + return new SaajSoapHeaderElementIterator(saajHeader.examineAllHeaderElements()); + } + + private static class SaajSoapHeaderElementIterator implements Iterator { + + private final Iterator saajIterator; + + private SaajSoapHeaderElementIterator(Iterator saajIterator) { + this.saajIterator = saajIterator; + } + + public boolean hasNext() { + return saajIterator.hasNext(); + } + + public Object next() { + SOAPHeaderElement saajHeaderElement = (SOAPHeaderElement) saajIterator.next(); + return new Saaj13SoapHeaderElement(saajHeaderElement); + } + + public void remove() { + saajIterator.remove(); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapHeaderElement.java b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapHeaderElement.java new file mode 100644 index 00000000..0ac92c45 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/Saaj13SoapHeaderElement.java @@ -0,0 +1,82 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import javax.xml.namespace.QName; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPHeaderElement; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.SoapHeaderElement; +import org.springframework.ws.soap.SoapHeaderException; + +/** + * Internal class that uses SAAJ 1.3 to implement the SoapHeaderElement interface. + * + * @author Arjen Poutsma + */ +class Saaj13SoapHeaderElement implements SoapHeaderElement { + + private final SOAPHeaderElement saajHeaderElement; + + Saaj13SoapHeaderElement(SOAPHeaderElement saajHeaderElement) { + Assert.notNull(saajHeaderElement, "No saajHeaderElement given"); + this.saajHeaderElement = saajHeaderElement; + } + + public QName getName() { + return saajHeaderElement.getElementQName(); + } + + public Source getSource() { + return new DOMSource(saajHeaderElement); + } + + public String getActorOrRole() { + return saajHeaderElement.getActor(); + } + + public void setActorOrRole(String role) { + saajHeaderElement.setActor(role); + } + + public boolean getMustUnderstand() { + return saajHeaderElement.getMustUnderstand(); + } + + public void setMustUnderstand(boolean mustUnderstand) { + saajHeaderElement.setMustUnderstand(mustUnderstand); + } + + public Result getResult() { + return new DOMResult(saajHeaderElement); + } + + public void addAttribute(QName name, String value) throws SoapHeaderException { + try { + saajHeaderElement.addAttribute(name, value); + } + catch (SOAPException ex) { + throw new SaajSoapHeaderException(ex); + } + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajAttachmentException.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajAttachmentException.java new file mode 100644 index 00000000..55197419 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajAttachmentException.java @@ -0,0 +1,37 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import org.springframework.ws.soap.AttachmentException; + +/** + * @author Arjen Poutsma + */ +public class SaajAttachmentException extends AttachmentException { + + public SaajAttachmentException(String msg) { + super(msg); + } + + public SaajAttachmentException(String msg, Throwable ex) { + super(msg, ex); + } + + public SaajAttachmentException(Throwable ex) { + super(ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajMessageFactoryBean.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajMessageFactoryBean.java new file mode 100644 index 00000000..e8b016ef --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajMessageFactoryBean.java @@ -0,0 +1,49 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import javax.xml.soap.MessageFactory; + +import org.springframework.beans.factory.FactoryBean; +import org.springframework.beans.factory.InitializingBean; + +/** + * Spring FactoryBean for SAAJ MessageFactory objects. + * + * @author Arjen Poutsma + * @see javax.xml.soap.MessageFactory + */ +public class SaajMessageFactoryBean implements FactoryBean, InitializingBean { + + private MessageFactory messageFactory; + + public Object getObject() throws Exception { + return messageFactory; + } + + public Class getObjectType() { + return MessageFactory.class; + } + + public boolean isSingleton() { + return true; + } + + public void afterPropertiesSet() throws Exception { + messageFactory = MessageFactory.newInstance(); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapBodyException.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapBodyException.java new file mode 100644 index 00000000..c961e340 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapBodyException.java @@ -0,0 +1,37 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import org.springframework.ws.soap.SoapEnvelopeException; + +/** + * @author Arjen Poutsma + */ +public class SaajSoapBodyException extends SoapEnvelopeException { + + public SaajSoapBodyException(String msg) { + super(msg); + } + + public SaajSoapBodyException(String msg, Throwable ex) { + super(msg, ex); + } + + public SaajSoapBodyException(Throwable ex) { + super(ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapEnvelopeException.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapEnvelopeException.java new file mode 100644 index 00000000..b1929797 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapEnvelopeException.java @@ -0,0 +1,37 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import org.springframework.ws.soap.SoapEnvelopeException; + +/** + * @author Arjen Poutsma + */ +public class SaajSoapEnvelopeException extends SoapEnvelopeException { + + public SaajSoapEnvelopeException(String msg) { + super(msg); + } + + public SaajSoapEnvelopeException(String msg, Throwable ex) { + super(msg, ex); + } + + public SaajSoapEnvelopeException(Throwable ex) { + super(ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapFaultException.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapFaultException.java new file mode 100644 index 00000000..c4d0ae96 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapFaultException.java @@ -0,0 +1,37 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import org.springframework.ws.soap.SoapFaultException; + +/** + * @author Arjen Poutsma + */ +public class SaajSoapFaultException extends SoapFaultException { + + public SaajSoapFaultException(String msg) { + super(msg); + } + + public SaajSoapFaultException(String msg, Throwable ex) { + super(msg, ex); + } + + public SaajSoapFaultException(Throwable ex) { + super(ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapHeaderException.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapHeaderException.java new file mode 100644 index 00000000..2ce77106 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapHeaderException.java @@ -0,0 +1,37 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import org.springframework.ws.soap.SoapHeaderException; + +/** + * @author Arjen Poutsma + */ +public class SaajSoapHeaderException extends SoapHeaderException { + + public SaajSoapHeaderException(String msg) { + super(msg); + } + + public SaajSoapHeaderException(String msg, Throwable ex) { + super(msg, ex); + } + + public SaajSoapHeaderException(Throwable ex) { + super(ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessage.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessage.java new file mode 100644 index 00000000..6c2c7d0e --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessage.java @@ -0,0 +1,246 @@ +/* + * Copyright 2005, 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.Iterator; +import javax.activation.DataHandler; +import javax.activation.DataSource; +import javax.activation.FileDataSource; +import javax.xml.soap.AttachmentPart; +import javax.xml.soap.MimeHeaders; +import javax.xml.soap.SOAPEnvelope; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPMessage; + +import org.springframework.core.io.InputStreamSource; +import org.springframework.core.io.Resource; +import org.springframework.util.Assert; +import org.springframework.ws.soap.AbstractSoapMessage; +import org.springframework.ws.soap.Attachment; +import org.springframework.ws.soap.AttachmentException; +import org.springframework.ws.soap.SoapEnvelope; +import org.springframework.ws.soap.SoapVersion; +import org.springframework.ws.soap.saaj.support.SaajUtils; + +/** + * SAAJ-specific implementation of the SoapMessage interface. Accessed via the + * SaajSoapMessageContext. + * + * @author Arjen Poutsma + * @see javax.xml.soap.SOAPMessage + * @see SaajSoapMessageContext + */ +public class SaajSoapMessage extends AbstractSoapMessage { + + private final SOAPMessage saajMessage; + + private SoapEnvelope envelope; + + /** + * Create a new SaajSoapMessage based on the given SAAJ SOAPMessage. + * + * @param soapMessage the SAAJ SOAPMessage + */ + public SaajSoapMessage(SOAPMessage soapMessage) { + saajMessage = soapMessage; + } + + /** + * Return the SAAJ SOAPMessage that this SaajSoapMessage is based on. + */ + public final SOAPMessage getSaajMessage() { + return saajMessage; + } + + public SoapEnvelope getEnvelope() { + if (envelope == null) { + try { + SOAPEnvelope saajEnvelope = saajMessage.getSOAPPart().getEnvelope(); + if (SaajUtils.getSaajVersion() == SaajUtils.SAAJ_12) { + envelope = new Saaj12SoapEnvelope(saajEnvelope); + } + else { + envelope = new Saaj13SoapEnvelope(saajEnvelope); + } + } + catch (SOAPException ex) { + throw new SaajSoapEnvelopeException(ex); + } + } + return envelope; + } + + public void writeTo(OutputStream outputStream) throws IOException { + try { + if (saajMessage.saveRequired()) { + saajMessage.saveChanges(); + } + saajMessage.writeTo(outputStream); + } + catch (SOAPException ex) { + throw new SaajSoapMessageException("Could not write message to OutputStream: " + ex.getMessage(), ex); + } + } + + public Attachment getAttachment(String contentId) { + MimeHeaders mimeHeaders = new MimeHeaders(); + mimeHeaders.addHeader("Content-Id", contentId); + Iterator iterator = saajMessage.getAttachments(mimeHeaders); + if (!iterator.hasNext()) { + return null; + } + else { + AttachmentPart saajAttachment = (AttachmentPart) iterator.next(); + return new SaajAttachment(saajAttachment); + } + } + + public Iterator getAttachments() { + Iterator saajAttachmentIterator = saajMessage.getAttachments(); + return new SaajAttachmentIterator(saajAttachmentIterator); + } + + public Attachment addAttachment(File file) throws AttachmentException { + Assert.notNull(file, "File must not be null"); + FileDataSource dataSource = new FileDataSource(file); + AttachmentPart saajAttachment = saajMessage.createAttachmentPart(new DataHandler(dataSource)); + saajMessage.addAttachmentPart(saajAttachment); + return new SaajAttachment(saajAttachment); + } + + public Attachment addAttachment(InputStreamSource inputStreamSource, String contentType) { + Assert.notNull(inputStreamSource, "InputStreamSource must not be null"); + if (inputStreamSource instanceof Resource && ((Resource) inputStreamSource).isOpen()) { + throw new IllegalArgumentException("Passed-in Resource contains an open stream: invalid argument. " + + "SAAJ requires an InputStreamSource that creates a fresh stream for every call."); + } + DataSource dataSource = createDataSource(inputStreamSource, contentType); + AttachmentPart saajAttachment = saajMessage.createAttachmentPart(new DataHandler(dataSource)); + saajMessage.addAttachmentPart(saajAttachment); + return new SaajAttachment(saajAttachment); + } + + /** + * Create an Activation Framework DataSource for the given InputStreamSource. + * + * @param inputStreamSource the InputStreamSource (typically a Spring Resource) + * @param contentType the content type + * @return the Activation Framework DataSource + */ + private DataSource createDataSource(final InputStreamSource inputStreamSource, final String contentType) { + return new DataSource() { + public InputStream getInputStream() throws IOException { + return inputStreamSource.getInputStream(); + } + + public OutputStream getOutputStream() { + throw new UnsupportedOperationException("Read-only javax.activation.DataSource"); + } + + public String getContentType() { + return contentType; + } + + public String getName() { + throw new UnsupportedOperationException("DataSource name not available"); + } + }; + } + + public SoapVersion getVersion() { + if (SaajUtils.getSaajVersion() == SaajUtils.SAAJ_12) { + return SoapVersion.SOAP_11; + } + else { + return super.getVersion(); + } + } + + /** + * SAAJ-specific implementation of org.springframework.ws.soap.Attachment + */ + private static class SaajAttachment implements Attachment { + + private final AttachmentPart saajAttachment; + + public SaajAttachment(AttachmentPart saajAttachment) { + this.saajAttachment = saajAttachment; + } + + public String getId() { + return saajAttachment.getContentId(); + } + + public void setId(String id) { + saajAttachment.setContentId(id); + } + + public String getContentType() { + return saajAttachment.getContentType(); + } + + public InputStream getInputStream() throws IOException { + try { + return saajAttachment.getDataHandler().getInputStream(); + } + catch (SOAPException e) { + return new ByteArrayInputStream(new byte[0]); + } + } + + public long getSize() { + try { + int result = saajAttachment.getSize(); + // SAAJ returns -1 when the size cannot be determined + return result != -1 ? result : 0; + } + catch (SOAPException ex) { + throw new SaajAttachmentException(ex); + } + } + + } + + private static class SaajAttachmentIterator implements Iterator { + + private final Iterator saajIterator; + + public SaajAttachmentIterator(Iterator saajIterator) { + this.saajIterator = saajIterator; + } + + public boolean hasNext() { + return saajIterator.hasNext(); + } + + public Object next() { + AttachmentPart saajAttachment = (AttachmentPart) saajIterator.next(); + return new SaajAttachment(saajAttachment); + } + + public void remove() { + saajIterator.remove(); + } + } + + +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageContext.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageContext.java new file mode 100644 index 00000000..4f1c4058 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageContext.java @@ -0,0 +1,127 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.io.IOException; +import java.util.Iterator; +import javax.xml.soap.MessageFactory; +import javax.xml.soap.MimeHeader; +import javax.xml.soap.MimeHeaders; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPMessage; + +import org.springframework.util.Assert; +import org.springframework.util.ObjectUtils; +import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.soap.SoapMessageCreationException; +import org.springframework.ws.soap.context.AbstractSoapMessageContext; +import org.springframework.ws.transport.TransportRequest; +import org.springframework.ws.transport.TransportResponse; + +/** + * SAAJ-specific implementation of the SoapMessageContext interface. Created by the + * SaajSoapMessageContextFactory. + * + * @author Arjen Poutsma + * @see SaajSoapMessageContextFactory + */ +public class SaajSoapMessageContext extends AbstractSoapMessageContext { + + private final MessageFactory messageFactory; + + /** + * Creates a new instance based on the given SAAJ request message, and a message factory. + * + * @param request the request message + * @param transportRequest the transport request + * @param messageFactory the message factory used for creating a response + */ + public SaajSoapMessageContext(SOAPMessage request, + TransportRequest transportRequest, + MessageFactory messageFactory) { + super(new SaajSoapMessage(request), transportRequest); + Assert.notNull(messageFactory); + this.messageFactory = messageFactory; + } + + /** + * Returns the request as a SAAJ SOAP message. + */ + public SOAPMessage getSaajRequest() { + return ((SaajSoapMessage) getSoapRequest()).getSaajMessage(); + } + + /** + * Sets the request to the given SAAJ SOAP message. + */ + public void setSaajRequest(SOAPMessage request) { + setRequest(new SaajSoapMessage(request)); + } + + /** + * Returns the response as a SAAJ SOAP message. + */ + public SOAPMessage getSaajResponse() { + return ((SaajSoapMessage) getSoapResponse()).getSaajMessage(); + } + + /** + * Sets the response to the given SAAJ SOAP message. + */ + public void setSaajResponse(SOAPMessage response) { + setResponse(new SaajSoapMessage(response)); + } + + public void sendResponse(TransportResponse transportResponse) throws IOException { + if (hasResponse()) { + SOAPMessage response = getSaajResponse(); + try { + if (response.saveRequired()) { + response.saveChanges(); + } + // some SAAJ implementations (Axis 1) do not have a Content-Type header by default + MimeHeaders headers = response.getMimeHeaders(); + if (ObjectUtils.isEmpty(headers.getHeader("Content-Type"))) { + headers.addHeader("Content-Type", getSoapResponse().getVersion().getContentType()); + if (response.saveRequired()) { + response.saveChanges(); + } + } + for (Iterator iterator = headers.getAllHeaders(); iterator.hasNext();) { + MimeHeader mimeHeader = (MimeHeader) iterator.next(); + transportResponse.addHeader(mimeHeader.getName(), mimeHeader.getValue()); + } + response.writeTo(transportResponse.getOutputStream()); + } + catch (SOAPException ex) { + throw new SaajSoapMessageException("Could not write message to TransportResponse: " + ex.getMessage(), + ex); + } + + } + } + + protected SoapMessage createResponseSoapMessage() { + try { + SOAPMessage saajMessage = messageFactory.createMessage(); + return new SaajSoapMessage(saajMessage); + } + catch (SOAPException ex) { + throw new SoapMessageCreationException("Could not create message: " + ex.toString(), ex); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageContextFactory.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageContextFactory.java new file mode 100644 index 00000000..92c06afb --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageContextFactory.java @@ -0,0 +1,124 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.io.IOException; +import java.util.Iterator; +import java.util.StringTokenizer; +import javax.xml.soap.MessageFactory; +import javax.xml.soap.MimeHeaders; +import javax.xml.soap.SOAPConstants; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPMessage; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.util.StringUtils; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.context.MessageContextFactory; +import org.springframework.ws.soap.SoapMessageCreationException; +import org.springframework.ws.soap.saaj.support.SaajUtils; +import org.springframework.ws.transport.TransportContext; +import org.springframework.ws.transport.TransportRequest; + +/** + * SAAJ-specific implementation of the MessageContextFactory interface. Creates a + * SaajSoapMessageContext. This factory will use SAAJ 1.3 when found, or fall back to SAAJ 1.2. + * + * @author Arjen Poutsma + * @see SaajSoapMessageContext + */ +public class SaajSoapMessageContextFactory implements MessageContextFactory, InitializingBean { + + private static final Log logger = LogFactory.getLog(SaajSoapMessageContextFactory.class); + + private MessageFactory messageFactory; + + private String messageFactoryProtocol; + + public void setMessageFactory(MessageFactory messageFactory) { + this.messageFactory = messageFactory; + } + + /** + * Sets the protocol for the MessageFactory. Only used for SAAJ 1.3+, defaults to + * SOAPConstants.DEFAULT_SOAP_PROTOCOL (i.e. SOAP 1.1). + * + * @see MessageFactory#newInstance(String) + * @see SOAPConstants#DEFAULT_SOAP_PROTOCOL + * @see SOAPConstants#SOAP_1_1_PROTOCOL + * @see SOAPConstants#SOAP_1_2_PROTOCOL + * @see SOAPConstants#DYNAMIC_SOAP_PROTOCOL + */ + public void setSoapProtocol(String messageFactoryProtocol) { + this.messageFactoryProtocol = messageFactoryProtocol; + } + + public void afterPropertiesSet() throws Exception { + if (messageFactory == null) { + try { + if (SaajUtils.getSaajVersion() >= SaajUtils.SAAJ_13) { + if (!StringUtils.hasLength(messageFactoryProtocol)) { + messageFactoryProtocol = SOAPConstants.DEFAULT_SOAP_PROTOCOL; + } + if (logger.isInfoEnabled()) { + logger.info("Creating SAAJ 1.3 MessageFactory with " + messageFactoryProtocol); + } + messageFactory = MessageFactory.newInstance(messageFactoryProtocol); + } + else if (SaajUtils.getSaajVersion() == SaajUtils.SAAJ_12) { + if (logger.isInfoEnabled()) { + logger.info("Creating SAAJ 1.2 MessageFactory"); + } + messageFactory = MessageFactory.newInstance(); + } + else { + throw new IllegalStateException("SaajSoapMessageContextFactory requires SAAJ 1.2, which was not" + + "found on the classpath"); + } + } + catch (SOAPException ex) { + throw new SoapMessageCreationException("Could not create MessageFactory: " + ex.getMessage(), ex); + } + } + } + + public MessageContext createContext(TransportContext transportContext) throws IOException { + TransportRequest transportRequest = transportContext.getTransportRequest(); + MimeHeaders mimeHeaders = new MimeHeaders(); + for (Iterator headerNames = transportRequest.getHeaderNames(); headerNames.hasNext();) { + String headerName = (String) headerNames.next(); + for (Iterator headerValues = transportRequest.getHeaders(headerName); headerValues.hasNext();) { + String headerValue = (String) headerValues.next(); + StringTokenizer tokenizer = new StringTokenizer(headerValue, ","); + while (tokenizer.hasMoreTokens()) { + mimeHeaders.addHeader(headerName, tokenizer.nextToken().trim()); + } + } + } + try { + SOAPMessage requestMessage = messageFactory.createMessage(mimeHeaders, transportRequest.getInputStream()); + return new SaajSoapMessageContext(requestMessage, transportRequest, messageFactory); + } + catch (SOAPException ex) { + throw new SoapMessageCreationException("Could not create message from TransportRequest: " + ex.getMessage(), + ex); + } + } + +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageCreationException.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageCreationException.java new file mode 100644 index 00000000..e3337825 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageCreationException.java @@ -0,0 +1,33 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import org.springframework.ws.soap.SoapMessageCreationException; + +/** + * @author Arjen Poutsma + */ +public class SaajSoapMessageCreationException extends SoapMessageCreationException { + + public SaajSoapMessageCreationException(String msg) { + super(msg); + } + + public SaajSoapMessageCreationException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageException.java b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageException.java new file mode 100644 index 00000000..f827a97a --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/SaajSoapMessageException.java @@ -0,0 +1,33 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import org.springframework.ws.soap.SoapMessageException; + +/** + * @author Arjen Poutsma + */ +public class SaajSoapMessageException extends SoapMessageException { + + public SaajSoapMessageException(String msg) { + super(msg); + } + + public SaajSoapMessageException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/package.html b/core/src/main/java/org/springframework/ws/soap/saaj/package.html new file mode 100644 index 00000000..01e8ac8d --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/package.html @@ -0,0 +1,5 @@ + + +SOAP with Attachments API for Java (SAAJ) support for Spring-WS' soap message infrastructure. + + diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/support/SaajUtils.java b/core/src/main/java/org/springframework/ws/soap/saaj/support/SaajUtils.java new file mode 100644 index 00000000..b1cb8fa6 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/support/SaajUtils.java @@ -0,0 +1,165 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj.support; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Iterator; +import javax.xml.namespace.QName; +import javax.xml.soap.MessageFactory; +import javax.xml.soap.MimeHeaders; +import javax.xml.soap.Name; +import javax.xml.soap.SOAPElement; +import javax.xml.soap.SOAPEnvelope; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPMessage; + +import org.springframework.core.io.Resource; +import org.springframework.util.StringUtils; +import org.springframework.xml.namespace.QNameUtils; +import org.w3c.dom.Element; + +/** + * Collection of generic utility methods to work with SAAJ. Includes conversion from Names to + * QNames and vice-versa, and SAAJ version checking. + * + * @author Arjen Poutsma + * @see Name + * @see QName + */ +public abstract class SaajUtils { + + public static final int SAAJ_11 = 0; + + public static final int SAAJ_12 = 1; + + public static final int SAAJ_13 = 2; + + private static final String SAAJ_13_CLASS_NAME = "javax.xml.soap.SAAJMetaFactory"; + + private static int saajVersion = SAAJ_12; + + static { + try { + Class.forName(SAAJ_13_CLASS_NAME); + saajVersion = SAAJ_13; + } + catch (ClassNotFoundException ex) { + if (Element.class.isAssignableFrom(SOAPElement.class)) { + saajVersion = SAAJ_12; + } + else { + saajVersion = SAAJ_11; + } + } + } + + /** + * Gets the SAAJ version. + * + * @return a code comparable to the SAAJ_XX codes in this class + * @see #SAAJ_12 + * @see #SAAJ_13 + */ + public static int getSaajVersion() { + return saajVersion; + } + + /** + * Converts a javax.xml.namespace.QName to a javax.xml.soap.Name. A + * SOAPEnvelope is required to create the name. + * + * @param qName the QName to convert + * @param resolveElement a SOAPElement used to resolve namespaces to prefixes + * @param envelope a SOAPEnvelope necessary to create the Name + * @return the converted SAAJ Name + * @throws SOAPException if conversion is unsuccessful + * @throws IllegalArgumentException if qName is not fully qualified + */ + public static Name toName(QName qName, SOAPElement resolveElement, SOAPEnvelope envelope) throws SOAPException { + String qNamePrefix = QNameUtils.getPrefix(qName); + if (StringUtils.hasLength(qName.getNamespaceURI()) && StringUtils.hasLength(qNamePrefix)) { + return envelope.createName(qName.getLocalPart(), qNamePrefix, qName.getNamespaceURI()); + } + else if (StringUtils.hasLength(qName.getNamespaceURI())) { + Iterator prefixes = resolveElement.getVisibleNamespacePrefixes(); + while (prefixes.hasNext()) { + String prefix = (String) prefixes.next(); + if (qName.getNamespaceURI().equals(resolveElement.getNamespaceURI(prefix))) { + return envelope.createName(qName.getLocalPart(), prefix, qName.getNamespaceURI()); + } + } + throw new IllegalArgumentException("Could not resolve namespace of QName [" + qName + "]"); + } + else { + return envelope.createName(qName.getLocalPart()); + } + } + + /** + * Converts a javax.xml.soap.Name to a javax.xml.namespace.QName. + * + * @param name the Name to convert + * @return the converted QName + */ + public static QName toQName(Name name) { + if (StringUtils.hasLength(name.getURI()) && StringUtils.hasLength(name.getPrefix())) { + return QNameUtils.createQName(name.getURI(), name.getLocalName(), name.getPrefix()); + } + else if (StringUtils.hasLength(name.getURI())) { + return new QName(name.getURI(), name.getLocalName()); + } + else { + return new QName(name.getLocalName()); + } + } + + /** + * Loads a SAAJ SOAPMessage from the given resource. + * + * @param resource the resource to read from + * @return the loaded SAAJ message + * @throws SOAPException if the message cannot be constructed + * @throws IOException if the input stream resource cannot be loaded + */ + public static SOAPMessage loadMessage(Resource resource) throws SOAPException, IOException { + return loadMessage(resource, MessageFactory.newInstance()); + } + + /** + * Loads a SAAJ SOAPMessage from the given resource with a given message factory. + * + * @param resource the resource to read from + * @param messageFactory SAAJ message factory used to construct the message + * @return the loaded SAAJ message + * @throws SOAPException if the message cannot be constructed + * @throws IOException if the input stream resource cannot be loaded + */ + public static SOAPMessage loadMessage(Resource resource, MessageFactory messageFactory) + throws SOAPException, IOException { + InputStream is = resource.getInputStream(); + try { + MimeHeaders mimeHeaders = new MimeHeaders(); + mimeHeaders.addHeader("Content-Type", "text/xml"); + mimeHeaders.addHeader("Content-Length", Long.toString(resource.getFile().length())); + return messageFactory.createMessage(mimeHeaders, is); + } + finally { + is.close(); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/soap/saaj/support/package.html b/core/src/main/java/org/springframework/ws/soap/saaj/support/package.html new file mode 100644 index 00000000..164f83c1 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/saaj/support/package.html @@ -0,0 +1,5 @@ + + +Support classes for working with the SOAP with Attachments API for Java (SAAJ). + + diff --git a/core/src/main/java/org/springframework/ws/soap/soap11/Soap11Body.java b/core/src/main/java/org/springframework/ws/soap/soap11/Soap11Body.java new file mode 100644 index 00000000..03f8446a --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/soap11/Soap11Body.java @@ -0,0 +1,46 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.soap11; + +import java.util.Locale; +import javax.xml.namespace.QName; + +import org.springframework.ws.soap.SoapBody; +import org.springframework.ws.soap.SoapFaultException; + +/** + * Subinterface of SoapBody that exposes SOAP 1.1 functionality. Necessary because SOAP 1.1 differs from + * SOAP 1.2 with respect to SOAP Faults. + * + * @author Arjen Poutsma + * @see Soap11Fault + */ +public interface Soap11Body extends SoapBody { + + /** + * Adds a SOAP 1.1 Fault to the body with a localized message. Adding a fault removes the + * current content of the body. + * + * @param faultCode the fully qualified fault faultCode + * @param faultString the faultString + * @param faultStringLocale the faultString locale. May be null + * @return the added Soap11Fault + * @throws IllegalArgumentException if the fault faultCode is not fully qualified + */ + Soap11Fault addFault(QName faultCode, String faultString, Locale faultStringLocale) throws SoapFaultException; + +} diff --git a/core/src/main/java/org/springframework/ws/soap/soap11/Soap11Fault.java b/core/src/main/java/org/springframework/ws/soap/soap11/Soap11Fault.java new file mode 100644 index 00000000..d64814ba --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/soap11/Soap11Fault.java @@ -0,0 +1,41 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.soap11; + +import java.util.Locale; + +import org.springframework.ws.soap.SoapFault; + +/** + * Subinterface of SoapFault that exposes SOAP 1.1 functionality. Necessary because SOAP 1.1 differs from + * SOAP 1.2 with respect to SOAP Faults. + * + * @author Arjen Poutsma + */ +public interface Soap11Fault extends SoapFault { + + /** + * Returns the fault string. + */ + String getFaultString(); + + /** + * Returns the locale of the fault string. + */ + Locale getFaultStringLocale(); + +} diff --git a/core/src/main/java/org/springframework/ws/soap/soap11/package.html b/core/src/main/java/org/springframework/ws/soap/soap11/package.html new file mode 100644 index 00000000..34036f12 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/soap11/package.html @@ -0,0 +1,5 @@ + + +Contains interfaces specific to SOAP 1.1. + + diff --git a/core/src/main/java/org/springframework/ws/soap/soap12/Soap12Body.java b/core/src/main/java/org/springframework/ws/soap/soap12/Soap12Body.java new file mode 100644 index 00000000..e3c6f4f5 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/soap12/Soap12Body.java @@ -0,0 +1,43 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.soap12; + +import java.util.Locale; +import javax.xml.namespace.QName; + +import org.springframework.ws.soap.SoapBody; + +/** + * Subinterface of SoapBody that exposes SOAP 1.2 functionality. Necessary because SOAP 1.1 differs from + * SOAP 1.2 with respect to SOAP Faults. + * + * @author Arjen Poutsma + */ +public interface Soap12Body extends SoapBody { + + /** + * Adds a DataEncodingUnknown fault to the body. + *

+ * Adding a fault removes the current content of the body. + * + * @param subcodes the optional fully qualified fault subcodes + * @param reason the fault reason + * @param locale the language of the fault reason + * @return the created SoapFault + */ + Soap12Fault addDataEncodingUnknownFault(QName[] subcodes, String reason, Locale locale); +} diff --git a/core/src/main/java/org/springframework/ws/soap/soap12/Soap12Fault.java b/core/src/main/java/org/springframework/ws/soap/soap12/Soap12Fault.java new file mode 100644 index 00000000..59a9f254 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/soap12/Soap12Fault.java @@ -0,0 +1,67 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.soap12; + +import java.util.Iterator; +import java.util.Locale; +import javax.xml.namespace.QName; + +import org.springframework.ws.soap.SoapFault; + +/** + * Subinterface of SoapFault that exposes SOAP 1.2 functionality. Necessary because SOAP 1.1 differs from + * SOAP 1.2 with respect to SOAP Faults. + * + * @author Arjen Poutsma + */ +public interface Soap12Fault extends SoapFault { + + /** + * Returns an iteration over the fault subcodes. The subcodes are returned in order: from top to bottom. + * + * @return an Iterator that contains QNames representing the fault subcodes + */ + Iterator getFaultSubcodes(); + + /** + * Adds a fault subcode this fault. + * + * @param subcode the qualified name of the subcode + */ + void addFaultSubcode(QName subcode); + + /** + * Returns the fault node. Optional. + */ + String getFaultNode(); + + /** + * Sets the fault node. + */ + void setFaultNode(String uri); + + /** + * Sets the specified fault reason text. + */ + void setFaultReasonText(Locale locale, String text); + + /** + * Returns the reason associated with the given language. + */ + String getFaultReasonText(Locale locale); + +} diff --git a/core/src/main/java/org/springframework/ws/soap/soap12/Soap12Header.java b/core/src/main/java/org/springframework/ws/soap/soap12/Soap12Header.java new file mode 100644 index 00000000..982d5e12 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/soap12/Soap12Header.java @@ -0,0 +1,51 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.soap12; + +import javax.xml.namespace.QName; + +import org.springframework.ws.soap.SoapHeader; +import org.springframework.ws.soap.SoapHeaderElement; + +/** + * Subinterface of SoapHeader that exposes SOAP 1.2 functionality. + * + * @author Arjen Poutsma + */ +public interface Soap12Header extends SoapHeader { + + /** + * Adds a new NotUnderstood SoapHeaderElement this header. + * + * @param headerName the qualified name of the header that was not understood + * @return the created SoapHeaderElement + * @throws org.springframework.ws.soap.SoapHeaderException + * if the header cannot be created + */ + SoapHeaderElement addNotUnderstoodHeaderElement(QName headerName); + + /** + * Adds a new Upgrade SoapHeaderElement this header. + * + * @param supportedSoapUris an array of the URIs of SOAP versions supported + * @return the created SoapHeaderElement + * @throws org.springframework.ws.soap.SoapHeaderException + * if the header cannot be created + */ + SoapHeaderElement addUpgradeHeaderElement(java.lang.String[] supportedSoapUris); + +} diff --git a/core/src/main/java/org/springframework/ws/soap/soap12/package.html b/core/src/main/java/org/springframework/ws/soap/soap12/package.html new file mode 100644 index 00000000..4a1ba153 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/soap/soap12/package.html @@ -0,0 +1,5 @@ + + +Contains interfaces specific to SOAP 1.2. + + diff --git a/core/src/main/java/org/springframework/ws/transport/TransportContext.java b/core/src/main/java/org/springframework/ws/transport/TransportContext.java new file mode 100644 index 00000000..4bc488cc --- /dev/null +++ b/core/src/main/java/org/springframework/ws/transport/TransportContext.java @@ -0,0 +1,15 @@ +package org.springframework.ws.transport; + +/** + * Defines the contract for Web service request that come in via a transport. Exposes headers and the inputstream to + * read from. + * + * @author Arjen Poutsma + */ +public interface TransportContext { + + TransportRequest getTransportRequest() throws TransportException; + + TransportResponse getTransportResponse() throws TransportException; + +} diff --git a/core/src/main/java/org/springframework/ws/transport/TransportException.java b/core/src/main/java/org/springframework/ws/transport/TransportException.java new file mode 100644 index 00000000..99a28925 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/transport/TransportException.java @@ -0,0 +1,35 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.transport; + +import org.springframework.ws.WebServiceException; + +/** + * Abstract base class for exceptions related to the transport layer. + * + * @author Arjen Poutsma + */ +public abstract class TransportException extends WebServiceException { + + protected TransportException(String msg) { + super(msg); + } + + protected TransportException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/core/src/main/java/org/springframework/ws/transport/TransportRequest.java b/core/src/main/java/org/springframework/ws/transport/TransportRequest.java new file mode 100644 index 00000000..6d0efbfd --- /dev/null +++ b/core/src/main/java/org/springframework/ws/transport/TransportRequest.java @@ -0,0 +1,53 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.transport; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Iterator; + +/** + * Defines the contract for Web service request that come in via a transport. Exposes headers and the inputstream to + * read from. + * + * @author Arjen Poutsma + */ +public interface TransportRequest { + + /** + * Returns an iteratoion over all the header names this request contains. Returns an empty Iterator if + * the request has no headers, this method . + */ + Iterator getHeaderNames() throws TransportException; + + /** + * Returns an iteration over all the string values of the specified request header. Returns an empty + * Iterator if the request did not include any headers of the specified name. + */ + Iterator getHeaders(String name) throws TransportException; + + /** + * Returns the contents of the request as a InputStream. + */ + InputStream getInputStream() throws TransportException, IOException; + + /** + * Return a URL handle for this request. + */ + String getUrl() throws TransportException; + +} diff --git a/core/src/main/java/org/springframework/ws/transport/TransportResponse.java b/core/src/main/java/org/springframework/ws/transport/TransportResponse.java new file mode 100644 index 00000000..740ddce8 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/transport/TransportResponse.java @@ -0,0 +1,34 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.transport; + +import java.io.IOException; +import java.io.OutputStream; + +/** + * Defines the contract for Web service request that come in via a transport. Exposes headers and the inputstream to + * read from. + * + * @author Arjen Poutsma + */ +public interface TransportResponse { + + void addHeader(String name, String value); + + OutputStream getOutputStream() throws IOException; + +} diff --git a/core/src/main/java/org/springframework/ws/transport/http/HttpTransportContext.java b/core/src/main/java/org/springframework/ws/transport/http/HttpTransportContext.java new file mode 100644 index 00000000..c6f5a250 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/transport/http/HttpTransportContext.java @@ -0,0 +1,56 @@ +package org.springframework.ws.transport.http; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.util.Assert; +import org.springframework.ws.transport.TransportContext; +import org.springframework.ws.transport.TransportRequest; +import org.springframework.ws.transport.TransportResponse; + +/** + * HTTP-specific implementation of the TransportContext interface. Exposes the + * HttpServletRequest and HttpServletResponse. + * + * @author Arjen Poutsma + */ +public class HttpTransportContext implements TransportContext { + + private final HttpTransportRequest transportRequest; + + private final HttpTransportResponse transportResponse; + + /** + * Constructs a new instance of the HttpTransportContext with the given HttpServletRequest + * and HttpServletResponse + */ + public HttpTransportContext(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { + Assert.notNull(httpServletRequest, "No httpServletRequest given"); + Assert.notNull(httpServletResponse, "No httpServletResponse given"); + transportRequest = new HttpTransportRequest(httpServletRequest); + transportResponse = new HttpTransportResponse(httpServletResponse); + } + + public TransportRequest getTransportRequest() { + return transportRequest; + } + + public TransportResponse getTransportResponse() { + return transportResponse; + } + + /** + * Returns the wrapped HttpServletRequest. + */ + public HttpServletRequest getHttpServletRequest() { + return transportRequest.getHttpServletRequest(); + } + + /** + * Returns the wrapped HttpServletResponse. + */ + public HttpServletResponse getHttpServletRespo() { + return transportResponse.getHttpServletResponse(); + } + +} diff --git a/core/src/main/java/org/springframework/ws/transport/http/HttpTransportRequest.java b/core/src/main/java/org/springframework/ws/transport/http/HttpTransportRequest.java new file mode 100644 index 00000000..21de9eb9 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/transport/http/HttpTransportRequest.java @@ -0,0 +1,97 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.transport.http; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Enumeration; +import java.util.Iterator; +import javax.servlet.http.HttpServletRequest; + +import org.springframework.util.Assert; +import org.springframework.ws.transport.TransportRequest; + +/** + * HTTP-specific implementation of the TransportRequest interface. Exposes the + * HttpServletRequest + * + * @author Arjen Poutsma + */ +public class HttpTransportRequest implements TransportRequest { + + private final HttpServletRequest request; + + /** + * Constructs a new instance of the HttpTransportRequest with the given + * HttpServletRequest. + */ + public HttpTransportRequest(HttpServletRequest request) { + Assert.notNull(request, "request is required"); + this.request = request; + } + + /** + * Returns the wrapped HttpServletRequest. + */ + public HttpServletRequest getHttpServletRequest() { + return request; + } + + public Iterator getHeaders(String name) { + return new EnumerationIterator(request.getHeaders(name)); + } + + public InputStream getInputStream() throws IOException { + return request.getInputStream(); + } + + public Iterator getHeaderNames() { + return new EnumerationIterator(request.getHeaderNames()); + } + + public String getUrl() { + StringBuffer url = new StringBuffer(request.getScheme()); + url.append("://").append(request.getServerName()).append(':').append(request.getServerPort()); + url.append(request.getRequestURI()); + return url.toString(); + } + + /** + * Private static class that adapts a header enumeration provided by the HttpServletRequest and provides it as an + * iterator. + */ + private static class EnumerationIterator implements Iterator { + + private final Enumeration enumeration; + + public EnumerationIterator(Enumeration enumeration) { + this.enumeration = enumeration; + } + + public boolean hasNext() { + return enumeration.hasMoreElements(); + } + + public Object next() { + return enumeration.nextElement(); + } + + public void remove() { + throw new UnsupportedOperationException(); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/transport/http/HttpTransportResponse.java b/core/src/main/java/org/springframework/ws/transport/http/HttpTransportResponse.java new file mode 100644 index 00000000..64ce7f99 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/transport/http/HttpTransportResponse.java @@ -0,0 +1,57 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.transport.http; + +import java.io.IOException; +import java.io.OutputStream; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.ws.transport.TransportResponse; + +/** + * HTTP-specific implementation of the TransportResponse interface. Exposes the + * HttpServletResponse + * + * @author Arjen Poutsma + */ +public class HttpTransportResponse implements TransportResponse { + + private final HttpServletResponse response; + + /** + * Constructs a new instance of the HttpTransportResponse with the given + * HttpServletResponse. + */ + public HttpTransportResponse(HttpServletResponse response) { + this.response = response; + } + + /** + * Returns the wrapped HttpServletResponse. + */ + public HttpServletResponse getHttpServletResponse() { + return response; + } + + public void addHeader(String name, String value) { + response.addHeader(name, value); + } + + public OutputStream getOutputStream() throws IOException { + return response.getOutputStream(); + } +} diff --git a/core/src/main/java/org/springframework/ws/transport/http/MessageEndpointHandlerAdapter.java b/core/src/main/java/org/springframework/ws/transport/http/MessageEndpointHandlerAdapter.java new file mode 100644 index 00000000..8fe08703 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/transport/http/MessageEndpointHandlerAdapter.java @@ -0,0 +1,111 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.transport.http; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.util.Assert; +import org.springframework.web.servlet.HandlerAdapter; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.ws.NoEndpointFoundException; +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.context.MessageContextFactory; +import org.springframework.ws.endpoint.MessageEndpoint; +import org.springframework.ws.soap.SoapMessage; + +/** + * Adapter to use the MessageEndpoint interface with the generic DispatcherServlet. Requires a + * MessageContextFactory, which is used to convert the incoming HttpServletRequest into a + * MessageContext, and passes that context to the mapped MessageEndpoint. If a response is + * created, that is sent via the HttpServletResponse. + *

+ * Note that the MessageDispatcher implements the MessageEndpoint interface, enabling this + * adapter to function as a gateway to further message handling logic. + * + * @author Arjen Poutsma + * @see org.springframework.ws.endpoint.MessageEndpoint + * @see MessageContextFactory + * @see org.springframework.ws.MessageDispatcher + */ +public class MessageEndpointHandlerAdapter implements HandlerAdapter, InitializingBean { + + private static final Log logger = LogFactory.getLog(MessageEndpointHandlerAdapter.class); + + private MessageContextFactory messageContextFactory; + + public void setMessageContextFactory(MessageContextFactory messageContextFactory) { + this.messageContextFactory = messageContextFactory; + } + + public long getLastModified(HttpServletRequest request, Object handler) { + return -1L; + } + + public ModelAndView handle(HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse, + Object handler) throws Exception { + if ("POST".equals(httpServletRequest.getMethod())) { + handlePost(httpServletRequest, (MessageEndpoint) handler, httpServletResponse); + return null; + } + else { + throw new ServletException("Request method '" + httpServletRequest.getMethod() + "' not supported"); + } + } + + public boolean supports(Object handler) { + return handler instanceof MessageEndpoint; + } + + public final void afterPropertiesSet() throws Exception { + Assert.notNull(messageContextFactory, "messageContextFactory is required"); + logger.info("Using message context factory " + messageContextFactory); + } + + private void handlePost(HttpServletRequest httpServletRequest, + MessageEndpoint endpoint, + HttpServletResponse httpServletResponse) throws Exception { + HttpTransportContext transportContext = new HttpTransportContext(httpServletRequest, httpServletResponse); + MessageContext messageContext = messageContextFactory.createContext(transportContext); + try { + endpoint.invoke(messageContext); + if (!messageContext.hasResponse()) { + httpServletResponse.setStatus(HttpServletResponse.SC_NO_CONTENT); + } + else { + WebServiceMessage webServiceResponse = messageContext.getResponse(); + if (webServiceResponse instanceof SoapMessage && + ((SoapMessage) webServiceResponse).getSoapBody().hasFault()) { + httpServletResponse.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + else { + httpServletResponse.setStatus(HttpServletResponse.SC_OK); + } + messageContext.sendResponse(new HttpTransportResponse(httpServletResponse)); + } + } + catch (NoEndpointFoundException ex) { + httpServletResponse.setStatus(HttpServletResponse.SC_NOT_FOUND); + } + } +} diff --git a/core/src/main/java/org/springframework/ws/transport/http/WsdlDefinitionHandlerAdapter.java b/core/src/main/java/org/springframework/ws/transport/http/WsdlDefinitionHandlerAdapter.java new file mode 100644 index 00000000..f576db74 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/transport/http/WsdlDefinitionHandlerAdapter.java @@ -0,0 +1,208 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.transport.http; + +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Properties; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.util.StringUtils; +import org.springframework.web.servlet.HandlerAdapter; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.ws.endpoint.TransformerObjectSupport; +import org.springframework.ws.wsdl.WsdlDefinition; +import org.springframework.xml.xpath.XPathExpression; +import org.springframework.xml.xpath.XPathExpressionFactory; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Node; + +/** + * Adapter to use the WsdlDefinition interface with the generic DispatcherServlet. Reads the + * source from the mapped WsdlDefinition implementation, and writes that as result to the + * HttpServletResponse. + *

+ * If the property transformLocations is set to true, this adapter will change + * location attributes in the WSDL definition to reflect the URL of the incoming request. If the location + * field in the original WSDL is an absolute path, the scheme, hostname, and port will be changed. If the location is a + * relative path, the scheme, hostname, port, and context path will be prepended. This behavior can be customized by + * overriding the transformLocation() method. + *

+ * For instance, if the location attribute defined in the WSDL is http://localhost:8080/context/services/myService, + * and the request URI for the WSDL is http://example.com/context/myService.wsdl, the location will be + * changed to http://example.com/context/services/myService. + *

+ * If the location attribute defined in the WSDL is /services/myService, and the request URI for the WSDL + * is http://example.com:8080/context/myService.wsdl, the location will be changed to + * http://example.com:8080/context/services/myService. + *

+ * When transformLocations is enabled, all location attributes found in the WSDL definition + * are changed by default. This behavior can be customized by changing the locationExpression property, + * which is an XPath expression that matches the attributes to change. + * + * @author Arjen Poutsma + * @see WsdlDefinition + * @see #setTransformLocations(boolean) + * @see #setLocationExpression(String) + * @see #transformLocation(String, javax.servlet.http.HttpServletRequest) + */ +public class WsdlDefinitionHandlerAdapter extends TransformerObjectSupport implements HandlerAdapter, InitializingBean { + + /** + * Default XPath expression used for extracting all location attributes from the WSDL definition. + */ + public static final String DEFAULT_LOCATION_EXPRESSION = "//@location"; + + private static final String CONTENT_TYPE = "text/xml"; + + private static final Log logger = LogFactory.getLog(WsdlDefinitionHandlerAdapter.class); + + private Properties expressionNamespaces = new Properties(); + + private String locationExpression = DEFAULT_LOCATION_EXPRESSION; + + private XPathExpression locationXPathExpression; + + private boolean transformLocations = false; + + /** + * Sets the XPath expression used for extracting the location attributes from the WSDL 1.1 definition. + * Defaults to DEFAULT_LOCATION_EXPRESSION. + * + * @see #DEFAULT_LOCATION_EXPRESSION + */ + public void setLocationExpression(String locationExpression) { + this.locationExpression = locationExpression; + } + + /** + * Sets whether relative address locations in the WSDL are to be transformed using the request URI of the incoming + * HttpServletRequest. Defaults to false. + */ + public void setTransformLocations(boolean transformLocations) { + this.transformLocations = transformLocations; + } + + public long getLastModified(HttpServletRequest request, Object handler) { + return -1; + } + + public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) + throws Exception { + if (!"GET".equals(request.getMethod())) { + throw new ServletException("Request method '" + request.getMethod() + "' not supported"); + } + response.setContentType(CONTENT_TYPE); + Transformer transformer = createTransformer(); + WsdlDefinition definition = (WsdlDefinition) handler; + Source definitionSource = definition.getSource(); + if (transformLocations) { + DOMResult domResult = new DOMResult(); + transformer.transform(definitionSource, domResult); + Document definitionDocument = (Document) domResult.getNode(); + transformLocations(definitionDocument, request); + definitionSource = new DOMSource(definitionDocument); + } + StreamResult responseResult = new StreamResult(response.getOutputStream()); + transformer.transform(definitionSource, responseResult); + return null; + } + + public boolean supports(Object handler) { + return handler instanceof WsdlDefinition; + } + + public void afterPropertiesSet() throws Exception { + locationXPathExpression = + XPathExpressionFactory.createXPathExpression(locationExpression, expressionNamespaces); + } + + /** + * Transform the given location string to reflect the given request. If the given location is a full url, the + * scheme, server name, and port are changed. If it is a relative url, the scheme, server name, and port are + * prepended. Can be overridden in subclasses to change this behavior. + *

+ * For instance, if the location attribute defined in the WSDL is http://localhost:8080/context/services/myService, + * and the request URI for the WSDL is http://example.com:8080/context/myService.wsdl, the location + * will be changed to http://example.com:8080/context/services/myService. + *

+ * If the location attribute defined in the WSDL is /services/myService, and the request URI for the + * WSDL is http://example.com:8080/context/myService.wsdl, the location will be changed to + * http://example.com:8080/context/services/myService. + *

+ * This method is only called when the transformLocations property is true. + */ + protected String transformLocation(String location, HttpServletRequest request) { + try { + if (location.startsWith("/")) { + // a relative path, prepend the context path + URL newLocation = new URL(request.getScheme(), + request.getServerName(), + request.getServerPort(), + request.getContextPath() + location); + return newLocation.toString(); + } + else { + // a full url + URL oldLocation = new URL(location); + URL newLocation = new URL(request.getScheme(), + request.getServerName(), + request.getServerPort(), + oldLocation.getFile()); + return newLocation.toString(); + } + } + catch (MalformedURLException e) { + return location; + // fall though to the default return value + } + } + + /** + * Transforms all location attributes to reflect the server name given HttpServletRequest. + * Determines the suitable attributes by evaluating the defined XPath expression, and delegates to + * transformLocation to do the transformation for all attributes that match. + *

+ * This method is only called when the transformLocations property is true. + * + * @see #setLocationExpression(String) + * @see #setTransformLocations(boolean) + * @see #transformLocation(String, javax.servlet.http.HttpServletRequest) + */ + protected void transformLocations(Document definitionDocument, HttpServletRequest request) throws Exception { + Node[] locationNodes = locationXPathExpression.evaluateAsNodes(definitionDocument); + for (int i = 0; i < locationNodes.length; i++) { + Attr location = (Attr) locationNodes[i]; + if (location != null && StringUtils.hasLength(location.getValue())) { + String newLocation = transformLocation(location.getValue(), request); + logger.debug("Transforming [" + location.getValue() + "] to [" + newLocation + "]"); + location.setValue(newLocation); + } + } + } +} diff --git a/core/src/main/java/org/springframework/ws/transport/http/package.html b/core/src/main/java/org/springframework/ws/transport/http/package.html new file mode 100644 index 00000000..bd11fcac --- /dev/null +++ b/core/src/main/java/org/springframework/ws/transport/http/package.html @@ -0,0 +1,5 @@ + + +Package providing support for handling messages via HTTP. + + diff --git a/core/src/main/java/org/springframework/ws/transport/package.html b/core/src/main/java/org/springframework/ws/transport/package.html new file mode 100644 index 00000000..0252161c --- /dev/null +++ b/core/src/main/java/org/springframework/ws/transport/package.html @@ -0,0 +1,5 @@ + + +Contains the TransportRequest and TransportResponse interfaces. + + diff --git a/core/src/main/java/org/springframework/ws/wsdl/WsdlDefinition.java b/core/src/main/java/org/springframework/ws/wsdl/WsdlDefinition.java new file mode 100644 index 00000000..c5b82668 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/wsdl/WsdlDefinition.java @@ -0,0 +1,35 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.wsdl; + +import javax.xml.transform.Source; + +/** + * Represents an abstraction for WSDL definitions. + * + * @author Arjen Poutsma + */ +public interface WsdlDefinition { + + /** + * Returns the Source of the definition. + * + * @return the Source of this WSDL definition + */ + Source getSource(); + +} diff --git a/core/src/main/java/org/springframework/ws/wsdl/WsdlDefinitionException.java b/core/src/main/java/org/springframework/ws/wsdl/WsdlDefinitionException.java new file mode 100644 index 00000000..f8e3b2c1 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/wsdl/WsdlDefinitionException.java @@ -0,0 +1,35 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.wsdl; + +import org.springframework.ws.WebServiceException; + +/** + * Base class for all WSDL definition exceptions. + * + * @author Arjen Poutsma + */ +public class WsdlDefinitionException extends WebServiceException { + + public WsdlDefinitionException(String reason) { + super(reason); + } + + public WsdlDefinitionException(String reason, Throwable throwable) { + super(reason, throwable); + } +} diff --git a/core/src/main/java/org/springframework/ws/wsdl/package.html b/core/src/main/java/org/springframework/ws/wsdl/package.html new file mode 100644 index 00000000..3cb79118 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/wsdl/package.html @@ -0,0 +1,6 @@ + + +Provides the WSDL functionality of the Spring Web Services framework. Contains the WsdlDefinition and related +interfaces. + + diff --git a/core/src/main/java/org/springframework/ws/wsdl/wsdl11/SimpleWsdl11Definition.java b/core/src/main/java/org/springframework/ws/wsdl/wsdl11/SimpleWsdl11Definition.java new file mode 100644 index 00000000..d58d37ca --- /dev/null +++ b/core/src/main/java/org/springframework/ws/wsdl/wsdl11/SimpleWsdl11Definition.java @@ -0,0 +1,57 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.wsdl.wsdl11; + +import java.io.IOException; +import javax.xml.transform.Source; +import javax.xml.transform.sax.SAXSource; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.core.io.Resource; +import org.springframework.util.Assert; +import org.springframework.ws.wsdl.WsdlDefinitionException; +import org.springframework.xml.sax.SaxUtils; + +/** + * Default implementation of the Wsdl11Definition interface. Allows a WSDL to be set by the + * wsdl property. + * + * @author Arjen Poutsma + * @see #setWsdl(org.springframework.core.io.Resource) + */ +public class SimpleWsdl11Definition implements Wsdl11Definition, InitializingBean { + + private Resource wsdlResource; + + public void setWsdl(Resource wsdlResource) { + this.wsdlResource = wsdlResource; + } + + public void afterPropertiesSet() throws Exception { + Assert.notNull(wsdlResource, "wsdlResource is required"); + Assert.isTrue(wsdlResource.exists(), "wsdl \"" + wsdlResource + "\" does not exit"); + } + + public Source getSource() { + try { + return new SAXSource(SaxUtils.createInputSource(wsdlResource)); + } + catch (IOException ex) { + throw new WsdlDefinitionException("Could not create source from " + wsdlResource, ex); + } + } +} \ No newline at end of file diff --git a/core/src/main/java/org/springframework/ws/wsdl/wsdl11/Wsdl11Definition.java b/core/src/main/java/org/springframework/ws/wsdl/wsdl11/Wsdl11Definition.java new file mode 100644 index 00000000..08f3ac70 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/wsdl/wsdl11/Wsdl11Definition.java @@ -0,0 +1,26 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.wsdl.wsdl11; + +import org.springframework.ws.wsdl.WsdlDefinition; + +/** + * @author Arjen Poutsma + */ +public interface Wsdl11Definition extends WsdlDefinition { + +} diff --git a/core/src/main/java/org/springframework/ws/wsdl/wsdl11/package.html b/core/src/main/java/org/springframework/ws/wsdl/wsdl11/package.html new file mode 100644 index 00000000..9774cc37 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/wsdl/wsdl11/package.html @@ -0,0 +1,5 @@ + + +Contains interfaces specific to WSDL 1.1. + + diff --git a/core/src/main/resources/org/springframework/ws/MessageDispatcher.properties b/core/src/main/resources/org/springframework/ws/MessageDispatcher.properties new file mode 100644 index 00000000..7e807c98 --- /dev/null +++ b/core/src/main/resources/org/springframework/ws/MessageDispatcher.properties @@ -0,0 +1,5 @@ +# Default implementation classes for MessageDispatcher's strategy interfaces. +# Used as fallback when no matching beans are found in the MessageDispatcher context. +# Not meant to be customized by application developers +org.springframework.ws.EndpointAdapter=org.springframework.ws.endpoint.MessageEndpointAdapter,\ + org.springframework.ws.endpoint.PayloadEndpointAdapter \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/AbstractWebServiceMessageTestCase.java b/core/src/test/java/org/springframework/ws/AbstractWebServiceMessageTestCase.java new file mode 100644 index 00000000..9645a1f3 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/AbstractWebServiceMessageTestCase.java @@ -0,0 +1,163 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.StringWriter; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLEventWriter; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.sax.SAXSource; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.custommonkey.xmlunit.XMLUnit; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.util.FileCopyUtils; +import org.springframework.xml.sax.SaxUtils; +import org.springframework.xml.transform.StaxResult; +import org.springframework.xml.transform.StaxSource; +import org.springframework.xml.transform.StringResult; +import org.w3c.dom.Document; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; +import org.xml.sax.helpers.DefaultHandler; +import org.xml.sax.helpers.XMLReaderFactory; + +public abstract class AbstractWebServiceMessageTestCase extends XMLTestCase { + + protected Transformer transformer; + + protected WebServiceMessage webServiceMessage; + + private Resource payload; + + private String getExpectedString() throws IOException { + StringWriter expectedWriter = new StringWriter(); + FileCopyUtils.copy(new InputStreamReader(payload.getInputStream(), "UTF-8"), expectedWriter); + return expectedWriter.toString(); + } + + protected final void setUp() throws Exception { + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + transformer = transformerFactory.newTransformer(); + webServiceMessage = createWebServiceMessage(); + payload = new ClassPathResource("payload.xml", AbstractWebServiceMessageTestCase.class); + XMLUnit.setIgnoreWhitespace(true); + } + + public void testDomPayload() throws Exception { + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + documentBuilderFactory.setNamespaceAware(true); + DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); + Document payloadDocument = documentBuilder.parse(SaxUtils.createInputSource(payload)); + DOMSource domSource = new DOMSource(payloadDocument); + transformer.transform(domSource, webServiceMessage.getPayloadResult()); + Document resultDocument = documentBuilder.newDocument(); + DOMResult domResult = new DOMResult(resultDocument); + transformer.transform(webServiceMessage.getPayloadSource(), domResult); + assertXMLEqual(payloadDocument, resultDocument); + validateMessage(); + } + + public void testEventReaderPayload() throws Exception { + XMLInputFactory inputFactory = XMLInputFactory.newInstance(); + XMLEventReader eventReader = inputFactory.createXMLEventReader(payload.getInputStream()); + StaxSource staxSource = new StaxSource(eventReader); + transformer.transform(staxSource, webServiceMessage.getPayloadResult()); + StringWriter stringWriter = new StringWriter(); + XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); + XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(stringWriter); + StaxResult staxResult = new StaxResult(eventWriter); + transformer.transform(webServiceMessage.getPayloadSource(), staxResult); + eventWriter.flush(); + assertXMLEqual(getExpectedString(), stringWriter.toString()); + validateMessage(); + } + + public void testReaderPayload() throws Exception { + Reader reader = new InputStreamReader(payload.getInputStream(), "UTF-8"); + StreamSource streamSource = new StreamSource(reader, payload.getURL().toString()); + transformer.transform(streamSource, webServiceMessage.getPayloadResult()); + StringWriter resultWriter = new StringWriter(); + StreamResult streamResult = new StreamResult(resultWriter); + transformer.transform(webServiceMessage.getPayloadSource(), streamResult); + assertXMLEqual(getExpectedString(), resultWriter.toString()); + } + + public void testSaxPayload() throws Exception { + SAXSource saxSource = new SAXSource(SaxUtils.createInputSource(payload)); + transformer.transform(saxSource, webServiceMessage.getPayloadResult()); + StringResult stringResult = new StringResult(); + transformer.transform(webServiceMessage.getPayloadSource(), stringResult); + assertXMLEqual(getExpectedString(), stringResult.toString()); + validateMessage(); + } + + public void testStreamPayload() throws Exception { + StreamSource streamSource = new StreamSource(payload.getInputStream(), payload.getURL().toString()); + transformer.transform(streamSource, webServiceMessage.getPayloadResult()); + ByteArrayOutputStream resultStream = new ByteArrayOutputStream(); + StreamResult streamResult = new StreamResult(resultStream); + transformer.transform(webServiceMessage.getPayloadSource(), streamResult); + ByteArrayOutputStream expectedStream = new ByteArrayOutputStream(); + FileCopyUtils.copy(payload.getInputStream(), expectedStream); + assertXMLEqual(expectedStream.toString("UTF-8"), resultStream.toString("UTF-8")); + validateMessage(); + } + + public void testStreamReaderPayload() throws Exception { + XMLInputFactory inputFactory = XMLInputFactory.newInstance(); + XMLStreamReader streamReader = inputFactory.createXMLStreamReader(payload.getInputStream()); + StaxSource staxSource = new StaxSource(streamReader); + transformer.transform(staxSource, webServiceMessage.getPayloadResult()); + StringWriter stringWriter = new StringWriter(); + XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); + XMLStreamWriter streamWriter = outputFactory.createXMLStreamWriter(stringWriter); + StaxResult staxResult = new StaxResult(streamWriter); + transformer.transform(webServiceMessage.getPayloadSource(), staxResult); + streamWriter.flush(); + assertXMLEqual(getExpectedString(), stringWriter.toString()); + validateMessage(); + } + + private void validateMessage() throws Exception { + XMLReader xmlReader = XMLReaderFactory.createXMLReader(); + xmlReader.setContentHandler(new DefaultHandler()); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + webServiceMessage.writeTo(os); + ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray()); + xmlReader.parse(new InputSource(is)); + } + + protected abstract WebServiceMessage createWebServiceMessage() throws Exception; +} diff --git a/core/src/test/java/org/springframework/ws/MessageDispatcherTest.java b/core/src/test/java/org/springframework/ws/MessageDispatcherTest.java new file mode 100644 index 00000000..a621fcb1 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/MessageDispatcherTest.java @@ -0,0 +1,275 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws; + +import java.util.Collections; + +import junit.framework.TestCase; +import org.easymock.MockControl; +import org.springframework.context.support.StaticApplicationContext; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.mock.MockMessageContext; + +public class MessageDispatcherTest extends TestCase { + + private MessageDispatcher dispatcher; + + private MockMessageContext messageContext; + + protected void setUp() throws Exception { + dispatcher = new MessageDispatcher(); + dispatcher.setApplicationContext(new StaticApplicationContext()); + dispatcher.initApplicationContext(); + messageContext = new MockMessageContext(); + } + + public void testGetEndpoint() throws Exception { + MockControl mappingControl = MockControl.createControl(EndpointMapping.class); + EndpointMapping mappingMock = (EndpointMapping) mappingControl.getMock(); + dispatcher.setEndpointMappings(Collections.singletonList(mappingMock)); + + EndpointInvocationChain chain = new EndpointInvocationChain(new Object()); + + mappingControl.expectAndReturn(mappingMock.getEndpoint(messageContext), chain); + + mappingControl.replay(); + EndpointInvocationChain result = dispatcher.getEndpoint(messageContext); + mappingControl.verify(); + assertEquals("getEndpoint returns invalid EndpointInvocationChain", chain, result); + } + + public void testGetEndpointAdapterSupportedEndpoint() throws Exception { + MockControl adapterControl = MockControl.createControl(EndpointAdapter.class); + EndpointAdapter adapterMock = (EndpointAdapter) adapterControl.getMock(); + dispatcher.setEndpointAdapters(Collections.singletonList(adapterMock)); + + Object endpoint = new Object(); + adapterControl.expectAndReturn(adapterMock.supports(endpoint), true); + adapterControl.replay(); + EndpointAdapter result = dispatcher.getEndpointAdapter(endpoint); + adapterControl.verify(); + assertEquals("getEnpointAdapter returns invalid EndpointAdapter", adapterMock, result); + } + + public void testGetEndpointAdapterUnsupportedEndpoint() throws Exception { + MockControl adapterControl = MockControl.createControl(EndpointAdapter.class); + EndpointAdapter adapterMock = (EndpointAdapter) adapterControl.getMock(); + dispatcher.setEndpointAdapters(Collections.singletonList(adapterMock)); + + Object endpoint = new Object(); + adapterControl.expectAndReturn(adapterMock.supports(endpoint), false); + adapterControl.replay(); + try { + dispatcher.getEndpointAdapter(endpoint); + fail("getEndpointAdapter does not throw IllegalStateException for unsupported endpoint"); + } + catch (IllegalStateException ex) { + // Expected + } + adapterControl.verify(); + } + + public void testProcessEndpointExceptionReturnsResponse() throws Exception { + + final Object endpoint = new Object(); + final Exception ex = new Exception(); + EndpointExceptionResolver resolver = new EndpointExceptionResolver() { + + public boolean resolveException(MessageContext givenMessageContext, + Object givenEndpoint, + Exception givenException) { + assertEquals("Invalid message context", messageContext, givenMessageContext); + assertEquals("Invalid endpoint", endpoint, givenEndpoint); + assertEquals("Invalid exception", ex, givenException); + givenMessageContext.getResponse(); + return true; + } + + }; + dispatcher.setEndpointExceptionResolvers(Collections.singletonList(resolver)); + + dispatcher.processEndpointException(messageContext, endpoint, ex); + assertNotNull("processEndpointException sets no response", messageContext.getResponse()); + } + + public void testProcessUnsupportedEndpointException() throws Exception { + MockControl resolverControl = MockControl.createControl(EndpointExceptionResolver.class); + EndpointExceptionResolver resolverMock = (EndpointExceptionResolver) resolverControl.getMock(); + dispatcher.setEndpointExceptionResolvers(Collections.singletonList(resolverMock)); + + Object endpoint = new Object(); + Exception ex = new Exception(); + + resolverControl.expectAndReturn(resolverMock.resolveException(messageContext, endpoint, ex), false); + + resolverControl.replay(); + try { + dispatcher.processEndpointException(messageContext, endpoint, ex); + } + catch (Exception result) { + assertEquals("processEndpointException throws invalid exception", ex, result); + } + resolverControl.verify(); + } + + public void testNormalFlow() throws Exception { + MockControl adapterControl = MockControl.createControl(EndpointAdapter.class); + EndpointAdapter adapterMock = (EndpointAdapter) adapterControl.getMock(); + dispatcher.setEndpointAdapters(Collections.singletonList(adapterMock)); + + Object endpoint = new Object(); + adapterControl.expectAndReturn(adapterMock.supports(endpoint), true); + + MockControl mappingControl = MockControl.createControl(EndpointMapping.class); + EndpointMapping mappingMock = (EndpointMapping) mappingControl.getMock(); + dispatcher.setEndpointMappings(Collections.singletonList(mappingMock)); + + MockControl interceptorControl = MockControl.createStrictControl(EndpointInterceptor.class); + EndpointInterceptor interceptorMock1 = (EndpointInterceptor) interceptorControl.getMock(); + EndpointInterceptor interceptorMock2 = (EndpointInterceptor) interceptorControl.getMock(); + + interceptorControl.expectAndReturn(interceptorMock1.handleRequest(messageContext, endpoint), true); + interceptorControl.expectAndReturn(interceptorMock2.handleRequest(messageContext, endpoint), true); + adapterMock.invoke(messageContext, endpoint); + interceptorControl.expectAndReturn(interceptorMock2.handleResponse(messageContext, endpoint), true); + interceptorControl.expectAndReturn(interceptorMock1.handleResponse(messageContext, endpoint), true); + + EndpointInvocationChain chain = + new EndpointInvocationChain(endpoint, new EndpointInterceptor[]{interceptorMock1, interceptorMock2}); + + mappingControl.expectAndReturn(mappingMock.getEndpoint(messageContext), chain); + + mappingControl.replay(); + interceptorControl.replay(); + adapterControl.replay(); + // response required for interceptor invocation + messageContext.getResponse(); + dispatcher.dispatch(messageContext); + + mappingControl.verify(); + interceptorControl.verify(); + adapterControl.verify(); + } + + public void testFlowNoResponse() throws Exception { + MockControl adapterControl = MockControl.createControl(EndpointAdapter.class); + EndpointAdapter adapterMock = (EndpointAdapter) adapterControl.getMock(); + dispatcher.setEndpointAdapters(Collections.singletonList(adapterMock)); + + Object endpoint = new Object(); + adapterControl.expectAndReturn(adapterMock.supports(endpoint), true); + + MockControl mappingControl = MockControl.createControl(EndpointMapping.class); + EndpointMapping mappingMock = (EndpointMapping) mappingControl.getMock(); + dispatcher.setEndpointMappings(Collections.singletonList(mappingMock)); + + MockControl interceptorControl = MockControl.createStrictControl(EndpointInterceptor.class); + EndpointInterceptor interceptorMock1 = (EndpointInterceptor) interceptorControl.getMock(); + EndpointInterceptor interceptorMock2 = (EndpointInterceptor) interceptorControl.getMock(); + + EndpointInvocationChain chain = + new EndpointInvocationChain(endpoint, new EndpointInterceptor[]{interceptorMock1, interceptorMock2}); + mappingControl.expectAndReturn(mappingMock.getEndpoint(messageContext), chain); + + interceptorControl.expectAndReturn(interceptorMock1.handleRequest(messageContext, endpoint), true); + interceptorControl.expectAndReturn(interceptorMock2.handleRequest(messageContext, endpoint), true); + adapterMock.invoke(messageContext, endpoint); + + mappingControl.replay(); + interceptorControl.replay(); + adapterControl.replay(); + + dispatcher.dispatch(messageContext); + + mappingControl.verify(); + interceptorControl.verify(); + adapterControl.verify(); + } + + public void testInterceptedRequestFlow() throws Exception { + MockControl adapterControl = MockControl.createControl(EndpointAdapter.class); + EndpointAdapter adapterMock = (EndpointAdapter) adapterControl.getMock(); + dispatcher.setEndpointAdapters(Collections.singletonList(adapterMock)); + + MockControl mappingControl = MockControl.createControl(EndpointMapping.class); + EndpointMapping mappingMock = (EndpointMapping) mappingControl.getMock(); + dispatcher.setEndpointMappings(Collections.singletonList(mappingMock)); + + MockControl interceptorControl = MockControl.createStrictControl(EndpointInterceptor.class); + EndpointInterceptor interceptorMock1 = (EndpointInterceptor) interceptorControl.getMock(); + EndpointInterceptor interceptorMock2 = (EndpointInterceptor) interceptorControl.getMock(); + + Object endpoint = new Object(); + interceptorControl.expectAndReturn(interceptorMock1.handleRequest(messageContext, endpoint), false); + interceptorControl.expectAndReturn(interceptorMock1.handleResponse(messageContext, endpoint), true); + + EndpointInvocationChain chain = + new EndpointInvocationChain(endpoint, new EndpointInterceptor[]{interceptorMock1, interceptorMock2}); + + mappingControl.expectAndReturn(mappingMock.getEndpoint(messageContext), chain); + + mappingControl.replay(); + interceptorControl.replay(); + adapterControl.replay(); + + // response required for interceptor invocation + messageContext.getResponse(); + + dispatcher.dispatch(messageContext); + + mappingControl.verify(); + interceptorControl.verify(); + adapterControl.verify(); + } + + public void testInterceptedResponseFlow() throws Exception { + MockControl adapterControl = MockControl.createControl(EndpointAdapter.class); + EndpointAdapter adapterMock = (EndpointAdapter) adapterControl.getMock(); + dispatcher.setEndpointAdapters(Collections.singletonList(adapterMock)); + + MockControl mappingControl = MockControl.createControl(EndpointMapping.class); + EndpointMapping mappingMock = (EndpointMapping) mappingControl.getMock(); + dispatcher.setEndpointMappings(Collections.singletonList(mappingMock)); + + MockControl interceptorControl = MockControl.createStrictControl(EndpointInterceptor.class); + EndpointInterceptor interceptorMock1 = (EndpointInterceptor) interceptorControl.getMock(); + EndpointInterceptor interceptorMock2 = (EndpointInterceptor) interceptorControl.getMock(); + + Object endpoint = new Object(); + interceptorControl.expectAndReturn(interceptorMock1.handleRequest(messageContext, endpoint), true); + interceptorControl.expectAndReturn(interceptorMock2.handleRequest(messageContext, endpoint), false); + interceptorControl.expectAndReturn(interceptorMock2.handleResponse(messageContext, endpoint), false); + + EndpointInvocationChain chain = + new EndpointInvocationChain(endpoint, new EndpointInterceptor[]{interceptorMock1, interceptorMock2}); + + mappingControl.expectAndReturn(mappingMock.getEndpoint(messageContext), chain); + + mappingControl.replay(); + interceptorControl.replay(); + adapterControl.replay(); + // response required for interceptor invocation + messageContext.getResponse(); + + dispatcher.dispatch(messageContext); + + mappingControl.verify(); + interceptorControl.verify(); + adapterControl.verify(); + } + +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/endpoint/AbstractEndpointTestCase.java b/core/src/test/java/org/springframework/ws/endpoint/AbstractEndpointTestCase.java new file mode 100644 index 00000000..df7afb21 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/AbstractEndpointTestCase.java @@ -0,0 +1,91 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.Reader; +import java.io.StringReader; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamReader; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.sax.SAXSource; +import javax.xml.transform.stream.StreamSource; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.w3c.dom.Document; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; +import org.xml.sax.helpers.XMLReaderFactory; + +import org.springframework.xml.transform.StaxSource; + +public abstract class AbstractEndpointTestCase extends XMLTestCase { + + protected final static String NAMESPACE_URI = "http://springframework.org/ws"; + + protected final static String REQUEST_ELEMENT = "request"; + + protected final static String RESPONSE_ELEMENT = "response"; + + protected final static String REQUEST = "<" + REQUEST_ELEMENT + " xmlns=\"" + NAMESPACE_URI + "\"/>"; + + protected final static String RESPONSE = "<" + RESPONSE_ELEMENT + " xmlns=\"" + NAMESPACE_URI + "\"/>"; + + public void testDomSource() throws Exception { + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + documentBuilderFactory.setNamespaceAware(true); + DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); + Document requestDocument = documentBuilder.parse(new InputSource(new StringReader(REQUEST))); + testSource(new DOMSource(requestDocument.getDocumentElement())); + } + + public void testSaxSource() throws Exception { + XMLReader reader = XMLReaderFactory.createXMLReader(); + InputSource inputSource = new InputSource(new StringReader(REQUEST)); + testSource(new SAXSource(reader, inputSource)); + } + + public void testStaxSourceEventReader() throws Exception { + XMLInputFactory inputFactory = XMLInputFactory.newInstance(); + XMLEventReader eventReader = inputFactory.createXMLEventReader(new StringReader(REQUEST)); + testSource(new StaxSource(eventReader)); + } + + public void testStaxSourceStreamReader() throws Exception { + XMLInputFactory inputFactory = XMLInputFactory.newInstance(); + XMLStreamReader streamReader = inputFactory.createXMLStreamReader(new StringReader(REQUEST)); + testSource(new StaxSource(streamReader)); + } + + public void testStreamSourceInputStream() throws Exception { + InputStream is = new ByteArrayInputStream(REQUEST.getBytes("UTF-8")); + testSource(new StreamSource(is)); + } + + public void testStreamSourceReader() throws Exception { + Reader reader = new StringReader(REQUEST); + testSource(new StreamSource(reader)); + } + + protected abstract void testSource(Source requestSource) throws Exception; +} diff --git a/core/src/test/java/org/springframework/ws/endpoint/AbstractMessageEndpointTestCase.java b/core/src/test/java/org/springframework/ws/endpoint/AbstractMessageEndpointTestCase.java new file mode 100644 index 00000000..f3b9c619 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/AbstractMessageEndpointTestCase.java @@ -0,0 +1,52 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import javax.xml.transform.Source; + +import org.springframework.ws.mock.MockMessageContext; +import org.springframework.ws.mock.MockWebServiceMessage; +import org.springframework.xml.transform.StringSource; + +public abstract class AbstractMessageEndpointTestCase extends AbstractEndpointTestCase { + + private MessageEndpoint endpoint; + + protected final void setUp() throws Exception { + endpoint = createResponseEndpoint(); + } + + public void testNoResponse() throws Exception { + endpoint = createNoResponseEndpoint(); + StringSource requestSource = new StringSource(REQUEST); + MockMessageContext context = new MockMessageContext(new MockWebServiceMessage(requestSource)); + endpoint.invoke(context); + assertFalse("Response message created", context.hasResponse()); + } + + protected final void testSource(Source requestSource) throws Exception { + MockMessageContext context = new MockMessageContext(new MockWebServiceMessage(requestSource)); + endpoint.invoke(context); + assertTrue("No response message created", context.hasResponse()); + assertXMLEqual(RESPONSE, ((MockWebServiceMessage) context.getResponse()).getPayloadAsString()); + } + + protected abstract MessageEndpoint createNoResponseEndpoint(); + + protected abstract MessageEndpoint createResponseEndpoint(); + +} diff --git a/core/src/test/java/org/springframework/ws/endpoint/AbstractPayloadEndpointTestCase.java b/core/src/test/java/org/springframework/ws/endpoint/AbstractPayloadEndpointTestCase.java new file mode 100644 index 00000000..a7aed7b9 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/AbstractPayloadEndpointTestCase.java @@ -0,0 +1,55 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; + +import org.springframework.xml.transform.StringResult; +import org.springframework.xml.transform.StringSource; + +public abstract class AbstractPayloadEndpointTestCase extends AbstractEndpointTestCase { + + private PayloadEndpoint endpoint; + + private Transformer transformer; + + protected final void setUp() throws Exception { + endpoint = createResponseEndpoint(); + transformer = TransformerFactory.newInstance().newTransformer(); + } + + public void testNoResponse() throws Exception { + endpoint = createNoResponseEndpoint(); + StringSource requestSource = new StringSource(REQUEST); + Source resultSource = endpoint.invoke(requestSource); + assertNull("Response source returned", resultSource); + } + + protected final void testSource(Source requestSource) throws Exception { + Source responseSource = endpoint.invoke(requestSource); + assertNotNull("No response source returned", responseSource); + StringResult result = new StringResult(); + transformer.transform(responseSource, result); + assertXMLEqual(RESPONSE, result.toString()); + } + + protected abstract PayloadEndpoint createNoResponseEndpoint() throws Exception; + + protected abstract PayloadEndpoint createResponseEndpoint() throws Exception; +} diff --git a/core/src/test/java/org/springframework/ws/endpoint/Dom4jPayloadEndpointTest.java b/core/src/test/java/org/springframework/ws/endpoint/Dom4jPayloadEndpointTest.java new file mode 100644 index 00000000..64e347b3 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/Dom4jPayloadEndpointTest.java @@ -0,0 +1,47 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import org.dom4j.Document; +import org.dom4j.Element; + +public class Dom4jPayloadEndpointTest extends AbstractPayloadEndpointTestCase { + + protected PayloadEndpoint createResponseEndpoint() { + return new AbstractDom4jPayloadEndpoint() { + + protected Element invokeInternal(Element requestElement, Document responseDocument) throws Exception { + assertNotNull("No requestElement passed", requestElement); + assertNotNull("No responseDocument passed", responseDocument); + assertEquals("Invalid request element", REQUEST_ELEMENT, requestElement.getName()); + assertEquals("Invalid request element", NAMESPACE_URI, requestElement.getNamespaceURI()); + return responseDocument.addElement(RESPONSE_ELEMENT, NAMESPACE_URI); + } + }; + } + + protected PayloadEndpoint createNoResponseEndpoint() throws Exception { + return new AbstractDom4jPayloadEndpoint() { + + protected Element invokeInternal(Element requestElement, Document responseDocument) throws Exception { + return null; + } + }; + } + + +} diff --git a/core/src/test/java/org/springframework/ws/endpoint/DomPayloadEndpointTest.java b/core/src/test/java/org/springframework/ws/endpoint/DomPayloadEndpointTest.java new file mode 100644 index 00000000..f9303fa1 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/DomPayloadEndpointTest.java @@ -0,0 +1,47 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class DomPayloadEndpointTest extends AbstractPayloadEndpointTestCase { + + protected PayloadEndpoint createNoResponseEndpoint() throws Exception { + return new AbstractDomPayloadEndpoint() { + + protected Element invokeInternal(Element requestElement, Document document) throws Exception { + return null; + } + }; + } + + protected PayloadEndpoint createResponseEndpoint() throws Exception { + return new AbstractDomPayloadEndpoint() { + + protected Element invokeInternal(Element requestElement, Document responseDocument) throws Exception { + assertNotNull("No requestElement passed", requestElement); + assertNotNull("No responseDocument passed", responseDocument); + assertEquals("Invalid request element", REQUEST_ELEMENT, requestElement.getLocalName()); + assertEquals("Invalid request element", NAMESPACE_URI, requestElement.getNamespaceURI()); + return responseDocument.createElementNS(NAMESPACE_URI, RESPONSE_ELEMENT); + } + }; + } + + +} diff --git a/core/src/test/java/org/springframework/ws/endpoint/JDomPayloadEndpointTest.java b/core/src/test/java/org/springframework/ws/endpoint/JDomPayloadEndpointTest.java new file mode 100644 index 00000000..5ff35a00 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/JDomPayloadEndpointTest.java @@ -0,0 +1,44 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import org.jdom.Element; +import org.jdom.Namespace; + +public class JDomPayloadEndpointTest extends AbstractPayloadEndpointTestCase { + + protected PayloadEndpoint createNoResponseEndpoint() throws Exception { + return new AbstractJDomPayloadEndpoint() { + + protected Element invokeInternal(Element requestElement) throws Exception { + return null; + } + }; + } + + protected PayloadEndpoint createResponseEndpoint() throws Exception { + return new AbstractJDomPayloadEndpoint() { + + protected Element invokeInternal(Element requestElement) throws Exception { + assertNotNull("No requestElement passed", requestElement); + assertEquals("Invalid request element", REQUEST_ELEMENT, requestElement.getName()); + assertEquals("Invalid request element", NAMESPACE_URI, requestElement.getNamespaceURI()); + return new Element(RESPONSE_ELEMENT, Namespace.getNamespace("tns", NAMESPACE_URI)); + } + }; + } +} diff --git a/core/src/test/java/org/springframework/ws/endpoint/MarshallingPayloadEndpointTest.java b/core/src/test/java/org/springframework/ws/endpoint/MarshallingPayloadEndpointTest.java new file mode 100644 index 00000000..188f9811 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/MarshallingPayloadEndpointTest.java @@ -0,0 +1,123 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import java.io.StringReader; +import java.io.StringWriter; + +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +import org.custommonkey.xmlunit.XMLTestCase; + +import org.springframework.oxm.Marshaller; +import org.springframework.oxm.Unmarshaller; +import org.springframework.oxm.XmlMappingException; +import org.springframework.ws.mock.MockMessageContext; +import org.springframework.ws.mock.MockWebServiceMessage; + +public class MarshallingPayloadEndpointTest extends XMLTestCase { + + public void testInvoke() throws Exception { + MockWebServiceMessage request = new MockWebServiceMessage(""); + final Transformer transformer = TransformerFactory.newInstance().newTransformer(); + + Unmarshaller unmarshaller = new Unmarshaller() { + public Object unmarshal(Source source) throws XmlMappingException { + try { + StringWriter writer = new StringWriter(); + transformer.transform(source, new StreamResult(writer)); + assertXMLEqual("Invalid source", "", writer.toString()); + return new Long(42); + } + catch (Exception e) { + fail(e.getMessage()); + return null; + } + } + }; + Marshaller marshaller = new Marshaller() { + public void marshal(Object graph, Result result) throws XmlMappingException { + assertEquals("Invalid graph", "result", graph); + try { + transformer.transform(new StreamSource(new StringReader("")), result); + } + catch (TransformerException e) { + fail(e.getMessage()); + } + } + }; + AbstractMarshallingPayloadEndpoint endpoint = new AbstractMarshallingPayloadEndpoint() { + protected Object invokeInternal(Object requestObject) throws Exception { + assertEquals("Invalid request object", new Long(42), requestObject); + return "result"; + } + }; + endpoint.setMarshaller(marshaller); + endpoint.setUnmarshaller(unmarshaller); + endpoint.afterPropertiesSet(); + + MockMessageContext context = new MockMessageContext(request); + endpoint.invoke(context); + MockWebServiceMessage response = (MockWebServiceMessage) context.getResponse(); + assertNotNull("Invalid result", response); + assertXMLEqual("Invalid response", "", response.getPayloadAsString()); + } + + public void testInvokeNullResponse() throws Exception { + MockWebServiceMessage request = new MockWebServiceMessage(""); + final Transformer transformer = TransformerFactory.newInstance().newTransformer(); + + Unmarshaller unmarshaller = new Unmarshaller() { + public Object unmarshal(Source source) throws XmlMappingException { + try { + StringWriter writer = new StringWriter(); + transformer.transform(source, new StreamResult(writer)); + assertXMLEqual("Invalid source", "", writer.toString()); + return new Long(42); + } + catch (Exception e) { + fail(e.getMessage()); + return null; + } + } + }; + Marshaller marshaller = new Marshaller() { + public void marshal(Object graph, Result result) throws XmlMappingException { + fail("marshal not expected"); + } + }; + AbstractMarshallingPayloadEndpoint endpoint = new AbstractMarshallingPayloadEndpoint() { + protected Object invokeInternal(Object requestObject) throws Exception { + assertEquals("Invalid request object", new Long(42), requestObject); + return null; + } + }; + endpoint.setMarshaller(marshaller); + endpoint.setUnmarshaller(unmarshaller); + endpoint.afterPropertiesSet(); + MockMessageContext context = new MockMessageContext(request); + endpoint.invoke(context); + assertFalse("Response created", context.hasResponse()); + } + +} diff --git a/core/src/test/java/org/springframework/ws/endpoint/MessageEndpointAdapterTest.java b/core/src/test/java/org/springframework/ws/endpoint/MessageEndpointAdapterTest.java new file mode 100644 index 00000000..17b3a17b --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/MessageEndpointAdapterTest.java @@ -0,0 +1,51 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import junit.framework.TestCase; +import org.easymock.MockControl; + +import org.springframework.ws.mock.MockMessageContext; + +public class MessageEndpointAdapterTest extends TestCase { + + private MessageEndpointAdapter adapter; + + private MockControl endpointControl; + + private MessageEndpoint endpointMock; + + protected void setUp() throws Exception { + adapter = new MessageEndpointAdapter(); + endpointControl = MockControl.createControl(MessageEndpoint.class); + endpointMock = (MessageEndpoint) endpointControl.getMock(); + } + + public void testSupports() throws Exception { + assertTrue("MessageEndpointAdapter does not support MessageEndpoint", adapter.supports(endpointMock)); + } + + public void testInvoke() throws Exception { + MockMessageContext context = new MockMessageContext(); + + endpointMock.invoke(context); + endpointControl.replay(); + adapter.invoke(context, endpointMock); + endpointControl.verify(); + } + +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/endpoint/PayloadEndpointAdapterTest.java b/core/src/test/java/org/springframework/ws/endpoint/PayloadEndpointAdapterTest.java new file mode 100644 index 00000000..ec707e11 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/PayloadEndpointAdapterTest.java @@ -0,0 +1,83 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import java.io.StringReader; +import java.io.StringWriter; + +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.easymock.MockControl; + +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.mock.MockMessageContext; +import org.springframework.ws.mock.MockWebServiceMessage; + +public class PayloadEndpointAdapterTest extends XMLTestCase { + + private PayloadEndpointAdapter adapter; + + private PayloadEndpoint endpointMock; + + private MockControl endpointControl; + + protected void setUp() throws Exception { + adapter = new PayloadEndpointAdapter(); + endpointControl = MockControl.createControl(PayloadEndpoint.class); + endpointMock = (PayloadEndpoint) endpointControl.getMock(); + } + + public void testSupports() throws Exception { + assertTrue("PayloadEndpointAdapter does not support PayloadEndpoint", adapter.supports(endpointMock)); + } + + public void testInvoke() throws Exception { + MockWebServiceMessage request = new MockWebServiceMessage(""); + final Transformer transformer = TransformerFactory.newInstance().newTransformer(); + PayloadEndpoint endpoint = new PayloadEndpoint() { + public Source invoke(Source request) throws Exception { + StringWriter writer = new StringWriter(); + transformer.transform(request, new StreamResult(writer)); + assertXMLEqual("Invalid request", "", writer.toString()); + return new StreamSource(new StringReader("")); + } + }; + endpoint.invoke(request.getPayloadSource()); + MessageContext messageContext = new MockMessageContext(request); + adapter.invoke(messageContext, endpoint); + MockWebServiceMessage response = (MockWebServiceMessage) messageContext.getResponse(); + assertNotNull("No response created", response); + assertXMLEqual("Invalid payload", "", response.getPayloadAsString()); + } + + public void testInvokeNoResponse() throws Exception { + MessageContext messageContext = new MockMessageContext(); + endpointMock.invoke(messageContext.getRequest().getPayloadSource()); + endpointControl.setMatcher(MockControl.ALWAYS_MATCHER); + endpointControl.setReturnValue(null); + endpointControl.replay(); + adapter.invoke(messageContext, endpointMock); + endpointControl.verify(); + assertFalse("Response created", messageContext.hasResponse()); + } + +} diff --git a/core/src/test/java/org/springframework/ws/endpoint/SaxPayloadEndpointTest.java b/core/src/test/java/org/springframework/ws/endpoint/SaxPayloadEndpointTest.java new file mode 100644 index 00000000..3c8785f4 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/SaxPayloadEndpointTest.java @@ -0,0 +1,71 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import javax.xml.transform.Source; + +import org.xml.sax.Attributes; +import org.xml.sax.ContentHandler; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +import org.springframework.xml.transform.StringSource; + +public class SaxPayloadEndpointTest extends AbstractPayloadEndpointTestCase { + + protected PayloadEndpoint createNoResponseEndpoint() throws Exception { + return new AbstractSaxPayloadEndpoint() { + + protected Source getResponse(ContentHandler contentHandler) { + return null; + } + + protected ContentHandler createContentHandler() { + return new DefaultHandler(); + } + }; + } + + protected PayloadEndpoint createResponseEndpoint() throws Exception { + return new AbstractSaxPayloadEndpoint() { + + protected ContentHandler createContentHandler() { + return new TestContentHandler(); + } + + protected Source getResponse(ContentHandler contentHandler) { + return new StringSource(RESPONSE); + } + }; + } + + private static class TestContentHandler extends DefaultHandler { + + public void endElement(String uri, String localName, String qName) throws SAXException { + assertEquals("Invalid local name", REQUEST_ELEMENT, localName); + assertEquals("Invalid qName", REQUEST_ELEMENT, localName); + assertEquals("Invalid namespace", NAMESPACE_URI, uri); + } + + public void startElement(String uri, String localName, String qName, Attributes attributes) + throws SAXException { + assertEquals("Invalid local name", REQUEST_ELEMENT, localName); + assertEquals("Invalid qName", REQUEST_ELEMENT, localName); + assertEquals("Invalid namespace", NAMESPACE_URI, uri); + } + } +} diff --git a/core/src/test/java/org/springframework/ws/endpoint/StaxEventPayloadEndpointTest.java b/core/src/test/java/org/springframework/ws/endpoint/StaxEventPayloadEndpointTest.java new file mode 100644 index 00000000..8e65a28a --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/StaxEventPayloadEndpointTest.java @@ -0,0 +1,81 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import java.util.Collections; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLEventFactory; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.events.Namespace; +import javax.xml.stream.events.XMLEvent; +import javax.xml.stream.util.XMLEventConsumer; + +/** + * Test case for AbstractStaxEventPayloadEndpoint. + * + * @see AbstractStaxEventPayloadEndpoint + */ +public class StaxEventPayloadEndpointTest extends AbstractMessageEndpointTestCase { + + protected MessageEndpoint createNoResponseEndpoint() { + return new AbstractStaxEventPayloadEndpoint() { + protected void invokeInternal(XMLEventReader eventReader, + XMLEventConsumer eventWriter, + XMLEventFactory eventFactory) throws Exception { + } + }; + } + + protected MessageEndpoint createResponseEndpoint() { + return new AbstractStaxEventPayloadEndpoint() { + + protected void invokeInternal(XMLEventReader eventReader, + XMLEventConsumer eventWriter, + XMLEventFactory eventFactory) throws XMLStreamException { + assertNotNull("eventReader not given", eventReader); + assertNotNull("eventWriter not given", eventWriter); + assertNotNull("eventFactory not given", eventFactory); + assertTrue("eventReader has not next element", eventReader.hasNext()); + XMLEvent event = eventReader.nextEvent(); + assertTrue("Not a start document", event.isStartDocument()); + event = eventReader.nextEvent(); + assertTrue("Not a start element", event.isStartElement()); + assertEquals("Invalid start event local name", REQUEST_ELEMENT, + event.asStartElement().getName().getLocalPart()); + assertEquals("Invalid start event namespace", NAMESPACE_URI, + event.asStartElement().getName().getNamespaceURI()); + assertTrue("eventReader has not next element", eventReader.hasNext()); + event = eventReader.nextEvent(); + assertTrue("Not a end element", event.isEndElement()); + assertEquals("Invalid end event local name", REQUEST_ELEMENT, + event.asEndElement().getName().getLocalPart()); + assertEquals("Invalid end event namespace", NAMESPACE_URI, + event.asEndElement().getName().getNamespaceURI()); + Namespace namespace = eventFactory.createNamespace(NAMESPACE_URI); + QName name = new QName(NAMESPACE_URI, RESPONSE_ELEMENT); + eventWriter + .add(eventFactory.createStartElement(name, null, Collections.singleton(namespace).iterator())); + eventWriter.add(eventFactory.createEndElement(name, Collections.singleton(namespace).iterator())); + eventWriter.add(eventFactory.createEndDocument()); + } + }; + } + + +} diff --git a/core/src/test/java/org/springframework/ws/endpoint/StaxStreamPayloadEndpointTest.java b/core/src/test/java/org/springframework/ws/endpoint/StaxStreamPayloadEndpointTest.java new file mode 100644 index 00000000..0c246af4 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/StaxStreamPayloadEndpointTest.java @@ -0,0 +1,101 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.soap.SOAPFactory; +import org.springframework.ws.mock.MockTransportRequest; +import org.springframework.ws.soap.axiom.AxiomSoapMessage; +import org.springframework.ws.soap.axiom.AxiomSoapMessageContext; +import org.springframework.xml.transform.StringResult; +import org.springframework.xml.transform.StringSource; + +/** + * Test case for AbstractStaxStreamPayloadEndpoint. + * + * @see AbstractStaxStreamPayloadEndpoint + */ +public class StaxStreamPayloadEndpointTest extends AbstractMessageEndpointTestCase { + + protected MessageEndpoint createNoResponseEndpoint() { + return new AbstractStaxStreamPayloadEndpoint() { + protected void invokeInternal(XMLStreamReader streamReader, XMLStreamWriter streamWriter) throws Exception { + } + }; + } + + protected MessageEndpoint createResponseEndpoint() { + return new AbstractStaxStreamPayloadEndpoint() { + protected void invokeInternal(XMLStreamReader streamReader, XMLStreamWriter streamWriter) throws Exception { + assertNotNull("No streamReader passed", streamReader); + assertNotNull("No streamWriter passed", streamReader); + assertEquals("Not a start element", XMLStreamConstants.START_ELEMENT, streamReader.next()); + assertEquals("Invalid start event local name", REQUEST_ELEMENT, streamReader.getLocalName()); + assertEquals("Invalid start event namespace", NAMESPACE_URI, streamReader.getNamespaceURI()); + assertTrue("streamReader has no next element", streamReader.hasNext()); + assertEquals("Not a end element", XMLStreamConstants.END_ELEMENT, streamReader.next()); + assertEquals("Invalid end event local name", REQUEST_ELEMENT, streamReader.getLocalName()); + assertEquals("Invalid end event namespace", NAMESPACE_URI, streamReader.getNamespaceURI()); + streamWriter.writeEmptyElement(NAMESPACE_URI, RESPONSE_ELEMENT); + streamWriter.flush(); + streamWriter.close(); + } + + protected XMLOutputFactory createXmlOutputFactory() { + XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); + outputFactory.setProperty("javax.xml.stream.isRepairingNamespaces", Boolean.TRUE); + return outputFactory; + } + }; + } + + public void testAxiomResponse() throws Exception { + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + SOAPFactory axiomFactory = OMAbstractFactory.getSOAP11Factory(); + AxiomSoapMessage request = new AxiomSoapMessage(axiomFactory); + transformer.transform(new StringSource(REQUEST), request.getPayloadResult()); + AxiomSoapMessageContext context = new AxiomSoapMessageContext(request, new MockTransportRequest()); + + MessageEndpoint endpoint = createResponseEndpoint(); + endpoint.invoke(context); + assertTrue("context has not response", context.hasResponse()); + StringResult stringResult = new StringResult(); + transformer.transform(context.getResponse().getPayloadSource(), stringResult); + assertXMLEqual(RESPONSE, stringResult.toString()); + } + + public void testAxiomNoResponse() throws Exception { + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + SOAPFactory axiomFactory = OMAbstractFactory.getSOAP11Factory(); + AxiomSoapMessage request = new AxiomSoapMessage(axiomFactory); + transformer.transform(new StringSource(REQUEST), request.getPayloadResult()); + AxiomSoapMessageContext context = new AxiomSoapMessageContext(request, new MockTransportRequest()); + + MessageEndpoint endpoint = createNoResponseEndpoint(); + endpoint.invoke(context); + assertFalse("context has response", context.hasResponse()); + } + + +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/endpoint/XomPayloadEndpointTest.java b/core/src/test/java/org/springframework/ws/endpoint/XomPayloadEndpointTest.java new file mode 100644 index 00000000..b0863298 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/XomPayloadEndpointTest.java @@ -0,0 +1,51 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint; + +import nu.xom.Element; + +public class XomPayloadEndpointTest extends AbstractPayloadEndpointTestCase { + + protected PayloadEndpoint createNoResponseEndpoint() throws Exception { + return new AbstractXomPayloadEndpoint() { + + protected Element invokeInternal(Element requestElement) throws Exception { + return null; + } + }; + } + + protected PayloadEndpoint createResponseEndpoint() throws Exception { + return new AbstractXomPayloadEndpoint() { + + protected Element invokeInternal(Element requestElement) throws Exception { + assertNotNull("No requestElement passed", requestElement); + assertEquals("Invalid request element", REQUEST_ELEMENT, requestElement.getLocalName()); + assertEquals("Invalid request element", NAMESPACE_URI, requestElement.getNamespaceURI()); + return new Element(RESPONSE_ELEMENT, NAMESPACE_URI); + } + }; + } + + public void testStaxSourceEventReader() throws Exception { + // Unfortutately, XOM does not support these, hence the override here + } + + public void testStaxSourceStreamReader() throws Exception { + // Unfortutately, XOM does not support these, hence the override here + } +} diff --git a/core/src/test/java/org/springframework/ws/endpoint/interceptor/PayloadLoggingInterceptorTest.java b/core/src/test/java/org/springframework/ws/endpoint/interceptor/PayloadLoggingInterceptorTest.java new file mode 100644 index 00000000..82e5e994 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/interceptor/PayloadLoggingInterceptorTest.java @@ -0,0 +1,99 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.interceptor; + +import junit.framework.TestCase; +import org.apache.log4j.AppenderSkeleton; +import org.apache.log4j.BasicConfigurator; +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.apache.log4j.spi.LoggingEvent; +import org.springframework.ws.mock.MockMessageContext; +import org.springframework.ws.mock.MockWebServiceMessage; + +public class PayloadLoggingInterceptorTest extends TestCase { + + private PayloadLoggingInterceptor interceptor; + + private CountingAppender appender; + + private MockMessageContext messageContext; + + protected void setUp() throws Exception { + interceptor = new PayloadLoggingInterceptor(); + appender = new CountingAppender(); + BasicConfigurator.configure(appender); + Logger.getRootLogger().setLevel(Level.DEBUG); + MockWebServiceMessage request = new MockWebServiceMessage(""); + messageContext = new MockMessageContext(request); + appender.reset(); + } + + public void testHandleRequestDisabled() throws Exception { + interceptor.setLogRequest(false); + int eventCount = appender.getCount(); + interceptor.handleRequest(messageContext, null); + assertEquals("PayloadLoggingInterceptor logged when disabled", appender.getCount(), eventCount); + } + + public void testHandleRequestEnabled() throws Exception { + int eventCount = appender.getCount(); + interceptor.handleRequest(messageContext, null); + assertTrue("PayloadLoggingInterceptor did not log", appender.getCount() > eventCount); + } + + public void testHandleResponseDisabled() throws Exception { + MockWebServiceMessage response = (MockWebServiceMessage) messageContext.getResponse(); + response.setPayload(""); + interceptor.setLogResponse(false); + int eventCount = appender.getCount(); + interceptor.handleResponse(messageContext, null); + assertEquals("PayloadLoggingInterceptor logged when disabled", appender.getCount(), eventCount); + } + + public void testHandleResponseEnabled() throws Exception { + MockWebServiceMessage response = (MockWebServiceMessage) messageContext.getResponse(); + response.setPayload(""); + int eventCount = appender.getCount(); + interceptor.handleResponse(messageContext, null); + assertTrue("PayloadLoggingInterceptor did not log", appender.getCount() > eventCount); + } + + private static class CountingAppender extends AppenderSkeleton { + + private int count; + + public int getCount() { + return count; + } + + public void reset() { + count = 0; + } + + protected void append(LoggingEvent loggingEvent) { + count++; + } + + public boolean requiresLayout() { + return false; + } + + public void close() { + } + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/endpoint/interceptor/PayloadTransformingInterceptorTest.java b/core/src/test/java/org/springframework/ws/endpoint/interceptor/PayloadTransformingInterceptorTest.java new file mode 100644 index 00000000..836db781 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/interceptor/PayloadTransformingInterceptorTest.java @@ -0,0 +1,118 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.interceptor; + +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.sax.SAXSource; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.custommonkey.xmlunit.XMLUnit; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.ws.mock.MockMessageContext; +import org.springframework.ws.mock.MockWebServiceMessage; +import org.springframework.xml.sax.SaxUtils; +import org.springframework.xml.transform.StringResult; + +public class PayloadTransformingInterceptorTest extends XMLTestCase { + + private PayloadTransformingInterceptor interceptor; + + private Transformer transformer; + + private Resource input; + + private Resource output; + + private Resource xslt; + + protected void setUp() throws Exception { + interceptor = new PayloadTransformingInterceptor(); + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + transformer = transformerFactory.newTransformer(); + input = new ClassPathResource("transformInput.xml", getClass()); + output = new ClassPathResource("transformOutput.xml", getClass()); + xslt = new ClassPathResource("transformation.xslt", getClass()); + XMLUnit.setIgnoreWhitespace(true); + } + + public void testHandleRequest() throws Exception { + interceptor.setRequestXslt(xslt); + interceptor.afterPropertiesSet(); + MockWebServiceMessage request = new MockWebServiceMessage(input); + MockMessageContext context = new MockMessageContext(request); + + boolean result = interceptor.handleRequest(context, null); + assertTrue("Invalid interceptor result", result); + StringResult stringResult = new StringResult(); + transformer.transform(new SAXSource(SaxUtils.createInputSource(output)), stringResult); + assertXMLEqual(stringResult.toString(), request.getPayloadAsString()); + } + + public void testHandleRequestNoXslt() throws Exception { + interceptor.setResponseXslt(xslt); + interceptor.afterPropertiesSet(); + MockWebServiceMessage request = new MockWebServiceMessage(input); + MockMessageContext context = new MockMessageContext(request); + + boolean result = interceptor.handleRequest(context, null); + assertTrue("Invalid interceptor result", result); + StringResult stringResult = new StringResult(); + transformer.transform(new SAXSource(SaxUtils.createInputSource(input)), stringResult); + assertXMLEqual(stringResult.toString(), request.getPayloadAsString()); + } + + public void testHandleResponse() throws Exception { + interceptor.setResponseXslt(xslt); + interceptor.afterPropertiesSet(); + MockWebServiceMessage request = new MockWebServiceMessage(input); + MockMessageContext context = new MockMessageContext(request); + MockWebServiceMessage response = (MockWebServiceMessage) context.getResponse(); + response.setPayload(input); + + boolean result = interceptor.handleResponse(context, null); + assertTrue("Invalid interceptor result", result); + StringResult stringResult = new StringResult(); + transformer.transform(new SAXSource(SaxUtils.createInputSource(output)), stringResult); + assertXMLEqual(stringResult.toString(), response.getPayloadAsString()); + } + + public void testHandleResponseNoXslt() throws Exception { + interceptor.setRequestXslt(xslt); + interceptor.afterPropertiesSet(); + MockWebServiceMessage request = new MockWebServiceMessage(input); + MockMessageContext context = new MockMessageContext(request); + MockWebServiceMessage response = (MockWebServiceMessage) context.getResponse(); + response.setPayload(input); + + boolean result = interceptor.handleResponse(context, null); + assertTrue("Invalid interceptor result", result); + StringResult stringResult = new StringResult(); + transformer.transform(new SAXSource(SaxUtils.createInputSource(input)), stringResult); + assertXMLEqual(stringResult.toString(), response.getPayloadAsString()); + } + + public void testNoStylesheetsSet() throws Exception { + try { + interceptor.afterPropertiesSet(); + fail("Should have thrown an Exception"); + } + catch (IllegalArgumentException ex) { + } + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/endpoint/interceptor/PayloadValidatingInterceptorTest.java b/core/src/test/java/org/springframework/ws/endpoint/interceptor/PayloadValidatingInterceptorTest.java new file mode 100644 index 00000000..e9cf703f --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/interceptor/PayloadValidatingInterceptorTest.java @@ -0,0 +1,237 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.interceptor; + +import java.io.InputStream; +import java.util.Locale; +import javax.xml.XMLConstants; +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPConstants; +import javax.xml.soap.SOAPMessage; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.stream.StreamSource; + +import junit.framework.TestCase; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.ws.mock.MockMessageContext; +import org.springframework.ws.mock.MockTransportRequest; +import org.springframework.ws.mock.MockWebServiceMessage; +import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.soap.SoapVersion; +import org.springframework.ws.soap.saaj.SaajSoapMessageContext; +import org.springframework.ws.soap.saaj.support.SaajUtils; +import org.springframework.ws.soap.soap11.Soap11Fault; +import org.springframework.ws.soap.soap12.Soap12Fault; + +public class PayloadValidatingInterceptorTest extends TestCase { + + private PayloadValidatingInterceptor interceptor; + + private MockWebServiceMessage request; + + private MockMessageContext messageContext; + + protected void setUp() throws Exception { + interceptor = new PayloadValidatingInterceptor(); + interceptor.setSchema(new ClassPathResource("schema.xsd", getClass())); + interceptor.setValidateRequest(true); + interceptor.setValidateResponse(true); + interceptor.afterPropertiesSet(); + request = new MockWebServiceMessage(); + messageContext = new MockMessageContext(request); + } + + public void testHandleInvalidRequestSoap11() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL); + SOAPMessage invalidMessage = messageFactory.createMessage(); + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + InputStream inputStream = getClass().getResourceAsStream("invalidMessage.xml"); + transformer.transform(new StreamSource(inputStream), new DOMResult(invalidMessage.getSOAPBody())); + SaajSoapMessageContext context = + new SaajSoapMessageContext(invalidMessage, new MockTransportRequest(), messageFactory); + + boolean result = interceptor.handleRequest(context, null); + assertFalse("Invalid response from interceptor", result); + assertTrue("Context has no response", context.hasResponse()); + SoapMessage response = context.getSoapResponse(); + assertTrue("Resonse has no fault", response.getSoapBody().hasFault()); + Soap11Fault fault = (Soap11Fault) response.getSoapBody().getFault(); + assertEquals("Invalid fault code on fault", + SoapVersion.SOAP_11.getClientOrSenderFaultName(), + fault.getFaultCode()); + assertEquals("Invalid fault string on fault", + PayloadValidatingInterceptor.DEFAULT_FAULTSTRING_OR_REASON, + fault.getFaultString()); + assertNotNull("No Detail on fault", fault.getFaultDetail()); + } + + public void testHandleInvalidRequestSoap12() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL); + SOAPMessage invalidMessage = messageFactory.createMessage(); + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + InputStream inputStream = getClass().getResourceAsStream("invalidMessage.xml"); + transformer.transform(new StreamSource(inputStream), new DOMResult(invalidMessage.getSOAPBody())); + SaajSoapMessageContext context = + new SaajSoapMessageContext(invalidMessage, new MockTransportRequest(), messageFactory); + + boolean result = interceptor.handleRequest(context, null); + assertFalse("Invalid response from interceptor", result); + assertTrue("Context has no response", context.hasResponse()); + SoapMessage response = context.getSoapResponse(); + assertTrue("Resonse has no fault", response.getSoapBody().hasFault()); + Soap12Fault fault = (Soap12Fault) response.getSoapBody().getFault(); + assertEquals("Invalid fault code on fault", + SoapVersion.SOAP_12.getClientOrSenderFaultName(), + fault.getFaultCode()); + assertEquals("Invalid fault string on fault", + PayloadValidatingInterceptor.DEFAULT_FAULTSTRING_OR_REASON, + fault.getFaultReasonText(Locale.ENGLISH)); + assertNotNull("No Detail on fault", fault.getFaultDetail()); + } + + public void testHandleInvalidRequestOverridenProperties() throws Exception { + String faultString = "fout"; + Locale locale = new Locale("nl"); + interceptor.setFaultStringOrReason(faultString); + interceptor.setFaultStringOrReasonLocale(locale); + interceptor.setAddValidationErrorDetail(false); + + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL); + SOAPMessage invalidMessage = messageFactory.createMessage(); + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + InputStream inputStream = getClass().getResourceAsStream("invalidMessage.xml"); + transformer.transform(new StreamSource(inputStream), new DOMResult(invalidMessage.getSOAPBody())); + SaajSoapMessageContext context = + new SaajSoapMessageContext(invalidMessage, new MockTransportRequest(), messageFactory); + + boolean result = interceptor.handleRequest(context, null); + assertFalse("Invalid response from interceptor", result); + assertTrue("Context has no response", context.hasResponse()); + SoapMessage response = context.getSoapResponse(); + assertTrue("Resonse has no fault", response.getSoapBody().hasFault()); + Soap11Fault fault = (Soap11Fault) response.getSoapBody().getFault(); + assertEquals("Invalid fault code on fault", + SoapVersion.SOAP_11.getClientOrSenderFaultName(), + fault.getFaultCode()); + assertEquals("Invalid fault string on fault", faultString, fault.getFaultString()); + assertEquals("Invalid fault string locale on fault", locale, fault.getFaultStringLocale()); + assertNull("Detail on fault", fault.getFaultDetail()); + } + + public void testHandlerInvalidRequest() throws Exception { + request.setPayload(new ClassPathResource("invalidMessage.xml", getClass())); + boolean result = interceptor.handleRequest(messageContext, null); + assertFalse("Invalid response from interceptor", result); + } + + public void testHandleValidRequest() throws Exception { + request.setPayload(new ClassPathResource("validMessage.xml", getClass())); + boolean result = interceptor.handleRequest(messageContext, null); + assertTrue("Invalid response from interceptor", result); + assertFalse("Response set", messageContext.hasResponse()); + } + + public void testHandleInvalidResponse() throws Exception { + MockWebServiceMessage response = (MockWebServiceMessage) messageContext.getResponse(); + response.setPayload(new ClassPathResource("invalidMessage.xml", getClass())); + boolean result = interceptor.handleResponse(messageContext, null); + assertFalse("Invalid response from interceptor", result); + } + + public void testHandleValidResponse() throws Exception { + MockWebServiceMessage response = (MockWebServiceMessage) messageContext.getResponse(); + response.setPayload(new ClassPathResource("validMessage.xml", getClass())); + boolean result = interceptor.handleResponse(messageContext, null); + assertTrue("Invalid response from interceptor", result); + } + + public void testNamespacesInType() throws Exception { + // Make sure we use Xerces for this testcase: the JAXP implementation used internally by JDK 1.5 has a bug + // See http://opensource.atlassian.com/projects/spring/browse/SWS-35 + System.setProperty("javax.xml.validation.SchemaFactory:" + XMLConstants.W3C_XML_SCHEMA_NS_URI, + "org.apache.xerces.jaxp.validation.XMLSchemaFactory"); + try { + interceptor.setSchema(new ClassPathResource("schema2.xsd", PayloadValidatingInterceptorTest.class)); + interceptor.afterPropertiesSet(); + MessageFactory messageFactory = MessageFactory.newInstance(); + SOAPMessage saajMessage = + SaajUtils.loadMessage(new ClassPathResource("validSoapMessage.xml", getClass()), messageFactory); + SaajSoapMessageContext soapContext = + new SaajSoapMessageContext(saajMessage, new MockTransportRequest(), messageFactory); + boolean result = interceptor.handleRequest(soapContext, null); + assertTrue("Invalid response from interceptor", result); + assertFalse("Response set", soapContext.hasResponse()); + } + finally { + // Reset the property + System.setProperty("javax.xml.validation.SchemaFactory:" + XMLConstants.W3C_XML_SCHEMA_NS_URI, ""); + } + } + + public void testNonExistingSchema() throws Exception { + try { + interceptor.setSchema(new ClassPathResource("invalid")); + interceptor.afterPropertiesSet(); + fail("IllegalArgumentException expected"); + } + catch (IllegalArgumentException ex) { + // expected + } + } + + public void testHandlerInvalidRequestMultipleSchemas() throws Exception { + interceptor.setSchemas(new Resource[]{new ClassPathResource("productSchema.xsd", getClass()), + new ClassPathResource("sizeSchema.xsd", getClass())}); + interceptor.afterPropertiesSet(); + request.setPayload(new ClassPathResource("invalidMessage.xml", getClass())); + boolean result = interceptor.handleRequest(messageContext, null); + assertFalse("Invalid response from interceptor", result); + } + + public void testHandleValidRequestMultipleSchemas() throws Exception { + interceptor.setSchemas(new Resource[]{new ClassPathResource("productSchema.xsd", getClass()), + new ClassPathResource("sizeSchema.xsd", getClass())}); + interceptor.afterPropertiesSet(); + request.setPayload(new ClassPathResource("validMessage.xml", getClass())); + boolean result = interceptor.handleRequest(messageContext, null); + assertTrue("Invalid response from interceptor", result); + assertFalse("Response set", messageContext.hasResponse()); + } + + public void testHandleInvalidResponseMultipleSchemas() throws Exception { + interceptor.setSchemas(new Resource[]{new ClassPathResource("productSchema.xsd", getClass()), + new ClassPathResource("sizeSchema.xsd", getClass())}); + interceptor.afterPropertiesSet(); + MockWebServiceMessage response = (MockWebServiceMessage) messageContext.getResponse(); + response.setPayload(new ClassPathResource("invalidMessage.xml", getClass())); + boolean result = interceptor.handleResponse(messageContext, null); + assertFalse("Invalid response from interceptor", result); + } + + public void testHandleValidResponseMultipleSchemas() throws Exception { + interceptor.setSchemas(new Resource[]{new ClassPathResource("productSchema.xsd", getClass()), + new ClassPathResource("sizeSchema.xsd", getClass())}); + interceptor.afterPropertiesSet(); + MockWebServiceMessage response = (MockWebServiceMessage) messageContext.getResponse(); + response.setPayload(new ClassPathResource("validMessage.xml", getClass())); + boolean result = interceptor.handleResponse(messageContext, null); + assertTrue("Invalid response from interceptor", result); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/endpoint/mapping/EndpointMappingTest.java b/core/src/test/java/org/springframework/ws/endpoint/mapping/EndpointMappingTest.java new file mode 100644 index 00000000..dd0c29ca --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/mapping/EndpointMappingTest.java @@ -0,0 +1,115 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.mapping; + +import junit.framework.TestCase; +import org.springframework.context.support.StaticApplicationContext; +import org.springframework.ws.EndpointInterceptor; +import org.springframework.ws.EndpointInvocationChain; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.endpoint.interceptor.EndpointInterceptorAdapter; +import org.springframework.ws.mock.MockMessageContext; + +public class EndpointMappingTest extends TestCase { + + public void testDefaultEndpoint() throws Exception { + final MockMessageContext context = new MockMessageContext(); + Object defaultEndpoint = new Object(); + AbstractEndpointMapping mapping = new AbstractEndpointMapping() { + protected Object getEndpointInternal(MessageContext givenRequest) throws Exception { + assertEquals("Invalid request passed", context, givenRequest); + return null; + } + }; + mapping.setDefaultEndpoint(defaultEndpoint); + + EndpointInvocationChain result = mapping.getEndpoint(context); + assertNotNull("No EndpointInvocatioChain returned", result); + assertEquals("Default Endpoint not returned", defaultEndpoint, result.getEndpoint()); + } + + public void testEndpoint() throws Exception { + final MockMessageContext context = new MockMessageContext(); + final Object endpoint = new Object(); + AbstractEndpointMapping mapping = new AbstractEndpointMapping() { + protected Object getEndpointInternal(MessageContext givenRequest) throws Exception { + assertEquals("Invalid request passed", context, givenRequest); + return endpoint; + } + }; + + EndpointInvocationChain result = mapping.getEndpoint(context); + assertNotNull("No EndpointInvocatioChain returned", result); + assertEquals("Unexpected Endpoint returned", endpoint, result.getEndpoint()); + } + + public void testEndpointInterceptors() throws Exception { + final MockMessageContext context = new MockMessageContext(); + final Object endpoint = new Object(); + EndpointInterceptor interceptor = new EndpointInterceptorAdapter(); + AbstractEndpointMapping mapping = new AbstractEndpointMapping() { + protected Object getEndpointInternal(MessageContext givenRequest) throws Exception { + assertEquals("Invalid request passed", context, givenRequest); + return endpoint; + } + }; + mapping.setInterceptors(new EndpointInterceptor[]{interceptor}); + EndpointInvocationChain result = mapping.getEndpoint(context); + assertEquals("Unexpected amount of EndpointInterceptors returned", 1, result.getInterceptors().length); + assertEquals("Unexpected EndpointInterceptor returned", interceptor, result.getInterceptors()[0]); + } + + public void testEndpointBeanName() throws Exception { + final MockMessageContext context = new MockMessageContext(); + StaticApplicationContext applicationContext = new StaticApplicationContext(); + applicationContext.registerSingleton("endpoint", Object.class); + + AbstractEndpointMapping mapping = new AbstractEndpointMapping() { + + protected Object getEndpointInternal(MessageContext message) throws Exception { + assertEquals("Invalid request", context, message); + return "endpoint"; + } + }; + mapping.setApplicationContext(applicationContext); + + EndpointInvocationChain result = mapping.getEndpoint(context); + assertNotNull("No endpoint returned", result); + } + + public void testEndpointInvalidBeanName() throws Exception { + final MockMessageContext context = new MockMessageContext(); + + StaticApplicationContext applicationContext = new StaticApplicationContext(); + applicationContext.registerSingleton("endpoint", Object.class); + + AbstractEndpointMapping mapping = new AbstractEndpointMapping() { + + protected Object getEndpointInternal(MessageContext message) throws Exception { + assertEquals("Invalid request", context, message); + return "noSuchBean"; + } + }; + mapping.setApplicationContext(applicationContext); + + EndpointInvocationChain result = mapping.getEndpoint(context); + + assertNull("No endpoint returned", result); + } + + +} diff --git a/core/src/test/java/org/springframework/ws/endpoint/mapping/MapBasedSoapEndpointMappingTest.java b/core/src/test/java/org/springframework/ws/endpoint/mapping/MapBasedSoapEndpointMappingTest.java new file mode 100644 index 00000000..5239c198 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/mapping/MapBasedSoapEndpointMappingTest.java @@ -0,0 +1,120 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.mapping; + +import java.util.Arrays; +import java.util.Map; +import java.util.TreeMap; + +import junit.framework.TestCase; +import org.springframework.context.support.StaticApplicationContext; +import org.springframework.ws.context.MessageContext; + +/** + * Test case for AbstractMapBasedEndpointMapping. + */ +public class MapBasedSoapEndpointMappingTest extends TestCase { + + public void testBeanNames() throws Exception { + StaticApplicationContext context = new StaticApplicationContext(); + context.registerSingleton("endpointMapping", MyMapBasedEndpointMapping.class); + context.registerSingleton("endpoint", Object.class); + context.registerAlias("endpoint", "alias"); + MyMapBasedEndpointMapping mapping = new MyMapBasedEndpointMapping(); + mapping.setValidKeys(new String[]{"endpoint", "alias"}); + + mapping.setRegisterBeanNames(true); + mapping.setApplicationContext(context); + + // try bean + mapping.setKey("endpoint"); + assertNotNull("No endpoint returned", mapping.getEndpointInternal(null)); + + // try alias + mapping.setKey("alias"); + assertNotNull("No endpoint returned", mapping.getEndpointInternal(null)); + + // try non-mapped values + mapping.setKey("endpointMapping"); + assertNull("Endpoint returned", mapping.getEndpointInternal(null)); + + } + + public void testDisabledBeanNames() throws Exception { + StaticApplicationContext context = new StaticApplicationContext(); + context.registerSingleton("endpoint", Object.class); + + MyMapBasedEndpointMapping mapping = new MyMapBasedEndpointMapping(); + + mapping.setRegisterBeanNames(true); + mapping.setApplicationContext(context); + + mapping.setKey("endpoint"); + assertNull("Endpoint returned", mapping.getEndpointInternal(null)); + } + + public void testEndpointMap() throws Exception { + Map endpointMap = new TreeMap(); + Object endpoint1 = new Object(); + Object endpoint2 = new Object(); + endpointMap.put("endpoint1", endpoint1); + endpointMap.put("endpoint2", endpoint2); + + MyMapBasedEndpointMapping mapping = new MyMapBasedEndpointMapping(); + mapping.setValidKeys(new String[]{"endpoint1", "endpoint2"}); + + mapping.setEndpointMap(endpointMap); + mapping.initApplicationContext(); + + // try endpoint1 + mapping.setKey("endpoint1"); + assertNotNull("No endpoint returned", mapping.getEndpointInternal(null)); + + // try endpoint2 + mapping.setKey("endpoint2"); + assertNotNull("No endpoint returned", mapping.getEndpointInternal(null)); + + // try non-mapped values + mapping.setKey("endpoint3"); + assertNull("Endpoint returned", mapping.getEndpointInternal(null)); + } + + private static class MyMapBasedEndpointMapping extends AbstractMapBasedEndpointMapping { + + private String key; + + private String[] validKeys = new String[0]; + + public void setKey(String key) { + this.key = key; + } + + public void setValidKeys(String[] validKeys) { + this.validKeys = validKeys; + Arrays.sort(this.validKeys); + } + + protected boolean validateLookupKey(String key) { + return Arrays.binarySearch(validKeys, key) >= 0; + } + + protected String getLookupKeyForMessage(MessageContext messageContext) throws Exception { + return key; + } + } + +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/endpoint/mapping/PayloadRootQNameEndpointMappingTest.java b/core/src/test/java/org/springframework/ws/endpoint/mapping/PayloadRootQNameEndpointMappingTest.java new file mode 100644 index 00000000..875c59e6 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/endpoint/mapping/PayloadRootQNameEndpointMappingTest.java @@ -0,0 +1,48 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.endpoint.mapping; + +import javax.xml.namespace.QName; + +import junit.framework.TestCase; +import org.springframework.ws.mock.MockMessageContext; + +public class PayloadRootQNameEndpointMappingTest extends TestCase { + + private PayloadRootQNameEndpointMapping mapping; + + protected void setUp() throws Exception { + mapping = new PayloadRootQNameEndpointMapping(); + mapping.afterPropertiesSet(); + } + + public void testResolveQNames() throws Exception { + MockMessageContext context = new MockMessageContext(""); + + QName qName = mapping.resolveQName(context); + assertNotNull("mapping returns null", qName); + assertEquals("mapping returns invalid qualified name", new QName("root"), qName); + } + + public void testGetQNameNameNamespace() throws Exception { + MockMessageContext context = new MockMessageContext(""); + + QName qName = mapping.resolveQName(context); + assertNotNull("mapping returns null", qName); + assertEquals("mapping returns invalid method name", new QName("namespace", "localname", "prefix"), qName); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/mock/MockMessageContext.java b/core/src/test/java/org/springframework/ws/mock/MockMessageContext.java new file mode 100644 index 00000000..208e00b7 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/mock/MockMessageContext.java @@ -0,0 +1,59 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.mock; + +import java.io.IOException; + +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.context.AbstractMessageContext; +import org.springframework.ws.transport.TransportContext; +import org.springframework.ws.transport.TransportResponse; + +/** + * Mock implementation of the MessageContext interface. + * + * @author Arjen Poutsma + */ +public class MockMessageContext extends AbstractMessageContext { + + private TransportResponse transportResponse; + + public MockMessageContext() { + super(new MockWebServiceMessage(), new MockTransportRequest()); + } + + public MockMessageContext(MockWebServiceMessage request) { + super(request, new MockTransportRequest()); + } + + public MockMessageContext(MockWebServiceMessage request, TransportContext transportContext) { + super(request, transportContext.getTransportRequest()); + transportResponse = transportContext.getTransportResponse(); + } + + public MockMessageContext(String content) { + super(new MockWebServiceMessage(content), new MockTransportRequest()); + } + + protected WebServiceMessage createResponseMessage() { + return new MockWebServiceMessage(); + } + + public void sendResponse(TransportResponse transportResponse) throws IOException { + getResponse().writeTo(this.transportResponse.getOutputStream()); + } +} diff --git a/core/src/test/java/org/springframework/ws/mock/MockTransportContext.java b/core/src/test/java/org/springframework/ws/mock/MockTransportContext.java new file mode 100644 index 00000000..d4aca745 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/mock/MockTransportContext.java @@ -0,0 +1,55 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.mock; + +import org.springframework.ws.transport.TransportContext; +import org.springframework.ws.transport.TransportRequest; +import org.springframework.ws.transport.TransportResponse; + +/** + * Mock implementation of the TransportContext interface. + * + * @author Arjen Poutsma + */ +public class MockTransportContext implements TransportContext { + + private MockTransportRequest request; + + private MockTransportResponse response; + + public MockTransportContext() { + request = new MockTransportRequest(); + response = new MockTransportResponse(); + } + + public MockTransportContext(MockTransportRequest request) { + this.request = request; + } + + public MockTransportContext(MockTransportRequest request, MockTransportResponse response) { + this.request = request; + this.response = response; + } + + public TransportRequest getTransportRequest() { + return request; + } + + public TransportResponse getTransportResponse() { + return response; + } +} diff --git a/core/src/test/java/org/springframework/ws/mock/MockTransportRequest.java b/core/src/test/java/org/springframework/ws/mock/MockTransportRequest.java new file mode 100644 index 00000000..85d897f5 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/mock/MockTransportRequest.java @@ -0,0 +1,83 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.mock; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Collections; +import java.util.Iterator; +import java.util.Properties; + +import org.springframework.util.Assert; +import org.springframework.ws.transport.TransportRequest; + +/** + * Mock implementation of the TransportRequest interface. + * + * @author Arjen Poutsma + */ +public class MockTransportRequest implements TransportRequest { + + private byte[] contents; + + private Properties headers; + + private String url; + + public MockTransportRequest() { + headers = new Properties(); + contents = new byte[0]; + } + + public MockTransportRequest(Properties headers, byte[] contents) { + Assert.notNull(headers, "headers must not be null"); + Assert.notNull(contents, "contents must not be null"); + this.headers = headers; + this.contents = contents; + } + + public MockTransportRequest(byte[] contents) { + Assert.notNull(contents, "contents must not be null"); + this.contents = contents; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getUrl() { + return url; + } + + public InputStream getInputStream() throws IOException { + return new ByteArrayInputStream(contents); + } + + public Iterator getHeaderNames() { + return headers.keySet().iterator(); + } + + public Iterator getHeaders(String name) { + String value = headers.getProperty(name); + return value != null ? Collections.singletonList(value).iterator() : Collections.EMPTY_LIST.iterator(); + } + + public void addHeader(String name, String value) { + headers.setProperty(name, value); + } +} diff --git a/core/src/test/java/org/springframework/ws/mock/MockTransportResponse.java b/core/src/test/java/org/springframework/ws/mock/MockTransportResponse.java new file mode 100644 index 00000000..e6a4771d --- /dev/null +++ b/core/src/test/java/org/springframework/ws/mock/MockTransportResponse.java @@ -0,0 +1,62 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.mock; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.UnsupportedEncodingException; +import java.util.Properties; + +import org.springframework.ws.transport.TransportResponse; + +/** + * Mock implementation of the TransportResponse interface. + * + * @author Arjen Poutsma + */ +public class MockTransportResponse implements TransportResponse { + + private Properties headers = new Properties(); + + private ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + + public void addHeader(String name, String value) { + String currentValue = headers.getProperty(name); + if (currentValue != null) { + value = currentValue + "," + value; + } + headers.setProperty(name, value); + } + + public Properties getHeaders() { + return headers; + } + + public String getContents() { + try { + return new String(outputStream.toByteArray(), "UTF-8"); + } + catch (UnsupportedEncodingException e) { + return ""; + } + } + + public OutputStream getOutputStream() throws IOException { + return outputStream; + } +} diff --git a/core/src/test/java/org/springframework/ws/mock/MockWebServiceMessage.java b/core/src/test/java/org/springframework/ws/mock/MockWebServiceMessage.java new file mode 100644 index 00000000..8210aec7 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/mock/MockWebServiceMessage.java @@ -0,0 +1,143 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.mock; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.io.Reader; +import java.io.Writer; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.sax.SAXSource; +import javax.xml.transform.stream.StreamResult; + +import org.springframework.core.io.InputStreamSource; +import org.springframework.core.io.Resource; +import org.springframework.util.FileCopyUtils; +import org.springframework.ws.WebServiceMessage; +import org.springframework.xml.sax.SaxUtils; +import org.springframework.xml.transform.StringSource; + +/** + * Mock implementation of the WebServiceMessage interface. + * + * @author Arjen Poutsma + */ +public class MockWebServiceMessage implements WebServiceMessage { + + private final StringBuffer content; + + public MockWebServiceMessage() { + content = new StringBuffer(); + } + + public MockWebServiceMessage(Source source) throws TransformerException { + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + Transformer transformer = transformerFactory.newTransformer(); + content = new StringBuffer(); + transformer.transform(source, getPayloadResult()); + } + + public MockWebServiceMessage(Resource resource) throws IOException, TransformerException { + this(new SAXSource(SaxUtils.createInputSource(resource))); + } + + public MockWebServiceMessage(StringBuffer content) { + this.content = content; + } + + public MockWebServiceMessage(String content) { + this.content = new StringBuffer(content); + } + + public String getPayloadAsString() { + return content.toString(); + } + + public void setPayload(InputStreamSource inputStreamSource) throws IOException { + InputStream is = null; + try { + is = inputStreamSource.getInputStream(); + Reader reader = new InputStreamReader(is, "UTF-8"); + content.replace(0, content.length(), FileCopyUtils.copyToString(reader)); + } + finally { + if (is != null) { + is.close(); + } + } + } + + public void setPayload(String content) { + this.content.replace(0, this.content.length(), content); + } + + public Result getPayloadResult() { + content.setLength(0); + return new StreamResult(new StringBufferWriter()); + } + + public Source getPayloadSource() { + return new StringSource(content.toString()); + } + + public void writeTo(OutputStream outputStream) throws IOException { + PrintWriter writer = new PrintWriter(outputStream); + writer.write(content.toString()); + } + + private class StringBufferWriter extends Writer { + + private StringBufferWriter() { + super(content); + } + + public void write(String str) { + content.append(str); + } + + public void write(int c) { + content.append((char) c); + } + + public void write(String str, int off, int len) { + content.append(str.substring(off, off + len)); + } + + public void close() throws IOException { + } + + public void flush() { + } + + public void write(char cbuf[], int off, int len) { + if (off < 0 || off > cbuf.length || len < 0 || off + len > cbuf.length || off + len < 0) { + throw new IndexOutOfBoundsException(); + } + else if (len == 0) { + return; + } + content.append(cbuf, off, len); + } + } +} diff --git a/core/src/test/java/org/springframework/ws/pox/dom/DomPoxMessageContextFactoryTest.java b/core/src/test/java/org/springframework/ws/pox/dom/DomPoxMessageContextFactoryTest.java new file mode 100644 index 00000000..b308d52b --- /dev/null +++ b/core/src/test/java/org/springframework/ws/pox/dom/DomPoxMessageContextFactoryTest.java @@ -0,0 +1,39 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.pox.dom; + +import junit.framework.TestCase; +import org.springframework.ws.mock.MockTransportContext; +import org.springframework.ws.mock.MockTransportRequest; + +public class DomPoxMessageContextFactoryTest extends TestCase { + + private DomPoxMessageContextFactory contextFactory; + + protected void setUp() throws Exception { + contextFactory = new DomPoxMessageContextFactory(); + contextFactory.afterPropertiesSet(); + } + + public void testCreateContext() throws Exception { + String content = ""; + MockTransportRequest transportRequest = new MockTransportRequest(content.getBytes("UTF-8")); + MockTransportContext transportContext = new MockTransportContext(transportRequest); + DomPoxMessageContext context = (DomPoxMessageContext) contextFactory.createContext(transportContext); + assertNotNull("No context returned", context); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/pox/dom/DomPoxMessageContextTest.java b/core/src/test/java/org/springframework/ws/pox/dom/DomPoxMessageContextTest.java new file mode 100644 index 00000000..35599158 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/pox/dom/DomPoxMessageContextTest.java @@ -0,0 +1,74 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.pox.dom; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.springframework.ws.WebServiceMessage; +import org.springframework.ws.mock.MockTransportRequest; +import org.springframework.ws.mock.MockTransportResponse; +import org.springframework.xml.transform.StringResult; +import org.springframework.xml.transform.StringSource; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class DomPoxMessageContextTest extends XMLTestCase { + + private DomPoxMessageContext context; + + private Transformer transformer; + + protected void setUp() throws Exception { + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + documentBuilderFactory.setNamespaceAware(true); + DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); + Document document = documentBuilder.newDocument(); + Element element = document.createElementNS("http://springframework.org/spring-ws", "element"); + document.appendChild(element); + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + transformer = transformerFactory.newTransformer(); + MockTransportRequest transportRequest = new MockTransportRequest(); + context = new DomPoxMessageContext(document, transportRequest, documentBuilder, transformer); + } + + public void testGetRequest() throws Exception { + WebServiceMessage message = context.getRequest(); + assertNotNull("No request returned", message); + StringResult result = new StringResult(); + transformer.transform(message.getPayloadSource(), result); + assertXMLEqual("", result.toString()); + } + + public void testGetResponse() throws Exception { + WebServiceMessage message = context.getResponse(); + assertNotNull("No request returned", message); + } + + public void testSendResponse() throws Exception { + WebServiceMessage message = context.getResponse(); + String content = ""; + StringSource source = new StringSource(content); + transformer.transform(source, message.getPayloadResult()); + MockTransportResponse transportResponse = new MockTransportResponse(); + context.sendResponse(transportResponse); + assertXMLEqual(transportResponse.getContents(), content); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/pox/dom/DomPoxMessageTest.java b/core/src/test/java/org/springframework/ws/pox/dom/DomPoxMessageTest.java new file mode 100644 index 00000000..94038d4c --- /dev/null +++ b/core/src/test/java/org/springframework/ws/pox/dom/DomPoxMessageTest.java @@ -0,0 +1,64 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.pox.dom; + +import java.io.ByteArrayOutputStream; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.springframework.xml.transform.StringResult; +import org.springframework.xml.transform.StringSource; +import org.w3c.dom.Document; + +public class DomPoxMessageTest extends XMLTestCase { + + public static final String NAMESPACE = "http://www.springframework.org/spring-ws"; + + private DomPoxMessage message; + + private Transformer transformer; + + protected void setUp() throws Exception { + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); + Document document = documentBuilder.newDocument(); + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + transformer = transformerFactory.newTransformer(); + message = new DomPoxMessage(document, transformer); + } + + public void testGetPayload() throws Exception { + String content = "" + ""; + StringSource source = new StringSource(content); + transformer.transform(source, message.getPayloadResult()); + StringResult stringResult = new StringResult(); + transformer.transform(message.getPayloadSource(), stringResult); + assertXMLEqual(content, stringResult.toString()); + } + + public void testWriteTo() throws Exception { + String content = "" + ""; + StringSource source = new StringSource(content); + transformer.transform(source, message.getPayloadResult()); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + message.writeTo(os); + assertXMLEqual(content, os.toString("UTF-8")); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/soap/AbstractSoapBodyTestCase.java b/core/src/test/java/org/springframework/ws/soap/AbstractSoapBodyTestCase.java new file mode 100644 index 00000000..2f5c30cd --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/AbstractSoapBodyTestCase.java @@ -0,0 +1,65 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import java.util.Locale; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.springframework.xml.transform.StringResult; +import org.springframework.xml.transform.StringSource; + +public abstract class AbstractSoapBodyTestCase extends XMLTestCase { + + protected SoapBody soapBody; + + protected Transformer transformer; + + protected final void setUp() throws Exception { + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + transformer = transformerFactory.newTransformer(); + soapBody = createSoapBody(); + } + + protected abstract SoapBody createSoapBody() throws Exception; + + public void testPayload() throws Exception { + String payload = ""; + StringSource contents = new StringSource(payload); + transformer.transform(contents, soapBody.getPayloadResult()); + assertPayloadEqual(payload); + } + + public void testNoFault() throws Exception { + assertFalse("body has fault", soapBody.hasFault()); + } + + public void testAddFaultWithExistingPayload() throws Exception { + StringSource contents = new StringSource(""); + transformer.transform(contents, soapBody.getPayloadResult()); + soapBody.addMustUnderstandFault("faultString", Locale.ENGLISH); + assertTrue("Body has no fault", soapBody.hasFault()); + } + + protected void assertPayloadEqual(String expectedPayload) throws Exception { + StringResult result = new StringResult(); + transformer.transform(soapBody.getPayloadSource(), result); + assertXMLEqual("Invalid payload contents", expectedPayload, result.toString()); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/AbstractSoapEnvelopeTestCase.java b/core/src/test/java/org/springframework/ws/soap/AbstractSoapEnvelopeTestCase.java new file mode 100644 index 00000000..1c01634a --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/AbstractSoapEnvelopeTestCase.java @@ -0,0 +1,47 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; + +import org.custommonkey.xmlunit.XMLTestCase; + +public abstract class AbstractSoapEnvelopeTestCase extends XMLTestCase { + + protected SoapEnvelope soapEnvelope; + + protected Transformer transformer; + + protected final void setUp() throws Exception { + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + transformer = transformerFactory.newTransformer(); + soapEnvelope = createSoapEnvelope(); + } + + protected abstract SoapEnvelope createSoapEnvelope() throws Exception; + + public void testGetHeader() throws Exception { + SoapHeader header = soapEnvelope.getHeader(); + assertNotNull("No header returned", header); + } + + public void testGetBody() throws Exception { + SoapBody body = soapEnvelope.getBody(); + assertNotNull("No body returned", body); + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/AbstractSoapHeaderTestCase.java b/core/src/test/java/org/springframework/ws/soap/AbstractSoapHeaderTestCase.java new file mode 100644 index 00000000..cb92e194 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/AbstractSoapHeaderTestCase.java @@ -0,0 +1,100 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import java.util.Iterator; +import javax.xml.namespace.QName; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.springframework.xml.transform.StringResult; +import org.springframework.xml.transform.StringSource; + +public abstract class AbstractSoapHeaderTestCase extends XMLTestCase { + + protected SoapHeader soapHeader; + + protected Transformer transformer; + + protected final void setUp() throws Exception { + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + transformer = transformerFactory.newTransformer(); + soapHeader = createSoapHeader(); + } + + protected abstract SoapHeader createSoapHeader() throws Exception; + + public void testAddHeaderElement() throws Exception { + QName qName = new QName("http://www.springframework.org", "localName", "spring"); + SoapHeaderElement headerElement = soapHeader.addHeaderElement(qName); + assertEquals("Invalid qName for element", qName, headerElement.getName()); + String payload = ""; + assertNotNull("No SoapHeaderElement returned", headerElement); + transformer.transform(new StringSource(payload), headerElement.getResult()); + assertHeaderElementEqual(headerElement, + ""); + } + + public void testExamineAllHeaderElement() throws Exception { + QName qName = new QName("http://www.springframework.org", "localName", "spring"); + SoapHeaderElement headerElement = soapHeader.addHeaderElement(qName); + assertEquals("Invalid qName for element", qName, headerElement.getName()); + String payload = ""; + assertNotNull("No SoapHeaderElement returned", headerElement); + transformer.transform(new StringSource(payload), headerElement.getResult()); + Iterator iterator = soapHeader.examineAllHeaderElements(); + assertNotNull("header element iterator is null", iterator); + assertTrue("header element iterator has no elements", iterator.hasNext()); + headerElement = (SoapHeaderElement) iterator.next(); + assertEquals("Invalid qName for element", qName, headerElement.getName()); + StringResult result = new StringResult(); + transformer.transform(headerElement.getSource(), result); + assertXMLEqual("Invalid contents of header element", + "", + result.toString()); + assertFalse("header element iterator has too many elements", iterator.hasNext()); + } + + public void testExamineMustUnderstandHeaderElements() throws Exception { + QName qName1 = new QName("http://www.springframework.org", "localName1", "spring"); + SoapHeaderElement headerElement1 = soapHeader.addHeaderElement(qName1); + headerElement1.setMustUnderstand(true); + headerElement1.setActorOrRole("role1"); + QName qName2 = new QName("http://www.springframework.org", "localName2", "spring"); + SoapHeaderElement headerElement2 = soapHeader.addHeaderElement(qName2); + headerElement2.setMustUnderstand(true); + headerElement2.setActorOrRole("role2"); + Iterator iterator = soapHeader.examineMustUnderstandHeaderElements("role1"); + assertNotNull("header element iterator is null", iterator); + assertTrue("header element iterator has no elements", iterator.hasNext()); + SoapHeaderElement headerElement = (SoapHeaderElement) iterator.next(); + assertEquals("Invalid name on header element", qName1, headerElement.getName()); + assertTrue("MustUnderstand not set on header element", headerElement.getMustUnderstand()); + assertEquals("Invalid role on header element", "role1", headerElement.getActorOrRole()); + assertFalse("header element iterator has too many elements", iterator.hasNext()); + } + + protected void assertHeaderElementEqual(SoapHeaderElement headerElement, String expected) throws Exception { + StringResult result = new StringResult(); + transformer.transform(headerElement.getSource(), result); + assertXMLEqual("Invalid contents of header element", + "", + result.toString()); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/AbstractSoapMessageTestCase.java b/core/src/test/java/org/springframework/ws/soap/AbstractSoapMessageTestCase.java new file mode 100644 index 00000000..97e5178c --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/AbstractSoapMessageTestCase.java @@ -0,0 +1,82 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import java.io.ByteArrayOutputStream; +import java.util.Iterator; + +import org.springframework.core.io.ByteArrayResource; +import org.springframework.core.io.InputStreamSource; +import org.springframework.core.io.Resource; +import org.springframework.util.FileCopyUtils; +import org.springframework.util.StringUtils; +import org.springframework.ws.AbstractWebServiceMessageTestCase; +import org.springframework.ws.WebServiceMessage; +import org.springframework.xml.transform.StringResult; +import org.springframework.xml.validation.XmlValidator; +import org.springframework.xml.validation.XmlValidatorFactory; +import org.xml.sax.SAXParseException; + +public abstract class AbstractSoapMessageTestCase extends AbstractWebServiceMessageTestCase { + + protected SoapMessage soapMessage; + + protected final WebServiceMessage createWebServiceMessage() throws Exception { + soapMessage = createSoapMessage(); + return soapMessage; + } + + protected abstract SoapMessage createSoapMessage() throws Exception; + + public void testAttachments() throws Exception { + String contents = "contents"; + String contentType = "text/plain"; + InputStreamSource inputStreamSource = new ByteArrayResource(contents.getBytes("UTF-8")); + soapMessage.addAttachment(inputStreamSource, contentType); + Iterator iterator = soapMessage.getAttachments(); + assertNotNull("Attachment iterator is null", iterator); + assertTrue("Attachment iterator has no elements", iterator.hasNext()); + Attachment attachment = (Attachment) iterator.next(); + assertEquals("Invalid conent-id", contentType, attachment.getContentType()); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + FileCopyUtils.copy(attachment.getInputStream(), os); + String result = new String(os.toByteArray(), "UTF-8"); + assertEquals("Invalid contents", contents, result); + assertFalse("Attachment iterator has too many elements", iterator.hasNext()); + } + + public void testWriteTo() throws Exception { + StringResult stringResult = new StringResult(); + transformer.transform(soapMessage.getEnvelope().getSource(), stringResult); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + soapMessage.writeTo(os); + assertXMLEqual(stringResult.toString(), os.toString("UTF-8")); + } + + public void testValidate() throws Exception { + XmlValidator validator = + XmlValidatorFactory.createValidator(getSoapSchemas(), XmlValidatorFactory.SCHEMA_W3C_XML); + SAXParseException[] errors = validator.validate(soapMessage.getEnvelope().getSource()); + if (errors.length > 0) { + fail(StringUtils.arrayToCommaDelimitedString(errors)); + } + } + + protected abstract Resource[] getSoapSchemas(); + + +} diff --git a/core/src/test/java/org/springframework/ws/soap/SoapMessageDispatcherTest.java b/core/src/test/java/org/springframework/ws/soap/SoapMessageDispatcherTest.java new file mode 100644 index 00000000..235bca62 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/SoapMessageDispatcherTest.java @@ -0,0 +1,230 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap; + +import java.util.Iterator; +import java.util.Locale; +import javax.xml.namespace.QName; +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPConstants; +import javax.xml.soap.SOAPHeaderElement; +import javax.xml.soap.SOAPMessage; + +import junit.framework.TestCase; +import org.easymock.MockControl; +import org.springframework.ws.mock.MockTransportRequest; +import org.springframework.ws.soap.saaj.SaajSoapMessageContext; +import org.springframework.ws.soap.soap11.Soap11Fault; +import org.springframework.ws.soap.soap12.Soap12Fault; + +public class SoapMessageDispatcherTest extends TestCase { + + private SoapMessageDispatcher dispatcher; + + private MockControl interceptorControl; + + private SoapEndpointInterceptor interceptorMock; + + protected void setUp() throws Exception { + interceptorControl = MockControl.createControl(SoapEndpointInterceptor.class); + interceptorMock = (SoapEndpointInterceptor) interceptorControl.getMock(); + dispatcher = new SoapMessageDispatcher(); + } + + public void testProcessMustUnderstandHeadersUnderstoodSoap11() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL); + SOAPMessage request = messageFactory.createMessage(); + SOAPHeaderElement header = + request.getSOAPHeader().addHeaderElement(new QName("http://www.springframework.org", "Header")); + header.setActor(SOAPConstants.URI_SOAP_ACTOR_NEXT); + header.setMustUnderstand(true); + SaajSoapMessageContext context = + new SaajSoapMessageContext(request, new MockTransportRequest(), messageFactory); + interceptorMock.understands(null); + interceptorControl.setMatcher(MockControl.ALWAYS_MATCHER); + interceptorControl.setReturnValue(true); + interceptorControl.replay(); + + SoapEndpointInvocationChain chain = + new SoapEndpointInvocationChain(new Object(), new SoapEndpointInterceptor[]{interceptorMock}); + + boolean result = dispatcher.handleRequest(chain, context); + assertTrue("Header not understood", result); + interceptorControl.verify(); + } + + public void testProcessMustUnderstandHeadersUnderstoodSoap12() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL); + SOAPMessage request = messageFactory.createMessage(); + SOAPHeaderElement header = + request.getSOAPHeader().addHeaderElement(new QName("http://www.springframework.org", "Header")); + header.setMustUnderstand(true); + header.setRole(SOAPConstants.URI_SOAP_1_2_ROLE_NEXT); + SaajSoapMessageContext context = + new SaajSoapMessageContext(request, new MockTransportRequest(), messageFactory); + interceptorMock.understands(null); + interceptorControl.setMatcher(MockControl.ALWAYS_MATCHER); + interceptorControl.setReturnValue(true); + interceptorControl.replay(); + + SoapEndpointInvocationChain chain = + new SoapEndpointInvocationChain(new Object(), new SoapEndpointInterceptor[]{interceptorMock}); + + boolean result = dispatcher.handleRequest(chain, context); + assertTrue("Header not understood", result); + interceptorControl.verify(); + } + + public void testProcessMustUnderstandHeadersNotUnderstoodSoap11() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL); + SOAPMessage request = messageFactory.createMessage(); + SOAPHeaderElement header = request.getSOAPHeader() + .addHeaderElement(new QName("http://www.springframework.org", "Header", "spring-ws")); + header.setActor(SOAPConstants.URI_SOAP_ACTOR_NEXT); + header.setMustUnderstand(true); + SaajSoapMessageContext context = + new SaajSoapMessageContext(request, new MockTransportRequest(), messageFactory); + interceptorMock.understands(null); + interceptorControl.setMatcher(MockControl.ALWAYS_MATCHER); + interceptorControl.setReturnValue(false); + interceptorControl.replay(); + + SoapEndpointInvocationChain chain = + new SoapEndpointInvocationChain(new Object(), new SoapEndpointInterceptor[]{interceptorMock}); + + boolean result = dispatcher.handleRequest(chain, context); + assertFalse("Header understood", result); + assertTrue("Context has no response", context.hasResponse()); + SoapBody responseBody = context.getSoapResponse().getSoapBody(); + assertTrue("Response body has no fault", responseBody.hasFault()); + Soap11Fault fault = (Soap11Fault) responseBody.getFault(); + assertEquals("Invalid fault code", + new QName(SOAPConstants.URI_NS_SOAP_1_1_ENVELOPE, "MustUnderstand"), + fault.getFaultCode()); + assertEquals("Invalid fault string", + SoapMessageDispatcher.DEFAULT_MUST_UNDERSTAND_FAULT, + fault.getFaultString()); + assertEquals("Invalid fault string locale", Locale.ENGLISH, fault.getFaultStringLocale()); + assertEquals("Invalid fault actor", SOAPConstants.URI_SOAP_ACTOR_NEXT, fault.getFaultActorOrRole()); + interceptorControl.verify(); + } + + public void testProcessMustUnderstandHeadersNotUnderstoodSoap12() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL); + SOAPMessage request = messageFactory.createMessage(); + SOAPHeaderElement header = request.getSOAPHeader() + .addHeaderElement(new QName("http://www.springframework.org", "Header", "spring-ws")); + header.setMustUnderstand(true); + header.setRole(SOAPConstants.URI_SOAP_1_2_ROLE_NEXT); + SaajSoapMessageContext context = + new SaajSoapMessageContext(request, new MockTransportRequest(), messageFactory); + interceptorMock.understands(null); + interceptorControl.setMatcher(MockControl.ALWAYS_MATCHER); + interceptorControl.setReturnValue(false); + interceptorControl.replay(); + + SoapEndpointInvocationChain chain = + new SoapEndpointInvocationChain(new Object(), new SoapEndpointInterceptor[]{interceptorMock}); + + boolean result = dispatcher.handleRequest(chain, context); + assertFalse("Header understood", result); + assertTrue("Context has no response", context.hasResponse()); + SoapBody responseBody = context.getSoapResponse().getSoapBody(); + assertTrue("Response body has no fault", responseBody.hasFault()); + Soap12Fault fault = (Soap12Fault) responseBody.getFault(); + assertEquals("Invalid fault code", + new QName(SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE, "MustUnderstand"), + fault.getFaultCode()); + assertEquals("Invalid fault string", + SoapMessageDispatcher.DEFAULT_MUST_UNDERSTAND_FAULT, + fault.getFaultReasonText(Locale.ENGLISH)); + assertEquals("Invalid fault actor", SOAPConstants.URI_SOAP_1_2_ROLE_NEXT, fault.getFaultActorOrRole()); + SoapHeader responseHeader = context.getSoapResponse().getSoapHeader(); + Iterator iterator = responseHeader.examineAllHeaderElements(); + assertTrue("Response header has no elements", iterator.hasNext()); + SoapHeaderElement headerElement = (SoapHeaderElement) iterator.next(); + assertEquals("No NotUnderstood header", + new QName(SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE, "NotUnderstood"), + headerElement.getName()); + interceptorControl.verify(); + } + + public void testProcessMustUnderstandHeadersForActorSoap11() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL); + SOAPMessage request = messageFactory.createMessage(); + SOAPHeaderElement header = request.getSOAPHeader() + .addHeaderElement(new QName("http://www.springframework.org", "Header", "spring-ws")); + String headerActor = "http://www/springframework.org/role"; + header.setActor(headerActor); + header.setMustUnderstand(true); + SaajSoapMessageContext context = + new SaajSoapMessageContext(request, new MockTransportRequest(), messageFactory); + interceptorMock.understands(null); + interceptorControl.setMatcher(MockControl.ALWAYS_MATCHER); + interceptorControl.setReturnValue(true); + interceptorControl.replay(); + + SoapEndpointInvocationChain chain = new SoapEndpointInvocationChain(new Object(), + new SoapEndpointInterceptor[]{interceptorMock}, + new String[]{headerActor}); + + boolean result = dispatcher.handleRequest(chain, context); + assertTrue("actor-specific header not understood", result); + interceptorControl.verify(); + } + + public void testProcessMustUnderstandHeadersForRoleSoap11() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL); + SOAPMessage request = messageFactory.createMessage(); + SOAPHeaderElement header = request.getSOAPHeader() + .addHeaderElement(new QName("http://www.springframework.org", "Header", "spring-ws")); + String headerRole = "http://www/springframework.org/role"; + header.setRole(headerRole); + header.setMustUnderstand(true); + SaajSoapMessageContext context = + new SaajSoapMessageContext(request, new MockTransportRequest(), messageFactory); + interceptorMock.understands(null); + interceptorControl.setMatcher(MockControl.ALWAYS_MATCHER); + interceptorControl.setReturnValue(true); + interceptorControl.replay(); + + SoapEndpointInvocationChain chain = new SoapEndpointInvocationChain(new Object(), + new SoapEndpointInterceptor[]{interceptorMock}, + new String[]{headerRole}); + + boolean result = dispatcher.handleRequest(chain, context); + assertTrue("role-specific header not understood", result); + interceptorControl.verify(); + } + + public void testProcessNoHeader() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL); + SOAPMessage request = messageFactory.createMessage(); + request.getSOAPHeader().detachNode(); + SaajSoapMessageContext context = + new SaajSoapMessageContext(request, new MockTransportRequest(), messageFactory); + interceptorControl.replay(); + + SoapEndpointInvocationChain chain = new SoapEndpointInvocationChain(new Object(), + new SoapEndpointInterceptor[]{interceptorMock}, + new String[]{"role"}); + + boolean result = dispatcher.handleRequest(chain, context); + assertTrue("Invalid result", result); + interceptorControl.verify(); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11BodyTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11BodyTest.java new file mode 100644 index 00000000..cad003ef --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11BodyTest.java @@ -0,0 +1,35 @@ +package org.springframework.ws.soap.axiom; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.soap.SOAPFactory; +import org.springframework.ws.soap.SoapBody; +import org.springframework.ws.soap.soap11.AbstractSoap11BodyTestCase; + +public class AxiomSoap11BodyTest extends AbstractSoap11BodyTestCase { + + protected SoapBody createSoapBody() throws Exception { + SOAPFactory axiomFactory = OMAbstractFactory.getSOAP11Factory(); + AxiomSoapMessage axiomSoapMessage = new AxiomSoapMessage(axiomFactory); + return axiomSoapMessage.getSoapBody(); + } + + public void testAddMustUnderstandFault() throws Exception { + // Overriden because of http://issues.apache.org/jira/browse/WSCOMMONS-38 + } + + public void testAddClientFault() throws Exception { + // Overriden because of http://issues.apache.org/jira/browse/WSCOMMONS-38 + } + + public void testAddServerFault() throws Exception { + // Overriden because of http://issues.apache.org/jira/browse/WSCOMMONS-38 + } + + public void testAddFault() throws Exception { + // Overriden because of http://issues.apache.org/jira/browse/WSCOMMONS-38 + } + + public void testAddFaultWithDetail() throws Exception { + // Overriden because of http://issues.apache.org/jira/browse/WSCOMMONS-38 + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11EnvelopeTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11EnvelopeTest.java new file mode 100644 index 00000000..0fe68786 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11EnvelopeTest.java @@ -0,0 +1,15 @@ +package org.springframework.ws.soap.axiom; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.soap.SOAPFactory; +import org.springframework.ws.soap.SoapEnvelope; +import org.springframework.ws.soap.soap11.AbstractSoap11EnvelopeTestCase; + +public class AxiomSoap11EnvelopeTest extends AbstractSoap11EnvelopeTestCase { + + protected SoapEnvelope createSoapEnvelope() throws Exception { + SOAPFactory axiomFactory = OMAbstractFactory.getSOAP11Factory(); + AxiomSoapMessage axiomSoapMessage = new AxiomSoapMessage(axiomFactory); + return axiomSoapMessage.getEnvelope(); + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11HeaderTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11HeaderTest.java new file mode 100644 index 00000000..172bc045 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11HeaderTest.java @@ -0,0 +1,16 @@ +package org.springframework.ws.soap.axiom; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.soap.SOAPFactory; +import org.springframework.ws.soap.SoapHeader; +import org.springframework.ws.soap.soap11.AbstractSoap11HeaderTestCase; + +public class AxiomSoap11HeaderTest extends AbstractSoap11HeaderTestCase { + + protected SoapHeader createSoapHeader() throws Exception { + SOAPFactory axiomFactory = OMAbstractFactory.getSOAP11Factory(); + AxiomSoapMessage axiomSoapMessage = new AxiomSoapMessage(axiomFactory); + return axiomSoapMessage.getSoapHeader(); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageContextFactoryTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageContextFactoryTest.java new file mode 100644 index 00000000..cf6491cd --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageContextFactoryTest.java @@ -0,0 +1,31 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import org.springframework.ws.context.MessageContextFactory; +import org.springframework.ws.soap.context.AbstractSoap11MessageContextFactoryTestCase; + +public class AxiomSoap11MessageContextFactoryTest extends AbstractSoap11MessageContextFactoryTestCase { + + protected MessageContextFactory createSoapMessageContextFactory() { + return new AxiomSoapMessageContextFactory(); + } + + public void testCreateMessageFromHttpServletRequest12WithAttachment() throws Exception { + // Axiom does not support SwA with SOAP 1.2 + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageTest.java new file mode 100644 index 00000000..027429d4 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap11MessageTest.java @@ -0,0 +1,22 @@ +package org.springframework.ws.soap.axiom; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.soap.SOAPFactory; +import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.soap.soap11.AbstractSoap11MessageTestCase; + +public class AxiomSoap11MessageTest extends AbstractSoap11MessageTestCase { + + protected SoapMessage createSoapMessage() throws Exception { + SOAPFactory axiomFactory = OMAbstractFactory.getSOAP11Factory(); + return new AxiomSoapMessage(axiomFactory); + } + + public void testAttachments() throws Exception { + // Attachment support not supported + } + + public void testWriteToTransportResponseAttachment() throws Exception { + // Attachment support not supported + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12BodyTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12BodyTest.java new file mode 100644 index 00000000..451e8fbc --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12BodyTest.java @@ -0,0 +1,32 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.soap.SOAPFactory; +import org.springframework.ws.soap.SoapBody; +import org.springframework.ws.soap.soap12.AbstractSoap12BodyTestCase; + +public class AxiomSoap12BodyTest extends AbstractSoap12BodyTestCase { + + protected SoapBody createSoapBody() throws Exception { + SOAPFactory axiomFactory = OMAbstractFactory.getSOAP12Factory(); + AxiomSoapMessage axiomSoapMessage = new AxiomSoapMessage(axiomFactory); + return axiomSoapMessage.getSoapBody(); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12EnvelopeTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12EnvelopeTest.java new file mode 100644 index 00000000..d6f051ea --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12EnvelopeTest.java @@ -0,0 +1,31 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.soap.SOAPFactory; +import org.springframework.ws.soap.SoapEnvelope; +import org.springframework.ws.soap.soap12.AbstractSoap12EnvelopeTestCase; + +public class AxiomSoap12EnvelopeTest extends AbstractSoap12EnvelopeTestCase { + + protected SoapEnvelope createSoapEnvelope() throws Exception { + SOAPFactory axiomFactory = OMAbstractFactory.getSOAP12Factory(); + AxiomSoapMessage axiomSoapMessage = new AxiomSoapMessage(axiomFactory); + return axiomSoapMessage.getEnvelope(); + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12HeaderTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12HeaderTest.java new file mode 100644 index 00000000..0241de06 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12HeaderTest.java @@ -0,0 +1,32 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.soap.SOAPFactory; +import org.springframework.ws.soap.SoapHeader; +import org.springframework.ws.soap.soap12.AbstractSoap12HeaderTestCase; + +public class AxiomSoap12HeaderTest extends AbstractSoap12HeaderTestCase { + + protected SoapHeader createSoapHeader() throws Exception { + SOAPFactory axiomFactory = OMAbstractFactory.getSOAP12Factory(); + AxiomSoapMessage axiomSoapMessage = new AxiomSoapMessage(axiomFactory); + return axiomSoapMessage.getSoapHeader(); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12MessageContextFactoryTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12MessageContextFactoryTest.java new file mode 100644 index 00000000..659982b5 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12MessageContextFactoryTest.java @@ -0,0 +1,15 @@ +package org.springframework.ws.soap.axiom; + +import org.springframework.ws.context.MessageContextFactory; +import org.springframework.ws.soap.context.AbstractSoap12MessageContextFactoryTestCase; + +public class AxiomSoap12MessageContextFactoryTest extends AbstractSoap12MessageContextFactoryTestCase { + + protected MessageContextFactory createSoapMessageContextFactory() { + return new AxiomSoapMessageContextFactory(); + } + + public void testCreateContextAttachments() throws Exception { + // Axiom does not support SwA with SOAP 1.2 + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12MessageTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12MessageTest.java new file mode 100644 index 00000000..4e3bb02e --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/axiom/AxiomSoap12MessageTest.java @@ -0,0 +1,38 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.soap.SOAPFactory; +import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.soap.soap12.AbstractSoap12MessageTestCase; + +public class AxiomSoap12MessageTest extends AbstractSoap12MessageTestCase { + + protected SoapMessage createSoapMessage() throws Exception { + SOAPFactory axiomFactory = OMAbstractFactory.getSOAP12Factory(); + return new AxiomSoapMessage(axiomFactory); + } + + public void testAttachments() throws Exception { + // Attachments not supported + } + + public void testWriteToTransportResponseAttachment() throws Exception { + // Attachments not supported + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/soap/axiom/support/AxiomUtilsTest.java b/core/src/test/java/org/springframework/ws/soap/axiom/support/AxiomUtilsTest.java new file mode 100644 index 00000000..3e7988ba --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/axiom/support/AxiomUtilsTest.java @@ -0,0 +1,78 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.axiom.support; + +import java.util.Locale; +import javax.xml.namespace.QName; + +import junit.framework.TestCase; +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMFactory; +import org.apache.axiom.om.OMNamespace; + +public class AxiomUtilsTest extends TestCase { + + private OMElement element; + + protected void setUp() throws Exception { + OMFactory factory = OMAbstractFactory.getOMFactory(); + OMNamespace namespace = factory.createOMNamespace("http://www.springframework.org", "prefix"); + element = factory.createOMElement("element", namespace); + } + + public void testToNamespaceDeclared() throws Exception { + QName qName = new QName(element.getNamespace().getName(), "localPart"); + OMNamespace namespace = AxiomUtils.toNamespace(qName, element); + assertNotNull("Invalid namespace", namespace); + assertEquals("Invalid namespace", qName.getNamespaceURI(), namespace.getName()); + } + + public void testToNamespaceUndeclared() throws Exception { + QName qName = new QName("http://www.example.com", "localPart"); + OMNamespace namespace = AxiomUtils.toNamespace(qName, element); + assertNotNull("Invalid namespace", namespace); + assertEquals("Invalid namespace", qName.getNamespaceURI(), namespace.getName()); + assertFalse("Invalid prefix", "prefix".equals(namespace.getPrefix())); + } + + public void testToNamespacePrefixDeclared() throws Exception { + QName qName = new QName(element.getNamespace().getName(), "localPart", "prefix"); + OMNamespace namespace = AxiomUtils.toNamespace(qName, element); + assertNotNull("Invalid namespace", namespace); + assertEquals("Invalid namespace", qName.getNamespaceURI(), namespace.getName()); + assertEquals("Invalid prefix", "prefix", namespace.getPrefix()); + } + + public void testToNamespacePrefixUndeclared() throws Exception { + QName qName = new QName("http://www.example.com", "localPart", "otherPrefix"); + OMNamespace namespace = AxiomUtils.toNamespace(qName, element); + assertNotNull("Invalid namespace", namespace); + assertEquals("Invalid namespace", qName.getNamespaceURI(), namespace.getName()); + assertEquals("Invalid prefix", qName.getPrefix(), namespace.getPrefix()); + } + + public void testToLanguage() throws Exception { + assertEquals("Invalid conversion", "fr-CA", AxiomUtils.toLanguage(Locale.CANADA_FRENCH)); + assertEquals("Invalid conversion", "en", AxiomUtils.toLanguage(Locale.ENGLISH)); + } + + public void testToLocale() throws Exception { + assertEquals("Invalid conversion", Locale.CANADA_FRENCH, AxiomUtils.toLocale("fr-CA")); + assertEquals("Invalid conversion", Locale.ENGLISH, AxiomUtils.toLocale("en")); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/soap/context/AbstractSoap11MessageContextFactoryTestCase.java b/core/src/test/java/org/springframework/ws/soap/context/AbstractSoap11MessageContextFactoryTestCase.java new file mode 100644 index 00000000..e709633a --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/context/AbstractSoap11MessageContextFactoryTestCase.java @@ -0,0 +1,54 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.context; + +import java.util.Properties; + +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.mock.MockTransportContext; +import org.springframework.ws.soap.Attachment; +import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.soap.SoapVersion; + +public abstract class AbstractSoap11MessageContextFactoryTestCase extends AbstractSoapMessageContextFactoryTestCase { + + public void testCreateContextNoAttachment() throws Exception { + Properties headers = new Properties(); + headers.setProperty("Content-Type", "text/xml"); + headers.setProperty("SOAPAction", "\"Some-URI\""); + MockTransportContext transportContext = createTransportContext(headers, "soap11.xml"); + + MessageContext messageContext = contextFactory.createContext(transportContext); + SoapMessage requestMessage = (SoapMessage) messageContext.getRequest(); + assertNotNull("Request null", requestMessage); + assertEquals("Invalid soap version", SoapVersion.SOAP_11, requestMessage.getVersion()); + } + + public void testCreateContextAttachment() throws Exception { + Properties headers = new Properties(); + headers.setProperty("Content-Type", + "multipart/related; type=\"text/xml\"; boundary=\"----=_Part_0_11416420.1149699787554\""); + MockTransportContext transportContext = createTransportContext(headers, "soap11-attachment.bin"); + + MessageContext messageContext = contextFactory.createContext(transportContext); + SoapMessage requestMessage = (SoapMessage) messageContext.getRequest(); + assertEquals("Invalid soap version", SoapVersion.SOAP_11, requestMessage.getVersion()); + Attachment attachment = requestMessage.getAttachment("interface21"); + assertNotNull("No attachment read", attachment); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/context/AbstractSoap11MessageContextTestCase.java b/core/src/test/java/org/springframework/ws/soap/context/AbstractSoap11MessageContextTestCase.java new file mode 100644 index 00000000..adef6c55 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/context/AbstractSoap11MessageContextTestCase.java @@ -0,0 +1,44 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.context; + +import org.springframework.core.io.ByteArrayResource; +import org.springframework.core.io.InputStreamSource; +import org.springframework.ws.soap.SoapVersion; + +public abstract class AbstractSoap11MessageContextTestCase extends AbstractSoapMessageContextTestCase { + + public void testWriteToTransportResponse() throws Exception { + messageContext.getResponse(); // create response + messageContext.sendResponse(transportResponse); + assertXMLEqual("

", + transportResponse.getContents()); + assertTrue("Invalid Content-Type set", transportResponse.getHeaders().getProperty("Content-Type") + .indexOf(SoapVersion.SOAP_11.getContentType()) != -1); + } + + public void testWriteToTransportResponseAttachment() throws Exception { + InputStreamSource inputStreamSource = new ByteArrayResource("contents".getBytes("UTF-8")); + messageContext.getSoapResponse().addAttachment(inputStreamSource, "text/plain"); + messageContext.sendResponse(transportResponse); + assertTrue("Invalid Content-Type set", + transportResponse.getHeaders().getProperty("Content-Type").indexOf("multipart/related") != -1); + assertTrue("Invalid Content-Type set", transportResponse.getHeaders().getProperty("Content-Type") + .indexOf(SoapVersion.SOAP_11.getContentType()) != -1); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/context/AbstractSoap12MessageContextFactoryTestCase.java b/core/src/test/java/org/springframework/ws/soap/context/AbstractSoap12MessageContextFactoryTestCase.java new file mode 100644 index 00000000..7816b419 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/context/AbstractSoap12MessageContextFactoryTestCase.java @@ -0,0 +1,38 @@ +package org.springframework.ws.soap.context; + +import java.util.Properties; + +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.mock.MockTransportContext; +import org.springframework.ws.soap.Attachment; +import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.soap.SoapVersion; + +public abstract class AbstractSoap12MessageContextFactoryTestCase extends AbstractSoapMessageContextFactoryTestCase { + + public void testCreateContextNoAttachment() throws Exception { + Properties headers = new Properties(); + headers.setProperty("Content-Type", "application/soap+xml"); + headers.setProperty("SOAPAction", "\"Some-URI\""); + MockTransportContext transportContext = createTransportContext(headers, "soap12.xml"); + + MessageContext messageContext = contextFactory.createContext(transportContext); + SoapMessage requestMessage = (SoapMessage) messageContext.getRequest(); + assertNotNull("Request null", requestMessage); + assertEquals("Invalid soap version", SoapVersion.SOAP_12, requestMessage.getVersion()); + } + + public void testCreateContextAttachments() throws Exception { + Properties headers = new Properties(); + headers.setProperty("Content-Type", + "multipart/related; type=\"application/soap+xml\"; boundary=\"----=_Part_0_11416420.1149699787554\""); + MockTransportContext transportContext = createTransportContext(headers, "soap12-attachment.bin"); + + MessageContext messageContext = contextFactory.createContext(transportContext); + SoapMessage requestMessage = (SoapMessage) messageContext.getRequest(); + assertEquals("Invalid soap version", SoapVersion.SOAP_12, requestMessage.getVersion()); + Attachment attachment = requestMessage.getAttachment("interface21"); + assertNotNull("No attachment read", attachment); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/context/AbstractSoap12MessageContextTestCase.java b/core/src/test/java/org/springframework/ws/soap/context/AbstractSoap12MessageContextTestCase.java new file mode 100644 index 00000000..08bc6801 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/context/AbstractSoap12MessageContextTestCase.java @@ -0,0 +1,44 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.context; + +import org.springframework.core.io.ByteArrayResource; +import org.springframework.core.io.InputStreamSource; +import org.springframework.ws.soap.SoapVersion; + +public abstract class AbstractSoap12MessageContextTestCase extends AbstractSoapMessageContextTestCase { + + public void testWriteToTransportResponse() throws Exception { + messageContext.getResponse(); // create response + messageContext.sendResponse(null); + assertXMLEqual("
", + transportResponse.getContents()); + assertTrue("Invalid Content-Type set", transportResponse.getHeaders().getProperty("Content-Type") + .indexOf(SoapVersion.SOAP_12.getContentType()) != -1); + } + + public void testWriteToTransportResponseAttachment() throws Exception { + InputStreamSource inputStreamSource = new ByteArrayResource("contents".getBytes("UTF-8")); + messageContext.getSoapResponse().addAttachment(inputStreamSource, "text/plain"); + messageContext.sendResponse(null); + assertTrue("Invalid Content-Type set", + transportResponse.getHeaders().getProperty("Content-Type").indexOf("multipart/related") != -1); + assertTrue("Invalid Content-Type set", transportResponse.getHeaders().getProperty("Content-Type") + .indexOf(SoapVersion.SOAP_12.getContentType()) != -1); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/context/AbstractSoapMessageContextFactoryTestCase.java b/core/src/test/java/org/springframework/ws/soap/context/AbstractSoapMessageContextFactoryTestCase.java new file mode 100644 index 00000000..efe10902 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/context/AbstractSoapMessageContextFactoryTestCase.java @@ -0,0 +1,32 @@ +package org.springframework.ws.soap.context; + +import java.io.IOException; +import java.util.Properties; + +import junit.framework.TestCase; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.util.FileCopyUtils; +import org.springframework.ws.context.MessageContextFactory; +import org.springframework.ws.mock.MockTransportContext; +import org.springframework.ws.mock.MockTransportRequest; + +public abstract class AbstractSoapMessageContextFactoryTestCase extends TestCase { + + protected MessageContextFactory contextFactory; + + protected final void setUp() throws Exception { + contextFactory = createSoapMessageContextFactory(); + if (contextFactory instanceof InitializingBean) { + ((InitializingBean) contextFactory).afterPropertiesSet(); + } + } + + protected MockTransportContext createTransportContext(Properties headers, String requestFile) throws IOException { + byte[] contents = FileCopyUtils + .copyToByteArray(AbstractSoapMessageContextFactoryTestCase.class.getResourceAsStream(requestFile)); + return new MockTransportContext(new MockTransportRequest(headers, contents)); + } + + protected abstract MessageContextFactory createSoapMessageContextFactory() throws Exception; + +} diff --git a/core/src/test/java/org/springframework/ws/soap/context/AbstractSoapMessageContextTestCase.java b/core/src/test/java/org/springframework/ws/soap/context/AbstractSoapMessageContextTestCase.java new file mode 100644 index 00000000..ecbedbb9 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/context/AbstractSoapMessageContextTestCase.java @@ -0,0 +1,46 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.context; + +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.springframework.ws.mock.MockTransportRequest; +import org.springframework.ws.mock.MockTransportResponse; +import org.springframework.ws.transport.TransportRequest; + +public abstract class AbstractSoapMessageContextTestCase extends XMLTestCase { + + protected SoapMessageContext messageContext; + + protected Transformer transformer; + + protected MockTransportResponse transportResponse; + + protected final void setUp() throws Exception { + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + transformer = transformerFactory.newTransformer(); + TransportRequest transportRequest = new MockTransportRequest(); + transportResponse = new MockTransportResponse(); + messageContext = createMessageContext(transportRequest); + } + + protected abstract SoapMessageContext createMessageContext(TransportRequest transportRequest) throws Exception; + + +} diff --git a/core/src/test/java/org/springframework/ws/soap/endpoint/SimpleSoapExceptionResolverTest.java b/core/src/test/java/org/springframework/ws/soap/endpoint/SimpleSoapExceptionResolverTest.java new file mode 100644 index 00000000..7f04feee --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/endpoint/SimpleSoapExceptionResolverTest.java @@ -0,0 +1,68 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.endpoint; + +import java.util.Locale; + +import junit.framework.TestCase; +import org.easymock.MockControl; +import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.soap.context.SoapMessageContext; +import org.springframework.ws.soap.soap11.Soap11Body; + +public class SimpleSoapExceptionResolverTest extends TestCase { + + private SimpleSoapExceptionResolver exceptionResolver; + + private MockControl contextControl; + + private SoapMessageContext contextMock; + + private MockControl messageControl; + + private SoapMessage messageMock; + + private MockControl bodyControl; + + private Soap11Body bodyMock; + + protected void setUp() throws Exception { + exceptionResolver = new SimpleSoapExceptionResolver(); + contextControl = MockControl.createControl(SoapMessageContext.class); + contextMock = (SoapMessageContext) contextControl.getMock(); + messageControl = MockControl.createControl(SoapMessage.class); + messageMock = (SoapMessage) messageControl.getMock(); + bodyControl = MockControl.createControl(Soap11Body.class); + bodyControl.setDefaultMatcher(MockControl.ARRAY_MATCHER); + bodyMock = (Soap11Body) bodyControl.getMock(); + } + + public void testResolveExceptionInternal() throws Exception { + Exception exception = new Exception("message"); + contextControl.expectAndReturn(contextMock.getSoapResponse(), messageMock); + messageControl.expectAndReturn(messageMock.getSoapBody(), bodyMock); + bodyControl.expectAndReturn(bodyMock.addServerOrReceiverFault(exception.getMessage(), Locale.ENGLISH), null); + contextControl.replay(); + messageControl.replay(); + bodyControl.replay(); + boolean result = exceptionResolver.resolveExceptionInternal(contextMock, null, exception); + assertTrue("Invalid result", result); + contextControl.verify(); + messageControl.verify(); + bodyControl.verify(); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/soap/endpoint/SoapFaultDefinitionEditorTest.java b/core/src/test/java/org/springframework/ws/soap/endpoint/SoapFaultDefinitionEditorTest.java new file mode 100644 index 00000000..6d2b2ca3 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/endpoint/SoapFaultDefinitionEditorTest.java @@ -0,0 +1,78 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.endpoint; + +import java.util.Locale; +import javax.xml.namespace.QName; + +import junit.framework.TestCase; + +public class SoapFaultDefinitionEditorTest extends TestCase { + + private SoapFaultDefinitionEditor editor; + + protected void setUp() throws Exception { + editor = new SoapFaultDefinitionEditor(); + } + + public void testSetAsTextNoLocale() throws Exception { + editor.setAsText("Server, Server error"); + SoapFaultDefinition definition = (SoapFaultDefinition) editor.getValue(); + assertNotNull("fault not set", definition); + assertEquals("Invalid fault code", new QName("Server"), definition.getFaultCode()); + assertEquals("Invalid fault string", "Server error", definition.getFaultStringOrReason()); + assertEquals("Invalid fault string locale", Locale.ENGLISH, definition.getLocale()); + } + + public void testSetAsTextLocale() throws Exception { + editor.setAsText("Server, Server error, nl"); + SoapFaultDefinition definition = (SoapFaultDefinition) editor.getValue(); + assertNotNull("fault not set", definition); + assertEquals("Invalid fault code", new QName("Server"), definition.getFaultCode()); + assertEquals("Invalid fault string", "Server error", definition.getFaultStringOrReason()); + assertEquals("Invalid fault string locale", new Locale("nl"), definition.getLocale()); + } + + public void testSetAsTextSender() throws Exception { + editor.setAsText("SENDER, Server error"); + SoapFaultDefinition definition = (SoapFaultDefinition) editor.getValue(); + assertNotNull("fault not set", definition); + assertEquals("Invalid fault code", SoapFaultDefinition.SENDER, definition.getFaultCode()); + assertEquals("Invalid fault string", "Server error", definition.getFaultStringOrReason()); + } + + public void testSetAsTextReceiver() throws Exception { + editor.setAsText("RECEIVER, Server error"); + SoapFaultDefinition definition = (SoapFaultDefinition) editor.getValue(); + assertNotNull("fault not set", definition); + assertEquals("Invalid fault code", SoapFaultDefinition.RECEIVER, definition.getFaultCode()); + assertEquals("Invalid fault string", "Server error", definition.getFaultStringOrReason()); + } + + public void testSetAsTextIllegalArgument() throws Exception { + try { + editor.setAsText("SOAP-ENV:Server"); + } + catch (IllegalArgumentException ex) { + } + } + + public void testSetAsTextEmpty() throws Exception { + editor.setAsText(""); + assertNull("definition not set to null", editor.getValue()); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/soap/endpoint/SoapFaultMappingExceptionResolverTest.java b/core/src/test/java/org/springframework/ws/soap/endpoint/SoapFaultMappingExceptionResolverTest.java new file mode 100644 index 00000000..11af2477 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/endpoint/SoapFaultMappingExceptionResolverTest.java @@ -0,0 +1,175 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.endpoint; + +import java.util.Locale; +import java.util.Properties; +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPConstants; +import javax.xml.soap.SOAPMessage; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.springframework.ws.mock.MockTransportRequest; +import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.soap.SoapMessageException; +import org.springframework.ws.soap.SoapVersion; +import org.springframework.ws.soap.saaj.SaajSoapMessageContext; +import org.springframework.ws.soap.soap11.Soap11Fault; +import org.springframework.ws.soap.soap12.Soap12Fault; + +public class SoapFaultMappingExceptionResolverTest extends XMLTestCase { + + private SoapFaultMappingExceptionResolver resolver; + + protected void setUp() throws Exception { + resolver = new SoapFaultMappingExceptionResolver(); + } + + public void testGetDepth() throws Exception { + assertEquals("Invalid depth for Exception", 0, resolver.getDepth("java.lang.Exception", new Exception())); + assertEquals("Invalid depth for IllegalArgumentException", + 2, + resolver.getDepth("java.lang.Exception", new IllegalArgumentException())); + assertEquals("Invalid depth for IllegalStateException", + -1, + resolver.getDepth("IllegalArgumentException", new IllegalStateException())); + } + + public void testResolveExceptionClientSoap11() throws Exception { + Properties mappings = new Properties(); + mappings.setProperty(Exception.class.getName(), "SERVER, Server error"); + mappings.setProperty(RuntimeException.class.getName(), "CLIENT, Client error"); + resolver.setExceptionMappings(mappings); + + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL); + SOAPMessage message = messageFactory.createMessage(); + SaajSoapMessageContext context = + new SaajSoapMessageContext(message, new MockTransportRequest(), messageFactory); + + boolean result = resolver.resolveException(context, null, new IllegalArgumentException("bla")); + assertTrue("resolveException returns false", result); + assertTrue("Context has no response", context.hasResponse()); + SoapMessage response = context.getSoapResponse(); + assertTrue("Resonse has no fault", response.getSoapBody().hasFault()); + Soap11Fault fault = (Soap11Fault) response.getSoapBody().getFault(); + assertEquals("Invalid fault code on fault", + SoapVersion.SOAP_11.getClientOrSenderFaultName(), + fault.getFaultCode()); + assertEquals("Invalid fault string on fault", "Client error", fault.getFaultString()); + assertNull("Detail on fault", fault.getFaultDetail()); + } + + public void testResolveExceptionSenderSoap12() throws Exception { + Properties mappings = new Properties(); + mappings.setProperty(Exception.class.getName(), "RECEIVER, Receiver error, en"); + mappings.setProperty(RuntimeException.class.getName(), "SENDER, Sender error, en"); + resolver.setExceptionMappings(mappings); + + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL); + SOAPMessage message = messageFactory.createMessage(); + SaajSoapMessageContext context = + new SaajSoapMessageContext(message, new MockTransportRequest(), messageFactory); + + boolean result = resolver.resolveException(context, null, new IllegalArgumentException("bla")); + assertTrue("resolveException returns false", result); + assertTrue("Context has no response", context.hasResponse()); + SoapMessage response = context.getSoapResponse(); + assertTrue("Resonse has no fault", response.getSoapBody().hasFault()); + Soap12Fault fault = (Soap12Fault) response.getSoapBody().getFault(); + assertEquals("Invalid fault code on fault", + SoapVersion.SOAP_12.getClientOrSenderFaultName(), + fault.getFaultCode()); + assertEquals("Invalid fault string on fault", "Sender error", fault.getFaultReasonText(Locale.ENGLISH)); + assertNull("Detail on fault", fault.getFaultDetail()); + } + + public void testResolveExceptionServerSoap11() throws Exception { + Properties mappings = new Properties(); + mappings.setProperty(Exception.class.getName(), "CLIENT, Client error"); + mappings.setProperty(RuntimeException.class.getName(), "SERVER, Server error"); + resolver.setExceptionMappings(mappings); + + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL); + SOAPMessage message = messageFactory.createMessage(); + SaajSoapMessageContext context = + new SaajSoapMessageContext(message, new MockTransportRequest(), messageFactory); + + boolean result = resolver.resolveException(context, null, new IllegalArgumentException("bla")); + assertTrue("resolveException returns false", result); + assertTrue("Context has no response", context.hasResponse()); + SoapMessage response = context.getSoapResponse(); + assertTrue("Resonse has no fault", response.getSoapBody().hasFault()); + Soap11Fault fault = (Soap11Fault) response.getSoapBody().getFault(); + assertEquals("Invalid fault code on fault", + SoapVersion.SOAP_11.getServerOrReceiverFaultName(), + fault.getFaultCode()); + assertEquals("Invalid fault string on fault", "Server error", fault.getFaultString()); + assertNull("Detail on fault", fault.getFaultDetail()); + } + + public void testResolveExceptionReceiverSoap12() throws Exception { + Properties mappings = new Properties(); + mappings.setProperty(Exception.class.getName(), "SENDER, Sender error"); + mappings.setProperty(RuntimeException.class.getName(), "RECEIVER, Receiver error"); + resolver.setExceptionMappings(mappings); + + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL); + SOAPMessage message = messageFactory.createMessage(); + SaajSoapMessageContext context = + new SaajSoapMessageContext(message, new MockTransportRequest(), messageFactory); + + boolean result = resolver.resolveException(context, null, new IllegalArgumentException("bla")); + assertTrue("resolveException returns false", result); + assertTrue("Context has no response", context.hasResponse()); + SoapMessage response = context.getSoapResponse(); + assertTrue("Resonse has no fault", response.getSoapBody().hasFault()); + Soap12Fault fault = (Soap12Fault) response.getSoapBody().getFault(); + assertEquals("Invalid fault code on fault", + SoapVersion.SOAP_12.getServerOrReceiverFaultName(), + fault.getFaultCode()); + assertEquals("Invalid fault string on fault", "Receiver error", fault.getFaultReasonText(Locale.ENGLISH)); + assertNull("Detail on fault", fault.getFaultDetail()); + } + + public void testResolveExceptionDefault() throws Exception { + Properties mappings = new Properties(); + mappings.setProperty(SoapMessageException.class.getName(), "SERVER,Server error"); + resolver.setExceptionMappings(mappings); + SoapFaultDefinition defaultFault = new SoapFaultDefinition(); + defaultFault.setFaultCode(SoapFaultDefinition.CLIENT); + defaultFault.setFaultStringOrReason("faultstring"); + resolver.setDefaultFault(defaultFault); + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL); + SOAPMessage message = messageFactory.createMessage(); + SaajSoapMessageContext context = + new SaajSoapMessageContext(message, new MockTransportRequest(), messageFactory); + + boolean result = resolver.resolveException(context, null, new IllegalArgumentException("bla")); + assertTrue("resolveException returns false", result); + assertTrue("Context has no response", context.hasResponse()); + SoapMessage response = context.getSoapResponse(); + assertTrue("Resonse has no fault", response.getSoapBody().hasFault()); + Soap11Fault fault = (Soap11Fault) response.getSoapBody().getFault(); + assertEquals("Invalid fault code on fault", + SoapVersion.SOAP_11.getClientOrSenderFaultName(), + fault.getFaultCode()); + assertEquals("Invalid fault string on fault", "faultstring", fault.getFaultString()); + assertNull("Detail on fault", fault.getFaultDetail()); + } + + +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/soap/endpoint/interceptor/SoapEnvelopeLoggingInterceptorTest.java b/core/src/test/java/org/springframework/ws/soap/endpoint/interceptor/SoapEnvelopeLoggingInterceptorTest.java new file mode 100644 index 00000000..83539e57 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/endpoint/interceptor/SoapEnvelopeLoggingInterceptorTest.java @@ -0,0 +1,116 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.endpoint.interceptor; + +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPMessage; + +import junit.framework.TestCase; +import org.apache.log4j.AppenderSkeleton; +import org.apache.log4j.BasicConfigurator; +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.apache.log4j.spi.LoggingEvent; +import org.springframework.ws.mock.MockTransportRequest; +import org.springframework.ws.soap.saaj.SaajSoapMessageContext; + +public class SoapEnvelopeLoggingInterceptorTest extends TestCase { + + private SoapEnvelopeLoggingInterceptor interceptor; + + private CountingAppender appender; + + private SaajSoapMessageContext messageContext; + + protected void setUp() throws Exception { + interceptor = new SoapEnvelopeLoggingInterceptor(); + appender = new SoapEnvelopeLoggingInterceptorTest.CountingAppender(); + BasicConfigurator.configure(appender); + Logger.getRootLogger().setLevel(Level.DEBUG); + MessageFactory messageFactory = MessageFactory.newInstance(); + SOAPMessage saajMessage = messageFactory.createMessage(); + messageContext = new SaajSoapMessageContext(saajMessage, new MockTransportRequest(), messageFactory); + appender.reset(); + } + + public void testHandleRequestDisabled() throws Exception { + interceptor.setLogRequest(false); + int eventCount = appender.getCount(); + interceptor.handleRequest(messageContext, null); + assertEquals("interceptor logged when disabled", appender.getCount(), eventCount); + } + + public void testHandleRequestEnabled() throws Exception { + int eventCount = appender.getCount(); + interceptor.handleRequest(messageContext, null); + assertTrue("interceptor did not log", appender.getCount() > eventCount); + } + + public void testHandleResponseDisabled() throws Exception { + messageContext.getResponse(); + interceptor.setLogResponse(false); + int eventCount = appender.getCount(); + interceptor.handleResponse(messageContext, null); + assertEquals("interceptor logged when disabled", appender.getCount(), eventCount); + } + + public void testHandleResponseEnabled() throws Exception { + messageContext.getResponse(); + int eventCount = appender.getCount(); + interceptor.handleResponse(messageContext, null); + assertTrue("interceptor did not log", appender.getCount() > eventCount); + } + + public void testHandleFaultDisabled() throws Exception { + messageContext.getResponse(); + interceptor.setLogFault(false); + int eventCount = appender.getCount(); + interceptor.handleFault(messageContext, null); + assertEquals("interceptor logged when disabled", appender.getCount(), eventCount); + } + + public void testHandleFaultEnabled() throws Exception { + messageContext.getResponse(); + int eventCount = appender.getCount(); + interceptor.handleResponse(messageContext, null); + assertTrue("interceptor did not log", appender.getCount() > eventCount); + } + + private static class CountingAppender extends AppenderSkeleton { + + private int count; + + public int getCount() { + return count; + } + + public void reset() { + count = 0; + } + + protected void append(LoggingEvent loggingEvent) { + count++; + } + + public boolean requiresLayout() { + return false; + } + + public void close() { + } + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/endpoint/mapping/DelegatingSoapEndpointMappingTest.java b/core/src/test/java/org/springframework/ws/soap/endpoint/mapping/DelegatingSoapEndpointMappingTest.java new file mode 100644 index 00000000..d15ea3b0 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/endpoint/mapping/DelegatingSoapEndpointMappingTest.java @@ -0,0 +1,54 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.endpoint.mapping; + +import junit.framework.TestCase; +import org.easymock.MockControl; +import org.springframework.ws.EndpointInvocationChain; +import org.springframework.ws.EndpointMapping; +import org.springframework.ws.mock.MockMessageContext; +import org.springframework.ws.soap.SoapEndpointInvocationChain; + +public class DelegatingSoapEndpointMappingTest extends TestCase { + + private DelegatingSoapEndpointMapping endpointMapping; + + private MockControl control; + + private EndpointMapping mock; + + protected void setUp() throws Exception { + endpointMapping = new DelegatingSoapEndpointMapping(); + control = MockControl.createControl(EndpointMapping.class); + mock = (EndpointMapping) control.getMock(); + endpointMapping.setDelegate(mock); + } + + public void testGetEndpointMapping() throws Exception { + String role = "http://www.springframework.org/spring-ws/role"; + endpointMapping.setActorOrRole(role); + MockMessageContext context = new MockMessageContext(); + EndpointInvocationChain delegateChain = new EndpointInvocationChain(new Object()); + control.expectAndReturn(mock.getEndpoint(context), delegateChain); + control.replay(); + SoapEndpointInvocationChain resultChain = (SoapEndpointInvocationChain) endpointMapping.getEndpoint(context); + assertNotNull("No chain returned", resultChain); + assertEquals("Invalid ampount of roles returned", 1, resultChain.getActorsOrRoles().length); + assertEquals("Invalid role returned", role, resultChain.getActorsOrRoles()[0]); + control.verify(); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/soap/endpoint/mapping/SoapActionEndpointMappingTest.java b/core/src/test/java/org/springframework/ws/soap/endpoint/mapping/SoapActionEndpointMappingTest.java new file mode 100644 index 00000000..693ad8b0 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/endpoint/mapping/SoapActionEndpointMappingTest.java @@ -0,0 +1,55 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.endpoint.mapping; + +import junit.framework.TestCase; +import org.springframework.ws.mock.MockMessageContext; +import org.springframework.ws.mock.MockTransportContext; +import org.springframework.ws.mock.MockTransportRequest; +import org.springframework.ws.mock.MockWebServiceMessage; + +public class SoapActionEndpointMappingTest extends TestCase { + + private SoapActionEndpointMapping mapping; + + private MockTransportRequest request; + + private MockMessageContext context; + + protected void setUp() throws Exception { + request = new MockTransportRequest(); + MockTransportContext transportContext = new MockTransportContext(request); + context = new MockMessageContext(new MockWebServiceMessage(), transportContext); + mapping = new SoapActionEndpointMapping(); + } + + public void testGetLookupKeyForMessage() throws Exception { + String soapAction = "http://springframework.org/spring-ws/SoapAction"; + request.addHeader(SoapActionEndpointMapping.SOAP_ACTION_HEADER, soapAction); + assertEquals("Invalid lookup key", soapAction, mapping.getLookupKeyForMessage(context)); + } + + public void testGetLookupKeyForMessageQuoted() throws Exception { + String soapAction = "http://springframework.org/spring-ws/SoapAction"; + request.addHeader(SoapActionEndpointMapping.SOAP_ACTION_HEADER, "\"" + soapAction + "\""); + assertEquals("Invalid lookup key", soapAction, mapping.getLookupKeyForMessage(context)); + } + + public void testValidateLookupKey() throws Exception { + mapping.validateLookupKey("SoapAction"); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/SaajAttachmentTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/SaajAttachmentTest.java new file mode 100644 index 00000000..e88cb174 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/saaj/SaajAttachmentTest.java @@ -0,0 +1,82 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import java.io.IOException; +import java.io.InputStream; +import javax.xml.soap.AttachmentPart; +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPMessage; + +import junit.framework.TestCase; +import org.springframework.util.FileCopyUtils; +import org.springframework.ws.soap.Attachment; + +/** + * @author Arjen Poutsma + */ +public class SaajAttachmentTest extends TestCase { + + private static final String CONTENTS = "attachment contents"; + + private static final String CONTENT_ID = "contentId"; + + private AttachmentPart saajAttachment; + + private Attachment attachment; + + protected void setUp() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(); + SOAPMessage saajMessage = messageFactory.createMessage(); + saajAttachment = saajMessage.createAttachmentPart(CONTENTS, "text/plain"); + saajAttachment.setContentId(CONTENT_ID); + saajMessage.addAttachmentPart(saajAttachment); + SaajSoapMessage saajSoapMessage = new SaajSoapMessage(saajMessage); + attachment = saajSoapMessage.getAttachment(CONTENT_ID); + } + + public void testGetSize() throws SOAPException { + assertEquals("Invalid size", saajAttachment.getSize(), attachment.getSize()); + } + + public void testContentId() { + assertEquals("Invalid content id", CONTENT_ID, attachment.getId()); + String id = "123"; + attachment.setId(id); + assertEquals("Invalid content id", id, attachment.getId()); + } + + public void testGetContentType() { + assertEquals("Invalid content type", "text/plain", attachment.getContentType()); + } + + public void testGetInputStream() throws IOException { + InputStream inputStream = attachment.getInputStream(); + assertNotNull("Invalid input stream returned", inputStream); + byte[] bytes = FileCopyUtils.copyToByteArray(inputStream); + assertEquals("Invalid size", CONTENTS.getBytes().length, bytes.length); + } + + public void testGetEmptyInputStream() throws IOException { + saajAttachment.clearContent(); + InputStream inputStream = attachment.getInputStream(); + assertNotNull("Invalid input stream returned", inputStream); + byte[] bytes = FileCopyUtils.copyToByteArray(inputStream); + assertEquals("Invalid size", 0, bytes.length); + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11BodyTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11BodyTest.java new file mode 100644 index 00000000..12bbaab5 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11BodyTest.java @@ -0,0 +1,34 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPMessage; + +import org.springframework.ws.soap.SoapBody; +import org.springframework.ws.soap.soap11.AbstractSoap11BodyTestCase; + +public class SaajSoap11BodyTest extends AbstractSoap11BodyTestCase { + + protected SoapBody createSoapBody() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(); + SOAPMessage saajMessage = messageFactory.createMessage(); + SaajSoapMessage saajSoapMessage = new SaajSoapMessage(saajMessage); + return saajSoapMessage.getSoapBody(); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11EnvelopeTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11EnvelopeTest.java new file mode 100644 index 00000000..8a5e47dc --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11EnvelopeTest.java @@ -0,0 +1,33 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPMessage; + +import org.springframework.ws.soap.SoapEnvelope; +import org.springframework.ws.soap.soap11.AbstractSoap11EnvelopeTestCase; + +public class SaajSoap11EnvelopeTest extends AbstractSoap11EnvelopeTestCase { + + protected SoapEnvelope createSoapEnvelope() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(); + SOAPMessage saajMessage = messageFactory.createMessage(); + SaajSoapMessage saajSoapMessage = new SaajSoapMessage(saajMessage); + return saajSoapMessage.getEnvelope(); + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11HeaderTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11HeaderTest.java new file mode 100644 index 00000000..0cb04fac --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11HeaderTest.java @@ -0,0 +1,33 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPMessage; + +import org.springframework.ws.soap.SoapHeader; +import org.springframework.ws.soap.soap11.AbstractSoap11HeaderTestCase; + +public class SaajSoap11HeaderTest extends AbstractSoap11HeaderTestCase { + + protected SoapHeader createSoapHeader() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(); + SOAPMessage saajMessage = messageFactory.createMessage(); + SaajSoapMessage saajSoapMessage = new SaajSoapMessage(saajMessage); + return saajSoapMessage.getSoapHeader(); + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageContextFactoryTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageContextFactoryTest.java new file mode 100644 index 00000000..ad954d37 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageContextFactoryTest.java @@ -0,0 +1,28 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import org.springframework.ws.context.MessageContextFactory; +import org.springframework.ws.soap.context.AbstractSoap11MessageContextFactoryTestCase; + +public class SaajSoap11MessageContextFactoryTest extends AbstractSoap11MessageContextFactoryTestCase { + + protected MessageContextFactory createSoapMessageContextFactory() { + return new SaajSoapMessageContextFactory(); + } + +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageContextTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageContextTest.java new file mode 100644 index 00000000..8301b402 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageContextTest.java @@ -0,0 +1,33 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPConstants; +import javax.xml.soap.SOAPException; + +import org.springframework.ws.soap.context.AbstractSoap11MessageContextTestCase; +import org.springframework.ws.soap.context.SoapMessageContext; +import org.springframework.ws.transport.TransportRequest; + +public class SaajSoap11MessageContextTest extends AbstractSoap11MessageContextTestCase { + + protected SoapMessageContext createMessageContext(TransportRequest transportRequest) throws SOAPException { + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL); + return new SaajSoapMessageContext(messageFactory.createMessage(), transportRequest, messageFactory); + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageTest.java new file mode 100644 index 00000000..cc70b0bb --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap11MessageTest.java @@ -0,0 +1,64 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj; + +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPMessage; +import javax.xml.transform.Result; +import javax.xml.transform.Source; + +import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.soap.soap11.AbstractSoap11MessageTestCase; +import org.springframework.xml.transform.StringResult; +import org.springframework.xml.transform.StringSource; + +public class SaajSoap11MessageTest extends AbstractSoap11MessageTestCase { + + private SOAPMessage saajMessage; + + protected SoapMessage createSoapMessage() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(); + saajMessage = messageFactory.createMessage(); + return new SaajSoapMessage(saajMessage); + } + + public void testGetPayloadSource() throws Exception { + saajMessage.getSOAPBody().addChildElement("child"); + Source source = soapMessage.getPayloadSource(); + StringResult result = new StringResult(); + transformer.transform(source, result); + assertXMLEqual("Invalid source", "", result.toString()); + } + + public void testGetPayloadSourceText() throws Exception { + saajMessage.getSOAPBody().addTextNode(" "); + saajMessage.getSOAPBody().addChildElement("child"); + Source source = soapMessage.getPayloadSource(); + StringResult result = new StringResult(); + transformer.transform(source, result); + assertXMLEqual("Invalid source", "", result.toString()); + } + + public void testGetPayloadResult() throws Exception { + StringSource source = new StringSource(""); + Result result = soapMessage.getPayloadResult(); + transformer.transform(source, result); + assertTrue("No child nodes created", saajMessage.getSOAPBody().hasChildNodes()); + assertEquals("Invalid child node created", "child", saajMessage.getSOAPBody().getFirstChild().getLocalName()); + } + +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12BodyTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12BodyTest.java new file mode 100644 index 00000000..fad7ee40 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12BodyTest.java @@ -0,0 +1,20 @@ +package org.springframework.ws.soap.saaj; + +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPConstants; +import javax.xml.soap.SOAPMessage; + +import org.springframework.ws.soap.SoapBody; +import org.springframework.ws.soap.soap12.AbstractSoap12BodyTestCase; + +public class SaajSoap12BodyTest extends AbstractSoap12BodyTestCase { + + protected SoapBody createSoapBody() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL); + SOAPMessage saajMessage = messageFactory.createMessage(); + saajMessage.getSOAPPart().getEnvelope().setPrefix("soapenv"); + SaajSoapMessage saajSoapMessage = new SaajSoapMessage(saajMessage); + return saajSoapMessage.getSoapBody(); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12EnvelopeTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12EnvelopeTest.java new file mode 100644 index 00000000..ae671dbf --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12EnvelopeTest.java @@ -0,0 +1,18 @@ +package org.springframework.ws.soap.saaj; + +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPConstants; +import javax.xml.soap.SOAPMessage; + +import org.springframework.ws.soap.SoapEnvelope; +import org.springframework.ws.soap.soap12.AbstractSoap12EnvelopeTestCase; + +public class SaajSoap12EnvelopeTest extends AbstractSoap12EnvelopeTestCase { + + protected SoapEnvelope createSoapEnvelope() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL); + SOAPMessage saajMessage = messageFactory.createMessage(); + SaajSoapMessage saajSoapMessage = new SaajSoapMessage(saajMessage); + return saajSoapMessage.getEnvelope(); + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12HeaderTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12HeaderTest.java new file mode 100644 index 00000000..fe5d8aff --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12HeaderTest.java @@ -0,0 +1,18 @@ +package org.springframework.ws.soap.saaj; + +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPConstants; +import javax.xml.soap.SOAPMessage; + +import org.springframework.ws.soap.SoapHeader; +import org.springframework.ws.soap.soap12.AbstractSoap12HeaderTestCase; + +public class SaajSoap12HeaderTest extends AbstractSoap12HeaderTestCase { + + protected SoapHeader createSoapHeader() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL); + SOAPMessage saajMessage = messageFactory.createMessage(); + SaajSoapMessage saajSoapMessage = new SaajSoapMessage(saajMessage); + return saajSoapMessage.getSoapHeader(); + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12MessageContextFactoryTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12MessageContextFactoryTest.java new file mode 100644 index 00000000..91ddd5ee --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12MessageContextFactoryTest.java @@ -0,0 +1,16 @@ +package org.springframework.ws.soap.saaj; + +import javax.xml.soap.SOAPConstants; + +import org.springframework.ws.context.MessageContextFactory; +import org.springframework.ws.soap.context.AbstractSoap12MessageContextFactoryTestCase; + +public class SaajSoap12MessageContextFactoryTest extends AbstractSoap12MessageContextFactoryTestCase { + + protected MessageContextFactory createSoapMessageContextFactory() throws Exception { + SaajSoapMessageContextFactory contextFactory = new SaajSoapMessageContextFactory(); + contextFactory.setSoapProtocol(SOAPConstants.SOAP_1_2_PROTOCOL); + return contextFactory; + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12MessageTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12MessageTest.java new file mode 100644 index 00000000..7edf10bc --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/saaj/SaajSoap12MessageTest.java @@ -0,0 +1,49 @@ +package org.springframework.ws.soap.saaj; + +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPConstants; +import javax.xml.soap.SOAPMessage; +import javax.xml.transform.Result; +import javax.xml.transform.Source; + +import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.soap.soap12.AbstractSoap12MessageTestCase; +import org.springframework.xml.transform.StringResult; +import org.springframework.xml.transform.StringSource; + +public class SaajSoap12MessageTest extends AbstractSoap12MessageTestCase { + + private SOAPMessage saajMessage; + + protected SoapMessage createSoapMessage() throws Exception { + MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL); + saajMessage = messageFactory.createMessage(); + return new SaajSoapMessage(saajMessage); + } + + public void testGetPayloadSource() throws Exception { + saajMessage.getSOAPBody().addChildElement("child"); + Source source = soapMessage.getPayloadSource(); + StringResult result = new StringResult(); + transformer.transform(source, result); + assertXMLEqual("Invalid source", "", result.toString()); + } + + public void testGetPayloadSourceText() throws Exception { + saajMessage.getSOAPBody().addTextNode(" "); + saajMessage.getSOAPBody().addChildElement("child"); + Source source = soapMessage.getPayloadSource(); + StringResult result = new StringResult(); + transformer.transform(source, result); + assertXMLEqual("Invalid source", "", result.toString()); + } + + public void testGetPayloadResult() throws Exception { + StringSource source = new StringSource(""); + Result result = soapMessage.getPayloadResult(); + transformer.transform(source, result); + assertTrue("No child nodes created", saajMessage.getSOAPBody().hasChildNodes()); + assertEquals("Invalid child node created", "child", saajMessage.getSOAPBody().getFirstChild().getLocalName()); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/saaj/support/SaajUtilsTest.java b/core/src/test/java/org/springframework/ws/soap/saaj/support/SaajUtilsTest.java new file mode 100644 index 00000000..223ad9b5 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/saaj/support/SaajUtilsTest.java @@ -0,0 +1,117 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.saaj.support; + +import javax.xml.namespace.QName; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.soap.MessageFactory; +import javax.xml.soap.Name; +import javax.xml.soap.SOAPEnvelope; +import javax.xml.soap.SOAPMessage; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.springframework.core.io.ClassPathResource; +import org.springframework.util.StringUtils; +import org.w3c.dom.Document; + +public class SaajUtilsTest extends XMLTestCase { + + private MessageFactory messageFactory; + + protected void setUp() throws Exception { + messageFactory = MessageFactory.newInstance(); + } + + public void testToName() throws Exception { + SOAPMessage message = messageFactory.createMessage(); + QName qName = new QName("localPart"); + SOAPEnvelope envelope = message.getSOAPPart().getEnvelope(); + Name name = SaajUtils.toName(qName, envelope, envelope); + assertNotNull("Invalid name", name); + assertEquals("Invalid local part", qName.getLocalPart(), name.getLocalName()); + assertFalse("Invalid prefix", StringUtils.hasLength(name.getPrefix())); + assertFalse("Invalid namespace", StringUtils.hasLength(name.getURI())); + } + + public void testToNameNamespace() throws Exception { + SOAPMessage message = messageFactory.createMessage(); + QName qName = new QName("namespace", "localPart"); + SOAPEnvelope envelope = message.getSOAPPart().getEnvelope(); + envelope.addNamespaceDeclaration("prefix", "namespace"); + Name name = SaajUtils.toName(qName, envelope, envelope); + assertNotNull("Invalid name", name); + assertEquals("Invalid namespace", qName.getNamespaceURI(), name.getURI()); + assertEquals("Invalid local part", qName.getLocalPart(), name.getLocalName()); + assertEquals("Invalid prefix", "prefix", name.getPrefix()); + } + + public void testToNameNamespacePrefix() throws Exception { + SOAPMessage message = messageFactory.createMessage(); + QName qName = new QName("namespace", "localPart", "prefix"); + SOAPEnvelope envelope = message.getSOAPPart().getEnvelope(); + Name name = SaajUtils.toName(qName, envelope, envelope); + assertNotNull("Invalid name", name); + assertEquals("Invalid namespace", qName.getNamespaceURI(), name.getURI()); + assertEquals("Invalid local part", qName.getLocalPart(), name.getLocalName()); + assertEquals("Invalid prefix", qName.getPrefix(), name.getPrefix()); + } + + public void testToQName() throws Exception { + SOAPMessage message = messageFactory.createMessage(); + Name name = message.getSOAPPart().getEnvelope().createName("localPart", null, null); + QName qName = SaajUtils.toQName(name); + assertNotNull("Invalid qName", qName); + assertEquals("Invalid namespace", name.getURI(), qName.getNamespaceURI()); + assertFalse("Invalid prefix", StringUtils.hasLength(qName.getPrefix())); + assertFalse("Invalid namespace", StringUtils.hasLength(qName.getNamespaceURI())); + } + + public void testToQNameNamespace() throws Exception { + SOAPMessage message = messageFactory.createMessage(); + Name name = message.getSOAPPart().getEnvelope().createName("localPart", null, "namespace"); + QName qName = SaajUtils.toQName(name); + assertNotNull("Invalid qName", qName); + assertEquals("Invalid namespace", name.getURI(), qName.getNamespaceURI()); + assertEquals("Invalid local part", name.getLocalName(), qName.getLocalPart()); + assertFalse("Invalid prefix", StringUtils.hasLength(qName.getPrefix())); + } + + public void testToQNamePrefixNamespace() throws Exception { + SOAPMessage message = messageFactory.createMessage(); + Name name = message.getSOAPPart().getEnvelope().createName("localPart", "prefix", "namespace"); + QName qName = SaajUtils.toQName(name); + assertNotNull("Invalid qName", qName); + assertEquals("Invalid namespace", name.getURI(), qName.getNamespaceURI()); + assertEquals("Invalid local part", name.getLocalName(), qName.getLocalPart()); + assertEquals("Invalid prefix", name.getPrefix(), qName.getPrefix()); + } + + public void testLoadMessage() throws Exception { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document document = builder.parse(getClass().getResourceAsStream("soapMessage.xml")); + SOAPMessage soapMessage = + SaajUtils.loadMessage(new ClassPathResource("soapMessage.xml", getClass()), messageFactory); + assertXMLEqual(soapMessage.getSOAPPart(), document); + } + + public void testGetSaajVersion() throws Exception { + assertEquals("Invalid SAAJ version", SaajUtils.SAAJ_13, SaajUtils.getSaajVersion()); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11BodyTestCase.java b/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11BodyTestCase.java new file mode 100644 index 00000000..4c6c9315 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11BodyTestCase.java @@ -0,0 +1,108 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.soap11; + +import java.util.Locale; +import javax.xml.namespace.QName; + +import org.springframework.ws.soap.AbstractSoapBodyTestCase; +import org.springframework.ws.soap.SoapFault; +import org.springframework.ws.soap.SoapFaultDetail; +import org.springframework.ws.soap.SoapFaultDetailElement; +import org.springframework.ws.soap.SoapVersion; +import org.springframework.xml.transform.StringResult; +import org.springframework.xml.transform.StringSource; + +public abstract class AbstractSoap11BodyTestCase extends AbstractSoapBodyTestCase { + + public void testGetName() throws Exception { + assertEquals("Invalid qualified name", SoapVersion.SOAP_11.getBodyName(), soapBody.getName()); + } + + public void testGetSource() throws Exception { + StringResult result = new StringResult(); + transformer.transform(soapBody.getSource(), result); + assertXMLEqual("Invalid contents of body", + "", + result.toString()); + } + + public void testAddMustUnderstandFault() throws Exception { + SoapFault fault = soapBody.addMustUnderstandFault("SOAP Must Understand Error", null); + assertEquals("Invalid fault code", + new QName("http://schemas.xmlsoap.org/soap/envelope/", "MustUnderstand"), + fault.getFaultCode()); + assertPayloadEqual("" + + "SOAP-ENV:MustUnderstand" + + "SOAP Must Understand Error"); + } + + public void testAddClientFault() throws Exception { + SoapFault fault = soapBody.addClientOrSenderFault("faultString", null); + assertEquals("Invalid fault code", + new QName("http://schemas.xmlsoap.org/soap/envelope/", "Client"), + fault.getFaultCode()); + assertPayloadEqual("" + + "SOAP-ENV:Client" + "faultString" + + ""); + } + + public void testAddServerFault() throws Exception { + SoapFault fault = soapBody.addServerOrReceiverFault("faultString", null); + assertEquals("Invalid fault code", + new QName("http://schemas.xmlsoap.org/soap/envelope/", "Server"), + fault.getFaultCode()); + assertPayloadEqual("" + + "SOAP-ENV:Server" + "faultString" + + ""); + } + + public void testAddFault() throws Exception { + QName faultCode = new QName("http://www.springframework.org", "fault", "spring"); + String faultString = "faultString"; + Soap11Fault fault = ((Soap11Body) soapBody).addFault(faultCode, "faultString", Locale.ENGLISH); + assertNotNull("Null returned", fault); + assertTrue("SoapBody has no fault", soapBody.hasFault()); + assertNotNull("SoapBody has no fault", soapBody.getFault()); + assertEquals("Invalid fault code", faultCode, fault.getFaultCode()); + assertEquals("Invalid fault string", faultString, fault.getFaultString()); + assertEquals("Invalid fault string locale", Locale.ENGLISH, fault.getFaultStringLocale()); + String actor = "http://www.springframework.org/actor"; + fault.setFaultActorOrRole(actor); + assertEquals("Invalid fault actor", actor, fault.getFaultActorOrRole()); + assertPayloadEqual("" + "spring:fault" + + "" + faultString + "" + "" + actor + + "" + ""); + } + + public void testAddFaultWithDetail() throws Exception { + SoapFault fault = ((Soap11Body) soapBody) + .addFault(new QName("namespace", "localPart", "prefix"), "Fault", null); + SoapFaultDetail detail = fault.addFaultDetail(); + SoapFaultDetailElement detailElement = + detail.addFaultDetailElement(new QName("namespace", "localPart", "prefix")); + StringSource detailContents = new StringSource(""); + transformer.transform(detailContents, detailElement.getResult()); + assertPayloadEqual("" + + "prefix:localPart" + + "Fault" + + "" + + ""); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11EnvelopeTestCase.java b/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11EnvelopeTestCase.java new file mode 100644 index 00000000..1b3e5564 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11EnvelopeTestCase.java @@ -0,0 +1,40 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.soap11; + +import javax.xml.namespace.QName; + +import org.springframework.ws.soap.AbstractSoapEnvelopeTestCase; +import org.springframework.ws.soap.SoapVersion; +import org.springframework.xml.transform.StringResult; + +public abstract class AbstractSoap11EnvelopeTestCase extends AbstractSoapEnvelopeTestCase { + + public void testGetName() throws Exception { + assertEquals("Invalid qualified name", + new QName(SoapVersion.SOAP_11.getEnvelopeNamespaceUri(), "Envelope"), + soapEnvelope.getName()); + } + + public void testGetContent() throws Exception { + StringResult result = new StringResult(); + transformer.transform(soapEnvelope.getSource(), result); + assertXMLEqual("
", + result.toString()); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11HeaderTestCase.java b/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11HeaderTestCase.java new file mode 100644 index 00000000..75a6fa6d --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11HeaderTestCase.java @@ -0,0 +1,41 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.soap11; + +import javax.xml.namespace.QName; + +import org.springframework.ws.soap.AbstractSoapHeaderTestCase; +import org.springframework.ws.soap.SoapVersion; +import org.springframework.xml.transform.StringResult; + +public abstract class AbstractSoap11HeaderTestCase extends AbstractSoapHeaderTestCase { + + public void testGetName() throws Exception { + assertEquals("Invalid qualified name", + new QName(SoapVersion.SOAP_11.getEnvelopeNamespaceUri(), "Header"), + soapHeader.getName()); + } + + public void testGetSource() throws Exception { + StringResult result = new StringResult(); + transformer.transform(soapHeader.getSource(), result); + assertXMLEqual("Invalid contents of header", + "", + result.toString()); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11MessageTestCase.java b/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11MessageTestCase.java new file mode 100644 index 00000000..69c4dca6 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/soap11/AbstractSoap11MessageTestCase.java @@ -0,0 +1,43 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.soap11; + +import java.io.ByteArrayOutputStream; + +import junit.framework.Assert; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.ws.soap.AbstractSoapMessageTestCase; +import org.springframework.ws.soap.SoapVersion; + +public abstract class AbstractSoap11MessageTestCase extends AbstractSoapMessageTestCase { + + protected final Resource[] getSoapSchemas() { + return new Resource[]{new ClassPathResource("soap11.xsd", AbstractSoap11MessageTestCase.class)}; + } + + public void testGetVersion() throws Exception { + Assert.assertEquals("Invalid SOAP version", SoapVersion.SOAP_11, soapMessage.getVersion()); + } + + public void testWriteToOutputStream() throws Exception { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + soapMessage.writeTo(outputStream); + assertXMLEqual("
", + new String(outputStream.toByteArray(), "UTF-8")); + } +} diff --git a/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12BodyTestCase.java b/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12BodyTestCase.java new file mode 100644 index 00000000..f2a96d15 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12BodyTestCase.java @@ -0,0 +1,129 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.soap12; + +import java.util.Iterator; +import java.util.Locale; +import javax.xml.namespace.QName; + +import org.springframework.ws.soap.AbstractSoapBodyTestCase; +import org.springframework.ws.soap.SoapFault; +import org.springframework.ws.soap.SoapFaultDetail; +import org.springframework.ws.soap.SoapFaultDetailElement; +import org.springframework.ws.soap.SoapVersion; +import org.springframework.xml.transform.StringResult; +import org.springframework.xml.transform.StringSource; + +public abstract class AbstractSoap12BodyTestCase extends AbstractSoapBodyTestCase { + + public void testGetName() throws Exception { + assertEquals("Invalid qualified name", new QName(SoapVersion.SOAP_12.getEnvelopeNamespaceUri(), "Body"), + soapBody.getName()); + } + + public void testGetSource() throws Exception { + StringResult result = new StringResult(); + transformer.transform(soapBody.getSource(), result); + assertXMLEqual("Invalid contents of body", "", + result.toString()); + } + + public void testAddMustUnderstandFault() throws Exception { + SoapFault fault = soapBody.addMustUnderstandFault("SOAP Must Understand Error", Locale.ENGLISH); + assertEquals("Invalid fault code", new QName("http://www.w3.org/2003/05/soap-envelope", "MustUnderstand"), + fault.getFaultCode()); + StringResult result = new StringResult(); + transformer.transform(fault.getSource(), result); + assertXMLEqual("Invalid contents of body", + "" + + "" + soapBody.getName().getPrefix() + + ":MustUnderstand" + + "SOAP Must Understand Error" + + "", result.toString()); + } + + public void testAddSenderFault() throws Exception { + SoapFault fault = soapBody.addClientOrSenderFault("faultString", Locale.ENGLISH); + assertEquals("Invalid fault code", new QName("http://www.w3.org/2003/05/soap-envelope", "Sender"), + fault.getFaultCode()); + StringResult result = new StringResult(); + transformer.transform(fault.getSource(), result); + assertXMLEqual("Invalid contents of body", + "" + + "" + soapBody.getName().getPrefix() + + ":Sender" + + "faultString" + + "", result.toString()); + } + + public void testAddReceiverFault() throws Exception { + SoapFault fault = soapBody.addServerOrReceiverFault("faultString", Locale.ENGLISH); + assertEquals("Invalid fault code", new QName("http://www.w3.org/2003/05/soap-envelope", "Receiver"), + fault.getFaultCode()); + StringResult result = new StringResult(); + transformer.transform(fault.getSource(), result); + assertXMLEqual("Invalid contents of body", + "" + + "" + soapBody.getName().getPrefix() + + ":Receiver" + + "faultString" + + "", result.toString()); + } + + public void testAddFaultWithDetail() throws Exception { + SoapFault fault = soapBody.addServerOrReceiverFault("faultString", Locale.ENGLISH); + SoapFaultDetail detail = fault.addFaultDetail(); + SoapFaultDetailElement detailElement = + detail.addFaultDetailElement(new QName("namespace", "localPart", "prefix")); + StringSource detailContents = new StringSource(""); + transformer.transform(detailContents, detailElement.getResult()); + StringResult result = new StringResult(); + transformer.transform(fault.getSource(), result); + assertXMLEqual("Invalid source for body", + "" + + "" + soapBody.getName().getPrefix() + ":Receiver" + + "" + + "faultString" + + "" + + "", result.toString()); + } + + public void testAddFaultWithSubcode() throws Exception { + Soap12Fault fault = (Soap12Fault) soapBody.addServerOrReceiverFault("faultString", Locale.ENGLISH); + QName subcode1 = new QName("http://www.springframework.org", "Subcode1", "spring-ws"); + fault.addFaultSubcode(subcode1); + QName subcode2 = new QName("http://www.springframework.org", "Subcode2", "spring-ws"); + fault.addFaultSubcode(subcode2); + Iterator iterator = fault.getFaultSubcodes(); + assertTrue("No subcode found", iterator.hasNext()); + assertEquals("Invalid subcode", subcode1, iterator.next()); + assertTrue("No subcode found", iterator.hasNext()); + assertEquals("Invalid subcode", subcode2, iterator.next()); + assertFalse("Subcode found", iterator.hasNext()); + StringResult result = new StringResult(); + transformer.transform(fault.getSource(), result); + assertXMLEqual("Invalid source for body", + "" + + "" + soapBody.getName().getPrefix() + ":Receiver" + + "spring-ws:Subcode1" + + "spring-ws:Subcode2" + + "" + + "faultString" + + "", result.toString()); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12EnvelopeTestCase.java b/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12EnvelopeTestCase.java new file mode 100644 index 00000000..97430457 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12EnvelopeTestCase.java @@ -0,0 +1,39 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.soap12; + +import javax.xml.namespace.QName; + +import org.springframework.ws.soap.AbstractSoapEnvelopeTestCase; +import org.springframework.ws.soap.SoapVersion; +import org.springframework.xml.transform.StringResult; + +public abstract class AbstractSoap12EnvelopeTestCase extends AbstractSoapEnvelopeTestCase { + + public void testGetName() throws Exception { + assertEquals("Invalid qualified name", new QName(SoapVersion.SOAP_12.getEnvelopeNamespaceUri(), "Envelope"), + soapEnvelope.getName()); + } + + public void testGetSource() throws Exception { + StringResult result = new StringResult(); + transformer.transform(soapEnvelope.getSource(), result); + assertXMLEqual("
" + "", + result.toString()); + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12HeaderTestCase.java b/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12HeaderTestCase.java new file mode 100644 index 00000000..18a6e3a0 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12HeaderTestCase.java @@ -0,0 +1,70 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.soap12; + +import javax.xml.namespace.QName; + +import org.springframework.ws.soap.AbstractSoapHeaderTestCase; +import org.springframework.ws.soap.SoapHeaderElement; +import org.springframework.ws.soap.SoapVersion; +import org.springframework.xml.transform.StringResult; + +public abstract class AbstractSoap12HeaderTestCase extends AbstractSoapHeaderTestCase { + + public void testGetName() throws Exception { + assertEquals("Invalid qualified name", new QName(SoapVersion.SOAP_12.getEnvelopeNamespaceUri(), "Header"), + soapHeader.getName()); + } + + public void testGetSource() throws Exception { + StringResult result = new StringResult(); + transformer.transform(soapHeader.getSource(), result); + assertXMLEqual("Invalid contents of header", "
", + result.toString()); + } + + public void testAddNotUnderstood() throws Exception { + Soap12Header soap12Header = (Soap12Header) soapHeader; + QName headerName = new QName("http://www.springframework.org", "NotUnderstood", "spring-ws"); + soap12Header.addNotUnderstoodHeaderElement(headerName); + StringResult result = new StringResult(); + transformer.transform(soapHeader.getSource(), result); + assertXMLEqual("Invalid contents of header", "
" + + "" + + "
", result.toString()); + } + + public void testAddUpgrade() throws Exception { + String[] supportedUris = + new String[]{"http://schemas.xmlsoap.org/soap/envelope/", "http://www.w3.org/2003/05/soap-envelope"}; + Soap12Header soap12Header = (Soap12Header) soapHeader; + SoapHeaderElement header = soap12Header.addUpgradeHeaderElement(supportedUris); + StringResult result = new StringResult(); + transformer.transform(soapHeader.getSource(), result); + assertEquals("Invalid name", header.getName(), new QName("http://www.w3.org/2003/05/soap-envelope", "Upgrade")); + // XMLUnit can't test this: +/* + assertXMLEqual("Invalid contents of header", "
" + + "" + + "" + + "" + + "" + + "
", result.toString()); +*/ + } + +} diff --git a/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12MessageTestCase.java b/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12MessageTestCase.java new file mode 100644 index 00000000..410842b3 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/soap/soap12/AbstractSoap12MessageTestCase.java @@ -0,0 +1,46 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.soap12; + +import java.io.ByteArrayOutputStream; + +import junit.framework.Assert; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.ws.soap.AbstractSoapMessageTestCase; +import org.springframework.ws.soap.SoapVersion; + +public abstract class AbstractSoap12MessageTestCase extends AbstractSoapMessageTestCase { + + public void testGetVersion() throws Exception { + Assert.assertEquals("Invalid SOAP version", SoapVersion.SOAP_12, soapMessage.getVersion()); + } + + public void testWriteTo() throws Exception { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + soapMessage.writeTo(outputStream); + assertXMLEqual("
", + new String(outputStream.toByteArray(), "UTF-8")); + } + + protected final Resource[] getSoapSchemas() { + return new Resource[]{new ClassPathResource("xml.xsd", AbstractSoap12MessageTestCase.class), + new ClassPathResource("soap12.xsd", AbstractSoap12MessageTestCase.class)}; + } + + +} diff --git a/core/src/test/java/org/springframework/ws/transport/http/HttpTransportRequestTest.java b/core/src/test/java/org/springframework/ws/transport/http/HttpTransportRequestTest.java new file mode 100644 index 00000000..94c66c24 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/transport/http/HttpTransportRequestTest.java @@ -0,0 +1,59 @@ +package org.springframework.ws.transport.http; + +import java.util.Iterator; + +import junit.framework.TestCase; +import org.springframework.mock.web.MockHttpServletRequest; + +public class HttpTransportRequestTest extends TestCase { + + private HttpTransportRequest transportRequest; + + private MockHttpServletRequest mockRequest; + + protected void setUp() throws Exception { + mockRequest = new MockHttpServletRequest(); + transportRequest = new HttpTransportRequest(mockRequest); + } + + public void testGetHttpServletRequest() throws Exception { + assertEquals("Invalid request", mockRequest, transportRequest.getHttpServletRequest()); + } + + public void testGetHeaderNames() throws Exception { + mockRequest.addHeader("header1", "value11"); + mockRequest.addHeader("header1", "value12"); + mockRequest.addHeader("header2", "value2"); + Iterator headers = transportRequest.getHeaderNames(); + assertTrue("Invalid amount of header names", headers.hasNext()); + String header = (String) headers.next(); + assertTrue("Invalid header", "header1".equals(header) || "header2".equals(header)); + assertTrue("Invalid amount of header names", headers.hasNext()); + header = (String) headers.next(); + assertTrue("Invalid header", "header1".equals(header) || "header2".equals(header)); + assertFalse("Invalid amount of header names", headers.hasNext()); + } + + public void testGetHeaders() throws Exception { + mockRequest.addHeader("header", "value1"); + mockRequest.addHeader("header", "value2"); + Iterator values = transportRequest.getHeaders("header"); + assertTrue("Invalid amount of header names", values.hasNext()); + String value = (String) values.next(); + assertTrue("Invalid value", "value1".equals(value) || "value2".equals(value)); + assertTrue("Invalid amount of header names", values.hasNext()); + value = (String) values.next(); + assertTrue("Invalid value", "value1".equals(value) || "value2".equals(value)); + assertFalse("Invalid amount of header names", values.hasNext()); + } + + public void testGetURL() throws Exception { + mockRequest.setScheme("http"); + mockRequest.setServerName("www.example.com"); + mockRequest.setServerPort(8080); + mockRequest.setRequestURI("/services/Service"); + String url = transportRequest.getUrl(); + assertNotNull("No url returned", url); + assertEquals("Invalid url returned", "http://www.example.com:8080/services/Service", url); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/transport/http/MessageEndpointHandlerAdapterTest.java b/core/src/test/java/org/springframework/ws/transport/http/MessageEndpointHandlerAdapterTest.java new file mode 100644 index 00000000..c71ed509 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/transport/http/MessageEndpointHandlerAdapterTest.java @@ -0,0 +1,208 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.transport.http; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; + +import junit.framework.TestCase; +import org.easymock.MockControl; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.ws.NoEndpointFoundException; +import org.springframework.ws.context.MessageContextFactory; +import org.springframework.ws.endpoint.MessageEndpoint; +import org.springframework.ws.mock.MockTransportContext; +import org.springframework.ws.soap.SoapBody; +import org.springframework.ws.soap.SoapMessage; +import org.springframework.ws.soap.context.SoapMessageContext; + +public class MessageEndpointHandlerAdapterTest extends TestCase { + + private static final String REQUEST = " \n" + " \n" + + " \n" + " DIS\n" + + " \n" + " \n" + ""; + + private MessageEndpointHandlerAdapter adapter; + + private MockHttpServletRequest httpRequest; + + private MockHttpServletResponse httpResponse; + + private MockControl endpointControl; + + private MessageEndpoint endpointMock; + + private MockControl factoryControl; + + private MessageContextFactory factoryMock; + + private MockControl contextControl; + + private SoapMessageContext contextMock; + + private MockControl messageControl; + + private SoapMessage messageMock; + + private MockControl bodyControl; + + private SoapBody bodyMock; + + protected void setUp() throws Exception { + adapter = new MessageEndpointHandlerAdapter(); + httpRequest = new MockHttpServletRequest(); + httpResponse = new MockHttpServletResponse(); + endpointControl = MockControl.createControl(MessageEndpoint.class); + endpointMock = (MessageEndpoint) endpointControl.getMock(); + factoryControl = MockControl.createControl(MessageContextFactory.class); + factoryMock = (MessageContextFactory) factoryControl.getMock(); + adapter.setMessageContextFactory(factoryMock); + contextControl = MockControl.createControl(SoapMessageContext.class); + contextMock = (SoapMessageContext) contextControl.getMock(); + messageControl = MockControl.createControl(SoapMessage.class); + messageMock = (SoapMessage) messageControl.getMock(); + bodyControl = MockControl.createControl(SoapBody.class); + bodyMock = (SoapBody) bodyControl.getMock(); + } + + public void testHandleNonPost() throws Exception { + httpRequest.setMethod("GET"); + endpointControl.replay(); + try { + adapter.handle(httpRequest, httpResponse, endpointMock); + fail("ServletException expected"); + } + catch (ServletException ex) { + // expected + } + endpointControl.verify(); + } + + public void testHandlePostNoResponse() throws Exception { + httpRequest.setMethod("POST"); + httpRequest.setContent(MessageEndpointHandlerAdapterTest.REQUEST.getBytes("UTF-8")); + httpRequest.setContentType("text/xml; charset=\"utf-8\""); + httpRequest.setCharacterEncoding("UTF-8"); + endpointMock.invoke(null); + endpointControl.setMatcher(MockControl.ALWAYS_MATCHER); + factoryMock.createContext(new MockTransportContext()); + factoryControl.setMatcher(MockControl.ALWAYS_MATCHER); + factoryControl.setReturnValue(contextMock); + contextControl.expectAndReturn(contextMock.hasResponse(), false); + + replayMockControls(); + + adapter.handle(httpRequest, httpResponse, endpointMock); + + assertEquals("Invalid status code on response", HttpServletResponse.SC_NO_CONTENT, httpResponse.getStatus()); + assertEquals("Response written", 0, httpResponse.getContentAsString().length()); + verifyMockControls(); + } + + public void testHandlePostResponse() throws Exception { + httpRequest.setMethod("POST"); + httpRequest.setContent(MessageEndpointHandlerAdapterTest.REQUEST.getBytes("UTF-8")); + httpRequest.setContentType("text/xml; charset=\"utf-8\""); + httpRequest.setCharacterEncoding("UTF-8"); + endpointMock.invoke(null); + endpointControl.setMatcher(MockControl.ALWAYS_MATCHER); + factoryMock.createContext(new MockTransportContext()); + factoryControl.setMatcher(MockControl.ALWAYS_MATCHER); + factoryControl.setReturnValue(contextMock); + contextControl.expectAndReturn(contextMock.hasResponse(), true); + contextControl.expectAndReturn(contextMock.getResponse(), messageMock); + messageControl.expectAndReturn(messageMock.getSoapBody(), bodyMock); + bodyControl.expectAndReturn(bodyMock.hasFault(), false); + contextMock.sendResponse(new HttpTransportResponse(httpResponse)); + contextControl.setMatcher(MockControl.ALWAYS_MATCHER); + + replayMockControls(); + + adapter.handle(httpRequest, httpResponse, endpointMock); + + assertEquals("Invalid status code on response", HttpServletResponse.SC_OK, httpResponse.getStatus()); + verifyMockControls(); + } + + public void testHandlePostFault() throws Exception { + httpRequest.setMethod("POST"); + httpRequest.setContent(MessageEndpointHandlerAdapterTest.REQUEST.getBytes("UTF-8")); + httpRequest.setContentType("text/xml; charset=\"utf-8\""); + httpRequest.setCharacterEncoding("UTF-8"); + endpointMock.invoke(null); + endpointControl.setMatcher(MockControl.ALWAYS_MATCHER); + factoryMock.createContext(new MockTransportContext()); + factoryControl.setMatcher(MockControl.ALWAYS_MATCHER); + factoryControl.setReturnValue(contextMock); + contextControl.expectAndReturn(contextMock.hasResponse(), true); + contextControl.expectAndReturn(contextMock.getResponse(), messageMock); + messageControl.expectAndReturn(messageMock.getSoapBody(), bodyMock); + bodyControl.expectAndReturn(bodyMock.hasFault(), true); + contextMock.sendResponse(null); + contextControl.setMatcher(MockControl.ALWAYS_MATCHER); + + replayMockControls(); + + adapter.handle(httpRequest, httpResponse, endpointMock); + + assertEquals("Invalid status code on response", + HttpServletResponse.SC_INTERNAL_SERVER_ERROR, + httpResponse.getStatus()); + verifyMockControls(); + } + + public void testHandleNotFound() throws Exception { + httpRequest.setMethod("POST"); + httpRequest.setContent(MessageEndpointHandlerAdapterTest.REQUEST.getBytes("UTF-8")); + httpRequest.setContentType("text/xml; charset=\"utf-8\""); + httpRequest.setCharacterEncoding("UTF-8"); + endpointMock.invoke(null); + endpointControl.setMatcher(MockControl.ALWAYS_MATCHER); + endpointControl.setThrowable(new NoEndpointFoundException(null)); + factoryMock.createContext(new MockTransportContext()); + factoryControl.setMatcher(MockControl.ALWAYS_MATCHER); + factoryControl.setReturnValue(contextMock); + + replayMockControls(); + + adapter.handle(httpRequest, httpResponse, endpointMock); + assertEquals("No 404 returned", HttpServletResponse.SC_NOT_FOUND, httpResponse.getStatus()); + + verifyMockControls(); + + } + + private void replayMockControls() { + endpointControl.replay(); + factoryControl.replay(); + contextControl.replay(); + messageControl.replay(); + bodyControl.replay(); + } + + private void verifyMockControls() { + endpointControl.verify(); + factoryControl.verify(); + contextControl.verify(); + messageControl.verify(); + bodyControl.verify(); + } + +} diff --git a/core/src/test/java/org/springframework/ws/transport/http/WsdlDefinitionHandlerAdapterTest.java b/core/src/test/java/org/springframework/ws/transport/http/WsdlDefinitionHandlerAdapterTest.java new file mode 100644 index 00000000..9628b258 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/transport/http/WsdlDefinitionHandlerAdapterTest.java @@ -0,0 +1,152 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.transport.http; + +import java.net.URL; +import javax.servlet.ServletException; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.easymock.MockControl; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.ws.wsdl.WsdlDefinition; +import org.springframework.xml.transform.StringSource; +import org.w3c.dom.Document; + +public class WsdlDefinitionHandlerAdapterTest extends XMLTestCase { + + private WsdlDefinitionHandlerAdapter adapter; + + private MockControl definitionControl; + + private WsdlDefinition definitionMock; + + private MockHttpServletRequest request; + + private MockHttpServletResponse response; + + protected void setUp() throws Exception { + adapter = new WsdlDefinitionHandlerAdapter(); + definitionControl = MockControl.createControl(WsdlDefinition.class); + definitionMock = (WsdlDefinition) definitionControl.getMock(); + adapter.afterPropertiesSet(); + request = new MockHttpServletRequest(); + response = new MockHttpServletResponse(); + } + + public void testHandleGet() throws Exception { + request.setMethod("GET"); + String definition = ""; + definitionControl.expectAndReturn(definitionMock.getSource(), new StringSource(definition)); + definitionControl.replay(); + adapter.handle(request, response, definitionMock); + assertXMLEqual(definition, response.getContentAsString()); + definitionControl.verify(); + } + + public void testHandleNonGet() throws Exception { + request.setMethod("POST"); + definitionControl.replay(); + try { + adapter.handle(request, response, definitionMock); + fail("ServletException expected"); + } + catch (ServletException ex) { + // expected + } + definitionControl.verify(); + } + + public void testTransformLocations() throws Exception { + adapter.setTransformLocations(true); + request.setMethod("GET"); + request.setScheme("http"); + request.setServerName("example.com"); + request.setServerPort(8080); + request.setContextPath("/context"); + request.setServletPath("/service.wsdl"); + request.setPathInfo(null); + request.setRequestURI("/context/service.wsdl"); + definitionControl.replay(); + + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + documentBuilderFactory.setNamespaceAware(true); + DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); + Document result = documentBuilder.parse(getClass().getResourceAsStream("wsdl11-input.wsdl")); + adapter.transformLocations(result, request); + Document expectedDocument = documentBuilder.parse(getClass().getResourceAsStream("wsdl11-expected.wsdl")); + assertXMLEqual("Invalid result", expectedDocument, result); + + definitionControl.verify(); + } + + public void testTransformLocationFullUrl() throws Exception { + request.setScheme("http"); + request.setServerName("example.com"); + request.setServerPort(8080); + request.setContextPath("/context"); + request.setPathInfo("/service.wsdl"); + request.setRequestURI("/context/service.wsdl"); + String oldLocation = "http://localhost:8080/context/service"; + + String result = adapter.transformLocation(oldLocation, request); + assertNotNull("No result", result); + assertEquals("Invalid result", new URL("http://example.com:8080/context/service"), new URL(result)); + } + + public void testTransformLocationEmptyContextFullUrl() throws Exception { + request.setScheme("http"); + request.setServerName("example.com"); + request.setServerPort(8080); + request.setContextPath(""); + request.setRequestURI("/service.wsdl"); + String oldLocation = "http://localhost:8080/service"; + + String result = adapter.transformLocation(oldLocation, request); + assertNotNull("No result", result); + assertEquals("Invalid result", new URL("http://example.com:8080/service"), new URL(result)); + } + + public void testTransformLocationRelativeUrl() throws Exception { + request.setScheme("http"); + request.setServerName("example.com"); + request.setServerPort(8080); + request.setContextPath("/context"); + request.setPathInfo("/service.wsdl"); + request.setRequestURI("/context/service.wsdl"); + String oldLocation = "/service"; + + String result = adapter.transformLocation(oldLocation, request); + assertNotNull("No result", result); + assertEquals("Invalid result", new URL("http://example.com:8080/context/service"), new URL(result)); + } + + public void testTransformLocationEmptyContextRelativeUrl() throws Exception { + request.setScheme("http"); + request.setServerName("example.com"); + request.setServerPort(8080); + request.setContextPath(""); + request.setRequestURI("/service.wsdl"); + String oldLocation = "/service"; + + String result = adapter.transformLocation(oldLocation, request); + assertNotNull("No result", result); + assertEquals("Invalid result", new URL("http://example.com:8080/service"), new URL(result)); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/springframework/ws/wsdl/wsdl11/SimpleWsdl11DefinitionTest.java b/core/src/test/java/org/springframework/ws/wsdl/wsdl11/SimpleWsdl11DefinitionTest.java new file mode 100644 index 00000000..63ffd842 --- /dev/null +++ b/core/src/test/java/org/springframework/ws/wsdl/wsdl11/SimpleWsdl11DefinitionTest.java @@ -0,0 +1,35 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.wsdl.wsdl11; + +import junit.framework.TestCase; +import org.springframework.core.io.ClassPathResource; + +public class SimpleWsdl11DefinitionTest extends TestCase { + + private SimpleWsdl11Definition definition; + + protected void setUp() throws Exception { + definition = new SimpleWsdl11Definition(); + definition.setWsdl(new ClassPathResource("complete.wsdl", getClass())); + definition.afterPropertiesSet(); + } + + public void testGetSource() throws Exception { + assertNotNull("No source returned", definition.getSource()); + } +} \ No newline at end of file diff --git a/doc/pom.xml b/doc/pom.xml new file mode 100644 index 00000000..91221b43 --- /dev/null +++ b/doc/pom.xml @@ -0,0 +1,54 @@ + + + + spring-ws + org.springframework.ws + 1.0-m3-SNAPSHOT + + 4.0.0 + spring-ws-doc + pom + Spring WS Documentation + + + agilejava + http://agilejava.com/maven/ + + + + + + com.agilejava.docbkx + docbkx-maven-plugin + 1.69.1.7 + + + + generate-html + generate-pdf + + generate-sources + + + + + org.docbook + docbook-xml + 4.4 + runtime + + + + index.xml + true + + + version + ${version} + + + + + + + diff --git a/doc/src/docbkx/bibliography.xml b/doc/src/docbkx/bibliography.xml new file mode 100644 index 00000000..3b8c5bf0 --- /dev/null +++ b/doc/src/docbkx/bibliography.xml @@ -0,0 +1,33 @@ + + Bibliography + + + + JimWaldo + + + AnnWollrath + + + SamKendall + + + A Note on Distributed Computing + Springer Verlag + 1994 + + + + + SteveLoughran + + + EdmundSmith + + + Rethinking the Java SOAP Stack + May 17, 2005 + 2005 + IEEE Telephone Laboratories, Inc. + + \ No newline at end of file diff --git a/doc/src/docbkx/contract-first.xml b/doc/src/docbkx/contract-first.xml new file mode 100644 index 00000000..93bf463c --- /dev/null +++ b/doc/src/docbkx/contract-first.xml @@ -0,0 +1,365 @@ + + + Writing Contract-first Web Services + +
+ Introduction + + In this chapter, we will give an overall tutorial on how to approach Web services development in + contract-first style, i.e. starting with the XML Schema/WSDL contract instead of Java code. Spring-WS + focusses on this development style, and this chapter might help you get started. Note that this chapter + contains almost no Spring-WS specific information: it is mostly about XML, schema's, and WSDL. + + + In this tutorial, we will define a Web service that can be used for Human Resources. Clients can send + holiday request forms to this service to book a holiday. It is based on a metaphor for Service Oriented + Architectures originally though of by Dan + North. + + + The most important thing when doing contract-first Web service development is to try and think in terms of + XML. This means that Java-language concepts are of lesser importance. It is the XML that is sent across the + wire, and you should focus on that. + +
+
+ The Messages + + In this section, we will focus on the actual XML messages that are sent to and from the service. We will + start out by determining what these messages look like. + +
+ Holiday + + In the scenario, we have to deal with holiday request, so it makes sense to determine what a holiday + looks like: + + + 2006-07-03 + 2006-07-07 +]]> + + + A holiday consists of a start date and an end date. We decided to use the standard + ISO 8601 date + format for the dates, because that will save a lot of parsing hassle. We also added a namespace to the + element, to make sure our elements can used within other XML documents. + +
+
+ Employee + + There is also the notion of an employee in the scenario. Here's what it looks like: + + + 42 + Arjen + Poutsma +]]> + + + We have used the same namespace as before. If this employee element could be used in other scenarios, + it might make sense to use a different namespace, such as + "http://mycompany.com/employees/schemas". + +
+
+ HolidayRequest + + Both the holiday and employee element can be put in a HolidayRequest: + + + + 2006-07-03 + 2006-07-07 + + + 42 + Arjen + Poutsma + +]]> + + + The order of the two element does not matter: Employee could have been the first + element just as well. As long as all the data is there; that's what is important. + In fact, the data is the only thing that is important: we are taking a data-driven + approach. + +
+
+
+ The Schema + + Now that we have seen some examples of the XML data that we will use, it makes sense to formalize this into + a schema. Basically, there are four different ways of defining a grammar for XML: + + DTDs + + XML Schema (XSD) + + + RELAX NG + + + Schematron + + + + + DTDs have limited namespaces support, so they are not suitable for Web services. Relax NG and Schematron are + certainly easier than XSDs. Unfortunately, they are not so widely supported across platforms. We will use + XML Schema. + + + By far the easiest way to create a XSD is to infer it from sample documents. Any good XML editor or Java IDE + offers this functionality. Basically, these tools use some sample XML documents, and generate a schema from it + that validates them all. The end result certainly needs to be polished up, but it's a great starting + point. + + + Using the sample described in , we end up with the following + generated schema: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]]> + + + The generated schema can obviously be improved. The first thing to notice is that everything is a root-level + element. This means that the Web service should be able to accept all of these elements as data. This is not + desirable: we only want to accept a HolidayRequest. By removing the wrapping element tags + (thus keeping the types), and inlining the results, we can accomplish this. + +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:holidays="http://mycompany.com/holidays/schemas" + elementFormDefault="qualified" + targetNamespace="http://mycompany.com/holidays/schemas"> + <xs:element name="HolidayRequest"> + <xs:complexType> + <xs:sequence> + <xs:element name="Holiday" type="holidays:HolidayType"/> + <xs:element name="Employee" type="holidays:EmployeeType"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:complexType name="HolidayType"> + <xs:sequence> + <xs:element name="StartDate" type="xs:NMTOKEN"/> + <xs:element name="EndDate" type="xs:NMTOKEN"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="EmployeeType"> + <xs:sequence> + <xs:element name="Number" type="xs:integer"/> + <xs:element name="FirstName" type="xs:NCName"/> + <xs:element name="LastName" type="xs:NCName"/> + </xs:sequence> + </xs:complexType> +</xs:schema> + + + The schema still has one problem: with a schema like this, you can expect the following messages to + validate: + + + + this is not a date + neither is this + + ... +]]> + + + Clearly, we must make sure that the start and end date are really dates. XML Schema has an excellent built-in + date type which we can use. We also change the NCNames to + strings. Finally, we change the sequence in + HolidayRequest to all. This tells the XML parser that the order of + Holiday and Employee is not significant. Our final XSD looks like this: + +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:holidays="http://mycompany.com/holidays/schemas" + elementFormDefault="qualified" + targetNamespace="http://mycompany.com/holidays/schemas"> + <xs:element name="HolidayRequest"> + <xs:complexType> + <xs:all> + <xs:element name="Holiday" type="holidays:HolidayType"/> + <xs:element name="Employee" type="holidays:EmployeeType"/> + </xs:all> + </xs:complexType> + </xs:element> + <xs:complexType name="HolidayType"> + <xs:sequence> + <xs:element name="StartDate" type="xs:date"/> + <xs:element name="EndDate" type="xs:date"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="EmployeeType"> + <xs:sequence> + <xs:element name="Number" type="xs:integer"/> + <xs:element name="FirstName" type="xs:string"/> + <xs:element name="LastName" type="xs:string"/> + </xs:sequence> + </xs:complexType> +</xs:schema> + + + We can store this file with a convenient name such as holidays.xsd. + +
+
+ The WSDL + + Which leaves the WSDL. We start our WSDL with the standard preamble, and by importing our existing XSD. To + separate the schema from the definition, we will use a separate namespace for the WSDL definitions: + "http://mycompany.com/holidays/definitions". + +<wsdl:definitions name="HumanResources" + targetNamespace="http://mycompany.com/holidays/definitions" + xmlns:tns="http://mycompany.com/holidays/definitions" + xmlns:types="http://mycompany.com/holidays/schemas" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:import namespace="http://mycompany.com/holidays/schemas" + schemaLocation="holidays.xsd"/> + </xsd:schema> + </wsdl:types> +</wsdl:definitions> + + + Next, we define our messages based on the written schema. We only have one message: one with the + HolidayRequest we put in the schema: + +<wsdl:definitions name="HumanResources" + targetNamespace="http://mycompany.com/holidays/definitions" + xmlns:tns="http://mycompany.com/holidays/definitions" + xmlns:types="http://mycompany.com/holidays/schemas" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:import namespace="http://mycompany.com/holidays/schemas" + schemaLocation="holidays.xsd"/> + </xsd:schema> + </wsdl:types> + <wsdl:message name="RequestHolidayInput"> + <wsdl:part name="body" element="types:HolidayRequest" /> + </wsdl:message> +</wsdl:definitions> + + + We add the messages to a port type as operations: + +<wsdl:definitions name="HumanResources" + targetNamespace="http://mycompany.com/holidays/definitions" + xmlns:tns="http://mycompany.com/holidays/definitions" + xmlns:types="http://mycompany.com/holidays/schemas" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:import namespace="http://mycompany.com/holidays/schemas" + schemaLocation="holidays.xsd"/> + </xsd:schema> + </wsdl:types> + <wsdl:message name="RequestHolidayInput"> + <wsdl:part name="body" element="types:HolidayRequest" /> + </wsdl:message> + <wsdl:portType name="HumanResourcesPortType"> + <wsdl:operation name="RequestHoliday"> + <wsdl:input message="tns:RequestHolidayInput" /> + </wsdl:operation> + </wsdl:portType> +</wsdl:definitions> + + + That finished the abstract part of the WSDL (the interface, as it were), and leaves the concrete part. This + part consists of a binding, which tells the client how to invoke the + operations you've just defined; and a service, which tells it where + to invoke it. + + + Adding a concrete part is pretty standard: just refer to the abstract part you defined previously, make sure + you use document/literal for the <soap:binding> elements + (anything else is not interoperable), pick a soapAction (in this case + http://example.com/RequestHoliday, but any URI will do), and determine the + location URL where you want request to come in (in this case + http://mycompany.com/humanresources): + +<wsdl:definitions name="HumanResources" + targetNamespace="http://mycompany.com/holidays/definitions" + xmlns:tns="http://mycompany.com/holidays/definitions" + xmlns:types="http://mycompany.com/holidays/schemas" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:import namespace="http://mycompany.com/holidays/schemas" + schemaLocation="holidays.xsd"/> + </xsd:schema> + </wsdl:types> + <wsdl:message name="RequestHolidayInput"> + <wsdl:part name="body" element="types:HolidayRequest" /> + </wsdl:message> + <wsdl:portType name="HumanResourcesPortType"> + <wsdl:operation name="RequestHoliday"> + <wsdl:input message="tns:RequestHolidayInput" /> + </wsdl:operation> + </wsdl:portType> + <wsdl:binding name="HumanResourcesBinding" type="tns:HumanResourcesPortType"> + <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> + <wsdl:operation name="RequestHoliday"> + <soap:operation soapAction="http://example.com/RequestHoliday" /> + <wsdl:input> + <soap:body use="literal" /> + </wsdl:input> + </wsdl:operation> + </wsdl:binding> + <wsdl:service name="HumanResourcesService"> + <wsdl:port name="HumanResourcesPort" binding="tns:HumanResourcesBinding"> + <soap:address location="http://mycompany.com/humanresources" /> + </wsdl:port> + </wsdl:service> +</wsdl:definitions> + + + This is the final WSDL. We will describe how to implement the resulting schema and WSDL in the next chapter. + +
+
\ No newline at end of file diff --git a/doc/src/docbkx/images/oxm-exceptions.png b/doc/src/docbkx/images/oxm-exceptions.png new file mode 100644 index 0000000000000000000000000000000000000000..9503d60079308bc2a23ab528928954ae2b7675b7 GIT binary patch literal 20807 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 SgQ71nJY!^FreAX#68i`2f8PTD literal 0 HcmV?d00001 diff --git a/doc/src/docbkx/images/oxm-exceptions.svg b/doc/src/docbkx/images/oxm-exceptions.svg new file mode 100644 index 00000000..e33c67ae --- /dev/null +++ b/doc/src/docbkx/images/oxm-exceptions.svg @@ -0,0 +1,48 @@ + + + + + +G +c1 + +XmlMappingException + +c2 + +GenericMarshallingFailureException + +c1->c2 + + + +c5 + +ValidationFailureException + +c1->c5 + + + +c3 + +MarshallingFailureException + +c2->c3 + + + +c4 + +UnmarshallingFailureException + +c2->c4 + + + + + diff --git a/doc/src/docbkx/index.xml b/doc/src/docbkx/index.xml new file mode 100644 index 00000000..7a949f5f --- /dev/null +++ b/doc/src/docbkx/index.xml @@ -0,0 +1,49 @@ + + + + + + + + +]> + + + + Spring Web Services + + Reference Documentation + + Version &version; + (Work in progress) + + + + Arjen + Poutsma + + + + Copies of this document may be made for your own use and for distribution to others, provided that + you do not charge any fee for such copies and further provided that each copy contains this Copyright + Notice, whether distributed in print or electronically. + + + + + &preface; + + &overview; + + &contract-first; + + &ws; + + &security; + + &oxm; + + &bibliography; + + diff --git a/doc/src/docbkx/overview.xml b/doc/src/docbkx/overview.xml new file mode 100644 index 00000000..504ef4cb --- /dev/null +++ b/doc/src/docbkx/overview.xml @@ -0,0 +1,140 @@ + + + Introduction + +
+ Overview + + Spring-WS consists of three separate modules. This chapter discusses each of the modules in turn. + + + The Core package is the central part of the Web services functionality. It + provides the central WebServiceMessage and SoapMessage + interfaces, the powerful message dispatching, and the various support classes for implementing Web service + endpoints. + + + The Security package provides a WS-Security implementation that integrates + with the core Web service package. It allows you to add principal tokens, sign, and decrypt and encrypt SOAP + messages. Addtionally, it allows you to leverage your existing Acegi security implementation for + authentication and authorization. + + + The OXM package provides integration for popular XML marshalling APIs, including + JAXB 1 and 2. Using the OXM package means that you benefit from a unified exception hierarchy, and can wire + up your favorite XML marshalling technology easily. + +
+ + +
+ Why Spring Web Services? + + There are various other SOAP stacks available, why and where should you use Spring-WS? This section answers + that question by showing what the focus of Spring-WS is. + +
+ Spring-WS is meant for Public Web Services + + One can distinguish between two different sorts of Web services. Private Web services are not used + outside your application domain. They might form a part of your Enterprise Service Bus, or used as a + means to communicate between a fat .NET client and a J2EE server. When the two sides of the spectrum + (client and server) are under your control, you can easily expose (existing) methods, since you can + (re)generate client code easily. + + + Public Web services provide a separate interface to your application. They are often used by clients + that are outside of your reach. When developing a public Web service, you should really think about the + interface you are providing: it is probably going to be around for a while, and you cannot change it + that often. As such, it is a good idea to place the Web service in a separate layer, thus hiding the + inner workings of the application. As a result, you can change the Web service and the rest of the + appliciation seperately. + +
+
+ Spring-WS makes Web Services First Class Citizens of the Architecture + + Web Services deserve a proper place in an application architecture. Often, they exist as an afterthought + in the application architecture, mostly because existing Java business interfaces are exposed as SOAP + services. One could say that they are "SOAPified". Spring-WS provides a MVC-like framework for + developing a Web service application layer, just like you would develop a layer especially for a Web + user interface using Spring-MVC. Spring-WS also provides useful integration points with you existing + Spring application architecture, such as the Acegi integration. + +
+
+ Spring-WS is Data-Driven + + When Web Services started making their way into the Enterprise Computing world, developers considered + Web Services just another, XML-based remoting protocol. Such remoting frameworks can be used with + relative ease: on the server-side, one simply implements a specific interface such as + java.rmi.Remote, and on the client side, a dynamic proxy is used. + Unfortunately, because of this simplicity, remoting architectures have some issues: + + + + They pretend there is no latency between the client and the server, + while in fact there is both network and application latency, + + + + + They pretend that client and server have shared memory access, while in + fact data must be both marshalled and unmarshalled, + + + + + They ignore the possibility of a request or response not reaching its + destination, + + + + + They enforce a non-concurrent programming model, while in fact a + concurrent approach seems more in place, + + + + + They enforce a tightly coupled architecture, where changes on the + server-side result in changes on the client-side. + + + + It is not without reason that Gregor Hohpe calls a distributed architecture a fairy tale + architecture: one is made to believe things that simply are not true. To quote : +
+ + Objects that interact in a distributed system need to be dealt with in ways that are + intrinsically different from objects that interact in a single address space. + +
+
+ + Instead of being behavior-driven, Spring-WS is data-driven: it focusses on the data being sent, not on a + particular method being invoked. + +
+
+ Spring-WS Focusses on Contract-first Development + + SOAP services are defined in two contracts: the data contract (the XSD schema), and the service contract + (the WSDL). Generating these contracts from Java-code is called contract-last + development identifies some problems with this approach, most + importantly: +
+ + There is no way to ensure that a service’s published interface remains constant over time. + Every redeployment of the service may change the classes, and hence the contract. + +
+ The alternative of contract-last development is contract-first development. + Using this approach, the service and data contract are leading. Spring-WS focusses on contract-first Web + service development, because is considered to be a best practice. After all, the actual XML that is sent + across the wire is more important than the Java code that is used to implement it. +
+
+
+
diff --git a/doc/src/docbkx/oxm.xml b/doc/src/docbkx/oxm.xml new file mode 100644 index 00000000..78ae2f81 --- /dev/null +++ b/doc/src/docbkx/oxm.xml @@ -0,0 +1,617 @@ + + + Marshalling XML using O/X Mappers + +
+ Introduction + + In this chapter, we will describe Spring's Object/XML Mapping support. Object/XML Mapping, or O/X mapping + for short, is the act of converting an XML document to and from an object. This conversion process is also + known as XML Marshalling, or XML Serialization. This chapter uses these terms interchangeably. + + + Within the field of O/X mapping, a marshaller is responsible for serializing an object + (graph) to XML. In similar fashion, an unmarshaller deserializes the XML to an object + graph. This XML can take the form of a DOM document, an input or output stream, or a SAX handler. + + + Some of the benefits of using Spring for your O/X mapping needs are: + + + Ease of configuration + + Spring's bean factory makes it easy to configure marshallers, without needing to construct JAXB context, + JiBX binding factories, etc. The marshallers can be configured as any other bean in your application + context. + + + + Consistent Interfaces + + Spring's O/X mapping operates through two global interfaces: the + Marshaller + and + Unmarshaller + interface. These abstractions allow you to switch O/X mapping + frameworks with relative ease, with little or no changes required on the classes that do the + marshalling. This approach has the additional benefit of making it possible to do XML marshalling with a + mix-and-match approach (e.g. some marshalling performed using JAXB, other using XMLBeans) in a + non-intrusive fashion, leveraging the strength of each technology. + + + + Consistent Exception Hierarchy + + Spring provides a conversion from exceptions from the underlying O/X mapping tool to its own + exception hierarchy with the + XmlMappingException + as the root exception. As can be + expected, these runtime exceptions wrap the original exception so no information is lost. + + +
+
+ Marshaller and Unmarshaller + + As stated in the introduction, a + marshaller + serializes an object to XML, and an + unmarshaller + deserializes XML stream to an object. In this section, we will describe + the two Spring interfaces used for this purpose. + +
+ Marshaller + + Spring abstracts all marshalling operations behind the + org.springframework.oxm.Marshaller + interface, which is listed below. + + The + Marshaller + interface has just one method, which marshals the given + object to a given + javax.xml.transform.Result + . Result is a tagging interface that + basically represents an XML output abstraction: concrete implementations wrap various XML + representations, as indicated in the table below. + + + + + + javax.xml.transform.Result + implementation + + Wraps XML representation + + + + + + javax.xml.transform.dom.DOMResult + + + org.w3c.dom.Node + + + + + javax.xml.transform.sax.SAXResult + + + org.xml.sax.ContentHandler + + + + + javax.xml.transform.stream.StreamResult + + + java.io.File + , + java.io.OutputStream + , + or + java.io.Writer + + + + + + + + + Although the + marshal + method accepts a plain object as its first parameter, + most + Marshaller + implementations cannot handle arbitrary objects. Instead, an + object class must be mapped in a mapping file, registered with the marshaller, or have a common base + class. Refer to the further sections in this chapter to determine how your O/X technology of choice + manages this. + + +
+
+ Unmarshaller + + Similar to the + Marshaller + , there is the + org.springframework.oxm.Unmarshaller + interface. + + This interface also has one method, which reads from the given + javax.xml.transform.Source + (an XML input abstraction), and returns the + object read. As with Result, Source is a tagging interface that has three concrete implementations. Each + wraps a different XML representation, as indicated in the table below. + + + + + + javax.xml.transform.Source + implementation + + Wraps XML representation + + + + + + javax.xml.transform.dom.DOMSource + + + org.w3c.dom.Node + + + + + javax.xml.transform.sax.SAXSource + + + org.xml.sax.InputSource + and + org.xml.sax.XMLReader + + + + + javax.xml.transform.stream.StreamSource + + + java.io.File + , + java.io.InputStream + , + or + java.io.Reader + + + + + + +
+ + Even though there are two separate marshalling interfaces ( + Marshaller + and + Unmarshaller + ), most implementations found in Spring-WS implement both in one class. + This means that you can wire up one marshaller class and refer to it as marshaller and unmarshaller in your + applicationContext.xml + . + +
+ XmlMappingException + + Spring converts exceptions from the underlying O/X mapping tool to its own exception hierarchy with the + XmlMappingException + as the root exception. As can be expected, these runtime + exceptions wrap the original exception so no information will be lost. + + + Additionally, the + MarshallingFailureException + and + UnmarshallingFailureException + provide a distinction between marshalling and + unmarshalling operations, even though the underlying O/X mapping tool does not do so. + + + The O/X Mapping exception hierarchy is shown in the following figure: + + + + + + + + + + O/X Mapping exception hierarchy + + + + +
+
+
+ Using Marshaller and Unmarshaller + + Spring's OXM can be used for a wide variety of situations. In the following example, we will use it to + marshal the settings of a Spring-managed application as an XML file. We will use a simple JavaBean to + represent the settings: + + + + The application class uses this bean to store its settings. Besides a main method, the class has two + methods: + saveSettings + saves the settings bean to a file named + settings.xml + , and + loadSettings + loads these settings again. A + main + method constructs a Spring application context, and calls these two methods. + + The + Application + requires both a + marshaller + and + unmarshaller + property to be set. We can do so using the following + applicationContext.xml + : + + + + + + + + +]]> + This application context uses Castor, but we could have used any of the other marshaller instances described + later in this chapter. Note that Castor does not require any further configuration by default, so the bean + definition is rather simple. Also note that the + CastorMarshaller + implements both + Marshaller + and + Unmarshaller + , so we can refer to the + castorMarshaller + bean in both the + marshaller + and + unmarshaller + property of the application. + + + This sample application produces the following + settings.xml + file: + + +]]> + +
+
+ JAXB + + The JAXB binding compiler translates a W3C XML Schema into one or more Java classes, a + jaxb.properties + file, and possibly other files, depending on the specific implementation of JAXB. Alternatively, JAXB2 + offers a way to generate a schema from annotated Java classes. + + + Spring supports both the JAXB 1.0 as the JAXB 2.0 API as XML marshalling strategy, following the + Marshaller and Unmarshaller interfaces described in + . The corresponding integration classes reside in the + org.springframework.oxm.jaxb + package. + +
+ Jaxb1Marshaller + + The Jaxb1Marshaller class implements both the Spring + Marshaller and Unmarshaller interface. It requires a + context path to operate, which you can set using the contextPath property. The + context path is a list of colon (:) separated Java package names that contain schema derived classes. + The marshaller has an additional validating property which defines whether to + validate invoming XML. + + + The next sample bean configuration shows how to configure a + JaxbMarshaller using the classes generated to + org.springframework.ws.samples.airline.schema. + + + + + + + ... + +]]> +
+
+ Jaxb2Marshaller + + The Jaxb2Marshaller can be configured using the same contextPath property as the Jaxb1Marshaller. However, it also offers a classesToBeBound property, which allows you to set an array of classes to be supported by the marshaller. Schema validation is performed by specifying one or more schema resource to the bean, like so: + + + + + + + org.springframework.oxm.jaxb.Flight + org.springframework.oxm.jaxb.Flights + + + + + ... + +]]> +
+
+
+ Castor + + Castor XML mapping is an open source XML binding framework. It allows you to transform the data contained in + a java object model into/from an XML document. By default, it does not require any further configuration, + though a mapping file can be used to have more control over the behavior of Castor. + + + For more information on Castor, refer to the + Castor web site. The Spring integration classes reside in the + org.springframework.oxm.castor package. + +
+ CastorMarshaller + + As with JAXB, the CastorMarshaller implements both the + Marshaller and Unmarshaller interface. It can be wired up + as follows: + + + + + ... + +]]> +
+
+ Mapping + + Although it is possible to rely on Castor's default marshalling behavior, it might be necessary to have + more control over it. This can be accomplished using a Castor mapping file. For more information, refer + to Castor XML Mapping. + + + The mapping can be set using the mappingLocation resource property, indicated + below with a classpath resource. + + + + + + +]]> +
+
+ +
+ XMLBeans + + XMLBeans is an XML binding tool that has full XML Schema support, and offers full XML Infoset fidelity. It + takes a different approach that most other O/X mapping frameworks, in that all classes that are + generated from an XML Schema are all derived from XmlObject, and contain XML binding + information in them. + + + For more information on XMLBeans, refer to the XMLBeans + web site . The Spring-WS integration classes reside in the + org.springframework.oxm.xmlbeans package. + +
+ XmlBeansMarshaller + + The XmlBeansMarshaller implements both the Marshaller and + Unmarshaller interface. It can be wired up as follows: + + + + + ... + +]]> + + + Note that the XmlBeansMarshaller can only marshal objects of type + XmlObject, and not every java.lang.Object. + + +
+ + +
+ +
+ JiBX + + The JiBX framework offers a solution similar to JDO does for ORM: a binding definition defines the + rules for how your Java objects are converted to or from XML. After preparing the binding and compiling the + classes, a JiBX binding compiler enhances the class files, and adds code to handle converting instances of + the classes from or to XML. + + + For more information on JiBX, refer to the JiBX web + site. The Spring integration classes reside in the + org.springframework.oxm.jibx package. + +
+ JibxMarshaller + + The JibxMarshaller class implements both the Marshaller + and Unmarshaller interface. To operate, it requires the name of the class to + marshall in, which you can set using the targetClass property. Optionally, you can + set the binding name using the bindingName property. In the next sample, we refer to + the flightsBindingFactory defined in the previous bean definition. + + + + + org.springframework.oxm.jibx.Flights + + + ... +]]> + + + A JibxMarshaller is configured for a single class. If you want to marshal + multiple classes, you have to configure multiple JibxMarshallers with + different targetClasses. + + +
+
+
+ XStream + + XStream is a simple library to serialize objects to XML and back again. It does not require any mapping, and + generates clean XML. + + + For more information on XStream, refer to the XStream + web site. The Spring integration classes reside in the + org.springframework.oxm.xstream package. + +
+ XStreamMarshaller + + The XStreamMarshaller does not require any configuration, and can be configured + in an application context directly. To further customize the XML, you can set an + alias map, which consists of string aliases mapped to classes: + + + + + + + org.springframework.oxm.xstream.Flight + + + + ... + +]]> +
+ + + Note that XStream is an XML serialization library, not a data binding library. Therefore, it has + limited namespace support. As such, it is rather unsuitable for usage within Web services. + + +
+
\ No newline at end of file diff --git a/doc/src/docbkx/preface.xml b/doc/src/docbkx/preface.xml new file mode 100644 index 00000000..c4248d0b --- /dev/null +++ b/doc/src/docbkx/preface.xml @@ -0,0 +1,20 @@ + + + Preface + + Web services development is a complicated affair. There is SOAP, there is REST. There is SOAP 1.1, and there is + SOAP 1.2. There is rpc/encoded, and there is document/literal. There is WS-Addressing, WS-Security, WS-Policy, + and various other Web service specifications. Implementing Web services using abstractions that magically turn + Java into XML, but turn out to be leaky abstractions makes it even harder. Spring Web Services provides a + solution for building interoperable Web services, while making it clear what XML is received and sent across the + wire. Spring-WS provides a powerful message dispatching framework, various XML marshalling techniques that can be used outside a Web service environment, and a WS-Security solution that integrates with your existing application security + solution. + + + This document provides a reference guide to Spring-WS's features. Since this document is still a + work-in-progress, if you have any requests or comments, please post them on the support forums at . + + \ No newline at end of file diff --git a/doc/src/docbkx/security.xml b/doc/src/docbkx/security.xml new file mode 100644 index 00000000..3920b434 --- /dev/null +++ b/doc/src/docbkx/security.xml @@ -0,0 +1,858 @@ + + + Securing your Web services with Spring-WS + +
+ Introduction + + In this chapter, we will show you how to add WS-Security aspects to your Web services. We + will focus on the three different areas of WS-Security, namely: + + + Authentication + + This is the process of determining whether a principal is who they claim to be. + In this context, a "principal" generally means a user, device or some other system which can perform an + action in your application. + + + + Digital signatures + + The digital signature of a message is a piece of information based on both the document and the signer's + private key. It is created through the use of a hash function and a private signing function + (encrypting with the signer's private key). + + + + Encryption and Decryption + + Encryption is the process of transforming data into a form that is impossible to + read without the appropriate key. It is mainly used to keep information hidden from anyone for whom it + is not intended. Decryption is the reverse of encryption; it is the process of + transforming of encrypted data back into an readable form. + + + + All of these three areas are implemented using the XwsSecurityInterceptor, which we + will describe in + + + + Note that WS-Security (especially encryption and signing) requires substantial amounts of memory, + and will also decrease performance. If performance is important to you, you might want to consider using + not using WS-Security. + + +
+
+ XwsSecurityInterceptor + + The XwsSecurityInterceptor is an EndpointInterceptor (see + ) that is based on SUN's XML and Web Services Security package + (XWSS). This WS-Security implementation is part of the Java Web Services Developer Pack (Java WSDP). + + + Like any other endpoint interceptor, it is defined in the endpoint mapping (see ). This means that you can be selective about adding WS-Security support: + some endpoint mappings require it, while others do not. + + + The XwsSecurityInterceptor requires a security policy file to + operate. This XML file tells the interceptor what security aspects to require from incoming SOAP messages, + and what aspects to add to outgoing messages. The basic format of the policy file will be explained in the + following sections, but you can find a more in-depth tutorial + here. You can set the policy with the + policyConfiguration property, which requires a Spring resource. + The policy file can contain multiple elements, e.g. require a username + token on incoming messages, and sign all outgoing messages. It contains a + SecurityConfiguration element as root (not a JAXRPCSecurity + element). + + + Additionally, the security interceptor requires one or more CallbackHandlers to + operate. These handlers are used to retrieve certificates, private keys, validate user credentials, etc. + Spring-WS offers handlers for most common security concerns, e.g. authenticating against a Acegi + authentication manager, signing outgoing messages based on a X509 certificate. The following sections + will indicate what callback handler to use for which security concern. You can set the callback handlers + using the callbackHandler or callbackHandlers property. + + + Here is an example that shows how to wire the XwsSecurityInterceptor up: + + + + + + + + + + + ... + +]]> + This interceptor is configured using the securityPolicy.xml file on the classpath. It + uses two callback handlers which are defined further on in the file. + +
+ +
+ Key stores + + For most cryptographic operations, you will use standard java.security.KeyStore + objects. This includes certificate verification, message signing, signature verification, encryption, but + excludes username and time-stamp verification. This section aims to give you some background knowledge on + key stores, and the Java tools that you can use to store keys and certificates in a key store file. This + information is mostly not related to Spring-WS, but to the general cryptographic features of Java. + + + The java.security.KeyStore class represents a storage facility for cryptographic keys + and certificates. It can contain three different sort of elements: + + + Private Keys + + These keys are used for self-authentication. The private key is accompanied by certificate chain for + the corresponding public key. Within the field of WS-Security, this accounts to message signing and + message decryption. + + + + Symmetric Keys + + Symmetric (or secret) keys are used for message encryption and decryption as well. The difference + being that both sides (sender and recipient) share the same, secret key. + + + + Trusted certificates + + These X509 certificates are called a trusted certificate because the keystore owner + trusts that the public key in the certificates indeed belong to the owner of the certificate. Within + WS-Security, these certificates are used for certificate validation, signature verification, and + encryption. + + +
+ KeyTool + Supplied with your Java Virtual Machine is the keytool, a key and certificate management + utility. You can use this tool to create new key stores, add new private keys and certificates to them, etc. + It is beyond the scope of this document to provide a full reference of the keytool + command, but you can find a reference + here, or by giving the command keytool -help on the command + line. +
+
+ KeyStoreFactoryBean + + To easily load a key store using Spring configuration, you can use the + KeyStoreFactoryBean. It has a resource location property, which you can set to + point to the path of the key store to load. A password may be given to check the integrity of the + key store data. If a password is not given, integrity checking is not performed. + + + + +]]> + + + If you don't specify the location property, a new, empty key store will be created, which is most + likely not what you want. + + +
+
+ KeyStoreCallbackHandler + + To use the key stores within a XwsSecurityInterceptor, you will need to define a + KeyStoreCallbackHandler. This callback has three properties with type key store: + (keyStore, trustStore, and + symmetricStore). The exact stores used by the handler depend on the + cryptographic operations that are to be performed by this handler. For private key operation, the + keyStore is used, for symmetric key operations the + symmetricStore, and for determining trust relationships, the + trustStore. The following table indicates this: + + + + + Cryptographic operation + Key store used + + + + + Certificate validation + + first the keyStore, then the + trustStore + + + + Decryption based on private key + keyStore + + + Decryption based on symmetric key + symmetricStore + + + Encryption based on public key certificate + trustStore + + + Encryption based on symmetric key + symmetricStore + + + Signing + keyStore + + + Signature verification + trustStore + + + + + Additionally, the KeyStoreCallbackHandler has a + privateKeyPassword property, which should be set to unlock the private key(s) + contained in the keyStore. + + + If the symmetricStore is not set, it will default to the + keyStore. If the key or trust store is not set, the callback handler will use + the standard Java mechanism to load or create it. Refer to the JavaDoc of the + KeyStoreCallbackHandler to know how this mechanism works. + + + For instance, if you want to use the KeyStoreCallbackHandler to validate incoming + certificates or signatures, you would use a trust store, like so: + + + + + + + + + +]]> + If you want to use it to decrypt incoming certificates or sign outgoing messages, you would use a key + store, like so: + + + + + + + + + + +]]> + + + The following sections will indicate where the KeyStoreCallbackHandler can be + used, and which properties to set for particular cryptographic operations. + +
+
+ +
+ Authentication + + As stated in the introduction, authentication is the task of determining whether a + principal is who they claim to be. Within WS-Security, authentication can take two forms: using a username + and password token (using either a plain text password or a password digest), or using a X509 certificate. + +
+ Plain Text Username Authentication + + The simplest form of username authentication uses plain text passwords. In this + scenario, the SOAP message will contain a UsernameToken element, which itself + contains a Username element and a Password element which contains + the plain text password. Plain text authentication can be compared to the Basic Authentication provided + by HTTP servers. + + + + Note that plain text passwords are not very secure. Therefore, you should always add additional + security measures to your transport layer if you are using them (using HTTPS instead of plain HTTP, + for instance). + + + + To require that every incoming message contains a UsernameToken with a plain + text password, the security policy file should contain a RequireUsernameToken + element, with the passwordDigestRequired attribute set to false. + You can find a reference of possible child elements + here. + + + ... + + ... +]]> + + If the username token is not present, the XwsSecurityInterceptor will return a + SOAP Fault to the sender. If it is present, it will fire a + PasswordValidationCallback with a PlainTextPasswordRequest + to the registered handlers. Within Spring-WS, there are three classes which handle this particular + callback. + +
+ SimplePasswordValidationCallbackHandler + + The simplest password validation handler is the + SimplePasswordValidationCallbackHandler. This handler validates passwords + against a in-memory Properties object, which you can specify using the + users property, like so: + + + + + Ernie + + +]]> + + In this case, we are only allowing the user "Bert" to log in using the password "Ernie". + +
+
+ AcegiPlainTextPasswordValidationCallbackHandler + + The AcegiPlainTextPasswordValidationCallbackHandler uses the excellent Acegi Security Framework to + authenticate users. It is beyond the scope of this document to describe Acegi, but suffice it to say + that Acegi is a full-fledged security framework. You can read more about Acegi in the Acegi reference + documentation. + + + The AcegiPlainTextPasswordValidationCallbackHandler requires an Acegi + AuthenticationManager to operate. It uses this manager to authenticate against a + UsernamePasswordAuthenticationToken that it creates. If authentication is + successful, the token is stored in the SecurityContextHolder. You can set the + authentication manager using the authenticationManager property: + + + + + + + + + + + + + + + + ... +]]> +
+
+ JaasPlainTextPasswordValidationCallbackHandler + + The JaasPlainTextPasswordValidationCallbackHandler is based on the standard + Java Authentication and Authorization + Service. It is beyond the scope of this document to provide a full + introduction into JAAS, but there is a + good tutorial available. + + + The JaasPlainTextPasswordValidationCallbackHandler only requires a + loginContextName to operate. It creates a new JAAS + LoginContext using this name, and handles the standard JAAS + NameCallback and PasswordCallback using the username + and password provided in the SOAP message. This means that this callback handler + integrates with any JAAS + LoginModule that fires these callbacks during the + login() phase, which is standard behavior. + + + You can wire up a JaasPlainTextPasswordValidationCallbackHandler as follows: + + + +]]> + + In this case, the callback handler uses the LoginContext named + "MyLoginModule". This module should be defined in your jaas.config file, as + explained in the abovementioned tutorial. + +
+
+ +
+ Digest Username Authentication + + When using password digests, the SOAP message also contain a UsernameToken element, + which itself contains a Username element and a Password element. + The difference is that the password is not sent as plain text, but as a digest.The + recipient compares this digest to the digest he calculated from the known password of the user, and if + they are the same, the user is authenticated. It can be compared to the Digest + Authentication provided by HTTP servers. + + + To require that every incoming message contains a UsernameToken element with a + password digest, the security policy file should contain a RequireUsernameToken + element, with the passwordDigestRequired attribute set to true. + Additionally, the nonceRequired should be set to true: + You can find a reference of possible child elements + here. + + + ... + + ... +]]> + + If the username token is not present, the XwsSecurityInterceptor will return a + SOAP Fault to the sender. If it is present, it will fire a + PasswordValidationCallback with a DigestPasswordRequest + to the registered handlers. Within Spring-WS, there are two classes which handle this particular + callback. + +
+ SimplePasswordValidationCallbackHandler + + The SimplePasswordValidationCallbackHandler can handle both plain text + passwords as well as password digests. It is described in . + +
+
+ AcegiDigestPasswordValidationCallbackHandler + + The AcegiPlainTextPasswordValidationCallbackHandler requires an Acegi + UserDetailService to operate. It uses this service to retrieve the password + of the user specified in the token. The digest of the password contained in this details object is + then compared with the digest in the message. If they are equal, the user has succesfully + authenticated, and a UsernamePasswordAuthenticationToken is stored in the + SecurityContextHolder. You can set the service using the + userDetailsService. Additionally, you can set a + userCache property, to cache loaded user details. + + + + + + + + ... +]]> +
+
+ +
+ Certificate Authentication + + A more secure way of authentication uses X509 certificates. In this scenerario, the SOAP message + contains a BinarySecurityToken, which contains a Base 64-encoded version of a X509 + certificate. The recipient is used by the recipient to authenticate. The certificate stored in the + message is also used to sign the message (see ). + + + To make sure that all incoming SOAP messages carry a BinarySecurityToken, the + security policy file should contain a RequireSignature element. This element can + carry further other elements, which will be covered in . + You can find a reference of possible child elements + here. + + + ... + + ... +]]> + + When a message arrives that carries no certificate, the XwsSecurityInterceptor + will return a SOAP Fault to the sender. If it is present, it will fire a + CertificateValidationCallback. There are three handlers within Spring-WS + which handle this callback for authentication purposes. + + + + In most cases, certificate authentication should be preceded by certificate + validation, since you only want authenticate against valid certificates. + Invalid certificates such as certificates for which the expiration date has passed, or which are not + in your store of trusted certificates, should be ignored. + + + In Spring-WS terms, this means that the + AcegiCertificateValidationCallbackHandler or + JaasCertificateValidationCallbackHandler should be preceded by + KeyStoreCallbackHandler. This can be accomplished by setting the order of the + callbackHandlers property in the configuration of the + XwsSecurityInterceptor: + + + + + + + + + +]]> + Using this setup, the interceptor will first determine if the certificate in the message is valid + using the keystore, and then authenticate against it. + + +
+ KeyStoreCallbackHandler + + The KeyStoreCallbackHandler uses a standard Java key store to validate + certificates. This certificate validation process consists of the following steps: + + + + First, the handler will check whether the certificate is in the private + keyStore. If it is, it is valid. + + + + + If the certificate is not in the private key store, the handler will check whether the + the current date and time are within the validity period given in the certificate. + If they are not, the certificate is invalid; if it is, it will continue with the final + step. + + + + + Finally, a certification path for the certificate is created. This + basically means that the handler will determine whether the certificate has been issued + by any of the certificate authorities in the trustStore. If it + a certification path can be built succesfully, the certificate is valid. Otherwise, it + is not. + + + + + + To use the KeyStoreCallbackHandler for certificate validation purposes, you + will most likely only set the trustStore property: + + + + + + + + + +]]> + Using this setup, the certificate that is to be validated must either be in the trust store itself, + or the trust store must contain a certificate authority that issued the certificate. + +
+
+ AcegiCertificateValidationCallbackHandler + + The AcegiCertificateValidationCallbackHandler requires an Acegi + AuthenticationManager to operate. It uses this manager authenticate against a + X509AuthenticationToken that it creates. The configured authentication + manager is expected to supply a provider which can handle this token (usually an instance of + X509AuthenticationProvider). If authentication is succesfull, the token is + stored in the SecurityContextHolder. You can set the authentication manager + using the authenticationManager property: + + + + + + + + + + + + + + + + + + + + ... +]]> + + In this case, we are using a custom user details service to obtain authentication details based on + the certificate. Refer to the Acegi reference + documentation for more information about authentication against X509 + certificates. + +
+
+ JaasCertificateValidationCallbackHandler + + The JaasCertificateValidationCallbackHandler requires a + loginContextName to operate. It creates a new JAAS + LoginContext using this name and with the + X500Principal of the certificate. This means that this callback handler + integrates with any JAAS LoginModule that handles X500 principals. + + + You can wire up a JaasCertificateValidationCallbackHandler as follows: + + + MyLoginModule +]]> + + In this case, the callback handler uses the LoginContext named + "MyLoginModule". This module should be defined in your jaas.config file, and + should be able to authenticate against X500 principals. + +
+
+ +
+ +
+ Digital Signatures + + The digital signature of a message is a piece of information based on both the document + and the signer's private key. There are two main tasks related to signatures in WS-Security: verifying + signatures and signing messages. + +
+ Verifying Signatures + + Just like certificate-based authentication, + a signed message contains a BinarySecurityToken, which contains the certificate used + to sign the message. Additionally, it contains a SignedInfo block, which indicates + what part of the message was signed. + + + To make sure that all incoming SOAP messages carry a BinarySecurityToken, the + security policy file should contain a RequireSignature element. + It can also contain a SignatureTarget element, which specifies the target message + part which was expected to be signed, and various other subelements. You can also define the private key + alias to use, whether to use a symmetric instead of a private key, and many other properties. You can + find a reference of possible child elements + here. + + + +]]> + + If the signature is not present, the XwsSecurityInterceptor will return a + SOAP Fault to the sender. If it is present, it will fire a + SignatureVerificationKeyCallback to the registered handlers. Within Spring-WS, + there are is one class which handles this particular callback: the + KeyStoreCallbackHandler. + + +
+ KeyStoreCallbackHandler + + As described in , the + KeyStoreCallbackHandler uses a java.security.KeyStore + for handling various cryptographic callbacks, including signature verification. For signature + verification, the handler uses the trustStore property: + + + + + + + + + + +]]> +
+
+ +
+ Signing Messages + + When signing a message, the XwsSecurityInterceptor adds the + BinarySecurityToken to the message, and a SignedInfo block, which + indicates what part of the message was signed. + + + To sign all outgoing SOAP messages, the + security policy file should contain a Sign element. + It can also contain a SignatureTarget element, which specifies the target message + part which was expected to be signed, and various other subelements. You can also define the private key + alias to use, whether to use a symmetric instead of a private key, and many other properties. You can + find a reference of possible child elements + here. + + + +]]> + + The XwsSecurityInterceptor will fire a + SignatureKeyCallback to the registered handlers. Within Spring-WS, + there are is one class which handles this particular callback: the + KeyStoreCallbackHandler. + +
+ KeyStoreCallbackHandler + + As described in , the + KeyStoreCallbackHandler uses a java.security.KeyStore + for handling various cryptographic callbacks, including signing messages. For adding signatures, + the handler uses the keyStore property. Additionally, you must set + the privateKeyPassword property to unlock the private key used for signing. + + + + + + + + + + + +]]> +
+
+
+ +
+ Encryption and Decryption + + When encrypting, the message is transformed into a form that can only be read with the + appropriate key. The message can be decrypted to reveal the original, readable message. + +
+ Decryption + + To decrypt incoming SOAP messages, the security policy file should contain a + RequireEncryption element. This element can further carry a + EncryptionTarget element which indicates which part of the message should be + encrypted, a SymmetricKey to indicate that a shared secret instead of the regular + private key should be used to decrypt the message. You can read a description of the other elements + + here. + + + +]]> + + If an incoming message is not encrypted, the XwsSecurityInterceptor will return a + SOAP Fault to the sender. If it is present, it will fire a DecryptionKeyCallback + to the registered handlers. Within Spring-WS, there is one class which handled this particular callback: + the KeyStoreCallbackHandler. + +
+ KeyStoreCallbackHandler + + As described in , the + KeyStoreCallbackHandler uses a java.security.KeyStore + for handling various cryptographic callbacks, including decryption. For decryption, + the handler uses the keyStore property. Additionally, you must set + the privateKeyPassword property to unlock the private key used for + decryption. For decryption based on symmetric keys, it will use the + symmetricStore. + + + + + + + + + + + +]]> +
+
+ +
+ Encryption + + To encrypt outgoing SOAP messages, the security policy file should contain a Encrypt + element. This element can further carry a EncryptionTarget element which indicates + which part of the message should be encrypted, a SymmetricKey to indicate that a + shared secret instead of the regular private key should be used to decrypt the message. You can read a + description of the other elements + here. + + + +]]> + + The XwsSecurityInterceptor will fire a + EncryptionKeyCallback to the registered handlers in order to retrieve the + encryption information. Within Spring-WS, there is one class which handled this particular callback: the + KeyStoreCallbackHandler. + +
+ KeyStoreCallbackHandler + + As described in , the + KeyStoreCallbackHandler uses a java.security.KeyStore + for handling various cryptographic callbacks, including encryption. For encryption based on public + keys, the handler uses the trustStore property. For encryption based on + symmetric keys, it will use the symmetricStore. + + + + + + + + + + +]]> +
+
+ +
+
+ diff --git a/doc/src/docbkx/ws.xml b/doc/src/docbkx/ws.xml new file mode 100644 index 00000000..09eb51e3 --- /dev/null +++ b/doc/src/docbkx/ws.xml @@ -0,0 +1,193 @@ + + + Document-driven Web services with Spring-WS + +
+ Introduction + + Spring's Web service framework is designed around + +
+
+ MessageDispatcher + + Spring-WS is designed around a central dispatching mechanism, which forwards + +
+
+ Endpoints +
+
+ Endpoint mappings + + The endpoint mapping is responsible for mapping incoming messages to appropriate endpoints. It does this by + delivering a EndpointInterceptorChain, which consists of the endpoint that matches + the incoming request, and an optional list of endpoint interceptors. When a message is received by the + MessageDispatcher, it will ask the registered endpoint mappings to come up with a + appropriate HandlerExecutionChain. After that, the + MessageDispatcher will invoke the endpoint and interceptors in the chain. + + + Most endpoint mappings inherit from the AbstractEndpointMapping, which offers the + following properties: + + + + + + interceptors + + + the list of interceptors use. EndpointInterceptors are + discussed in . + + + + + defaultHandler + + + the default handler to use. This endpoint will be returned if no specific mapping was + found. + + + + + + + + + + + + +
+ SoapActionEndpointMapping +
+
+ PayloadRootQNameEndpointMapping +
+
+ Adding <interfacename>EndpointInterceptors</interfacename> +
+
+ Handling Exceptions + + Spring-WS provides + EndpointExceptionResolvers + to ease the pain of unexpected + exceptions occurring while your message is being processed by an endpoint which matched the request. + EndpointExceptionResolver + s somewhat resemble the exception mappings that can be + defined in the web application descriptor + web.xml + . + Rather than expose the innards of your application by giving a client a full stack trace, you can handle + the exception any way you want, e.g. return a SOAP fault with a specific fault code and string. + Furthermore, a programmatic way of handling exceptions gives you many more options for how to respond + appropriately. + + + Besides implementing the + HandlerExceptionResolver + interface, which is only a + matter of implementing the + resolveException(MessageContext, endpoint, Exception) + method and returning a + boolean, you may also use the + SoapFaultMappingExceptionResolver + . + This resolver enables you to take the class name of any exception that might be thrown and map it to a + SOAP Fault, like so: + + + + + + + SENDER,Invalid request + + + + +]]> + This configuration will map exceptions of type + ValidationFailureException + to a + sender side SOAP Fault with a fault string "Invalid request". + If any other exception occurs, it will return the default fault: a server side fault with fault string + "Server error". + Refer to the Javadoc of + SoapFaultDefinitionEditor + to read more about the exact + notation of the faults. + +
+
+ +
+ Similarities between Spring-MVC and Spring-WS + + Spring-WS has the same basic architecture as Spring's Web MVC framework. + The table below shows some of the core concepts of Spring Web MVC, and the corresponding class in Spring-WS. + + + + + Spring Web MVC + Spring Web Services + + + + + + DispatcherServlet + + + MessageDispatcher + + + + handler + endpoint + + + + HandlerAdapter + + + EndpointAdapter + + + + + HandlerMapping + + + EndpointMapping + + + + + HandlerInterceptor + + + EndpointInterceptor + + + + + HandlerExceptionResolver + + + EndpointExceptionResolver + + + + + + +
+
\ No newline at end of file diff --git a/oxm-tiger/build-maven2.xml b/oxm-tiger/build-maven2.xml new file mode 100644 index 00000000..4fd4ce2d --- /dev/null +++ b/oxm-tiger/build-maven2.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/oxm-tiger/pom.xml b/oxm-tiger/pom.xml new file mode 100644 index 00000000..593986f8 --- /dev/null +++ b/oxm-tiger/pom.xml @@ -0,0 +1,75 @@ + + + spring-ws + org.springframework.ws + 1.0-m3-SNAPSHOT + + 4.0.0 + spring-oxm-tiger + Spring O/X Mapping - Java 5 + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.5 + 1.5 + + + + org.apache.maven.plugins + maven-antrun-plugin + + + generate-test-sources + + + + + + + ${project.build.directory}/generated-sources/test/java + + + run + + + + + + + + + + org.springframework.ws + spring-oxm + + + + woodstox + wstx-asl + test + + + + javax.xml.bind + jaxb-api + true + 2.0 + + + com.sun.xml.bind + jaxb-impl + 2.0.1 + test + + + com.sun.xml.bind + jaxb-xjc + 2.0.1 + test + + + + \ No newline at end of file diff --git a/oxm-tiger/src/etc/test-resources/log4j.properties b/oxm-tiger/src/etc/test-resources/log4j.properties new file mode 100644 index 00000000..5645c165 --- /dev/null +++ b/oxm-tiger/src/etc/test-resources/log4j.properties @@ -0,0 +1,6 @@ +log4j.rootCategory=INFO, stdout +log4j.logger.org.springframework.oxm=DEBUG + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n \ No newline at end of file diff --git a/oxm-tiger/src/etc/test-resources/org/springframework/oxm/flight.xsd b/oxm-tiger/src/etc/test-resources/org/springframework/oxm/flight.xsd new file mode 100644 index 00000000..5f46e0b9 --- /dev/null +++ b/oxm-tiger/src/etc/test-resources/org/springframework/oxm/flight.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + diff --git a/oxm-tiger/src/main/java/org/springframework/oxm/jaxb/Jaxb2Marshaller.java b/oxm-tiger/src/main/java/org/springframework/oxm/jaxb/Jaxb2Marshaller.java new file mode 100644 index 00000000..3213f768 --- /dev/null +++ b/oxm-tiger/src/main/java/org/springframework/oxm/jaxb/Jaxb2Marshaller.java @@ -0,0 +1,276 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jaxb; + +import java.io.IOException; +import java.util.Map; +import javax.xml.XMLConstants; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; +import javax.xml.bind.annotation.adapters.XmlAdapter; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.validation.Schema; + +import org.springframework.core.io.Resource; +import org.springframework.util.ClassUtils; +import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; +import org.springframework.xml.transform.StaxResult; +import org.springframework.xml.transform.StaxSource; +import org.springframework.xml.validation.SchemaLoaderUtils; +import org.xml.sax.SAXException; + +/** + * Implementation of the Marshaller interface for JAXB 2.0. + *

+ * The typical usage will be to set either the contextPath or the classesToBeBound property on + * this bean, possibly customize the marshaller and unmarshaller by setting properties, schemas, adapters, and + * listeners, and to refer to it. + * + * @author Arjen Poutsma + * @see #setContextPath(String) + * @see #setClassesToBeBound(Class[]) + * @see #setJaxbContextProperties(java.util.Map) + * @see #setMarshallerProperties(java.util.Map) + * @see #setUnmarshallerProperties(java.util.Map) + * @see #setSchema(org.springframework.core.io.Resource) + * @see #setSchemas(org.springframework.core.io.Resource[]) + * @see #setMarshallerListener(javax.xml.bind.Marshaller.Listener) + * @see #setUnmarshallerListener(javax.xml.bind.Unmarshaller.Listener) + * @see #setAdapters(javax.xml.bind.annotation.adapters.XmlAdapter[]) + */ +public class Jaxb2Marshaller extends AbstractJaxbMarshaller { + + private Resource[] schemaResources; + + private String schemaLanguage = XMLConstants.W3C_XML_SCHEMA_NS_URI; + + private Marshaller.Listener marshallerListener; + + private Unmarshaller.Listener unmarshallerListener; + + private XmlAdapter[] adapters; + + private Schema schema; + + private Class[] classesToBeBound; + + private Map jaxbContextProperties; + + /** + * Sets the XmlAdapters to be registered with the JAXB Marshaller and + * Unmarshaller + */ + public void setAdapters(XmlAdapter[] adapters) { + this.adapters = adapters; + } + + /** + * Sets the list of java classes to be recognized by a newly created JAXBContext. Setting this property or + * contextPath is required. + * + * @see #setContextPath(String) + */ + public void setClassesToBeBound(Class[] classesToBeBound) { + this.classesToBeBound = classesToBeBound; + } + + /** + * Sets the JAXBContext properties. These implementation-specific properties will be set on the + * JAXBContext. + */ + public void setJaxbContextProperties(Map jaxbContextProperties) { + this.jaxbContextProperties = jaxbContextProperties; + } + + /** + * Sets the Marshaller.Listener to be registered with the JAXB Marshaller. + */ + public void setMarshallerListener(Marshaller.Listener marshallerListener) { + this.marshallerListener = marshallerListener; + } + + /** + * Sets the schema resource to use for validation. + */ + public void setSchema(Resource schemaResource) { + this.schemaResources = new Resource[]{schemaResource}; + } + + /** + * Sets the schema language. Default is the W3C XML Schema: http://www.w3.org/2001/XMLSchema". + * + * @see XMLConstants#W3C_XML_SCHEMA_NS_URI + * @see XMLConstants#RELAXNG_NS_URI + */ + public void setSchemaLanguage(String schemaLanguage) { + this.schemaLanguage = schemaLanguage; + } + + /** + * Sets the schema resources to use for validation. + */ + public void setSchemas(Resource[] schemaResources) { + this.schemaResources = schemaResources; + } + + /** + * Sets the Unmarshaller.Listener to be registered with the JAXB Unmarshaller. + */ + public void setUnmarshallerListener(Unmarshaller.Listener unmarshallerListener) { + this.unmarshallerListener = unmarshallerListener; + } + + public void marshal(Object graph, Result result) { + try { + if (result instanceof StaxResult) { + marshalStaxResult(graph, (StaxResult) result); + } + else { + createMarshaller().marshal(graph, result); + } + } + catch (JAXBException ex) { + throw convertJaxbException(ex); + } + } + + public Object unmarshal(Source source) { + try { + if (source instanceof StaxSource) { + return unmarshalStaxSource((StaxSource) source); + } + else { + return createUnmarshaller().unmarshal(source); + } + } + catch (JAXBException ex) { + throw convertJaxbException(ex); + } + } + + protected void initJaxbMarshaller(Marshaller marshaller) throws JAXBException { + if (schema != null) { + marshaller.setSchema(schema); + } + if (marshallerListener != null) { + marshaller.setListener(marshallerListener); + } + if (adapters != null) { + for (int i = 0; i < adapters.length; i++) { + marshaller.setAdapter(adapters[i]); + } + } + } + + protected void initJaxbUnmarshaller(Unmarshaller unmarshaller) throws JAXBException { + if (schema != null) { + unmarshaller.setSchema(schema); + } + if (unmarshallerListener != null) { + unmarshaller.setListener(unmarshallerListener); + } + if (adapters != null) { + for (int i = 0; i < adapters.length; i++) { + unmarshaller.setAdapter(adapters[i]); + } + } + } + + protected JAXBContext createJaxbContext() throws Exception { + if (JaxbUtils.getJaxbVersion() < JaxbUtils.JAXB_2) { + throw new IllegalStateException( + "Cannot use Jaxb2Marshaller in combination with JAXB 1.0. Use Jaxb1Marshaller instead."); + } + if (StringUtils.hasLength(getContextPath()) && !ObjectUtils.isEmpty(classesToBeBound)) { + throw new IllegalArgumentException("specify either contextPath or classesToBeBound property; not both"); + } + loadSchema(); + if (StringUtils.hasLength(getContextPath())) { + return createJaxbContextFromContextPath(); + } + else if (!ObjectUtils.isEmpty(classesToBeBound)) { + return createJaxbContextFromClasses(); + } + else { + throw new IllegalArgumentException("setting either contextPath or classesToBeBound is required"); + } + } + + private JAXBContext createJaxbContextFromContextPath() throws JAXBException { + if (logger.isInfoEnabled()) { + logger.info("Creating JAXBContext with context path [" + getContextPath() + "]"); + } + if (jaxbContextProperties != null) { + return JAXBContext + .newInstance(getContextPath(), ClassUtils.getDefaultClassLoader(), jaxbContextProperties); + } + else { + return JAXBContext.newInstance(getContextPath()); + } + } + + private JAXBContext createJaxbContextFromClasses() throws JAXBException { + if (logger.isInfoEnabled()) { + logger.info("Creating JAXBContext with classes to be bound [" + + StringUtils.arrayToCommaDelimitedString(classesToBeBound) + "]"); + } + if (jaxbContextProperties != null) { + return JAXBContext.newInstance(classesToBeBound, jaxbContextProperties); + } + else { + return JAXBContext.newInstance(classesToBeBound); + } + } + + private void loadSchema() throws IOException, SAXException { + if (!ObjectUtils.isEmpty(schemaResources)) { + if (logger.isDebugEnabled()) { + logger.debug( + "Setting validation schema to " + StringUtils.arrayToCommaDelimitedString(schemaResources)); + } + schema = SchemaLoaderUtils.loadSchema(schemaResources, schemaLanguage); + } + } + + private void marshalStaxResult(Object graph, StaxResult staxResult) throws JAXBException { + if (staxResult.getXMLStreamWriter() != null) { + createMarshaller().marshal(graph, staxResult.getXMLStreamWriter()); + } + else if (staxResult.getXMLEventWriter() != null) { + createMarshaller().marshal(graph, staxResult.getXMLEventWriter()); + } + else { + throw new IllegalArgumentException("StaxResult contains neither XMLStreamWriter nor XMLEventConsumer"); + } + } + + private Object unmarshalStaxSource(StaxSource staxSource) throws JAXBException { + if (staxSource.getXMLStreamReader() != null) { + return createUnmarshaller().unmarshal(staxSource.getXMLStreamReader()); + } + else if (staxSource.getXMLEventReader() != null) { + return createUnmarshaller().unmarshal(staxSource.getXMLEventReader()); + } + else { + throw new IllegalArgumentException("StaxSource contains neither XMLStreamReader nor XMLEventReader"); + } + } +} diff --git a/oxm-tiger/src/test/java/org/springframework/oxm/jaxb/Jaxb2MarshallerTest.java b/oxm-tiger/src/test/java/org/springframework/oxm/jaxb/Jaxb2MarshallerTest.java new file mode 100644 index 00000000..ac6eabc7 --- /dev/null +++ b/oxm-tiger/src/test/java/org/springframework/oxm/jaxb/Jaxb2MarshallerTest.java @@ -0,0 +1,188 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jaxb; + +import java.io.ByteArrayOutputStream; +import java.io.StringWriter; +import java.util.Collections; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.stream.XMLEventWriter; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.Result; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.sax.SAXResult; +import javax.xml.transform.stream.StreamResult; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.easymock.MockControl; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Text; +import org.xml.sax.ContentHandler; + +import org.springframework.oxm.XmlMappingException; +import org.springframework.oxm.jaxb2.FlightType; +import org.springframework.oxm.jaxb2.Flights; +import org.springframework.xml.transform.StaxResult; + +public class Jaxb2MarshallerTest extends XMLTestCase { + + private static final String CONTEXT_PATH = "org.springframework.oxm.jaxb2"; + + private static final String EXPECTED_STRING = + "" + + "42"; + + private Jaxb2Marshaller marshaller; + + private Flights flights; + + protected void setUp() throws Exception { + marshaller = new Jaxb2Marshaller(); + marshaller.setContextPath(CONTEXT_PATH); + marshaller.afterPropertiesSet(); + FlightType flight = new FlightType(); + flight.setNumber(42L); + flights = new Flights(); + flights.getFlight().add(flight); + } + + public void testMarshalDOMResult() throws Exception { + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder(); + Document document = builder.newDocument(); + DOMResult domResult = new DOMResult(document); + marshaller.marshal(flights, domResult); + Document expected = builder.newDocument(); + Element flightsElement = expected.createElementNS("http://samples.springframework.org/flight", "tns:flights"); + expected.appendChild(flightsElement); + Element flightElement = expected.createElementNS("http://samples.springframework.org/flight", "tns:flight"); + flightsElement.appendChild(flightElement); + Element numberElement = expected.createElementNS("http://samples.springframework.org/flight", "tns:number"); + flightElement.appendChild(numberElement); + Text text = expected.createTextNode("42"); + numberElement.appendChild(text); + assertXMLEqual("Marshaller writes invalid DOMResult", expected, document); + } + + public void testMarshalStreamResultWriter() throws Exception { + StringWriter writer = new StringWriter(); + StreamResult result = new StreamResult(writer); + marshaller.marshal(flights, result); + assertXMLEqual("Marshaller writes invalid StreamResult", EXPECTED_STRING, writer.toString()); + } + + public void testMarshalStreamResultOutputStream() throws Exception { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + StreamResult result = new StreamResult(os); + marshaller.marshal(flights, result); + assertXMLEqual("Marshaller writes invalid StreamResult", EXPECTED_STRING, + new String(os.toByteArray(), "UTF-8")); + } + + public void testMarshalStaxResultXMLStreamWriter() throws Exception { + XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); + StringWriter writer = new StringWriter(); + XMLStreamWriter streamWriter = outputFactory.createXMLStreamWriter(writer); + StaxResult result = new StaxResult(streamWriter); + marshaller.marshal(flights, result); + assertXMLEqual("Marshaller writes invalid StreamResult", EXPECTED_STRING, writer.toString()); + } + + public void testMarshalStaxResultXMLEventWriter() throws Exception { + XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); + StringWriter writer = new StringWriter(); + XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(writer); + StaxResult result = new StaxResult(eventWriter); + marshaller.marshal(flights, result); + assertXMLEqual("Marshaller writes invalid StreamResult", EXPECTED_STRING, writer.toString()); + } + + public void testProperties() throws Exception { + Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); + marshaller.setContextPath(CONTEXT_PATH); + marshaller.setMarshallerProperties( + Collections.singletonMap(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE)); + marshaller.afterPropertiesSet(); + } + + public void testNoContextPathOrClassesToBeBound() throws Exception { + try { + Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); + marshaller.afterPropertiesSet(); + fail("Should have thrown an IllegalArgumentException"); + } + catch (IllegalArgumentException e) { + } + } + + public void testInvalidContextPath() throws Exception { + try { + Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); + marshaller.setContextPath("ab"); + marshaller.afterPropertiesSet(); + fail("Should have thrown an XmlMappingException"); + } + catch (XmlMappingException ex) { + } + } + + public void testMarshalInvalidClass() throws Exception { + Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); + marshaller.setClassesToBeBound(new Class[]{FlightType.class}); + marshaller.afterPropertiesSet(); + Result result = new StreamResult(new StringWriter()); + Flights flights = new Flights(); + try { + marshaller.marshal(flights, result); + fail("Should have thrown an MarshallingFailureException"); + } + catch (XmlMappingException ex) { + // expected + } + } + + public void testMarshalSaxResult() throws Exception { + MockControl handlerControl = MockControl.createStrictControl(ContentHandler.class); + ContentHandler handlerMock = (ContentHandler) handlerControl.getMock(); + handlerMock.setDocumentLocator(null); + handlerControl.setMatcher(MockControl.ALWAYS_MATCHER); + handlerMock.startDocument(); + handlerMock.startPrefixMapping("", "http://samples.springframework.org/flight"); + handlerMock.startElement("http://samples.springframework.org/flight", "flights", "flights", null); + handlerControl.setMatcher(MockControl.ALWAYS_MATCHER); + handlerMock.startElement("http://samples.springframework.org/flight", "flight", "flight", null); + handlerControl.setMatcher(MockControl.ALWAYS_MATCHER); + handlerMock.startElement("http://samples.springframework.org/flight", "number", "number", null); + handlerControl.setMatcher(MockControl.ALWAYS_MATCHER); + handlerMock.characters(new char[]{'4', '2'}, 0, 2); + handlerControl.setMatcher(MockControl.ALWAYS_MATCHER); + handlerMock.endElement("http://samples.springframework.org/flight", "number", "number"); + handlerMock.endElement("http://samples.springframework.org/flight", "flight", "flight"); + handlerMock.endElement("http://samples.springframework.org/flight", "flights", "flights"); + handlerMock.endPrefixMapping(""); + handlerMock.endDocument(); + + handlerControl.replay(); + SAXResult result = new SAXResult(handlerMock); + marshaller.marshal(flights, result); + handlerControl.verify(); + } +} diff --git a/oxm-tiger/src/test/java/org/springframework/oxm/jaxb/Jaxb2UnmarshallerTest.java b/oxm-tiger/src/test/java/org/springframework/oxm/jaxb/Jaxb2UnmarshallerTest.java new file mode 100644 index 00000000..63bbd874 --- /dev/null +++ b/oxm-tiger/src/test/java/org/springframework/oxm/jaxb/Jaxb2UnmarshallerTest.java @@ -0,0 +1,119 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jaxb; + +import java.io.StringReader; +import java.io.ByteArrayInputStream; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamSource; +import javax.xml.transform.sax.SAXSource; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLEventReader; + +import junit.framework.TestCase; + +import org.springframework.core.io.ClassPathResource; +import org.springframework.oxm.jaxb2.FlightType; +import org.springframework.oxm.jaxb2.Flights; +import org.springframework.xml.transform.StaxSource; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Text; +import org.xml.sax.XMLReader; +import org.xml.sax.InputSource; +import org.xml.sax.helpers.XMLReaderFactory; + +public class Jaxb2UnmarshallerTest extends TestCase { + + private static final String INPUT_STRING = "" + + "42"; + + private Jaxb2Marshaller unmarshaller; + + protected void setUp() throws Exception { + unmarshaller = new Jaxb2Marshaller(); + unmarshaller.setContextPath("org.springframework.oxm.jaxb2"); + unmarshaller.setSchema(new ClassPathResource("org/springframework/oxm/flight.xsd")); + unmarshaller.afterPropertiesSet(); + } + + public void testUnmarshalDomSource() throws Exception { + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document document = builder.newDocument(); + Element flightsElement = document.createElementNS("http://samples.springframework.org/flight", "tns:flights"); + document.appendChild(flightsElement); + Element flightElement = document.createElementNS("http://samples.springframework.org/flight", "tns:flight"); + flightsElement.appendChild(flightElement); + Element numberElement = document.createElementNS("http://samples.springframework.org/flight", "tns:number"); + flightElement.appendChild(numberElement); + Text text = document.createTextNode("42"); + numberElement.appendChild(text); + DOMSource source = new DOMSource(document); + Object flights = unmarshaller.unmarshal(source); + testFlights(flights); + } + + public void testUnmarshalStreamSourceReader() throws Exception { + StreamSource source = new StreamSource(new StringReader(INPUT_STRING)); + Object flights = unmarshaller.unmarshal(source); + testFlights(flights); + } + + public void testUnmarshalStreamSourceInputStream() throws Exception { + StreamSource source = new StreamSource(new ByteArrayInputStream(INPUT_STRING.getBytes("UTF-8"))); + Object flights = unmarshaller.unmarshal(source); + testFlights(flights); + } + + public void testUnmarshalSAXSource() throws Exception { + XMLReader reader = XMLReaderFactory.createXMLReader(); + SAXSource source = new SAXSource(reader, new InputSource(new StringReader(INPUT_STRING))); + Object flights = unmarshaller.unmarshal(source); + testFlights(flights); + } + + public void testUnmarshalStaxSourceXmlStreamReader() throws Exception { + XMLInputFactory inputFactory = XMLInputFactory.newInstance(); + XMLStreamReader streamReader = inputFactory.createXMLStreamReader(new StringReader(INPUT_STRING)); + StaxSource source = new StaxSource(streamReader); + Object flights = unmarshaller.unmarshal(source); + testFlights(flights); + } + + public void testUnmarshalStaxSourceXmlEventReader() throws Exception { + XMLInputFactory inputFactory = XMLInputFactory.newInstance(); + XMLEventReader eventReader = inputFactory.createXMLEventReader(new StringReader(INPUT_STRING)); + StaxSource source = new StaxSource(eventReader); + Object flights = unmarshaller.unmarshal(source); + testFlights(flights); + } + + private void testFlights(Object o) { + Flights flights = (Flights) o; + assertNotNull("Flights is null", flights); + assertEquals("Invalid amount of flight elements", 1, flights.getFlight().size()); + FlightType flight = (FlightType) flights.getFlight().get(0); + assertNotNull("Flight is null", flight); + assertEquals("Number is invalid", 42L, flight.getNumber()); + } + +} diff --git a/oxm-tiger/src/test/java/org/springframework/oxm/jaxb/JaxbUtilsTest.java b/oxm-tiger/src/test/java/org/springframework/oxm/jaxb/JaxbUtilsTest.java new file mode 100644 index 00000000..393770fb --- /dev/null +++ b/oxm-tiger/src/test/java/org/springframework/oxm/jaxb/JaxbUtilsTest.java @@ -0,0 +1,30 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.jaxb; + +import javax.xml.bind.JAXBException; +import javax.xml.bind.MarshalException; +import javax.xml.bind.UnmarshalException; +import javax.xml.bind.ValidationException; + +import junit.framework.TestCase; + +public class JaxbUtilsTest extends TestCase { + + public void testGetJaxbVersion() throws Exception { + assertEquals("Invalid JAXB version", JaxbUtils.JAXB_2, JaxbUtils.getJaxbVersion()); + } +} diff --git a/oxm/build-maven2.xml b/oxm/build-maven2.xml new file mode 100644 index 00000000..1bee0c78 --- /dev/null +++ b/oxm/build-maven2.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oxm/pom.xml b/oxm/pom.xml new file mode 100644 index 00000000..c3c723f9 --- /dev/null +++ b/oxm/pom.xml @@ -0,0 +1,149 @@ + + + + spring-ws + org.springframework.ws + 1.0-m3-SNAPSHOT + + 4.0.0 + spring-oxm + jar + Spring O/X Mapping + Spring Object/XML Mapping abstraction + + + jibx + JiBX Maven Repository + http://jibx.sourceforge.net/maven2/ + default + + + + + + org.apache.maven.plugins + maven-antrun-plugin + + + generate-test-sources + generate-test-sources + + + + + + + ${project.build.directory}/generated-sources/test/java + + + run + + + + test-compile + test-compile + + + + + + + + + run + + + + + + + + + + org.springframework.ws + spring-xml + + + + stax + stax-api + true + + + woodstox + wstx-asl + test + + + xpp3 + xpp3 + test + + + xerces + xercesImpl + test + + + + org.codehaus.castor + castor + true + + + + javax.xml.bind + jaxb-api + true + + + com.sun.xml.bind + jaxb-impl + test + + + com.sun.xml.bind + jaxb-libs + test + + + com.sun.xml.bind + jaxb-xjc + test + + + com.sun.msv.datatype.xsd + xsdlib + test + + + + xmlbeans + xbean + true + + + + org.jibx + jibx-run + true + + + org.jibx + jibx-bind + test + + + bcel + bcel + test + + + + xstream + xstream + true + + + diff --git a/oxm/src/etc/test-resources/log4j.properties b/oxm/src/etc/test-resources/log4j.properties new file mode 100644 index 00000000..5645c165 --- /dev/null +++ b/oxm/src/etc/test-resources/log4j.properties @@ -0,0 +1,6 @@ +log4j.rootCategory=INFO, stdout +log4j.logger.org.springframework.oxm=DEBUG + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n \ No newline at end of file diff --git a/oxm/src/etc/test-resources/org/springframework/oxm/castor/mapping.xml b/oxm/src/etc/test-resources/org/springframework/oxm/castor/mapping.xml new file mode 100644 index 00000000..e8597125 --- /dev/null +++ b/oxm/src/etc/test-resources/org/springframework/oxm/castor/mapping.xml @@ -0,0 +1,31 @@ + + + + Castor generated mapping file + + + Default mapping for class + org.springframework.oxm.castor.Flights + + + + + + + + + Default mapping for class + org.springframework.oxm.castor.Flight + + + + + + + \ No newline at end of file diff --git a/oxm/src/etc/test-resources/org/springframework/oxm/flight.xsd b/oxm/src/etc/test-resources/org/springframework/oxm/flight.xsd new file mode 100644 index 00000000..5f46e0b9 --- /dev/null +++ b/oxm/src/etc/test-resources/org/springframework/oxm/flight.xsd @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + diff --git a/oxm/src/etc/test-resources/org/springframework/oxm/jibx/binding.xml b/oxm/src/etc/test-resources/org/springframework/oxm/jibx/binding.xml new file mode 100644 index 00000000..415021ce --- /dev/null +++ b/oxm/src/etc/test-resources/org/springframework/oxm/jibx/binding.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/oxm/src/main/java/org/springframework/oxm/AbstractMarshaller.java b/oxm/src/main/java/org/springframework/oxm/AbstractMarshaller.java new file mode 100644 index 00000000..75a614e8 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/AbstractMarshaller.java @@ -0,0 +1,504 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.Reader; +import java.io.Writer; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLEventWriter; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.sax.SAXResult; +import javax.xml.transform.sax.SAXSource; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.util.Assert; +import org.springframework.xml.transform.StaxResult; +import org.springframework.xml.transform.StaxSource; +import org.w3c.dom.Node; +import org.xml.sax.ContentHandler; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.XMLReader; +import org.xml.sax.ext.LexicalHandler; +import org.xml.sax.helpers.XMLReaderFactory; + +/** + * Abstract implementation of the Marshaller and Unmarshaller interface. This implementation + * inspects the given Source or Result, and defers further handling to overridable template + * methods. + * + * @author Arjen Poutsma + */ +public abstract class AbstractMarshaller implements Marshaller, Unmarshaller { + + /** + * Logger available to subclasses. + */ + protected final Log logger = LogFactory.getLog(getClass()); + + private boolean validating = false; + + private boolean namespaceAware = true; + + private DocumentBuilderFactory documentBuilderFactory; + + /** + * Set whether or not the XML parser should be XML namespace aware. Default is true. + */ + public void setNamespaceAware(boolean namespaceAware) { + this.namespaceAware = namespaceAware; + } + + /** + * Set if the XML parser should validate the document. Default is false. + */ + public void setValidating(boolean validating) { + this.validating = validating; + } + + /** + * Marshals the object graph with the given root into the provided javax.xml.transform.Result. + *

+ * This implementation inspects the given result, and calls marshalDomResult, + * marshalSaxResult, or marshalStreamResult. + * + * @param graph the root of the object graph to marshal + * @param result the result to marshal to + * @throws XmlMappingException if the given object cannot be marshalled to the result + * @throws IOException if an I/O exception occurs + * @throws IllegalArgumentException if result if neither a DOMResult, + * SAXResult, StreamResult + * @see #marshalDomResult(Object, javax.xml.transform.dom.DOMResult) + * @see #marshalSaxResult(Object, javax.xml.transform.sax.SAXResult) + * @see #marshalStreamResult(Object, javax.xml.transform.stream.StreamResult) + */ + public final void marshal(Object graph, Result result) throws XmlMappingException, IOException { + if (result instanceof DOMResult) { + marshalDomResult(graph, (DOMResult) result); + } + else if (result instanceof StaxResult) { + marshalStaxResult(graph, (StaxResult) result); + } + else if (result instanceof SAXResult) { + marshalSaxResult(graph, (SAXResult) result); + } + else if (result instanceof StreamResult) { + marshalStreamResult(graph, (StreamResult) result); + } + else { + throw new IllegalArgumentException("Unknown Result type: " + result.getClass()); + } + } + + /** + * Unmarshals the given provided javax.xml.transform.Source into an object graph. + *

+ * This implementation inspects the given result, and calls unmarshalDomSource, + * unmarshalSaxSource, or unmarshalStreamSource. + * + * @param source the source to marshal from + * @return the object graph + * @throws XmlMappingException if the given source cannot be mapped to an object + * @throws IOException if an I/O Exception occurs + * @throws IllegalArgumentException if source is neither a DOMSource, a + * SAXSource, nor a StreamSource + * @see #unmarshalDomSource(javax.xml.transform.dom.DOMSource) + * @see #unmarshalSaxSource(javax.xml.transform.sax.SAXSource) + * @see #unmarshalStreamSource(javax.xml.transform.stream.StreamSource) + */ + public final Object unmarshal(Source source) throws XmlMappingException, IOException { + if (source instanceof DOMSource) { + return unmarshalDomSource((DOMSource) source); + } + else if (source instanceof StaxSource) { + return unmarshalStaxSource((StaxSource) source); + } + else if (source instanceof SAXSource) { + return unmarshalSaxSource((SAXSource) source); + } + else if (source instanceof StreamSource) { + return unmarshalStreamSource((StreamSource) source); + } + else { + throw new IllegalArgumentException("Unknown Source type: " + source.getClass()); + } + } + + /** + * Create a DocumentBuilder that this marshaller will use for creating DOM documents when passed an + * empty DOMSource. Can be overridden in subclasses, adding further initialization of the builder. + * + * @param factory the DocumentBuilderFactory that the DocumentBuilder should be created with + * @return the DocumentBuilder + * @throws javax.xml.parsers.ParserConfigurationException + * if thrown by JAXP methods + */ + protected DocumentBuilder createDocumentBuilder(DocumentBuilderFactory factory) + throws ParserConfigurationException { + return factory.newDocumentBuilder(); + } + + /** + * Create a DocumentBuilder that this marshaller will use for creating DOM documents when passed an + * empty DOMSource. The resulting DocumentBuilderFactory is cached, so this method will + * only be called once. + * + * @return the DocumentBuilderFactory + * @throws ParserConfigurationException if thrown by JAXP methods + */ + protected DocumentBuilderFactory createDocumentBuilderFactory() throws ParserConfigurationException { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setValidating(validating); + factory.setNamespaceAware(namespaceAware); + return factory; + } + + /** + * Create a XMLReader that this marshaller will when passed an empty SAXSource. + * + * @return the XMLReader + * @throws SAXException if thrown by JAXP methods + */ + protected XMLReader createXmlReader() throws SAXException { + return XMLReaderFactory.createXMLReader(); + } + + // + // Marshalling + // + + /** + * Template method for handling DOMResults. This implementation defers to marshalDomNode. + * + * @param graph the root of the object graph to marshal + * @param domResult the DOMResult + * @throws XmlMappingException if the given object cannot be marshalled to the result + * @throws IllegalArgumentException if the domResult is empty + * @see #marshalDomNode(Object,org.w3c.dom.Node) + */ + protected void marshalDomResult(Object graph, DOMResult domResult) throws XmlMappingException { + Assert.notNull(domResult.getNode(), "DOMResult does not contain Node"); + marshalDomNode(graph, domResult.getNode()); + } + + /** + * Template method for handling StaxResults. This implementation defers to + * marshalXMLSteamWriter, or marshalXMLEventConsumer, depending on what is contained in + * the StaxResult. + * + * @param graph the root of the object graph to marshal + * @param staxResult the StaxResult + * @throws XmlMappingException if the given object cannot be marshalled to the result + * @throws IllegalArgumentException if the domResult is empty + * @see #marshalDomNode(Object,org.w3c.dom.Node) + */ + protected void marshalStaxResult(Object graph, StaxResult staxResult) throws XmlMappingException { + if (staxResult.getXMLStreamWriter() != null) { + marshalXmlStreamWriter(graph, staxResult.getXMLStreamWriter()); + } + else if (staxResult.getXMLEventWriter() != null) { + marshalXmlEventWriter(graph, staxResult.getXMLEventWriter()); + } + else { + throw new IllegalArgumentException("StaxResult contains neither XMLStreamWriter nor XMLEventConsumer"); + } + } + + /** + * Template method for handling SAXResults. This implementation defers to + * marshalSaxHandlers. + * + * @param graph the root of the object graph to marshal + * @param saxResult the SAXResult + * @throws XmlMappingException if the given object cannot be marshalled to the result + * @see #marshalSaxHandlers(Object, org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler) + */ + protected void marshalSaxResult(Object graph, SAXResult saxResult) throws XmlMappingException { + ContentHandler contentHandler = saxResult.getHandler(); + Assert.notNull(contentHandler, "ContentHandler not set on SAXResult"); + LexicalHandler lexicalHandler = saxResult.getLexicalHandler(); + marshalSaxHandlers(graph, contentHandler, lexicalHandler); + } + + /** + * Template method for handling StreamResults. This implementation defers to + * marshalOutputStream, or marshalWriter, depending on what is contained in the + * StreamResult + * + * @param graph the root of the object graph to marshal + * @param streamResult the StreamResult + * @throws IOException if an I/O Exception occurs + * @throws XmlMappingException if the given object cannot be marshalled to the result + * @throws IllegalArgumentException if streamResult contains neither OutputStream nor + * Writer. + */ + protected void marshalStreamResult(Object graph, StreamResult streamResult) + throws XmlMappingException, IOException { + if (streamResult.getOutputStream() != null) { + marshalOutputStream(graph, streamResult.getOutputStream()); + } + else if (streamResult.getWriter() != null) { + marshalWriter(graph, streamResult.getWriter()); + } + else { + throw new IllegalArgumentException("StreamResult contains neither OutputStream nor Writer"); + } + } + + // + // Unmarshalling + // + + /** + * Template method for handling DOMSources. This implementation defers to + * unmarshalDomNode. If the given source is empty, an empty source Document will be + * created as a placeholder. + * + * @param domSource the DOMSource + * @return the object graph + * @throws IllegalArgumentException if the domSource is empty + * @throws XmlMappingException if the given source cannot be mapped to an object + * @see #unmarshalDomNode(org.w3c.dom.Node) + */ + protected Object unmarshalDomSource(DOMSource domSource) throws XmlMappingException { + if (domSource.getNode() == null) { + try { + if (documentBuilderFactory == null) { + documentBuilderFactory = createDocumentBuilderFactory(); + } + DocumentBuilder documentBuilder = createDocumentBuilder(documentBuilderFactory); + domSource.setNode(documentBuilder.newDocument()); + } + catch (ParserConfigurationException ex) { + throw new UnmarshallingFailureException( + "Could not create document placeholder for DOMSource: " + ex.getMessage(), ex); + } + } + return unmarshalDomNode(domSource.getNode()); + } + + /** + * Template method for handling StaxSources. This implementation defers to + * unmarshalXmlStreamReader, or unmarshalXmlEventReader. + * + * @param staxSource the StaxSource + * @return the object graph + * @throws XmlMappingException if the given source cannot be mapped to an object + */ + protected Object unmarshalStaxSource(StaxSource staxSource) throws XmlMappingException { + if (staxSource.getXMLStreamReader() != null) { + return unmarshalXmlStreamReader(staxSource.getXMLStreamReader()); + } + else if (staxSource.getXMLEventReader() != null) { + return unmarshalXmlEventReader(staxSource.getXMLEventReader()); + } + else { + throw new IllegalArgumentException("StaxSource contains neither XMLStreamReader nor XMLEventReader"); + } + } + + /** + * Template method for handling SAXSources. This implementation defers to + * unmarshalSaxReader. + * + * @param saxSource the SAXSource + * @return the object graph + * @throws XmlMappingException if the given source cannot be mapped to an object + * @throws IOException if an I/O Exception occurs + * @see #unmarshalSaxReader(org.xml.sax.XMLReader, org.xml.sax.InputSource) + */ + protected Object unmarshalSaxSource(SAXSource saxSource) throws XmlMappingException, IOException { + if (saxSource.getXMLReader() == null) { + try { + saxSource.setXMLReader(createXmlReader()); + } + catch (SAXException ex) { + throw new UnmarshallingFailureException("Could not create XMLReader for SAXSource: " + ex.getMessage(), + ex); + } + } + if (saxSource.getInputSource() == null) { + saxSource.setInputSource(new InputSource()); + } + return unmarshalSaxReader(saxSource.getXMLReader(), saxSource.getInputSource()); + } + + /** + * Template method for handling StreamSources. This implementation defers to + * unmarshalInputStream, or unmarshalReader. + * + * @param streamSource the StreamSource + * @return the object graph + * @throws IOException if an I/O exception occurs + * @throws XmlMappingException if the given source cannot be mapped to an object + */ + protected Object unmarshalStreamSource(StreamSource streamSource) throws XmlMappingException, IOException { + if (streamSource.getInputStream() != null) { + return unmarshalInputStream(streamSource.getInputStream()); + } + else if (streamSource.getReader() != null) { + return unmarshalReader(streamSource.getReader()); + } + else { + throw new IllegalArgumentException("StreamSource contains neither InputStream nor Reader"); + } + } + + // + // Abstract template methods + // + + /** + * Abstract template method for marshalling the given object graph to a DOM Node. + *

+ * In practice, node is be a Document node, a DocumentFragment node, or a + * Element node. In other words, a node that accepts children. + * + * @param graph the root of the object graph to marshal + * @param node The DOM node that will contain the result tree + * @throws XmlMappingException if the given object cannot be marshalled to the DOM node + * @see org.w3c.dom.Document + * @see org.w3c.dom.DocumentFragment + * @see org.w3c.dom.Element + */ + protected abstract void marshalDomNode(Object graph, Node node) throws XmlMappingException; + + /** + * Abstract template method for marshalling the given object to a StAX XMLEventWriter. + * + * @param graph the root of the object graph to marshal + * @param eventWriter the XMLEventWriter to write to + * @throws XmlMappingException if the given object cannot be marshalled to the DOM node + */ + protected abstract void marshalXmlEventWriter(Object graph, XMLEventWriter eventWriter) throws XmlMappingException; + + /** + * Abstract template method for marshalling the given object to a StAX XMLStreamWriter. + * + * @param graph the root of the object graph to marshal + * @param streamWriter the XMLStreamWriter to write to + * @throws XmlMappingException if the given object cannot be marshalled to the DOM node + */ + protected abstract void marshalXmlStreamWriter(Object graph, XMLStreamWriter streamWriter) + throws XmlMappingException; + + /** + * Abstract template method for marshalling the given object graph to a OutputStream. + * + * @param graph the root of the object graph to marshal + * @param outputStream the OutputStream to write to + * @throws XmlMappingException if the given object cannot be marshalled to the writer + * @throws IOException if an I/O exception occurs + */ + protected abstract void marshalOutputStream(Object graph, OutputStream outputStream) + throws XmlMappingException, IOException; + + /** + * Abstract template method for marshalling the given object graph to a SAX ContentHandler. + * + * @param graph the root of the object graph to marshal + * @param contentHandler the SAX ContentHandler + * @param lexicalHandler the SAX2 LexicalHandler. Can be null. + * @throws XmlMappingException if the given object cannot be marshalled to the handlers + */ + protected abstract void marshalSaxHandlers(Object graph, + ContentHandler contentHandler, + LexicalHandler lexicalHandler) throws XmlMappingException; + + /** + * Abstract template method for marshalling the given object graph to a Writer. + * + * @param graph the root of the object graph to marshal + * @param writer the Writer to write to + * @throws XmlMappingException if the given object cannot be marshalled to the writer + * @throws IOException if an I/O exception occurs + */ + protected abstract void marshalWriter(Object graph, Writer writer) throws XmlMappingException, IOException; + + /** + * Abstract template method for unmarshalling from a given DOM Node. + * + * @param node The DOM node that contains the objects to be unmarshalled + * @return the object graph + * @throws XmlMappingException if the given DOM node cannot be mapped to an object + */ + protected abstract Object unmarshalDomNode(Node node) throws XmlMappingException; + + /** + * Abstract template method for unmarshalling from a given Stax XMLEventReader. + * + * @param eventReader The XMLEventReader to read from + * @return the object graph + * @throws XmlMappingException if the given event reader cannot be converted to an object + */ + protected abstract Object unmarshalXmlEventReader(XMLEventReader eventReader) throws XmlMappingException; + + /** + * Abstract template method for unmarshalling from a given Stax XMLStreamReader. + * + * @param streamReader The XMLStreamReader to read from + * @return the object graph + * @throws XmlMappingException if the given stream reader cannot be converted to an object + */ + protected abstract Object unmarshalXmlStreamReader(XMLStreamReader streamReader) throws XmlMappingException; + + /** + * Abstract template method for unmarshalling from a given InputStream. + * + * @param inputStream the InputStreamStream to read from + * @return the object graph + * @throws XmlMappingException if the given stream cannot be converted to an object + * @throws IOException if an I/O exception occurs + */ + protected abstract Object unmarshalInputStream(InputStream inputStream) throws XmlMappingException, IOException; + + /** + * Abstract template method for unmarshalling from a given Reader. + * + * @param reader the Reader to read from + * @return the object graph + * @throws XmlMappingException if the given reader cannot be converted to an object + * @throws IOException if an I/O exception occurs + */ + protected abstract Object unmarshalReader(Reader reader) throws XmlMappingException, IOException; + + /** + * Abstract template method for unmarshalling using a given SAX XMLReader and + * InputSource. + * + * @param xmlReader the SAX XMLReader to parse with + * @param inputSource the input source to parse from + * @return the object graph + * @throws XmlMappingException if the given reader and input source cannot be converted to an object + */ + protected abstract Object unmarshalSaxReader(XMLReader xmlReader, InputSource inputSource) + throws XmlMappingException, IOException; +} diff --git a/oxm/src/main/java/org/springframework/oxm/GenericMarshallingFailureException.java b/oxm/src/main/java/org/springframework/oxm/GenericMarshallingFailureException.java new file mode 100644 index 00000000..4e1985ec --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/GenericMarshallingFailureException.java @@ -0,0 +1,42 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm; + + +/** + * Base class for exception thrown when a marshalling or unmarshalling error occurs. + * + * @author Arjen Poutsma + * @see MarshallingFailureException + * @see UnmarshallingFailureException + */ +public abstract class GenericMarshallingFailureException extends XmlMappingException { + + /** + * Constructor for GenericMarshallingFailureException. + */ + public GenericMarshallingFailureException(String msg) { + super(msg); + } + + /** + * Constructor for GenericMarshallingFailureException. + */ + public GenericMarshallingFailureException(String msg, Throwable ex) { + super(msg, ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/Marshaller.java b/oxm/src/main/java/org/springframework/oxm/Marshaller.java new file mode 100644 index 00000000..3bb7518d --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/Marshaller.java @@ -0,0 +1,44 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm; + +import java.io.IOException; + +import javax.xml.transform.Result; + +/** + * Defines the contract for Object XML Mapping Marshallers. Implementations of this interface can serialize a given + * Object to a XML Stream. + *

+ * Although the marshal method accepts a java.lang.Object as its first parameter, + * most Marshaller implementations cannot handle arbitrary java.lang.Object. Instead, a + * object class must be registered with the marshaller, or have a common base class. + * + * @author Arjen Poutsma + */ +public interface Marshaller { + + /** + * Marshals the object graph with the given root into the provided javax.xml.transform.Result. + * + * @param graph the root of the object graph to marshal + * @param result the result to marshal to + * @throws XmlMappingException if the given object cannot be marshalled to the result + * @throws IOException if an I/O exception occurs + */ + void marshal(Object graph, Result result) throws XmlMappingException, IOException; + +} diff --git a/oxm/src/main/java/org/springframework/oxm/MarshallingFailureException.java b/oxm/src/main/java/org/springframework/oxm/MarshallingFailureException.java new file mode 100644 index 00000000..0fc2ace5 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/MarshallingFailureException.java @@ -0,0 +1,43 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm; + + +/** + * Exception thrown on marshalling failure. + * + * @author Arjen Poutsma + */ +public class MarshallingFailureException extends GenericMarshallingFailureException { + /** + * Construct a MarshallingFailureException with the specified detail message. + * + * @param msg the detail message + */ + public MarshallingFailureException(String msg) { + super(msg); + } + + /** + * Construct a MarshallingFailureException with the specified detail message and nested exception. + * + * @param msg the detail message + * @param ex the nested exception + */ + public MarshallingFailureException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/UncategorizedXmlMappingException.java b/oxm/src/main/java/org/springframework/oxm/UncategorizedXmlMappingException.java new file mode 100644 index 00000000..cea72338 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/UncategorizedXmlMappingException.java @@ -0,0 +1,32 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm; + + +/** + * Superclass for exceptions that cannot be distinguished further. + * + * @author Arjen Poutsma + */ +public abstract class UncategorizedXmlMappingException extends XmlMappingException { + + /** + * Constructor for UncategorizedXmlMappingException. + */ + protected UncategorizedXmlMappingException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/Unmarshaller.java b/oxm/src/main/java/org/springframework/oxm/Unmarshaller.java new file mode 100644 index 00000000..45711b8b --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/Unmarshaller.java @@ -0,0 +1,39 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm; + +import java.io.IOException; + +import javax.xml.transform.Source; + +/** + * Defines the contract for Object XML Mapping unmarshallers. Implementations of this interface can deserialize a given + * XML Stream to an Object graph. + * + * @author Arjen Poutsma + */ +public interface Unmarshaller { + + /** + * Unmarshals the given provided javax.xml.transform.Source into an object graph. + * + * @param source the source to marshal from + * @return the object graph + * @throws XmlMappingException if the given source cannot be mapped to an object + * @throws IOException if an I/O Exception occurs + */ + Object unmarshal(Source source) throws XmlMappingException, IOException; +} diff --git a/oxm/src/main/java/org/springframework/oxm/UnmarshallingFailureException.java b/oxm/src/main/java/org/springframework/oxm/UnmarshallingFailureException.java new file mode 100644 index 00000000..8c98b0b0 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/UnmarshallingFailureException.java @@ -0,0 +1,38 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm; + +/** + * Exception thrown on unmarshalling failure. + * + * @author Arjen Poutsma + */ +public class UnmarshallingFailureException extends GenericMarshallingFailureException { + + /** + * Constructor for UnmarshallingFailureException. + */ + public UnmarshallingFailureException(String msg) { + super(msg); + } + + /** + * Constructor for UnmarshallingFailureException. + */ + public UnmarshallingFailureException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/ValidationFailureException.java b/oxm/src/main/java/org/springframework/oxm/ValidationFailureException.java new file mode 100644 index 00000000..1d9f1533 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/ValidationFailureException.java @@ -0,0 +1,38 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm; + +/** + * Exception thrown on marshalling validation failure. + * + * @author Arjen Poutsma + */ +public class ValidationFailureException extends XmlMappingException { + + /** + * Constructor for ValidationFailureException. + */ + public ValidationFailureException(String msg) { + super(msg); + } + + /** + * Constructor for ValidationFailureException. + */ + public ValidationFailureException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/XmlMappingException.java b/oxm/src/main/java/org/springframework/oxm/XmlMappingException.java new file mode 100644 index 00000000..2b529f5c --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/XmlMappingException.java @@ -0,0 +1,39 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm; + +import org.springframework.core.NestedRuntimeException; + +/** + * Root of the hierarchy of Object XML Mapping exceptions. + * + * @author Arjen Poutsma + */ +public abstract class XmlMappingException extends NestedRuntimeException { + /** + * Constructor for XmlMappingException. + */ + public XmlMappingException(String msg) { + super(msg); + } + + /** + * Constructor for XmlMappingException. + */ + public XmlMappingException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/castor/CastorMarshaller.java b/oxm/src/main/java/org/springframework/oxm/castor/CastorMarshaller.java new file mode 100644 index 00000000..e835d996 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/castor/CastorMarshaller.java @@ -0,0 +1,301 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.castor; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.Reader; +import java.io.Writer; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLEventWriter; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; + +import org.castor.mapping.BindingType; +import org.castor.mapping.MappingUnmarshaller; +import org.exolab.castor.mapping.Mapping; +import org.exolab.castor.mapping.MappingException; +import org.exolab.castor.mapping.MappingLoader; +import org.exolab.castor.xml.ClassDescriptorResolverFactory; +import org.exolab.castor.xml.MarshalException; +import org.exolab.castor.xml.Marshaller; +import org.exolab.castor.xml.UnmarshalHandler; +import org.exolab.castor.xml.Unmarshaller; +import org.exolab.castor.xml.XMLClassDescriptorResolver; +import org.exolab.castor.xml.XMLException; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.core.io.Resource; +import org.springframework.oxm.AbstractMarshaller; +import org.springframework.oxm.XmlMappingException; +import org.springframework.xml.stream.StaxEventContentHandler; +import org.springframework.xml.stream.StaxEventXmlReader; +import org.springframework.xml.stream.StaxStreamContentHandler; +import org.springframework.xml.stream.StaxStreamXmlReader; +import org.w3c.dom.Node; +import org.xml.sax.ContentHandler; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.XMLReader; +import org.xml.sax.ext.LexicalHandler; + +/** + * Implementation of the Marshaller interface for Castor. By default, Castor does not require any further + * configuration, though setting a target class or providing a mapping file can be used to have more control over the + * behavior of Castor. + *

+ * If a target class is specified using setTargetClass, the CastorMarshaller can only be used + * to unmarshall XML that represents that specific class. If you want to unmarshall multiple classes, you have to + * provide a mapping file using setMappingLocation. + *

+ * Due to Castor's API, it is required to set the encoding used for writing to output streams. It defaults to + * UTF-8. + * + * @author Arjen Poutsma + * @see #setEncoding(String) + * @see #setTargetClass(Class) + * @see #setMappingLocation(org.springframework.core.io.Resource) + */ +public class CastorMarshaller extends AbstractMarshaller implements InitializingBean { + + /** + * The default encoding used for stream access. + */ + public static final String DEFAULT_ENCODING = "UTF-8"; + + private Resource mappingLocation; + + private String encoding; + + private Class targetClass; + + private XMLClassDescriptorResolver classDescriptorResolver; + + /** + * Returns the encoding to be used for stream access. If this property is not set, the default encoding is used. + * + * @see #DEFAULT_ENCODING + */ + private String getEncoding() { + return encoding != null ? encoding : DEFAULT_ENCODING; + } + + /** + * Sets the encoding to be used for stream access. If this property is not set, the default encoding is used. + * + * @see #DEFAULT_ENCODING + */ + public void setEncoding(String encoding) { + this.encoding = encoding; + } + + /** + * Sets the Castor target class. If this property is set, this CastorMarshaller is tied to this one + * specific class. Use a mapping file for unmarshalling multiple classes. + *

+ * You cannot set both this property and the mapping (location). + */ + public void setTargetClass(Class targetClass) { + this.targetClass = targetClass; + } + + /** + * Sets the location of the Castor XML Mapping file. + */ + public void setMappingLocation(Resource mappingLocation) { + this.mappingLocation = mappingLocation; + } + + public final void afterPropertiesSet() throws IOException { + if (mappingLocation != null && targetClass != null) { + throw new IllegalArgumentException("Cannot set both the 'mappingLocation' and 'targetClass' property. " + + "Set targetClass for unmarshalling a single class, and 'mappingLocation' for multiple classes'"); + } + if (logger.isInfoEnabled()) { + if (mappingLocation != null) { + logger.info("Configured using " + mappingLocation); + } + else if (targetClass != null) { + logger.info("Configured for target class [" + targetClass.getName() + "]"); + } + else { + logger.info("Using default configuration"); + } + } + try { + createClassDescriptorResolver(); + } + catch (MappingException ex) { + throw new CastorSystemException("Could not load Castor mapping: " + ex.getMessage(), ex); + } + } + + private void createClassDescriptorResolver() throws MappingException, IOException { + classDescriptorResolver = (XMLClassDescriptorResolver) ClassDescriptorResolverFactory + .createClassDescriptorResolver(BindingType.XML); + if (mappingLocation != null) { + Mapping mapping = new Mapping(); + mapping.loadMapping(new InputSource(mappingLocation.getInputStream())); + MappingUnmarshaller mappingUnmarshaller = new MappingUnmarshaller(); + MappingLoader mappingLoader = mappingUnmarshaller.getMappingLoader(mapping, BindingType.XML); + classDescriptorResolver.setMappingLoader(mappingLoader); + classDescriptorResolver.setClassLoader(mapping.getClassLoader()); + } + else if (targetClass != null) { + classDescriptorResolver.setClassLoader(targetClass.getClassLoader()); + } + } + + /** + * Converts the given CastorException to an appropriate exception from the + * org.springframework.oxm hierarchy. + *

+ * The default implementation delegates to CastorUtils. Can be overridden in subclasses. + *

+ * A boolean flag is used to indicate whether this exception occurs during marshalling or unmarshalling, since + * Castor itself does not make this distinction in its exception hierarchy. + * + * @param ex Castor XMLException that occured + * @param marshalling indicates whether the exception occurs during marshalling (true), or + * unmarshalling (false) + * @return the corresponding XmlMappingException + * @see CastorUtils#convertXmlException + */ + public XmlMappingException convertCastorException(XMLException ex, boolean marshalling) { + return CastorUtils.convertXmlException(ex, marshalling); + } + + private Unmarshaller createUnmarshaller() { + Unmarshaller unmarshaller = null; + if (targetClass != null) { + unmarshaller = new Unmarshaller(targetClass); + } + else { + unmarshaller = new Unmarshaller(); + } + unmarshaller.setResolver(classDescriptorResolver); + return unmarshaller; + } + + private void marshal(Object graph, Marshaller marshaller) { + try { + marshaller.setResolver(classDescriptorResolver); + marshaller.marshal(graph); + } + catch (XMLException ex) { + throw convertCastorException(ex, true); + } + } + + protected void marshalDomNode(Object graph, Node node) throws XmlMappingException { + Marshaller marshaller = new Marshaller(node); + marshal(graph, marshaller); + } + + protected void marshalXmlEventWriter(Object graph, XMLEventWriter eventWriter) throws XmlMappingException { + ContentHandler contentHandler = new StaxEventContentHandler(eventWriter); + marshalSaxHandlers(graph, contentHandler, null); + } + + protected void marshalXmlStreamWriter(Object graph, XMLStreamWriter streamWriter) throws XmlMappingException { + ContentHandler contentHandler = new StaxStreamContentHandler(streamWriter); + marshalSaxHandlers(graph, contentHandler, null); + } + + protected void marshalOutputStream(Object graph, OutputStream outputStream) + throws XmlMappingException, IOException { + OutputStreamWriter writer = new OutputStreamWriter(outputStream, getEncoding()); + marshalWriter(graph, writer); + } + + protected void marshalSaxHandlers(Object graph, ContentHandler contentHandler, LexicalHandler lexicalHandler) + throws XmlMappingException { + try { + Marshaller marshaller = new Marshaller(contentHandler); + marshal(graph, marshaller); + } + catch (IOException ex) { + throw new CastorSystemException("Could not construct Castor ContentHandler Marshaller", ex); + } + } + + protected void marshalWriter(Object graph, Writer writer) throws XmlMappingException, IOException { + Marshaller marshaller = new Marshaller(writer); + marshal(graph, marshaller); + } + + protected Object unmarshalDomNode(Node node) throws XmlMappingException { + try { + return createUnmarshaller().unmarshal(node); + } + catch (XMLException ex) { + throw convertCastorException(ex, false); + } + } + + protected Object unmarshalXmlEventReader(XMLEventReader eventReader) { + XMLReader reader = new StaxEventXmlReader(eventReader); + try { + return unmarshalSaxReader(reader, new InputSource()); + } + catch (IOException ex) { + throw new CastorUnmarshallingFailureException(new MarshalException(ex)); + } + } + + protected Object unmarshalXmlStreamReader(XMLStreamReader streamReader) { + XMLReader reader = new StaxStreamXmlReader(streamReader); + try { + return unmarshalSaxReader(reader, new InputSource()); + } + catch (IOException ex) { + throw new CastorUnmarshallingFailureException(new MarshalException(ex)); + } + } + + protected Object unmarshalSaxReader(XMLReader xmlReader, InputSource inputSource) + throws XmlMappingException, IOException { + UnmarshalHandler unmarshalHandler = createUnmarshaller().createHandler(); + try { + ContentHandler contentHandler = Unmarshaller.getContentHandler(unmarshalHandler); + xmlReader.setContentHandler(contentHandler); + xmlReader.parse(inputSource); + return unmarshalHandler.getObject(); + } + catch (SAXException ex) { + throw new CastorUnmarshallingFailureException(ex); + } + } + + protected Object unmarshalInputStream(InputStream inputStream) throws XmlMappingException, IOException { + try { + return createUnmarshaller().unmarshal(new InputSource(inputStream)); + } + catch (XMLException ex) { + throw convertCastorException(ex, false); + } + } + + protected Object unmarshalReader(Reader reader) throws XmlMappingException, IOException { + try { + return createUnmarshaller().unmarshal(new InputSource(reader)); + } + catch (XMLException ex) { + throw convertCastorException(ex, false); + } + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/castor/CastorMarshallingFailureException.java b/oxm/src/main/java/org/springframework/oxm/castor/CastorMarshallingFailureException.java new file mode 100644 index 00000000..f5a08b58 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/castor/CastorMarshallingFailureException.java @@ -0,0 +1,34 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.castor; + +import org.exolab.castor.xml.MarshalException; + +import org.springframework.oxm.MarshallingFailureException; + +/** + * Castor-specific subclass of MarshallingFailureException. + * + * @author Arjen Poutsma + * @see CastorUtils#convertXmlException + */ +public class CastorMarshallingFailureException extends MarshallingFailureException { + + public CastorMarshallingFailureException(MarshalException ex) { + super("Castor marshalling exception: " + ex.getMessage(), ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/castor/CastorSystemException.java b/oxm/src/main/java/org/springframework/oxm/castor/CastorSystemException.java new file mode 100644 index 00000000..0bc866e4 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/castor/CastorSystemException.java @@ -0,0 +1,31 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.castor; + +import org.springframework.oxm.UncategorizedXmlMappingException; + +/** + * Castor-specific subclass of UncategorizedXmlMappingException, for Castor exceptions that cannot be + * distinguished further. + * + * @author Arjen Poutsma + */ +public class CastorSystemException extends UncategorizedXmlMappingException { + + public CastorSystemException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/castor/CastorUnmarshallingFailureException.java b/oxm/src/main/java/org/springframework/oxm/castor/CastorUnmarshallingFailureException.java new file mode 100644 index 00000000..551389b1 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/castor/CastorUnmarshallingFailureException.java @@ -0,0 +1,38 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.castor; + +import org.exolab.castor.xml.MarshalException; +import org.xml.sax.SAXException; + +import org.springframework.oxm.UnmarshallingFailureException; + +/** + * Castor-specific subclass of UnmarshallingFailureException. + * + * @author Arjen Poutsma + * @see CastorUtils#convertXmlException + */ +public class CastorUnmarshallingFailureException extends UnmarshallingFailureException { + + public CastorUnmarshallingFailureException(MarshalException ex) { + super("Castor unmarshalling exception: " + ex.getMessage(), ex); + } + + public CastorUnmarshallingFailureException(SAXException ex) { + super("Castor unmarshalling exception: " + ex.getMessage(), ex); + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/castor/CastorUtils.java b/oxm/src/main/java/org/springframework/oxm/castor/CastorUtils.java new file mode 100644 index 00000000..c45057b6 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/castor/CastorUtils.java @@ -0,0 +1,60 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.castor; + +import org.exolab.castor.xml.MarshalException; +import org.exolab.castor.xml.ValidationException; +import org.exolab.castor.xml.XMLException; + +import org.springframework.oxm.XmlMappingException; + +/** + * Generic utility methods for working with Castor. Mainly for internal use within the framework. + * + * @author Arjen Poutsma + */ +public class CastorUtils { + + /** + * Converts the given XMLException to an appropriate exception from the + * org.springframework.oxm hierarchy. + *

+ * A boolean flag is used to indicate whether this exception occurs during marshalling or unmarshalling, since + * Castor itself does not make this distinction in its exception hierarchy. + * + * @param ex Castor XMLException that occured + * @param marshalling indicates whether the exception occurs during marshalling (true), or + * unmarshalling (false) + * @return the corresponding XmlMappingException + */ + public static XmlMappingException convertXmlException(XMLException ex, boolean marshalling) { + if (ex instanceof MarshalException) { + MarshalException marshalException = (MarshalException) ex; + if (marshalling) { + return new CastorMarshallingFailureException(marshalException); + } + else { + return new CastorUnmarshallingFailureException(marshalException); + } + } + else if (ex instanceof ValidationException) { + return new CastorValidationFailureException((ValidationException) ex); + } + // fallback + return new CastorSystemException("Unknown Castor exception: " + ex.getMessage(), ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/castor/CastorValidationFailureException.java b/oxm/src/main/java/org/springframework/oxm/castor/CastorValidationFailureException.java new file mode 100644 index 00000000..31de863f --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/castor/CastorValidationFailureException.java @@ -0,0 +1,33 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.castor; + +import org.exolab.castor.xml.ValidationException; + +import org.springframework.oxm.ValidationFailureException; + +/** + * Castor-specific subclass of MarshallingFailureException. + * + * @author Arjen Poutsma + * @see CastorUtils#convertXmlException + */ +public class CastorValidationFailureException extends ValidationFailureException { + + public CastorValidationFailureException(ValidationException ex) { + super("Castor validation exception: " + ex.getMessage(), ex); + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/castor/package.html b/oxm/src/main/java/org/springframework/oxm/castor/package.html new file mode 100644 index 00000000..0ba0c30f --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/castor/package.html @@ -0,0 +1,6 @@ + + +Package providing integration of Castor within Springs O/X Mapping +support. + + diff --git a/oxm/src/main/java/org/springframework/oxm/jaxb/AbstractJaxbMarshaller.java b/oxm/src/main/java/org/springframework/oxm/jaxb/AbstractJaxbMarshaller.java new file mode 100644 index 00000000..efe63a01 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jaxb/AbstractJaxbMarshaller.java @@ -0,0 +1,204 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jaxb; + +import java.util.Iterator; +import java.util.Map; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; +import javax.xml.bind.ValidationEventHandler; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.oxm.XmlMappingException; + +/** + * Abstract base class for implementations of the Marshaller and Unmarshaller interfaces that + * use JAXB. This base class is responsible for creating JAXB marshallers from a JAXBContext. + *

+ * JAXB 2.0 added breaking API changes, so specific subclasses must be used for JAXB 1.0 and 2.0 + * (Jaxb1Marshaller and Jaxb2Marshaller respectivaly). + * + * @author Arjen Poutsma + * @see Jaxb1Marshaller + * @see Jaxb2Marshaller + */ +public abstract class AbstractJaxbMarshaller + implements org.springframework.oxm.Marshaller, org.springframework.oxm.Unmarshaller, InitializingBean { + + /** + * Logger available to subclasses. + */ + protected final Log logger = LogFactory.getLog(getClass()); + + private String contextPath; + + private Map marshallerProperties; + + private Map unmarshallerProperties; + + private JAXBContext jaxbContext; + + private ValidationEventHandler validationEventHandler; + + /** + * Returns the JAXB Context path. + */ + protected String getContextPath() { + return contextPath; + } + + /** + * Sets the JAXB Context path. + */ + public void setContextPath(String contextPath) { + this.contextPath = contextPath; + } + + /** + * Sets the JAXB Marshaller properties. These properties will be set on the underlying JAXB + * Marshaller, and allow for features such as indentation. + * + * @param properties the properties + * @see javax.xml.bind.Marshaller#setProperty(String, Object) + * @see javax.xml.bind.Marshaller#JAXB_ENCODING + * @see javax.xml.bind.Marshaller#JAXB_FORMATTED_OUTPUT + * @see javax.xml.bind.Marshaller#JAXB_NO_NAMESPACE_SCHEMA_LOCATION + * @see javax.xml.bind.Marshaller#JAXB_SCHEMA_LOCATION + */ + public void setMarshallerProperties(Map properties) { + this.marshallerProperties = properties; + } + + /** + * Sets the JAXB Unmarshaller properties. These properties will be set on the underlying JAXB + * Unmarshaller. + * + * @param properties the properties + * @see javax.xml.bind.Unmarshaller#setProperty(String, Object) + */ + public void setUnmarshallerProperties(Map properties) { + this.unmarshallerProperties = properties; + } + + /** + * Sets the JAXB validation event handler. This event handler will be called by JAXB if any validation errors are + * encountered during calls to any of the marshal API's. + * + * @param validationEventHandler the event handler + */ + public void setValidationEventHandler(ValidationEventHandler validationEventHandler) { + this.validationEventHandler = validationEventHandler; + } + + public final void afterPropertiesSet() throws Exception { + try { + jaxbContext = createJaxbContext(); + } + catch (JAXBException ex) { + throw convertJaxbException(ex); + } + } + + /** + * Convert the given JAXBException to an appropriate exception from the + * org.springframework.oxm hierarchy. + *

+ * The default implementation delegates to JaxbUtils. Can be overridden in subclasses. + * + * @param ex JAXBException that occured + * @return the corresponding XmlMappingException instance + * @see JaxbUtils#convertJaxbException + */ + protected XmlMappingException convertJaxbException(JAXBException ex) { + return JaxbUtils.convertJaxbException(ex); + } + + /** + * Returns a newly created JAXB marshaller. JAXB marshallers are not necessarily thread safe. + */ + protected Marshaller createMarshaller() { + try { + Marshaller marshaller = jaxbContext.createMarshaller(); + if (marshallerProperties != null) { + for (Iterator iterator = marshallerProperties.keySet().iterator(); iterator.hasNext();) { + String name = (String) iterator.next(); + marshaller.setProperty(name, marshallerProperties.get(name)); + } + } + if (validationEventHandler != null) { + marshaller.setEventHandler(validationEventHandler); + } + initJaxbMarshaller(marshaller); + return marshaller; + } + catch (JAXBException ex) { + throw convertJaxbException(ex); + } + } + + /** + * Returns a newly created JAXB unmarshaller. JAXB unmarshallers are not necessarily thread safe. + */ + protected Unmarshaller createUnmarshaller() { + try { + Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); + if (unmarshallerProperties != null) { + for (Iterator iterator = unmarshallerProperties.keySet().iterator(); iterator.hasNext();) { + String name = (String) iterator.next(); + unmarshaller.setProperty(name, unmarshallerProperties.get(name)); + } + } + if (validationEventHandler != null) { + unmarshaller.setEventHandler(validationEventHandler); + } + initJaxbUnmarshaller(unmarshaller); + return unmarshaller; + } + catch (JAXBException ex) { + throw convertJaxbException(ex); + } + } + + /** + * Template method that can be overridden by concrete JAXB marshallers for custom initialization behavior. Gets + * called after creation of JAXB Marshaller, and after the respective properties have been set. + *

+ * Default implementation does nothing. + */ + protected void initJaxbMarshaller(Marshaller marshaller) throws JAXBException { + } + + /** + * Template method that can overridden by concrete JAXB marshallers for custom initialization behavior. Gets called + * after creation of JAXB Unmarshaller, and after the respective properties have been set. + *

+ * Default implementation does nothing. + */ + protected void initJaxbUnmarshaller(Unmarshaller unmarshaller) throws JAXBException { + } + + /** + * Template method that returns a newly created JAXB context. Called from afterPropertiesSet(). + */ + protected abstract JAXBContext createJaxbContext() throws Exception; +} diff --git a/oxm/src/main/java/org/springframework/oxm/jaxb/Jaxb1Marshaller.java b/oxm/src/main/java/org/springframework/oxm/jaxb/Jaxb1Marshaller.java new file mode 100644 index 00000000..56ace1ab --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jaxb/Jaxb1Marshaller.java @@ -0,0 +1,81 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.jaxb; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Unmarshaller; +import javax.xml.transform.Result; +import javax.xml.transform.Source; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.util.StringUtils; + +/** + * Implementation of the Marshaller interface for JAXB 1.0. + *

+ * The typical usage will be to set the contextPath property on this bean, possibly customize the + * marshaller and unmarshaller by setting properties, and validations, and to refer to it. + * + * @author Arjen Poutsma + * @see #setContextPath(String) + * @see #setMarshallerProperties(java.util.Map) + * @see #setUnmarshallerProperties(java.util.Map) + * @see #setValidating(boolean) + */ +public class Jaxb1Marshaller extends AbstractJaxbMarshaller implements InitializingBean { + + private boolean validating = false; + + /** + * Set if the JAXB Unmarshaller should validate the incoming document. Default is false. + */ + public void setValidating(boolean validating) { + this.validating = validating; + } + + protected final JAXBContext createJaxbContext() throws JAXBException { + if (!StringUtils.hasLength(getContextPath())) { + throw new IllegalArgumentException("contextPath is required"); + } + if (logger.isInfoEnabled()) { + logger.info("Creating JAXBContext with context path [" + getContextPath() + "]"); + } + return JAXBContext.newInstance(getContextPath()); + } + + protected void initJaxbUnmarshaller(Unmarshaller unmarshaller) throws JAXBException { + unmarshaller.setValidating(validating); + } + + public void marshal(Object graph, Result result) { + try { + createMarshaller().marshal(graph, result); + } + catch (JAXBException ex) { + throw convertJaxbException(ex); + } + } + + public Object unmarshal(Source source) { + try { + return createUnmarshaller().unmarshal(source); + } + catch (JAXBException ex) { + throw convertJaxbException(ex); + } + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbMarshallingFailureException.java b/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbMarshallingFailureException.java new file mode 100644 index 00000000..e5c71aa6 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbMarshallingFailureException.java @@ -0,0 +1,34 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.jaxb; + +import javax.xml.bind.MarshalException; + +import org.springframework.oxm.MarshallingFailureException; + +/** + * JAXB-specific subclass of MarshallingFailureException. + * + * @author Arjen Poutsma + * @see JaxbUtils#convertJaxbException + */ +public class JaxbMarshallingFailureException extends MarshallingFailureException { + + public JaxbMarshallingFailureException(MarshalException ex) { + super("JAXB marshalling exception: " + ex.getMessage(), ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbSystemException.java b/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbSystemException.java new file mode 100644 index 00000000..d7a2b85f --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbSystemException.java @@ -0,0 +1,34 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.jaxb; + +import javax.xml.bind.JAXBException; + +import org.springframework.oxm.UncategorizedXmlMappingException; + +/** + * JAXB-specific subclass of UncategorizedXmlMappingException, for JAXBExceptions that cannot + * be distinguished further. + * + * @author Arjen Poutsma + * @see JaxbUtils#convertJaxbException(javax.xml.bind.JAXBException) + */ +public class JaxbSystemException extends UncategorizedXmlMappingException { + + public JaxbSystemException(JAXBException ex) { + super(ex.getMessage(), ex); + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbUnmarshallingFailureException.java b/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbUnmarshallingFailureException.java new file mode 100644 index 00000000..b43a0f1a --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbUnmarshallingFailureException.java @@ -0,0 +1,33 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.jaxb; + +import javax.xml.bind.UnmarshalException; + +import org.springframework.oxm.UnmarshallingFailureException; + +/** + * JAXB-specific subclass of UnmarshallingFailureException. + * + * @author Arjen Poutsma + */ +public class JaxbUnmarshallingFailureException extends UnmarshallingFailureException { + + public JaxbUnmarshallingFailureException(UnmarshalException ex) { + super("JAXB unmarshalling exception: " + ex.getMessage(), ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbUtils.java b/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbUtils.java new file mode 100644 index 00000000..e117115e --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbUtils.java @@ -0,0 +1,82 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.jaxb; + +import javax.xml.bind.JAXBException; +import javax.xml.bind.MarshalException; +import javax.xml.bind.UnmarshalException; +import javax.xml.bind.ValidationException; + +import org.springframework.oxm.XmlMappingException; + +/** + * Generic utility methods for working with JAXB. Mainly for internal use within the framework. + * + * @author Arjen Poutsma + */ +public abstract class JaxbUtils { + + public static final int JAXB_1 = 0; + + public static final int JAXB_2 = 1; + + private static final String JAXB_2_CLASS_NAME = "javax.xml.bind.Binder"; + + private static int jaxbVersion = JAXB_1; + + static { + try { + Class.forName(JAXB_2_CLASS_NAME); + jaxbVersion = JAXB_2; + } + catch (ClassNotFoundException ex1) { + // leave JAXB 1 as default + } + } + + /** + * Gets the major JAXB version. This means we can do things like if (getJaxbVersion() <= JAXB_2). + * + * @return a code comparable to the JAXP_XX codes in this class + * @see #JAXB_1 + * @see #JAXB_2 + */ + public static int getJaxbVersion() { + return jaxbVersion; + } + + /** + * Converts the given JAXBException to an appropriate exception from the + * org.springframework.oxm hierarchy. + * + * @param ex JAXBException that occured + * @return the corresponding XmlMappingException + */ + public static XmlMappingException convertJaxbException(JAXBException ex) { + if (ex instanceof MarshalException) { + return new JaxbMarshallingFailureException((MarshalException) ex); + } + else if (ex instanceof UnmarshalException) { + return new JaxbUnmarshallingFailureException((UnmarshalException) ex); + } + else if (ex instanceof ValidationException) { + return new JaxbValidationFailureException((ValidationException) ex); + } + // fallback + return new JaxbSystemException(ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbValidationFailureException.java b/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbValidationFailureException.java new file mode 100644 index 00000000..7c96d988 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jaxb/JaxbValidationFailureException.java @@ -0,0 +1,34 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.jaxb; + +import javax.xml.bind.ValidationException; + +import org.springframework.oxm.ValidationFailureException; + +/** + * JAXB-specific subclass of ValidationFailureException. + * + * @author Arjen Poutsma + * @see JaxbUtils#convertJaxbException + */ +public class JaxbValidationFailureException extends ValidationFailureException { + + public JaxbValidationFailureException(ValidationException ex) { + super("JAXB validation exception: " + ex.getMessage(), ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/jaxb/package.html b/oxm/src/main/java/org/springframework/oxm/jaxb/package.html new file mode 100644 index 00000000..7b398a83 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jaxb/package.html @@ -0,0 +1,6 @@ + + +Package providing integration of JAXB with Springs O/X Mapping +support. + + diff --git a/oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshaller.java b/oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshaller.java new file mode 100644 index 00000000..05708a77 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshaller.java @@ -0,0 +1,289 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jibx; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.Reader; +import java.io.Writer; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLEventWriter; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.sax.SAXResult; +import javax.xml.transform.sax.SAXSource; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +import org.jibx.runtime.BindingDirectory; +import org.jibx.runtime.IBindingFactory; +import org.jibx.runtime.IMarshallingContext; +import org.jibx.runtime.IUnmarshallingContext; +import org.jibx.runtime.IXMLReader; +import org.jibx.runtime.IXMLWriter; +import org.jibx.runtime.JiBXException; +import org.jibx.runtime.impl.MarshallingContext; +import org.jibx.runtime.impl.StAXReaderWrapper; +import org.jibx.runtime.impl.StAXWriter; +import org.jibx.runtime.impl.UnmarshallingContext; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.oxm.AbstractMarshaller; +import org.springframework.oxm.XmlMappingException; +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; +import org.springframework.xml.stream.StaxEventContentHandler; +import org.springframework.xml.stream.XmlEventStreamReader; +import org.w3c.dom.Node; +import org.xml.sax.ContentHandler; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; +import org.xml.sax.ext.LexicalHandler; + +/** + * Implementation of the Marshaller and Unmarshaller interfaces for JiBX. + *

+ * The typical usage will be to set the targetClass and optionally the bindingName property on + * this bean, and to refer to it. + * + * @author Arjen Poutsma + * @see org.jibx.runtime.IMarshallingContext + * @see org.jibx.runtime.IUnmarshallingContext + */ +public class JibxMarshaller extends AbstractMarshaller implements InitializingBean { + + private Class targetClass; + + private String bindingName; + + private IBindingFactory bindingFactory; + + private TransformerFactory transfomerFactory; + + /** + * Sets the optional binding name for this instance. + */ + public void setBindingName(String bindingName) { + this.bindingName = bindingName; + } + + /** + * Sets the target class for this instance. This property is required. + */ + public void setTargetClass(Class targetClass) { + this.targetClass = targetClass; + } + + public void afterPropertiesSet() throws Exception { + Assert.notNull(targetClass, "targetClass is required"); + if (logger.isInfoEnabled()) { + if (StringUtils.hasLength(bindingName)) { + logger.info("Configured for target class [" + targetClass + "] using binding [" + bindingName + "]"); + } + else { + logger.info("Configured for target class [" + targetClass + "]"); + } + } + try { + if (StringUtils.hasLength(bindingName)) { + bindingFactory = BindingDirectory.getFactory(bindingName, targetClass); + } + else { + bindingFactory = BindingDirectory.getFactory(targetClass); + } + } + catch (JiBXException ex) { + throw new JibxSystemException(ex); + } + transfomerFactory = TransformerFactory.newInstance(); + } + + /** + * Convert the given JiBXException to an appropriate exception from the + * org.springframework.oxm hierarchy. + *

+ * The default implementation delegates to JibxUtils. Can be overridden in subclasses. + *

+ * A boolean flag is used to indicate whether this exception occurs during marshalling or unmarshalling, since JiBX + * itself does not make this distinction in its exception hierarchy. + * + * @param ex JiBXException that occured + * @param marshalling indicates whether the exception occurs during marshalling (true), or + * unmarshalling (false) + * @return the corresponding XmlMappingException instance + * @see JibxUtils#convertJibxException(org.jibx.runtime.JiBXException, boolean) + */ + public XmlMappingException convertJibxException(JiBXException ex, boolean marshalling) { + return JibxUtils.convertJibxException(ex, marshalling); + } + + protected void marshalDomNode(Object graph, Node node) throws XmlMappingException { + try { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + marshalOutputStream(graph, os); + ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray()); + Transformer transformer = transfomerFactory.newTransformer(); + transformer.transform(new StreamSource(is), new DOMResult(node)); + } + catch (IOException ex) { + throw new JibxSystemException(ex); + } + catch (TransformerException ex) { + throw new JibxSystemException(ex); + } + } + + protected void marshalOutputStream(Object graph, OutputStream outputStream) + throws XmlMappingException, IOException { + try { + IMarshallingContext marshallingContext = bindingFactory.createMarshallingContext(); + marshallingContext.marshalDocument(graph, null, null, outputStream); + } + catch (JiBXException ex) { + throw convertJibxException(ex, true); + } + } + + protected void marshalSaxHandlers(Object graph, ContentHandler contentHandler, LexicalHandler lexicalHandler) + throws XmlMappingException { + try { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + marshalOutputStream(graph, os); + ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray()); + Transformer transformer = transfomerFactory.newTransformer(); + transformer.transform(new StreamSource(is), new SAXResult(contentHandler)); + } + catch (IOException ex) { + throw new JibxSystemException(ex); + } + catch (TransformerException ex) { + throw new JibxSystemException(ex); + } + } + + protected void marshalWriter(Object graph, Writer writer) throws XmlMappingException, IOException { + try { + IMarshallingContext marshallingContext = bindingFactory.createMarshallingContext(); + marshallingContext.marshalDocument(graph, null, null, writer); + } + catch (JiBXException ex) { + throw convertJibxException(ex, true); + } + } + + protected void marshalXmlEventWriter(Object graph, XMLEventWriter eventWriter) { + + ContentHandler contentHandler = new StaxEventContentHandler(eventWriter); + marshalSaxHandlers(graph, contentHandler, null); + } + + protected void marshalXmlStreamWriter(Object graph, XMLStreamWriter streamWriter) throws XmlMappingException { + try { + MarshallingContext marshallingContext = (MarshallingContext) bindingFactory.createMarshallingContext(); + IXMLWriter xmlWriter = new StAXWriter(marshallingContext.getNamespaces(), streamWriter); + marshallingContext.setXmlWriter(xmlWriter); + marshallingContext.marshalDocument(graph); + } + catch (JiBXException ex) { + throw convertJibxException(ex, false); + } + } + + protected Object unmarshalDomNode(Node node) throws XmlMappingException { + try { + Transformer transformer = transfomerFactory.newTransformer(); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + transformer.transform(new DOMSource(node), new StreamResult(os)); + ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray()); + return unmarshalInputStream(is); + } + catch (IOException ex) { + throw new JibxSystemException(ex); + } + catch (TransformerException ex) { + throw new JibxSystemException(ex); + } + } + + protected Object unmarshalInputStream(InputStream inputStream) throws XmlMappingException, IOException { + try { + IUnmarshallingContext unmarshallingContext = bindingFactory.createUnmarshallingContext(); + return unmarshallingContext.unmarshalDocument(inputStream, null); + } + catch (JiBXException ex) { + throw convertJibxException(ex, false); + } + } + + protected Object unmarshalReader(Reader reader) throws XmlMappingException, IOException { + try { + IUnmarshallingContext unmarshallingContext = bindingFactory.createUnmarshallingContext(); + return unmarshallingContext.unmarshalDocument(reader); + } + catch (JiBXException ex) { + throw convertJibxException(ex, false); + } + } + + protected Object unmarshalSaxReader(XMLReader xmlReader, InputSource inputSource) + throws XmlMappingException, IOException { + try { + Transformer transformer = transfomerFactory.newTransformer(); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + transformer.transform(new SAXSource(xmlReader, inputSource), new StreamResult(os)); + ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray()); + return unmarshalInputStream(is); + } + catch (IOException ex) { + throw new JibxSystemException(ex); + } + catch (TransformerException ex) { + throw new JibxSystemException(ex); + } + } + + protected Object unmarshalXmlEventReader(XMLEventReader eventReader) { + try { + XMLStreamReader streamReader = new XmlEventStreamReader(eventReader); + return unmarshalXmlStreamReader(streamReader); + } + catch (XMLStreamException ex) { + throw new JibxSystemException(ex); + } + } + + protected Object unmarshalXmlStreamReader(XMLStreamReader streamReader) { + try { + UnmarshallingContext unmarshallingContext = + (UnmarshallingContext) bindingFactory.createUnmarshallingContext(); + IXMLReader xmlReader = new StAXReaderWrapper(streamReader, null, true); + unmarshallingContext.setDocument(xmlReader); + return unmarshallingContext.unmarshalElement(); + } + catch (JiBXException ex) { + throw convertJibxException(ex, false); + } + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshallingFailureException.java b/oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshallingFailureException.java new file mode 100644 index 00000000..4fbf894d --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshallingFailureException.java @@ -0,0 +1,34 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jibx; + +import org.jibx.runtime.JiBXException; + +import org.springframework.oxm.MarshallingFailureException; + +/** + * JiXB-specific subclass of MarshallingFailureException. + * + * @author Arjen Poutsma + * @see JibxUtils#convertJibxException(org.jibx.runtime.JiBXException, boolean) + */ +public class JibxMarshallingFailureException extends MarshallingFailureException { + + public JibxMarshallingFailureException(JiBXException ex) { + super("JiBX marshalling exception: " + ex.getMessage(), ex); + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/jibx/JibxSystemException.java b/oxm/src/main/java/org/springframework/oxm/jibx/JibxSystemException.java new file mode 100644 index 00000000..0dabff7a --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jibx/JibxSystemException.java @@ -0,0 +1,33 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jibx; + +import org.springframework.oxm.UncategorizedXmlMappingException; + +/** + * JiBX-specific subclass of UncategorizedXmlMappingException, for JiBXBExceptions that cannot + * be distinguished further. + * + * @author Arjen Poutsma + * @see JibxUtils#convertJibxException(org.jibx.runtime.JiBXException, boolean) + */ +public class JibxSystemException extends UncategorizedXmlMappingException { + + public JibxSystemException(Exception ex) { + super(ex.getMessage(), ex); + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/jibx/JibxUnmarshallingFailureException.java b/oxm/src/main/java/org/springframework/oxm/jibx/JibxUnmarshallingFailureException.java new file mode 100644 index 00000000..539d487c --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jibx/JibxUnmarshallingFailureException.java @@ -0,0 +1,35 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jibx; + +import org.jibx.runtime.JiBXException; + +import org.springframework.oxm.UnmarshallingFailureException; + +/** + * JiXB-specific subclass of UnmarshallingFailureException. + * + * @author Arjen Poutsma + * @see JibxUtils#convertJibxException(org.jibx.runtime.JiBXException, boolean) + */ +public class JibxUnmarshallingFailureException extends UnmarshallingFailureException { + + public JibxUnmarshallingFailureException(JiBXException ex) { + super("JiBX unmarshalling exception: " + ex.getMessage(), ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/jibx/JibxUtils.java b/oxm/src/main/java/org/springframework/oxm/jibx/JibxUtils.java new file mode 100644 index 00000000..23bd4c6d --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jibx/JibxUtils.java @@ -0,0 +1,56 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jibx; + +import org.jibx.runtime.JiBXException; +import org.jibx.runtime.ValidationException; + +import org.springframework.oxm.XmlMappingException; + +/** + * Generic utility methods for working with JiBX. Mainly for internal use within the framework. + * + * @author Arjen Poutsma + */ +public abstract class JibxUtils { + + /** + * Converts the given JiBXException to an appropriate exception from the + * org.springframework.oxm hierarchy. + *

+ * A boolean flag is used to indicate whether this exception occurs during marshalling or unmarshalling, since JiBX + * itself does not make this distinction in its exception hierarchy. + * + * @param ex JiBXException that occured + * @param marshalling indicates whether the exception occurs during marshalling (true), or + * unmarshalling (false) + * @return the corresponding XmlMappingException + */ + public static XmlMappingException convertJibxException(JiBXException ex, boolean marshalling) { + if (ex instanceof ValidationException) { + return new JibxValidationFailureException((ValidationException) ex); + } + else { + if (marshalling) { + return new JibxMarshallingFailureException(ex); + } + else { + return new JibxUnmarshallingFailureException(ex); + } + } + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/jibx/JibxValidationFailureException.java b/oxm/src/main/java/org/springframework/oxm/jibx/JibxValidationFailureException.java new file mode 100644 index 00000000..7fd0034e --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jibx/JibxValidationFailureException.java @@ -0,0 +1,35 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jibx; + +import org.jibx.runtime.ValidationException; + +import org.springframework.oxm.ValidationFailureException; + +/** + * JAXB-specific subclass of ValidationFailureException. + * + * @author Arjen Poutsma + * @see JibxUtils#convertJibxException(org.jibx.runtime.JiBXException, boolean) + */ +public class JibxValidationFailureException extends ValidationFailureException { + + public JibxValidationFailureException(ValidationException ex) { + super("JiBX validation exception: " + ex.getMessage(), ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/jibx/package.html b/oxm/src/main/java/org/springframework/oxm/jibx/package.html new file mode 100644 index 00000000..a685b60e --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/jibx/package.html @@ -0,0 +1,6 @@ + + +Package providing integration of JiBX with Springs O/X Mapping +support. + + diff --git a/oxm/src/main/java/org/springframework/oxm/package.html b/oxm/src/main/java/org/springframework/oxm/package.html new file mode 100644 index 00000000..e7fdb736 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/package.html @@ -0,0 +1,6 @@ + + +Root package for Spring's O/X Mapping integration classes. Contains generic Marshaller and Unmarshaller interfaces, +and XmlMappingExceptions related to O/X Mapping. + + diff --git a/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansMarshaller.java b/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansMarshaller.java new file mode 100644 index 00000000..f02c3cbd --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansMarshaller.java @@ -0,0 +1,243 @@ +package org.springframework.oxm.xmlbeans; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.Reader; +import java.io.Writer; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLEventWriter; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; + +import org.apache.xmlbeans.XmlError; +import org.apache.xmlbeans.XmlException; +import org.apache.xmlbeans.XmlObject; +import org.apache.xmlbeans.XmlOptions; +import org.apache.xmlbeans.XmlSaxHandler; +import org.apache.xmlbeans.XmlValidationError; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.ContentHandler; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.SAXNotRecognizedException; +import org.xml.sax.SAXNotSupportedException; +import org.xml.sax.XMLReader; +import org.xml.sax.ext.LexicalHandler; + +import org.springframework.oxm.AbstractMarshaller; +import org.springframework.oxm.XmlMappingException; +import org.springframework.xml.stream.StaxEventContentHandler; +import org.springframework.xml.stream.StaxEventXmlReader; +import org.springframework.xml.stream.StaxStreamContentHandler; + +/** + * Implementation of the Marshaller interface for XMLBeans. Further options can be set by setting the + * xmlOptions property. A XmlOptionsFactoryBean is provided to easily wire up + * XmlObjects instances. + *

+ * Unmarshalled objects can be validated by setting the validating property, or by calling the + * validiate() method directly. Invalid objects will result in an XmlBeansValidationFailureException. + *

+ * Note that due to the nature of XMLBeans, this marshaller requires all passed objects to be of type + * XmlObject. + * + * @author Arjen Poutsma + * @see #setXmlOptions(org.apache.xmlbeans.XmlOptions) + * @see XmlOptionsFactoryBean + * @see #setValidating(boolean) + * @see org.apache.xmlbeans.XmlObject + */ +public class XmlBeansMarshaller extends AbstractMarshaller { + + private XmlOptions xmlOptions; + + private boolean validating = false; + + /** + * Set if this marshaller should validate the incoming document. Default is false. + */ + public void setValidating(boolean validating) { + this.validating = validating; + } + + /** + * Sets the XmlOptions. + * + * @param xmlOptions the xml options + */ + public void setXmlOptions(XmlOptions xmlOptions) { + this.xmlOptions = xmlOptions; + } + + /** + * Converts the given XMLBeans exception to an appropriate exception from the org.springframework.oxm + * hierarchy. + *

+ * The default implementation delegates to XmlBeansUtils. Can be overridden in subclasses. + *

+ * A boolean flag is used to indicate whether this exception occurs during marshalling or unmarshalling, since + * XMLBeans itself does not make this distinction in its exception hierarchy. + * + * @param ex XMLBeans Exception that occured + * @param marshalling indicates whether the exception occurs during marshalling (true), or + * unmarshalling (false) + * @return the corresponding XmlMappingException + * @see XmlBeansUtils#convertXmlBeansException(Exception, boolean) + */ + public XmlMappingException convertXmlBeansException(Exception ex, boolean marshalling) { + return XmlBeansUtils.convertXmlBeansException(ex, marshalling); + } + + protected void marshalDomNode(Object graph, Node node) throws XmlMappingException { + Document document = node.getNodeType() == Node.DOCUMENT_NODE ? (Document) node : node.getOwnerDocument(); + Node xmlBeansNode = ((XmlObject) graph).newDomNode(xmlOptions); + NodeList xmlBeansChildNodes = xmlBeansNode.getChildNodes(); + for (int i = 0; i < xmlBeansChildNodes.getLength(); i++) { + Node xmlBeansChildNode = xmlBeansChildNodes.item(i); + Node importedNode = document.importNode(xmlBeansChildNode, true); + node.appendChild(importedNode); + } + } + + protected void marshalOutputStream(Object graph, OutputStream outputStream) + throws XmlMappingException, IOException { + ((XmlObject) graph).save(outputStream, xmlOptions); + } + + protected void marshalSaxHandlers(Object graph, ContentHandler contentHandler, LexicalHandler lexicalHandler) + throws XmlMappingException { + try { + ((XmlObject) graph).save(contentHandler, lexicalHandler, xmlOptions); + } + catch (SAXException ex) { + throw convertXmlBeansException(ex, true); + } + } + + protected void marshalWriter(Object graph, Writer writer) throws XmlMappingException, IOException { + ((XmlObject) graph).save(writer, xmlOptions); + } + + protected void marshalXmlEventWriter(Object graph, XMLEventWriter eventWriter) { + ContentHandler contentHandler = new StaxEventContentHandler(eventWriter); + marshalSaxHandlers(graph, contentHandler, null); + } + + protected void marshalXmlStreamWriter(Object graph, XMLStreamWriter streamWriter) throws XmlMappingException { + ContentHandler contentHandler = new StaxStreamContentHandler(streamWriter); + marshalSaxHandlers(graph, contentHandler, null); + } + + protected Object unmarshalDomNode(Node node) throws XmlMappingException { + try { + XmlObject object = XmlObject.Factory.parse(node, xmlOptions); + validate(object); + return object; + } + catch (XmlException ex) { + throw convertXmlBeansException(ex, false); + } + } + + protected Object unmarshalInputStream(InputStream inputStream) throws XmlMappingException, IOException { + try { + XmlObject object = XmlObject.Factory.parse(inputStream, xmlOptions); + validate(object); + return object; + } + catch (XmlException ex) { + throw convertXmlBeansException(ex, false); + } + } + + protected Object unmarshalReader(Reader reader) throws XmlMappingException, IOException { + try { + XmlObject object = XmlObject.Factory.parse(reader, xmlOptions); + validate(object); + return object; + } + catch (XmlException ex) { + throw convertXmlBeansException(ex, false); + } + } + + protected Object unmarshalSaxReader(XMLReader xmlReader, InputSource inputSource) + throws XmlMappingException, IOException { + XmlSaxHandler saxHandler = XmlObject.Factory.newXmlSaxHandler(xmlOptions); + xmlReader.setContentHandler(saxHandler.getContentHandler()); + try { + xmlReader.setProperty("http://xml.org/sax/properties/lexical-handler", saxHandler.getLexicalHandler()); + } + catch (SAXNotRecognizedException e) { + } + catch (SAXNotSupportedException e) { + } + try { + xmlReader.parse(inputSource); + XmlObject object = saxHandler.getObject(); + validate(object); + return object; + } + catch (SAXException ex) { + throw convertXmlBeansException(ex, false); + } + catch (XmlException ex) { + throw convertXmlBeansException(ex, false); + } + } + + protected Object unmarshalXmlEventReader(XMLEventReader eventReader) throws XmlMappingException { + XMLReader reader = new StaxEventXmlReader(eventReader); + try { + return unmarshalSaxReader(reader, new InputSource()); + } + catch (IOException ex) { + throw convertXmlBeansException(ex, false); + } + } + + protected Object unmarshalXmlStreamReader(XMLStreamReader streamReader) throws XmlMappingException { + try { + XmlObject object = XmlObject.Factory.parse(streamReader, xmlOptions); + validate(object); + return object; + } + catch (XmlException ex) { + throw convertXmlBeansException(ex, false); + } + } + + /** + * Validates the given XmlObject. + * + * @param object the xml object to validate + * @throws XmlBeansValidationFailureException + * if the given object is not valid + */ + public void validate(XmlObject object) throws XmlBeansValidationFailureException { + if (validating && object != null) { + // create a temporary xmlOptions just for validation + XmlOptions validateOptions = (xmlOptions != null) ? xmlOptions : new XmlOptions(); + List errorsList = new ArrayList(); + validateOptions.setErrorListener(errorsList); + if (!object.validate(validateOptions)) { + StringBuffer buffer = new StringBuffer("Could not validate XmlObject :"); + for (Iterator iterator = errorsList.iterator(); iterator.hasNext();) { + XmlError xmlError = (XmlError) iterator.next(); + if (xmlError instanceof XmlValidationError) { + buffer.append(xmlError.toString()); + } + } + XmlException ex = new XmlException(buffer.toString(), null, errorsList); + throw new XmlBeansValidationFailureException(ex); + } + } + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansMarshallingFailureException.java b/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansMarshallingFailureException.java new file mode 100644 index 00000000..836f8212 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansMarshallingFailureException.java @@ -0,0 +1,39 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.xmlbeans; + +import org.apache.xmlbeans.XmlException; +import org.xml.sax.SAXException; + +import org.springframework.oxm.MarshallingFailureException; + +/** + * XMLBeans-specific subclass of MarshallingFailureException. + * + * @author Arjen Poutsma + * @see XmlBeansUtils#convertXmlBeansException(Exception, boolean) + */ +public class XmlBeansMarshallingFailureException extends MarshallingFailureException { + + public XmlBeansMarshallingFailureException(XmlException ex) { + super("XMLBeans marshalling exception: " + ex.getMessage(), ex); + } + + public XmlBeansMarshallingFailureException(SAXException ex) { + super("XMLBeans marshalling exception: " + ex.getMessage(), ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansSystemException.java b/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansSystemException.java new file mode 100644 index 00000000..2010edc8 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansSystemException.java @@ -0,0 +1,32 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.xmlbeans; + +import org.springframework.oxm.UncategorizedXmlMappingException; + +/** + * XMLBeans-specific subclass of UncategorizedXmlMappingException, for XMLBeans exceptions that cannot + * be distinguished further. + * + * @author Arjen Poutsma + */ +public class XmlBeansSystemException extends UncategorizedXmlMappingException { + + public XmlBeansSystemException(Exception e) { + super(e.getMessage(), e); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansUnmarshallingFailureException.java b/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansUnmarshallingFailureException.java new file mode 100644 index 00000000..33fbd656 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansUnmarshallingFailureException.java @@ -0,0 +1,39 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.xmlbeans; + +import org.apache.xmlbeans.XmlException; +import org.xml.sax.SAXException; + +import org.springframework.oxm.UnmarshallingFailureException; + +/** + * XMLBeans-specific subclass of UnmarshallingFailureException. + * + * @author Arjen Poutsma + * @see XmlBeansUtils#convertXmlBeansException(Exception, boolean) + */ +public class XmlBeansUnmarshallingFailureException extends UnmarshallingFailureException { + + public XmlBeansUnmarshallingFailureException(XmlException ex) { + super("XMLBeans unmarshalling exception: " + ex.getMessage(), ex); + } + + public XmlBeansUnmarshallingFailureException(SAXException ex) { + super("XMLBeans unmarshalling exception: " + ex.getMessage(), ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansUtils.java b/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansUtils.java new file mode 100644 index 00000000..1644f010 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansUtils.java @@ -0,0 +1,69 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.xmlbeans; + +import org.apache.xmlbeans.XMLStreamValidationException; +import org.apache.xmlbeans.XmlException; +import org.xml.sax.SAXException; + +import org.springframework.oxm.XmlMappingException; + +/** + * Generic utility methods for working with XMLBeans. Mainly for internal use within the framework. + * + * @author Arjen Poutsma + */ +public class XmlBeansUtils { + + /** + * Converts the given XMLBeans exception to an appropriate exception from the org.springframework.oxm + * hierarchy. + *

+ * A boolean flag is used to indicate whether this exception occurs during marshalling or unmarshalling, since + * XMLBeans itself does not make this distinction in its exception hierarchy. + * + * @param ex XMLBeans Exception that occured + * @param marshalling indicates whether the exception occurs during marshalling (true), or + * unmarshalling (false) + * @return the corresponding XmlMappingException + */ + public static XmlMappingException convertXmlBeansException(Exception ex, boolean marshalling) { + if (ex instanceof XMLStreamValidationException) { + return new XmlBeansValidationFailureException((XMLStreamValidationException) ex); + } + else if (ex instanceof XmlException) { + XmlException xmlException = (XmlException) ex; + if (marshalling) { + return new XmlBeansMarshallingFailureException(xmlException); + } + else { + return new XmlBeansUnmarshallingFailureException(xmlException); + } + } + else if (ex instanceof SAXException) { + SAXException saxException = (SAXException) ex; + if (marshalling) { + return new XmlBeansMarshallingFailureException(saxException); + } + else { + return new XmlBeansUnmarshallingFailureException(saxException); + } + } + // fallback + return new XmlBeansSystemException(ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansValidationFailureException.java b/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansValidationFailureException.java new file mode 100644 index 00000000..c7fff246 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlBeansValidationFailureException.java @@ -0,0 +1,38 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.xmlbeans; + +import org.apache.xmlbeans.XMLStreamValidationException; +import org.apache.xmlbeans.XmlException; + +import org.springframework.oxm.ValidationFailureException; + +/** + * XMLBeans-specific subclass of ValidationFailureException. + * + * @author Arjen Poutsma + * @see org.springframework.oxm.xmlbeans.XmlBeansUtils#convertXmlBeansException + */ +public class XmlBeansValidationFailureException extends ValidationFailureException { + + public XmlBeansValidationFailureException(XMLStreamValidationException ex) { + super("XmlBeans validation exception: " + ex.getMessage(), ex); + } + + public XmlBeansValidationFailureException(XmlException ex) { + super("XmlBeans validation exception: " + ex.getMessage(), ex); + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlOptionsFactoryBean.java b/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlOptionsFactoryBean.java new file mode 100644 index 00000000..04897bae --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/xmlbeans/XmlOptionsFactoryBean.java @@ -0,0 +1,85 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.xmlbeans; + +import java.util.Iterator; +import java.util.Map; + +import org.apache.xmlbeans.XmlOptions; + +import org.springframework.beans.factory.FactoryBean; +import org.springframework.beans.factory.InitializingBean; + +/** + * Factory bean that configures an XMLBeans XmlOptions object and provides it as a bean reference. + *

+ * Typical usage will be to set XMLBeans options on this bean, and refer to it in the XmlBeansMarshaller. + * + * @author Arjen Poutsma + * @see XmlOptions + * @see #setOptions(java.util.Map) + * @see XmlBeansMarshaller#setXmlOptions(org.apache.xmlbeans.XmlOptions) + */ +public class XmlOptionsFactoryBean implements FactoryBean, InitializingBean { + + private XmlOptions xmlOptions; + + private Map options; + + /** + * Returns the singleton XmlOptions. + */ + public Object getObject() throws Exception { + return xmlOptions; + } + + /** + * Returns the class of XmlOptions. + */ + public Class getObjectType() { + return XmlOptions.class; + } + + /** + * Returns true. + */ + public boolean isSingleton() { + return true; + } + + /** + * Sets options on the underlying XmlOptions object. The keys of the supplied map should be one of the + * string constants defined in XmlOptions, the values vary per option. + * + * @see XmlOptions#put(Object, Object) + * @see XmlOptions#SAVE_PRETTY_PRINT + * @see XmlOptions#LOAD_STRIP_COMMENTS + */ + public void setOptions(Map options) { + this.options = options; + } + + public void afterPropertiesSet() throws Exception { + xmlOptions = new XmlOptions(); + if (options != null) { + for (Iterator iterator = options.keySet().iterator(); iterator.hasNext();) { + Object option = iterator.next(); + xmlOptions.put(option, options.get(option)); + } + } + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/xmlbeans/package.html b/oxm/src/main/java/org/springframework/oxm/xmlbeans/package.html new file mode 100644 index 00000000..799fd625 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/xmlbeans/package.html @@ -0,0 +1,5 @@ + + +Package providing integration of XMLBeans with Springs O/X Mapping support. + + diff --git a/oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshaller.java b/oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshaller.java new file mode 100644 index 00000000..4b67c92f --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshaller.java @@ -0,0 +1,281 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.xstream; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.Reader; +import java.io.Writer; +import java.util.Iterator; +import java.util.Map; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLEventWriter; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.XMLStreamWriter; + +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.converters.Converter; +import com.thoughtworks.xstream.io.HierarchicalStreamReader; +import com.thoughtworks.xstream.io.HierarchicalStreamWriter; +import com.thoughtworks.xstream.io.xml.CompactWriter; +import com.thoughtworks.xstream.io.xml.DomReader; +import com.thoughtworks.xstream.io.xml.DomWriter; +import com.thoughtworks.xstream.io.xml.QNameMap; +import com.thoughtworks.xstream.io.xml.SaxWriter; +import com.thoughtworks.xstream.io.xml.StaxReader; +import com.thoughtworks.xstream.io.xml.StaxWriter; +import com.thoughtworks.xstream.io.xml.XppReader; +import org.springframework.beans.propertyeditors.ClassEditor; +import org.springframework.oxm.AbstractMarshaller; +import org.springframework.oxm.XmlMappingException; +import org.springframework.xml.stream.StaxEventContentHandler; +import org.springframework.xml.stream.XmlEventStreamReader; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.xml.sax.ContentHandler; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; +import org.xml.sax.ext.LexicalHandler; + +/** + * Implementation of the Marshaller interface for XStream. By default, XStream does not require any further + * configuration, though class aliases can be used to have more control over the behavior of XStream. + *

+ * Due to XStream's API, it is required to set the encoding used for writing to outputstreams. It defaults to + * UTF-8. + *

+ * Note that XStream is an XML serialization library, not a data binding library. Therefore, it has limited + * namespace support. As such, it is rather unsuitable for usage within Web services. + * + * @author Peter Meijer + * @author Arjen Poutsma + * @see #setEncoding(String) + * @see #DEFAULT_ENCODING + * @see #setAliases(java.util.Map) + * @see #setConverters(com.thoughtworks.xstream.converters.Converter[]) + */ +public class XStreamMarshaller extends AbstractMarshaller { + + /** + * The default encoding used for stream access. + */ + public static final String DEFAULT_ENCODING = "UTF-8"; + + private XStream xstream = new XStream(); + + private String encoding; + + /** + * Returns the encoding to be used for stream access. If this property is not set, the default encoding is used. + * + * @see #DEFAULT_ENCODING + */ + public String getEncoding() { + return encoding != null ? encoding : DEFAULT_ENCODING; + } + + /** + * Sets the encoding to be used for stream access. If this property is not set, the default encoding is used. + * + * @see #DEFAULT_ENCODING + */ + public void setEncoding(String encoding) { + this.encoding = encoding; + } + + /** + * Sets the XStream mode. + * + * @see XStream#XPATH_REFERENCES + * @see XStream#ID_REFERENCES + * @see XStream#NO_REFERENCES + */ + public void setMode(int mode) { + xstream.setMode(mode); + } + + /** + * Sets the Converters to be registered with the XStream instance. + */ + public void setConverters(Converter[] converters) { + for (int i = 0; i < converters.length; i++) { + xstream.registerConverter(converters[i]); + } + } + + /** + * Set a alias/type map, consisting of string aliases mapped to Class instances (or Strings to be + * converted to Class instances). + * + * @see ClassEditor + */ + public void setAliases(Map aliases) { + for (Iterator iterator = aliases.keySet().iterator(); iterator.hasNext();) { + String name = (String) iterator.next(); + Object value = aliases.get(name); + // Check whether we need to convert from String to Class. + Class type = null; + if (value instanceof Class) { + type = (Class) value; + } + else { + ClassEditor editor = new ClassEditor(); + editor.setAsText(String.valueOf(value)); + type = (Class) editor.getValue(); + } + addAlias(name, type); + } + } + + /** + * Adds an alias for the given type. + * + * @param name alias to be used for the type + * @param type the type to be aliased + */ + public void addAlias(String name, Class type) { + xstream.alias(name, type); + } + + /** + * Convert the given XStream exception to an appropriate exception from the org.springframework.oxm + * hierarchy. + *

+ * The default implementation delegates to XStreamUtils. Can be overridden in subclasses. + * + * @param ex exception that occured + * @param marshalling indicates whether the exception occurs during marshalling (true), or + * unmarshalling (false) + * @return the corresponding XmlMappingException instance + * @see XStreamUtils#convertXStreamException(Exception, boolean) + */ + public XmlMappingException convertXStreamException(Exception ex, boolean marshalling) { + return XStreamUtils.convertXStreamException(ex, marshalling); + } + + /** + * Marshals the given graph to the given XStream HierarchicalStreamWriter. Converts exceptions using + * convertXStreamException. + */ + private void marshal(Object graph, HierarchicalStreamWriter streamWriter) { + try { + xstream.marshal(graph, streamWriter); + } + catch (Exception ex) { + throw convertXStreamException(ex, true); + } + } + + protected void marshalDomNode(Object graph, Node node) throws XmlMappingException { + HierarchicalStreamWriter streamWriter = null; + if (node instanceof Document) { + streamWriter = new DomWriter((Document) node); + } + else if (node instanceof Element) { + streamWriter = new DomWriter((Element) node); + } + else { + throw new IllegalArgumentException("DOMResult contains neither Document nor Element"); + } + marshal(graph, streamWriter); + } + + protected void marshalXmlEventWriter(Object graph, XMLEventWriter eventWriter) throws XmlMappingException { + ContentHandler contentHandler = new StaxEventContentHandler(eventWriter); + marshalSaxHandlers(graph, contentHandler, null); + } + + protected void marshalXmlStreamWriter(Object graph, XMLStreamWriter streamWriter) throws XmlMappingException { + try { + marshal(graph, new StaxWriter(new QNameMap(), streamWriter)); + } + catch (XMLStreamException ex) { + throw convertXStreamException(ex, true); + } + } + + protected void marshalOutputStream(Object graph, OutputStream outputStream) + throws XmlMappingException, IOException { + marshalWriter(graph, new OutputStreamWriter(outputStream, getEncoding())); + } + + protected void marshalSaxHandlers(Object graph, ContentHandler contentHandler, LexicalHandler lexicalHandler) + throws XmlMappingException { + SaxWriter saxWriter = new SaxWriter(); + saxWriter.setContentHandler(contentHandler); + marshal(graph, saxWriter); + } + + protected void marshalWriter(Object graph, Writer writer) throws XmlMappingException, IOException { + marshal(graph, new CompactWriter(writer)); + } + + private Object unmarshal(HierarchicalStreamReader streamReader) { + try { + return xstream.unmarshal(streamReader); + } + catch (Exception ex) { + throw convertXStreamException(ex, false); + } + } + + protected Object unmarshalDomNode(Node node) throws XmlMappingException { + HierarchicalStreamReader streamReader = null; + if (node instanceof Document) { + streamReader = new DomReader((Document) node); + } + else if (node instanceof Element) { + streamReader = new DomReader((Element) node); + } + else { + throw new IllegalArgumentException("DOMSource contains neither Document nor Element"); + } + return unmarshal(streamReader); + } + + protected Object unmarshalXmlEventReader(XMLEventReader eventReader) throws XmlMappingException { + try { + XMLStreamReader streamReader = new XmlEventStreamReader(eventReader); + return unmarshalXmlStreamReader(streamReader); + } + catch (XMLStreamException ex) { + throw convertXStreamException(ex, false); + } + } + + protected Object unmarshalXmlStreamReader(XMLStreamReader streamReader) throws XmlMappingException { + return unmarshal(new StaxReader(new QNameMap(), streamReader)); + } + + protected Object unmarshalInputStream(InputStream inputStream) throws XmlMappingException, IOException { + return unmarshalReader(new InputStreamReader(inputStream, getEncoding())); + } + + protected Object unmarshalReader(Reader reader) throws XmlMappingException, IOException { + return unmarshal(new XppReader(reader)); + } + + protected Object unmarshalSaxReader(XMLReader xmlReader, InputSource inputSource) + throws XmlMappingException, IOException { + throw new UnsupportedOperationException("XStreamMarshaller does not support unmarshalling using SAX XMLReaders"); + } +} diff --git a/oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshallingFailureException.java b/oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshallingFailureException.java new file mode 100644 index 00000000..4410e369 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshallingFailureException.java @@ -0,0 +1,49 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.xstream; + +import com.thoughtworks.xstream.alias.CannotResolveClassException; +import com.thoughtworks.xstream.converters.ConversionException; +import com.thoughtworks.xstream.io.StreamException; + +import org.springframework.oxm.MarshallingFailureException; + +/** + * XStream-specific subclass of MarshallingFailureException. + * + * @author Arjen Poutsma + */ +public class XStreamMarshallingFailureException extends MarshallingFailureException { + + public XStreamMarshallingFailureException(String msg) { + super(msg); + } + + public XStreamMarshallingFailureException(StreamException ex) { + super("XStream marshalling exception: " + ex.getMessage(), ex); + + } + + public XStreamMarshallingFailureException(CannotResolveClassException ex) { + super("XStream resolving exception: " + ex.getMessage(), ex); + } + + public XStreamMarshallingFailureException(ConversionException ex) { + super("XStream conversion exception: " + ex.getMessage(), ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/xstream/XStreamSystemException.java b/oxm/src/main/java/org/springframework/oxm/xstream/XStreamSystemException.java new file mode 100644 index 00000000..f1247f86 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/xstream/XStreamSystemException.java @@ -0,0 +1,33 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.xstream; + +import org.springframework.oxm.UncategorizedXmlMappingException; + +/** + * XStream-specific subclass of UncategorizedXmlMappingException, for XStream exceptions that cannot be + * distinguished further. + * + * @author Arjen Poutsma + */ +public class XStreamSystemException extends UncategorizedXmlMappingException { + + public XStreamSystemException(String msg, Throwable ex) { + super(msg, ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/xstream/XStreamUnmarshallingFailureException.java b/oxm/src/main/java/org/springframework/oxm/xstream/XStreamUnmarshallingFailureException.java new file mode 100644 index 00000000..36a28030 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/xstream/XStreamUnmarshallingFailureException.java @@ -0,0 +1,54 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.xstream; + +import javax.xml.stream.XMLStreamException; + +import com.thoughtworks.xstream.alias.CannotResolveClassException; +import com.thoughtworks.xstream.converters.ConversionException; +import com.thoughtworks.xstream.io.StreamException; + +import org.springframework.oxm.UnmarshallingFailureException; + +/** + * XStream-specific subclass of UnmarshallingFailureException. + * + * @author Arjen Poutsma + */ +public class XStreamUnmarshallingFailureException extends UnmarshallingFailureException { + + public XStreamUnmarshallingFailureException(StreamException ex) { + super("XStream unmarshalling exception: " + ex.getMessage(), ex); + } + + public XStreamUnmarshallingFailureException(CannotResolveClassException ex) { + super("XStream resolving exception: " + ex.getMessage(), ex); + } + + public XStreamUnmarshallingFailureException(ConversionException ex) { + super("XStream conversion exception: " + ex.getMessage(), ex); + } + + public XStreamUnmarshallingFailureException(String msg) { + super(msg); + } + + public XStreamUnmarshallingFailureException(String msg, XMLStreamException ex) { + super(msg, ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/xstream/XStreamUtils.java b/oxm/src/main/java/org/springframework/oxm/xstream/XStreamUtils.java new file mode 100644 index 00000000..5c1bda75 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/xstream/XStreamUtils.java @@ -0,0 +1,73 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.xstream; + +import com.thoughtworks.xstream.alias.CannotResolveClassException; +import com.thoughtworks.xstream.converters.ConversionException; +import com.thoughtworks.xstream.io.StreamException; + +import org.springframework.oxm.XmlMappingException; + +/** + * Generic utility methods for working with XStream. Mainly for internal use within the framework. + * + * @author Arjen Poutsma + */ +public abstract class XStreamUtils { + + /** + * Converts the given XStream exception to an appropriate exception from the org.springframework.oxm + * hierarchy. + *

+ * A boolean flag is used to indicate whether this exception occurs during marshalling or unmarshalling, since + * XStream itself does not make this distinction in its exception hierarchy. + * + * @param ex XStream exception that occured + * @param marshalling indicates whether the exception occurs during marshalling (true), or + * unmarshalling (false) + * @return the corresponding XmlMappingException + */ + public static XmlMappingException convertXStreamException(Exception ex, boolean marshalling) { + if (ex instanceof StreamException) { + if (marshalling) { + return new XStreamMarshallingFailureException((StreamException) ex); + } + else { + return new XStreamUnmarshallingFailureException((StreamException) ex); + } + } + else if (ex instanceof CannotResolveClassException) { + if (marshalling) { + return new XStreamMarshallingFailureException((CannotResolveClassException) ex); + } + else { + return new XStreamUnmarshallingFailureException((CannotResolveClassException) ex); + } + } + else if (ex instanceof ConversionException) { + if (marshalling) { + return new XStreamMarshallingFailureException((ConversionException) ex); + } + else { + return new XStreamUnmarshallingFailureException((ConversionException) ex); + } + } + // fallback + return new XStreamSystemException("Unknown XStream exception: " + ex.getMessage(), ex); + } + +} diff --git a/oxm/src/main/java/org/springframework/oxm/xstream/package.html b/oxm/src/main/java/org/springframework/oxm/xstream/package.html new file mode 100644 index 00000000..ab174437 --- /dev/null +++ b/oxm/src/main/java/org/springframework/oxm/xstream/package.html @@ -0,0 +1,5 @@ + + +Package providing integration of XStream with Springs O/X Mapping support. + + diff --git a/oxm/src/test/java/org/springframework/oxm/AbstractMarshallerTestCase.java b/oxm/src/test/java/org/springframework/oxm/AbstractMarshallerTestCase.java new file mode 100644 index 00000000..e29550bf --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/AbstractMarshallerTestCase.java @@ -0,0 +1,116 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm; + +import java.io.ByteArrayOutputStream; +import java.io.StringWriter; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.stream.XMLEventWriter; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.custommonkey.xmlunit.XMLUnit; +import org.springframework.xml.transform.StaxResult; +import org.springframework.xml.transform.StringResult; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Text; + +public abstract class AbstractMarshallerTestCase extends XMLTestCase { + + protected Marshaller marshaller; + + protected Object flights; + + protected static final String EXPECTED_STRING = + "" + + "42"; + + protected final void setUp() throws Exception { + marshaller = createMarshaller(); + flights = createFlights(); + XMLUnit.setIgnoreWhitespace(true); + } + + protected abstract Marshaller createMarshaller() throws Exception; + + protected abstract Object createFlights(); + + public void testMarshalDOMResult() throws Exception { + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + documentBuilderFactory.setNamespaceAware(true); + DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder(); + Document result = builder.newDocument(); + DOMResult domResult = new DOMResult(result); + marshaller.marshal(flights, domResult); + Document expected = builder.newDocument(); + Element flightsElement = expected.createElementNS("http://samples.springframework.org/flight", "tns:flights"); + expected.appendChild(flightsElement); + Element flightElement = expected.createElementNS("http://samples.springframework.org/flight", "tns:flight"); + flightsElement.appendChild(flightElement); + Element numberElement = expected.createElementNS("http://samples.springframework.org/flight", "tns:number"); + flightElement.appendChild(numberElement); + Text text = expected.createTextNode("42"); + numberElement.appendChild(text); + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + StringResult stringResult = new StringResult(); + transformer.transform(new DOMSource(result), stringResult); + StringResult stringExpected = new StringResult(); + transformer.transform(new DOMSource(expected), stringExpected); + assertXMLEqual("Marshaller writes invalid DOMResult", stringExpected.toString(), stringResult.toString()); + } + + public void testMarshalStreamResultWriter() throws Exception { + StringWriter writer = new StringWriter(); + StreamResult result = new StreamResult(writer); + marshaller.marshal(flights, result); + assertXMLEqual("Marshaller writes invalid StreamResult", EXPECTED_STRING, writer.toString()); + } + + public void testMarshalStreamResultOutputStream() throws Exception { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + StreamResult result = new StreamResult(os); + marshaller.marshal(flights, result); + assertXMLEqual("Marshaller writes invalid StreamResult", + EXPECTED_STRING, + new String(os.toByteArray(), "UTF-8")); + } + + public void testMarshalStaxResultXMLStreamWriter() throws Exception { + XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); + StringWriter writer = new StringWriter(); + XMLStreamWriter streamWriter = outputFactory.createXMLStreamWriter(writer); + StaxResult result = new StaxResult(streamWriter); + marshaller.marshal(flights, result); + assertXMLEqual("Marshaller writes invalid StreamResult", EXPECTED_STRING, writer.toString()); + } + + public void testMarshalStaxResultXMLEventWriter() throws Exception { + XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); + StringWriter writer = new StringWriter(); + XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(writer); + StaxResult result = new StaxResult(eventWriter); + marshaller.marshal(flights, result); + assertXMLEqual("Marshaller writes invalid StreamResult", EXPECTED_STRING, writer.toString()); + } +} diff --git a/oxm/src/test/java/org/springframework/oxm/AbstractUnmarshallerTestCase.java b/oxm/src/test/java/org/springframework/oxm/AbstractUnmarshallerTestCase.java new file mode 100644 index 00000000..2e63fdfd --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/AbstractUnmarshallerTestCase.java @@ -0,0 +1,106 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm; + +import java.io.ByteArrayInputStream; +import java.io.StringReader; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamReader; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.sax.SAXSource; +import javax.xml.transform.stream.StreamSource; + +import junit.framework.TestCase; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Text; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; +import org.xml.sax.helpers.XMLReaderFactory; + +import org.springframework.xml.transform.StaxSource; + +public abstract class AbstractUnmarshallerTestCase extends TestCase { + + protected Unmarshaller unmarshaller; + + protected static final String INPUT_STRING = + "" + + "42"; + + protected final void setUp() throws Exception { + unmarshaller = createUnmarshaller(); + } + + protected abstract Unmarshaller createUnmarshaller() throws Exception; + + protected abstract void testFlights(Object o); + + public void testUnmarshalDomSource() throws Exception { + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document document = builder.newDocument(); + Element flightsElement = document.createElementNS("http://samples.springframework.org/flight", "tns:flights"); + document.appendChild(flightsElement); + Element flightElement = document.createElementNS("http://samples.springframework.org/flight", "tns:flight"); + flightsElement.appendChild(flightElement); + Element numberElement = document.createElementNS("http://samples.springframework.org/flight", "tns:number"); + flightElement.appendChild(numberElement); + Text text = document.createTextNode("42"); + numberElement.appendChild(text); + DOMSource source = new DOMSource(document); + Object flights = unmarshaller.unmarshal(source); + testFlights(flights); + } + + public void testUnmarshalStreamSourceReader() throws Exception { + StreamSource source = new StreamSource(new StringReader(INPUT_STRING)); + Object flights = unmarshaller.unmarshal(source); + testFlights(flights); + } + + public void testUnmarshalStreamSourceInputStream() throws Exception { + StreamSource source = new StreamSource(new ByteArrayInputStream(INPUT_STRING.getBytes("UTF-8"))); + Object flights = unmarshaller.unmarshal(source); + testFlights(flights); + } + + public void testUnmarshalSAXSource() throws Exception { + XMLReader reader = XMLReaderFactory.createXMLReader(); + SAXSource source = new SAXSource(reader, new InputSource(new StringReader(INPUT_STRING))); + Object flights = unmarshaller.unmarshal(source); + testFlights(flights); + } + + public void testUnmarshalStaxSourceXmlStreamReader() throws Exception { + XMLInputFactory inputFactory = XMLInputFactory.newInstance(); + XMLStreamReader streamReader = inputFactory.createXMLStreamReader(new StringReader(INPUT_STRING)); + StaxSource source = new StaxSource(streamReader); + Object flights = unmarshaller.unmarshal(source); + testFlights(flights); + } + + public void testUnmarshalStaxSourceXmlEventReader() throws Exception { + XMLInputFactory inputFactory = XMLInputFactory.newInstance(); + XMLEventReader eventReader = inputFactory.createXMLEventReader(new StringReader(INPUT_STRING)); + StaxSource source = new StaxSource(eventReader); + Object flights = unmarshaller.unmarshal(source); + testFlights(flights); + } +} diff --git a/oxm/src/test/java/org/springframework/oxm/castor/CastorMarshallerTest.java b/oxm/src/test/java/org/springframework/oxm/castor/CastorMarshallerTest.java new file mode 100644 index 00000000..ccf368a5 --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/castor/CastorMarshallerTest.java @@ -0,0 +1,69 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.castor; + +import javax.xml.transform.sax.SAXResult; + +import org.easymock.MockControl; +import org.springframework.core.io.ClassPathResource; +import org.springframework.oxm.AbstractMarshallerTestCase; +import org.springframework.oxm.Marshaller; +import org.xml.sax.ContentHandler; + +public class CastorMarshallerTest extends AbstractMarshallerTestCase { + + protected Marshaller createMarshaller() throws Exception { + CastorMarshaller marshaller = new CastorMarshaller(); + ClassPathResource mappingLocation = new ClassPathResource("mapping.xml", CastorMarshaller.class); + marshaller.setMappingLocation(mappingLocation); + marshaller.afterPropertiesSet(); + return marshaller; + } + + protected Object createFlights() { + Flight flight = new Flight(); + flight.setNumber(42L); + Flights flights = new Flights(); + flights.addFlight(flight); + return flights; + } + + public void testMarshalSaxResult() throws Exception { + MockControl handlerControl = MockControl.createControl(ContentHandler.class); + ContentHandler handlerMock = (ContentHandler) handlerControl.getMock(); + handlerMock.startDocument(); + handlerMock.startPrefixMapping("tns", "http://samples.springframework.org/flight"); + handlerMock.startElement("http://samples.springframework.org/flight", "flights", "tns:flights", null); + handlerControl.setMatcher(MockControl.ALWAYS_MATCHER); + handlerMock.startElement("http://samples.springframework.org/flight", "flight", "tns:flight", null); + handlerControl.setMatcher(MockControl.ALWAYS_MATCHER); + handlerMock.startElement("http://samples.springframework.org/flight", "number", "tns:number", null); + handlerControl.setMatcher(MockControl.ALWAYS_MATCHER); + handlerMock.characters(new char[]{'4', '2'}, 0, 2); + handlerControl.setMatcher(MockControl.ARRAY_MATCHER); + handlerMock.endElement("http://samples.springframework.org/flight", "number", "tns:number"); + handlerMock.endElement("http://samples.springframework.org/flight", "flight", "tns:flight"); + handlerMock.endElement("http://samples.springframework.org/flight", "flights", "tns:flights"); + handlerMock.endPrefixMapping("tns"); + handlerMock.endDocument(); + + handlerControl.replay(); + SAXResult result = new SAXResult(handlerMock); + marshaller.marshal(flights, result); + handlerControl.verify(); + } + +} diff --git a/oxm/src/test/java/org/springframework/oxm/castor/CastorUnmarshallerTest.java b/oxm/src/test/java/org/springframework/oxm/castor/CastorUnmarshallerTest.java new file mode 100644 index 00000000..51f75390 --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/castor/CastorUnmarshallerTest.java @@ -0,0 +1,67 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.castor; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import javax.xml.transform.stream.StreamSource; + +import org.springframework.core.io.ClassPathResource; +import org.springframework.oxm.AbstractUnmarshallerTestCase; +import org.springframework.oxm.Unmarshaller; + +public class CastorUnmarshallerTest extends AbstractUnmarshallerTestCase { + + protected void testFlights(Object o) { + Flights flights = (Flights) o; + assertNotNull("Flights is null", flights); + assertEquals("Invalid amount of flight elements", 1, flights.getFlightCount()); + Flight flight = flights.getFlight()[0]; + assertNotNull("Flight is null", flight); + assertEquals("Number is invalid", 42L, flight.getNumber()); + } + + protected Unmarshaller createUnmarshaller() throws Exception { + CastorMarshaller marshaller = new CastorMarshaller(); + ClassPathResource mappingLocation = new ClassPathResource("mapping.xml", CastorMarshaller.class); + marshaller.setMappingLocation(mappingLocation); + marshaller.afterPropertiesSet(); + return marshaller; + } + + public void testUnmarshalTargetClass() throws Exception { + CastorMarshaller unmarshaller = new CastorMarshaller(); + unmarshaller.setTargetClass(Flights.class); + unmarshaller.afterPropertiesSet(); + StreamSource source = new StreamSource(new ByteArrayInputStream(INPUT_STRING.getBytes("UTF-8"))); + Object flights = unmarshaller.unmarshal(source); + testFlights(flights); + } + + public void testSetBothTargetClassAndMapping() throws IOException { + try { + CastorMarshaller marshaller = new CastorMarshaller(); + marshaller.setMappingLocation(new ClassPathResource("mapping.xml", CastorMarshaller.class)); + marshaller.setTargetClass(getClass()); + marshaller.afterPropertiesSet(); + fail("IllegalArgumentException expected"); + } + catch (IllegalArgumentException ex) { + // expected + } + } + +} diff --git a/oxm/src/test/java/org/springframework/oxm/castor/CastorUtilsTest.java b/oxm/src/test/java/org/springframework/oxm/castor/CastorUtilsTest.java new file mode 100644 index 00000000..8f663d0d --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/castor/CastorUtilsTest.java @@ -0,0 +1,42 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.castor; + +import junit.framework.TestCase; +import org.exolab.castor.xml.MarshalException; +import org.exolab.castor.xml.ValidationException; +import org.exolab.castor.xml.XMLException; + +public class CastorUtilsTest extends TestCase { + + public void testConvertMarshalException() { + assertTrue("Invalid exception conversion", CastorUtils + .convertXmlException(new MarshalException(""), true) instanceof CastorMarshallingFailureException); + assertTrue("Invalid exception conversion", CastorUtils + .convertXmlException(new MarshalException(""), false) instanceof CastorUnmarshallingFailureException); + } + + public void testConvertValidationException() { + assertTrue("Invalid exception conversion", CastorUtils + .convertXmlException(new ValidationException(""), false) instanceof CastorValidationFailureException); + } + + public void testConvertXMLException() { + assertTrue("Invalid exception conversion", + CastorUtils.convertXmlException(new XMLException(""), false) instanceof CastorSystemException); + } + +} diff --git a/oxm/src/test/java/org/springframework/oxm/jaxb/AbstractJaxbMarshallerTestCase.java b/oxm/src/test/java/org/springframework/oxm/jaxb/AbstractJaxbMarshallerTestCase.java new file mode 100644 index 00000000..3e789546 --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/jaxb/AbstractJaxbMarshallerTestCase.java @@ -0,0 +1,56 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jaxb; + +import javax.xml.transform.sax.SAXResult; + +import org.easymock.MockControl; +import org.xml.sax.ContentHandler; + +import org.springframework.oxm.AbstractMarshallerTestCase; + +public abstract class AbstractJaxbMarshallerTestCase extends AbstractMarshallerTestCase { + + public void testMarshalSaxResult() throws Exception { + MockControl handlerControl = MockControl.createStrictControl(ContentHandler.class); + ContentHandler handlerMock = (ContentHandler) handlerControl.getMock(); + handlerMock.setDocumentLocator(null); + handlerControl.setMatcher(MockControl.ALWAYS_MATCHER); + handlerMock.startDocument(); + handlerMock.startPrefixMapping("", "http://samples.springframework.org/flight"); + handlerMock.startElement("http://samples.springframework.org/flight", "flights", "flights", null); + handlerControl.setMatcher(MockControl.ALWAYS_MATCHER); + handlerMock.startElement("http://samples.springframework.org/flight", "flight", "flight", null); + handlerControl.setMatcher(MockControl.ALWAYS_MATCHER); + handlerMock.startElement("http://samples.springframework.org/flight", "number", "number", null); + handlerControl.setMatcher(MockControl.ALWAYS_MATCHER); + handlerMock.characters(new char[]{'4', '2'}, 0, 2); + handlerControl.setMatcher(MockControl.ALWAYS_MATCHER); + handlerMock.endElement("http://samples.springframework.org/flight", "number", "number"); + handlerMock.endElement("http://samples.springframework.org/flight", "flight", "flight"); + handlerMock.endElement("http://samples.springframework.org/flight", "flights", "flights"); + handlerMock.endPrefixMapping(""); + handlerMock.endDocument(); + + handlerControl.replay(); + SAXResult result = new SAXResult(handlerMock); + marshaller.marshal(flights, result); + handlerControl.verify(); + } + + +} diff --git a/oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb1MarshallerTest.java b/oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb1MarshallerTest.java new file mode 100644 index 00000000..fd5a0401 --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb1MarshallerTest.java @@ -0,0 +1,75 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.jaxb; + +import java.util.Collections; + +import org.springframework.oxm.Marshaller; +import org.springframework.oxm.XmlMappingException; +import org.springframework.oxm.jaxb1.FlightType; +import org.springframework.oxm.jaxb1.Flights; +import org.springframework.oxm.jaxb1.impl.FlightTypeImpl; +import org.springframework.oxm.jaxb1.impl.FlightsImpl; + +public class Jaxb1MarshallerTest extends AbstractJaxbMarshallerTestCase { + + private static final String CONTEXT_PATH = "org.springframework.oxm.jaxb1"; + + protected final Marshaller createMarshaller() throws Exception { + Jaxb1Marshaller marshaller = new Jaxb1Marshaller(); + marshaller.setContextPath(CONTEXT_PATH); + marshaller.afterPropertiesSet(); + return marshaller; + } + + protected Object createFlights() { + FlightType flight = new FlightTypeImpl(); + flight.setNumber(42L); + Flights flights = new FlightsImpl(); + flights.getFlight().add(flight); + return flights; + } + + public void testProperties() throws Exception { + Jaxb1Marshaller marshaller = new Jaxb1Marshaller(); + marshaller.setContextPath(CONTEXT_PATH); + marshaller.setMarshallerProperties( + Collections.singletonMap(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE)); + marshaller.afterPropertiesSet(); + } + + public void testNoContextPath() throws Exception { + try { + Jaxb1Marshaller marshaller = new Jaxb1Marshaller(); + marshaller.afterPropertiesSet(); + fail("Should have thrown an IllegalArgumentException"); + } + catch (IllegalArgumentException e) { + } + } + + public void testInvalidContextPath() throws Exception { + try { + Jaxb1Marshaller marshaller = new Jaxb1Marshaller(); + marshaller.setContextPath("ab"); + marshaller.afterPropertiesSet(); + fail("Should have thrown an XmlMappingException"); + } + catch (XmlMappingException ex) { + } + } + +} diff --git a/oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb1UnmarshallerTest.java b/oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb1UnmarshallerTest.java new file mode 100644 index 00000000..a2ae2308 --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb1UnmarshallerTest.java @@ -0,0 +1,42 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.jaxb; + +import org.springframework.oxm.AbstractUnmarshallerTestCase; +import org.springframework.oxm.Unmarshaller; +import org.springframework.oxm.jaxb1.FlightType; +import org.springframework.oxm.jaxb1.Flights; + +public class Jaxb1UnmarshallerTest extends AbstractUnmarshallerTestCase { + + protected Unmarshaller createUnmarshaller() throws Exception { + Jaxb1Marshaller marshaller = new Jaxb1Marshaller(); + marshaller.setContextPath("org.springframework.oxm.jaxb1"); + marshaller.setValidating(true); + marshaller.afterPropertiesSet(); + return marshaller; + } + + protected void testFlights(Object o) { + Flights flights = (Flights) o; + assertNotNull("Flights is null", flights); + assertEquals("Invalid amount of flight elements", 1, flights.getFlight().size()); + FlightType flight = (FlightType) flights.getFlight().get(0); + assertNotNull("Flight is null", flight); + assertEquals("Number is invalid", 42L, flight.getNumber()); + } + +} diff --git a/oxm/src/test/java/org/springframework/oxm/jaxb/JaxbUtilsTest.java b/oxm/src/test/java/org/springframework/oxm/jaxb/JaxbUtilsTest.java new file mode 100644 index 00000000..d0e24155 --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/jaxb/JaxbUtilsTest.java @@ -0,0 +1,50 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.jaxb; + +import javax.xml.bind.JAXBException; +import javax.xml.bind.MarshalException; +import javax.xml.bind.UnmarshalException; +import javax.xml.bind.ValidationException; + +import junit.framework.TestCase; + +public class JaxbUtilsTest extends TestCase { + + public void testConvertMarshallingException() { + assertTrue("Invalid exception conversion", + JaxbUtils.convertJaxbException(new MarshalException("")) instanceof JaxbMarshallingFailureException); + } + + public void testConvertUnmarshallingException() { + assertTrue("Invalid exception conversion", JaxbUtils + .convertJaxbException(new UnmarshalException("")) instanceof JaxbUnmarshallingFailureException); + } + + public void testConvertValidationException() { + assertTrue("Invalid exception conversion", + JaxbUtils.convertJaxbException(new ValidationException("")) instanceof JaxbValidationFailureException); + } + + public void testConvertJAXBException() { + assertTrue("Invalid exception conversion", + JaxbUtils.convertJaxbException(new JAXBException("")) instanceof JaxbSystemException); + } + + public void testGetJaxbVersion() throws Exception { + assertEquals("Invalid JAXB version", JaxbUtils.JAXB_1, JaxbUtils.getJaxbVersion()); + } +} diff --git a/oxm/src/test/java/org/springframework/oxm/jibx/FlightType.java b/oxm/src/test/java/org/springframework/oxm/jibx/FlightType.java new file mode 100644 index 00000000..c34003aa --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/jibx/FlightType.java @@ -0,0 +1,30 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jibx; + +public class FlightType { + + protected long number; + + public long getNumber() { + return this.number; + } + + public void setNumber(long number) { + this.number = number; + } +} diff --git a/oxm/src/test/java/org/springframework/oxm/jibx/Flights.java b/oxm/src/test/java/org/springframework/oxm/jibx/Flights.java new file mode 100644 index 00000000..739a3ab9 --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/jibx/Flights.java @@ -0,0 +1,36 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jibx; + +import java.util.ArrayList; + +public class Flights { + + protected ArrayList flightList = new ArrayList(); + + public void addFlight(FlightType flight) { + flightList.add(flight); + } + + public FlightType getFlight(int index) { + return (FlightType) flightList.get(index); + } + + public int sizeFlightList() { + return flightList.size(); + } +} diff --git a/oxm/src/test/java/org/springframework/oxm/jibx/JibxMarshallerTest.java b/oxm/src/test/java/org/springframework/oxm/jibx/JibxMarshallerTest.java new file mode 100644 index 00000000..8b8b774c --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/jibx/JibxMarshallerTest.java @@ -0,0 +1,49 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jibx; + +import org.springframework.oxm.AbstractMarshallerTestCase; +import org.springframework.oxm.Marshaller; + +public class JibxMarshallerTest extends AbstractMarshallerTestCase { + + protected Marshaller createMarshaller() throws Exception { + JibxMarshaller marshaller = new JibxMarshaller(); + marshaller.setTargetClass(Flights.class); + marshaller.afterPropertiesSet(); + return marshaller; + } + + protected Object createFlights() { + Flights flights = new Flights(); + FlightType flight = new FlightType(); + flight.setNumber(42L); + flights.addFlight(flight); + return flights; + } + + public void testAfterPropertiesSetNoContextPath() throws Exception { + try { + JibxMarshaller marshaller = new JibxMarshaller(); + marshaller.afterPropertiesSet(); + fail("Should have thrown an IllegalArgumentException"); + } + catch (IllegalArgumentException e) { + } + } + +} diff --git a/oxm/src/test/java/org/springframework/oxm/jibx/JibxUnmarshallerTest.java b/oxm/src/test/java/org/springframework/oxm/jibx/JibxUnmarshallerTest.java new file mode 100644 index 00000000..0e73b83d --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/jibx/JibxUnmarshallerTest.java @@ -0,0 +1,40 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.jibx; + +import org.springframework.oxm.AbstractUnmarshallerTestCase; +import org.springframework.oxm.Unmarshaller; + +public class JibxUnmarshallerTest extends AbstractUnmarshallerTestCase { + + protected Unmarshaller createUnmarshaller() throws Exception { + JibxMarshaller unmarshaller = new JibxMarshaller(); + unmarshaller.setTargetClass(Flights.class); + unmarshaller.afterPropertiesSet(); + return unmarshaller; + } + + protected void testFlights(Object o) { + Flights flights = (Flights) o; + assertNotNull("Flights is null", flights); + assertEquals("Invalid amount of flight elements", 1, flights.sizeFlightList()); + FlightType flight = (FlightType) flights.getFlight(0); + assertNotNull("Flight is null", flight); + assertEquals("Number is invalid", 42L, flight.getNumber()); + } + + +} diff --git a/oxm/src/test/java/org/springframework/oxm/jibx/JibxUtilsTest.java b/oxm/src/test/java/org/springframework/oxm/jibx/JibxUtilsTest.java new file mode 100644 index 00000000..545139a2 --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/jibx/JibxUtilsTest.java @@ -0,0 +1,39 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.jibx; + +import junit.framework.TestCase; +import org.jibx.runtime.JiBXException; +import org.jibx.runtime.ValidationException; + +public class JibxUtilsTest extends TestCase { + + public void testConvertMarshallingException() throws Exception { + assertTrue("Invalid exception conversion", + JibxUtils.convertJibxException(new JiBXException(""), true) instanceof JibxMarshallingFailureException); + } + + public void testConvertUnmarshallingException() throws Exception { + assertTrue("Invalid exception conversion", JibxUtils + .convertJibxException(new JiBXException(""), false) instanceof JibxUnmarshallingFailureException); + } + + public void testConvertValidationException() throws Exception { + assertTrue("Invalid exception conversion", JibxUtils + .convertJibxException(new ValidationException(""), true) instanceof JibxValidationFailureException); + } +} \ No newline at end of file diff --git a/oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlBeansMarshallerTest.java b/oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlBeansMarshallerTest.java new file mode 100644 index 00000000..eb2d4545 --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlBeansMarshallerTest.java @@ -0,0 +1,56 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.xmlbeans; + +import java.io.ByteArrayOutputStream; + +import javax.xml.transform.stream.StreamResult; + +import org.springframework.oxm.AbstractMarshallerTestCase; +import org.springframework.oxm.Marshaller; +import org.springframework.samples.flight.FlightType; +import org.springframework.samples.flight.FlightsDocument; +import org.springframework.samples.flight.FlightsDocument.Flights; + +public class XmlBeansMarshallerTest extends AbstractMarshallerTestCase { + + protected Marshaller createMarshaller() throws Exception { + return new XmlBeansMarshaller(); + } + + public void testMarshalNonXmlObject() throws Exception { + try { + this.marshaller.marshal(new Object(), new StreamResult(new ByteArrayOutputStream())); + fail("XmlBeansMarshaller did not throw ClassCastException for non-XmlObject"); + } + catch (ClassCastException e) { + // Expected behavior + } + } + + protected Object createFlights() { + FlightsDocument flightsDocument = FlightsDocument.Factory.newInstance(); + Flights flights = flightsDocument.addNewFlights(); + FlightType flightType = flights.addNewFlight(); + flightType.setNumber(42L); + return flightsDocument; + } + + public void testMarshalStaxResultXMLStreamWriter() throws Exception { + // Unfortu + } + +} diff --git a/oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlBeansUnmarshallerTest.java b/oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlBeansUnmarshallerTest.java new file mode 100644 index 00000000..ed4051f5 --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlBeansUnmarshallerTest.java @@ -0,0 +1,57 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.xmlbeans; + +import org.springframework.oxm.AbstractUnmarshallerTestCase; +import org.springframework.oxm.Unmarshaller; +import org.springframework.samples.flight.FlightType; +import org.springframework.samples.flight.FlightsDocument; +import org.springframework.samples.flight.FlightsDocument.Flights; +import org.springframework.xml.transform.StringSource; + +public class XmlBeansUnmarshallerTest extends AbstractUnmarshallerTestCase { + + protected Unmarshaller createUnmarshaller() throws Exception { + return new XmlBeansMarshaller(); + } + + protected void testFlights(Object o) { + FlightsDocument flightsDocument = (FlightsDocument) o; + assertNotNull("FlightsDocument is null", flightsDocument); + Flights flights = flightsDocument.getFlights(); + assertEquals("Invalid amount of flight elements", 1, flights.sizeOfFlightArray()); + FlightType flight = flights.getFlightArray(0); + assertNotNull("Flight is null", flight); + assertEquals("Number is invalid", 42L, flight.getNumber()); + } + + public void testValidate() throws Exception { + ((XmlBeansMarshaller) unmarshaller).setValidating(true); + String invalidInput = "" + + "abc"; + + try { + unmarshaller.unmarshal(new StringSource(invalidInput)); + fail("Expected a XmlBeansValidationFailureException"); + } + catch (XmlBeansValidationFailureException ex) { + // expected + } + + + } + +} diff --git a/oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlBeansUtilsTest.java b/oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlBeansUtilsTest.java new file mode 100644 index 00000000..9b765b1f --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlBeansUtilsTest.java @@ -0,0 +1,53 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.oxm.xmlbeans; + +import junit.framework.TestCase; +import org.apache.xmlbeans.XMLStreamValidationException; +import org.apache.xmlbeans.XmlError; +import org.apache.xmlbeans.XmlException; +import org.xml.sax.SAXException; + +public class XmlBeansUtilsTest extends TestCase { + + public void testConvertXMLStreamValidationException() { + assertTrue("Invalid exception conversion", XmlBeansUtils.convertXmlBeansException( + new XMLStreamValidationException(XmlError.forMessage("")), + true) instanceof XmlBeansValidationFailureException); + + } + + public void testConvertXmlException() { + assertTrue("Invalid exception conversion", XmlBeansUtils + .convertXmlBeansException(new XmlException(""), true) instanceof XmlBeansMarshallingFailureException); + assertTrue("Invalid exception conversion", XmlBeansUtils.convertXmlBeansException(new XmlException(""), + false) instanceof XmlBeansUnmarshallingFailureException); + } + + public void testConvertSAXException() { + assertTrue("Invalid exception conversion", XmlBeansUtils + .convertXmlBeansException(new SAXException(""), true) instanceof XmlBeansMarshallingFailureException); + assertTrue("Invalid exception conversion", XmlBeansUtils.convertXmlBeansException(new SAXException(""), + false) instanceof XmlBeansUnmarshallingFailureException); + } + + public void testFallbackException() { + assertTrue("Invalid exception conversion", + XmlBeansUtils.convertXmlBeansException(new Exception(""), false) instanceof XmlBeansSystemException); + + } + +} diff --git a/oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlOptionsFactoryBeanTest.java b/oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlOptionsFactoryBeanTest.java new file mode 100644 index 00000000..26fc31de --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/xmlbeans/XmlOptionsFactoryBeanTest.java @@ -0,0 +1,40 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.xmlbeans; + +import java.util.Collections; + +import junit.framework.TestCase; +import org.apache.xmlbeans.XmlOptions; + +public class XmlOptionsFactoryBeanTest extends TestCase { + + private XmlOptionsFactoryBean factoryBean; + + protected void setUp() throws Exception { + factoryBean = new XmlOptionsFactoryBean(); + } + + public void testXmlOptionsFactoryBean() throws Exception { + factoryBean.setOptions(Collections.singletonMap(XmlOptions.SAVE_PRETTY_PRINT, Boolean.TRUE)); + factoryBean.afterPropertiesSet(); + XmlOptions xmlOptions = (XmlOptions) factoryBean.getObject(); + assertNotNull("No XmlOptions returned", xmlOptions); + assertTrue("Option not set", xmlOptions.hasOption(XmlOptions.SAVE_PRETTY_PRINT)); + assertFalse("Invalid option set", xmlOptions.hasOption(XmlOptions.LOAD_LINE_NUMBERS)); + } +} \ No newline at end of file diff --git a/oxm/src/test/java/org/springframework/oxm/xstream/Flight.java b/oxm/src/test/java/org/springframework/oxm/xstream/Flight.java new file mode 100644 index 00000000..2fcf1411 --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/xstream/Flight.java @@ -0,0 +1,30 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.xstream; + +public class Flight { + + private long flightNumber; + + public long getFlightNumber() { + return flightNumber; + } + + public void setFlightNumber(long number) { + this.flightNumber = number; + } +} diff --git a/oxm/src/test/java/org/springframework/oxm/xstream/XStreamMarshallerTest.java b/oxm/src/test/java/org/springframework/oxm/xstream/XStreamMarshallerTest.java new file mode 100644 index 00000000..5b678af8 --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/xstream/XStreamMarshallerTest.java @@ -0,0 +1,142 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.xstream; + +import java.io.ByteArrayOutputStream; +import java.io.StringWriter; +import java.util.Arrays; +import java.util.Properties; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.stream.XMLEventWriter; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.sax.SAXResult; +import javax.xml.transform.stream.StreamResult; + +import com.thoughtworks.xstream.converters.Converter; +import com.thoughtworks.xstream.converters.extended.EncodedByteArrayConverter; +import org.custommonkey.xmlunit.XMLTestCase; +import org.easymock.MockControl; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Text; +import org.xml.sax.ContentHandler; + +import org.springframework.xml.transform.StaxResult; +import org.springframework.xml.transform.StringResult; +import org.springframework.xml.transform.StringSource; + +public class XStreamMarshallerTest extends XMLTestCase { + + private static final String EXPECTED_STRING = "42"; + + private XStreamMarshaller marshaller; + + private Flight flight; + + protected void setUp() throws Exception { + marshaller = new XStreamMarshaller(); + Properties aliases = new Properties(); + aliases.setProperty("flight", Flight.class.getName()); + marshaller.setAliases(aliases); + flight = new Flight(); + flight.setFlightNumber(42L); + } + + public void testMarshalDOMResult() throws Exception { + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder(); + Document document = builder.newDocument(); + DOMResult domResult = new DOMResult(document); + marshaller.marshal(flight, domResult); + Document expected = builder.newDocument(); + Element flightElement = expected.createElement("flight"); + expected.appendChild(flightElement); + Element numberElement = expected.createElement("flightNumber"); + flightElement.appendChild(numberElement); + Text text = expected.createTextNode("42"); + numberElement.appendChild(text); + assertXMLEqual("Marshaller writes invalid DOMResult", expected, document); + } + + public void testMarshalStreamResultWriter() throws Exception { + StringWriter writer = new StringWriter(); + StreamResult result = new StreamResult(writer); + marshaller.marshal(flight, result); + assertXMLEqual("Marshaller writes invalid StreamResult", EXPECTED_STRING, writer.toString()); + } + + public void testMarshalStreamResultOutputStream() throws Exception { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + StreamResult result = new StreamResult(os); + marshaller.marshal(flight, result); + String s = new String(os.toByteArray(), "UTF-8"); + assertXMLEqual("Marshaller writes invalid StreamResult", EXPECTED_STRING, s); + } + + public void testMarshalSaxResult() throws Exception { + MockControl handlerControl = MockControl.createStrictControl(ContentHandler.class); + handlerControl.setDefaultMatcher(MockControl.ALWAYS_MATCHER); + ContentHandler handlerMock = (ContentHandler) handlerControl.getMock(); + handlerMock.startDocument(); + handlerMock.startElement("", "flight", "flight", null); + handlerMock.startElement("", "number", "number", null); + handlerMock.characters(new char[]{'4', '2'}, 0, 2); + handlerMock.endElement("", "number", "number"); + handlerMock.endElement("", "flight", "flight"); + handlerMock.endDocument(); + + handlerControl.replay(); + SAXResult result = new SAXResult(handlerMock); + marshaller.marshal(flight, result); + handlerControl.verify(); + } + + public void testMarshalStaxResultXMLStreamWriter() throws Exception { + XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); + StringWriter writer = new StringWriter(); + XMLStreamWriter streamWriter = outputFactory.createXMLStreamWriter(writer); + StaxResult result = new StaxResult(streamWriter); + marshaller.marshal(flight, result); + assertXMLEqual("Marshaller writes invalid StreamResult", EXPECTED_STRING, writer.toString()); + } + + public void testMarshalStaxResultXMLEventWriter() throws Exception { + XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); + StringWriter writer = new StringWriter(); + XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(writer); + StaxResult result = new StaxResult(eventWriter); + marshaller.marshal(flight, result); + assertXMLEqual("Marshaller writes invalid StreamResult", EXPECTED_STRING, writer.toString()); + } + + public void testConverters() throws Exception { + marshaller.setConverters(new Converter[]{new EncodedByteArrayConverter()}); + byte[] buf = new byte[]{0x1, 0x2}; + StringResult result = new StringResult(); + marshaller.marshal(buf, result); + assertXMLEqual("AQI=", result.toString()); + StringSource source = new StringSource(result.toString()); + byte[] bufResult = (byte[]) marshaller.unmarshal(source); + assertTrue("Invalid result", Arrays.equals(buf, bufResult)); + } + + +} diff --git a/oxm/src/test/java/org/springframework/oxm/xstream/XStreamUnmarshallerTest.java b/oxm/src/test/java/org/springframework/oxm/xstream/XStreamUnmarshallerTest.java new file mode 100644 index 00000000..3b838f74 --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/xstream/XStreamUnmarshallerTest.java @@ -0,0 +1,84 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.xstream; + +import java.io.ByteArrayInputStream; +import java.io.StringReader; +import java.util.Properties; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamReader; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamSource; + +import junit.framework.TestCase; +import org.w3c.dom.Document; +import org.xml.sax.InputSource; + +import org.springframework.xml.transform.StaxSource; + +public class XStreamUnmarshallerTest extends TestCase { + + protected static final String INPUT_STRING = "42"; + + private XStreamMarshaller unmarshaller; + + protected void setUp() throws Exception { + unmarshaller = new XStreamMarshaller(); + Properties aliases = new Properties(); + aliases.setProperty("flight", Flight.class.getName()); + unmarshaller.setAliases(aliases); + } + + private void testFlight(Object o) { + assertTrue("Unmarshalled object is not Flights", o instanceof Flight); + Flight flight = (Flight) o; + assertNotNull("Flight is null", flight); + assertEquals("Number is invalid", 42L, flight.getFlightNumber()); + } + + public void testUnmarshalDomSource() throws Exception { + DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document document = builder.parse(new InputSource(new StringReader(INPUT_STRING))); + DOMSource source = new DOMSource(document); + Object flight = unmarshaller.unmarshal(source); + testFlight(flight); + } + + public void testUnmarshalStaxSourceXmlStreamReader() throws Exception { + XMLInputFactory inputFactory = XMLInputFactory.newInstance(); + XMLStreamReader streamReader = inputFactory.createXMLStreamReader(new StringReader(INPUT_STRING)); + StaxSource source = new StaxSource(streamReader); + Object flights = unmarshaller.unmarshal(source); + testFlight(flights); + } + + public void testUnmarshalStreamSourceInputStream() throws Exception { + StreamSource source = new StreamSource(new ByteArrayInputStream(INPUT_STRING.getBytes("UTF-8"))); + Object flights = unmarshaller.unmarshal(source); + testFlight(flights); + } + + public void testUnmarshalStreamSourceReader() throws Exception { + StreamSource source = new StreamSource(new StringReader(INPUT_STRING)); + Object flights = unmarshaller.unmarshal(source); + testFlight(flights); + } +} + diff --git a/oxm/src/test/java/org/springframework/oxm/xstream/XStreamUtilsTest.java b/oxm/src/test/java/org/springframework/oxm/xstream/XStreamUtilsTest.java new file mode 100644 index 00000000..36c19188 --- /dev/null +++ b/oxm/src/test/java/org/springframework/oxm/xstream/XStreamUtilsTest.java @@ -0,0 +1,38 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.oxm.xstream; + +import com.thoughtworks.xstream.alias.CannotResolveClassException; +import com.thoughtworks.xstream.io.StreamException; +import junit.framework.TestCase; + +public class XStreamUtilsTest extends TestCase { + + public void testConvertStreamException() { + assertTrue("Invalid exception conversion", XStreamUtils.convertXStreamException( + new StreamException(new Exception()), true) instanceof XStreamMarshallingFailureException); + assertTrue("Invalid exception conversion", XStreamUtils.convertXStreamException( + new StreamException(new Exception()), false) instanceof XStreamUnmarshallingFailureException); + } + + public void testConvertCannotResolveClassException() { + assertTrue("Invalid exception conversion", XStreamUtils.convertXStreamException( + new CannotResolveClassException(""), true) instanceof XStreamMarshallingFailureException); + assertTrue("Invalid exception conversion", XStreamUtils.convertXStreamException( + new CannotResolveClassException(""), false) instanceof XStreamUnmarshallingFailureException); + } +} \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000..bc8caf41 --- /dev/null +++ b/pom.xml @@ -0,0 +1,695 @@ + + + 4.0.0 + org.springframework.ws + spring-ws + pom + 1.0-m3-SNAPSHOT + Spring Web Services + Spring Web Services Framework + http://www.springframework.org/spring-ws + + JIRA + http://opensource2.atlassian.com/projects/spring/browse/SWS + + + continuum + + + mail + +

arjenp@interface21.com
+ + + + + + + static.springframework.org + + scp://static.springframework.org/var/www/domains/springframework.org/static/htdocs/maven2 + + + static.springframework.org + + scp://static.springframework.org/var/www/domains/springframework.org/static/htdocs/maven2-snapshots + + + 2005 + + + poutsma + Arjen Poutsma + arjenp at interface21.com + Interface21 + http://www.interface21.com + + Project Admin + Developer + + +1 + + + + + Ingo Siebert + + + Ben Ethridge + + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + scm:svn:https://svn.sourceforge.net/svnroot/springframework/spring-projects/trunk/spring-ws/ + + scm:svn:https://svn.sourceforge.net/svnroot/springframework/spring-projects/trunk/spring-ws/ + http://svn.sourceforge.net/viewcvs.cgi/springframework/spring-projects/trunk/spring-ws/ + + + spring-xml + spring-oxm + spring-ws-core + spring-ws-security + release + + + + jdk1.5 + + 1.5 + + + spring-oxm-tiger + + + + full + + spring-ws-samples + doc + + + + + + java.net + java.net Maven Repository + https://maven-repository.dev.java.net/nonav/repository + legacy + + + spring-ext + Spring External Dependencies Repository + https://svn.sourceforge.net/svnroot/springframework/repos/repo-ext/ + + + + + + src/etc/test-resources + + + + + + org.apache.maven.plugins + maven-deploy-plugin + 2.2.1 + + + org.apache.maven.plugins + maven-clean-plugin + 2.1 + + + org.apache.maven.plugins + maven-site-plugin + 2.0-beta-4 + + + org.apache.maven.plugins + maven-compiler-plugin + 2.0.1 + + + org.apache.maven.plugins + maven-surefire-plugin + 2.1.3 + + + org.apache.maven.plugins + maven-jar-plugin + 2.0 + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.0 + + + org.apache.maven.plugins + maven-assembly-plugin + 2.1 + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.3 + 1.3 + + + + org.apache.maven.plugins + maven-surefire-plugin + + once + false + + + + org.apache.maven.plugins + maven-clover-plugin + + + pre-site + + instrument + + + + + + + org.apache.maven.plugins + maven-eclipse-plugin + 2.2 + + true + + + + org.apache.maven.plugins + maven-idea-plugin + 2.0 + + true + true + + + + maven-release-plugin + + https://svn.sourceforge.net/svnroot/springframework/spring-projects/tags/ + + + + org.apache.maven.plugins + maven-javadoc-plugin + + true + true + + + Spring-WS + org.springframework.ws* + + + Spring-OXM + org.springframework.oxm* + + + Spring-XML + org.springframework.xml* + + + org.springframework.ws.samples + + http://java.sun.com/j2se/1.4.2/docs/api + http://java.sun.com/j2ee/1.4/docs/api + http://java.sun.com/webservices/docs/2.0/api + http://java.sun.com/webservices/docs/2.0/xws-security/api/ + http://static.springframework.org/spring/docs/1.2.x/api + http://jakarta.apache.org/commons/logging/apidocs/ + http://xmlbeans.apache.org/docs/2.0.0/reference + http://jibx.sourceforge.net/api + http://ws.apache.org/commons/axiom/apidocs/ + http://dom4j.org/apidocs/ + http://jdom.org/docs/apidocs/ + http://www.xom.nu/apidocs/ + http://acegisecurity.org/multiproject/acegi-security/apidocs/ + + + + + + + + + org.apache.maven.plugins + maven-surefire-report-plugin + + + org.apache.maven.plugins + maven-clover-plugin + + + org.apache.maven.plugins + maven-javadoc-plugin + + true + true + + + Spring-WS + org.springframework.ws* + + + Spring-OXM + org.springframework.oxm* + + + Spring-XML + org.springframework.xml* + + + org.springframework.ws.samples + + http://java.sun.com/j2se/1.4.2/docs/api + http://java.sun.com/j2ee/1.4/docs/api + http://java.sun.com/webservices/docs/2.0/api + http://java.sun.com/webservices/docs/2.0/xws-security/api/ + http://static.springframework.org/spring/docs/1.2.x/api + http://jakarta.apache.org/commons/logging/apidocs/ + http://xmlbeans.apache.org/docs/2.0.0/reference + http://jibx.sourceforge.net/api + http://ws.apache.org/commons/axiom/apidocs/ + http://dom4j.org/apidocs/ + http://jdom.org/docs/apidocs/ + http://www.xom.nu/apidocs/ + http://acegisecurity.org/multiproject/acegi-security/apidocs/ + + + + + + + + + + org.springframework.ws + spring-xml + ${project.version} + + + org.springframework.ws + spring-oxm + ${project.version} + + + org.springframework.ws + spring-oxm-tiger + ${project.version} + + + org.springframework.ws + spring-ws-core + ${project.version} + + + org.springframework.ws + spring-ws-security + ${project.version} + + + org.springframework.ws + spring-ws-samples + ${project.version} + + + org.springframework.ws + spring-ws-doc + ${project.version} + pom + + + org.springframework.ws + airline + war + ${pom.version} + + + org.springframework.ws + echo + war + ${pom.version} + + + + org.springframework + spring-core + 1.2.8 + + + org.springframework + spring-beans + 1.2.8 + + + org.springframework + spring-context + 1.2.8 + + + org.springframework + spring-web + 1.2.8 + + + org.springframework + spring-webmvc + 1.2.8 + + + org.springframework + spring-hibernate + 1.2.8 + + + org.springframework + spring-jdbc + 1.2.8 + + + org.springframework + spring-mock + 1.2.8 + test + + + + xerces + xercesImpl + 2.8.0 + + + stax + stax-api + 1.0 + + + xalan + xalan + 2.7.0 + + + jaxen + jaxen + 1.1-beta-9 + + + xml-apis + xml-apis + 1.3.03 + + + woodstox + wstx-asl + 2.9.3 + + + jdom + jdom + 1.0 + + + dom4j + dom4j + 1.6.1 + + + xom + xom + 1.1 + + + xpp3 + xpp3 + 1.1.3.4.O + + + + org.codehaus.castor + castor + 1.0.3 + + + + javax.xml.bind + jaxb-api + 1.0 + + + com.sun.xml.bind + jaxb-impl + 1.0.6 + + + com.sun.xml.bind + jaxb-libs + 1.0.6 + + + com.sun.xml.bind + jaxb-xjc + 1.0.6 + + + com.sun.msv.datatype.xsd + xsdlib + 20060615 + + + + xmlbeans + xbean + 2.1.0 + + + + org.jibx + jibx-run + 1.1 + + + org.jibx + jibx-bind + 1.1 + + + bcel + bcel + 5.1 + + + + xstream + xstream + 1.1.3 + + + + com.sun.xml.messaging.saaj + saaj-impl + 1.3 + provided + + + ws-commons + axiom-api + 1.0 + + + ws-commons + axiom-impl + 1.0 + + + + wsdl4j + wsdl4j + 1.5.2 + + + + com.sun.xml.wss + xws-security + 2.0-ea2 + + + com.sun.org.apache.xml.security + xmlsec + 2.0 + + + org.acegisecurity + acegi-security + 1.0.1 + + + org.springframework + spring-remoting + + + org.springframework + spring-jdbc + + + org.springframework + spring-support + + + commons-lang + commons-lang + + + commons-lang + commons-lang + + + commons-codec + commons-codec + + + commons-collections + commons-collections + + + + + + javax.xml.soap + saaj-api + 1.3 + provided + + + javax.servlet + servlet-api + 2.4 + provided + + + javax.mail + mail + 1.4 + provided + + + javax.activation + activation + 1.1 + provided + + + javax.jms + jms + 1.1 + provided + + + + commons-logging + commons-logging + 1.1 + + + logkit + logkit + + + avalon-framework + avalon-framework + + + javax.servlet + servlet-api + + + + + log4j + log4j + 1.2.13 + true + + + + junit + junit + 3.8.2 + test + + + easymock + easymock + 1.2_Java1.3 + test + + + xmlunit + xmlunit + 1.0 + test + + + + + + commons-logging + commons-logging + + + org.springframework + spring-core + + + org.springframework + spring-beans + + + junit + junit + test + + + easymock + easymock + test + + + xmlunit + xmlunit + test + + + log4j + log4j + test + + + + + diff --git a/release/build-maven2.xml b/release/build-maven2.xml new file mode 100644 index 00000000..a4ca7d26 --- /dev/null +++ b/release/build-maven2.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + Spring-Web Services 1-0 M2]]> + Copyright (c) 2005-2006 The Spring Framework Project.]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/release/changelog.txt b/release/changelog.txt new file mode 100644 index 00000000..97028334 --- /dev/null +++ b/release/changelog.txt @@ -0,0 +1,166 @@ +SPRING WEB SERVICES CHANGELOG +============================= +http://www.springframework.org/spring-ws + +Changes in version 1.0-M3 +------------------------- +Package org.springframework.oxm.castor +* CastorMarshaller uses a XMLClassDescriptorResolver instead of a Mapping (#SWS-54) + +Package org.springframework.ws.soap +* Added setId() method to Attachment, to set the Content-ID of MIME attachments (#SWS-53) + +Changes in version 1.0-M2 +------------------------- +Package org.springframework.oxm +* all marshallers support StaxSources now (#SWS-36) + +Package org.springframework.oxm.xstream +* added support for registering custom Converters (#SWS-34) + +Package org.springframework.ws.context +* 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 + +Package org.springframework.ws.endpoint +* improved endpoint test suite +* AbstractStaxPayloadEndpoint now use StaxSource corrently (#SWS-38) +* changed AbstractDom4JPayloadEndpoint to AbstractDom4jPayloadEndpoint (lower case j), to follow Spring naming + conventions (e.g. Log4jConfigurer) +* added getters on AbstractMarshallingPayloadEndpoint + +Package org.springframework.ws.endpoint.interceptor +* moved interceptors to seperate package +* made PayloadValidatingInterceptor more customizable (#SWS-43) +* add schemas property to PayloadValidatingInterceptor (#SWS-44) +* refactoring most of PayloadValidatingInterceptor into AbstractValidatingInterceptor + +Package org.springframework.ws.endpoint.mapping +* moved EndpointMappings to seperate package +* removed SOAP-specific roles functionality + +Package org.springframework.ws.pox +* Added Plain Old XML support (#SWS-50) + +Package org.springframework.ws.soap +* improved content-type handling (#SWS-32) +* moved SOAP 1.1 specfics to separate package and interfaces +* SoapAction has been removed from SoapMessage, SoapActionEndpointMapping uses TransportRequest header + +Package org.springframework.ws.soap.axiom +* add 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 + +Package org.springframework.ws.soap.endpoint.interceptor +* added SoapEnvelopeLoggingInterceptor, which logs the entire SoapEnvelope + +Package org.springframework.ws.soap.endpoint.mapping +* moved SOAP-specific EndpointMappings to seperate package +* added Role/Actor functionality to DelegatingSoapEndpointMapping + +Package org.springframework.ws.soap.saaj +* add support for SAAJ 1.3 +* increased performance by keeping object references instead of creating new instances for every call + +Package org.springframework.ws.soap.saaj.support +* added SaajUtils.getVersion() + +Package org.springframework.ws.soap.soap11 +* moved SOAP 1.1 specifics to separate package and interfaces + +Package org.springframework.ws.soap.soap12 +* moved SOAP 1.2 specifics to separate package and interfaces + +Package org.springframework.ws.transport +* added TransportContext, TransportRequest & TransportResponse + +Package org.springframework.ws.transport.http +* removed J2EE 1.4 dependency (#SWS-31) +* renamed MessageHandlerAdapter to MessageEndpointHandlerAdapter + +Package org.springframework.xml +* moved package to seperate jar file, since oxm now also depends on it + +Package org.springframework.xml.namespace +* moved QNameEditor from spring-ws-core +* removed prefix dependency from QName + +Package org.springframework.xml.validation +* improved validation schema loading (#SWS-46) + +Samples +* Added Ben Ethridge's Echo sample client + +Changes in version 1.0-M1 (12-6-2006) +------------------------- + +Package org.springframework.oxm.jaxb +* added support for JAXB 2: refactored JaxbMarshaller into AbstractJaxbMarshaller, Jaxb1Marshaller and Jaxb2Marshaller +* made JaxbMarshallers thread safe +* added property for a ValidationEventHandler + +Package org.springframework.ws.axiom +* added AXIOM (AXis Object Model) implementation of SoapMessage hierarchy + +Package org.springframework.ws.endpoint +* added AbstractDom4JPayloadEndpoint +* added AbstractXomPayloadEndpoint +* renamed AbstractTransformingEndpoint to TransformerObjectSupport + +Package org.springframework.ws.soap +* added SoapFaultDetail and SoapFaultDetailElement +* improved SoapMessage test suite +* fixed serious bug which resulted in not-understood mustUnderstand headers being silently ignored + +Package org.springframework.ws.soap.endpoint +* added SimpleSoapExceptionResolver + +Package org.springframework.ws.soap.security.xwss +* added WS-Security implementation based on XWS-Security with integration for Acegi and JAAS + +Package org.springframework.xml.transform +* added StaxSource and StaxResult, which allow for StAX readers/writers to be used as javax.xml.transform.Source and + javax.xml.transform.Result + +Package org.springframework.xml.xpath +* added XPath abstraction with support for JAXP 1.3, Jaxen, and Xalan + +Samples +* Added Ingo Siebert's Echo sample +* Added WS-Security support to Airline sample +* Added SAAJ clients to Airline sample + + +Changes in version 0.9.1 (6-4-2006) +------------------------------------- + +Overall +* made overall thread safety fixes +* added initial reference documentation in HTML and PDF form +* (lots of minor bugfixes) + +Package org.springframework.oxm +* 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 + +Package org.springframework.ws.soap +* made AbstractSoapEndpointMapping ignorant of SOAP version +* added initial attachment support + +Package org.springframework.xml +* added a JaxpVersion class for easy detection of JAXP version +* removed JAXP1.3 dependency + + + + +Changes in version 0.9 (11-2-2006) +----------------------------------- +* First public preview release. diff --git a/release/license.txt b/release/license.txt new file mode 100644 index 00000000..261eeb9e --- /dev/null +++ b/release/license.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/release/pom.xml b/release/pom.xml new file mode 100644 index 00000000..5243fde0 --- /dev/null +++ b/release/pom.xml @@ -0,0 +1,195 @@ + + + + spring-ws + org.springframework.ws + 1.0-m3-SNAPSHOT + + 4.0.0 + spring-ws-release + pom + Spring WS Release + Generates an aggregated zip that contains the full distribution of Spring-WS. + + + + maven-antrun-plugin + + + process-resources + + run + + + + + + + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + minimal + package + + assembly + + + + src/assembly/minimal.xml + + spring-ws-${version} + + + + full + + + src/assembly/full.xml + + spring-ws-${version}-with-dependencies + + + + + + + + + + + org.springframework.ws + spring-xml + + + org.springframework.ws + spring-oxm + + + org.springframework.ws + spring-oxm-tiger + + + org.springframework.ws + spring-ws-core + + + org.springframework.ws + spring-ws-security + + + org.springframework.ws + airline + war + + + org.springframework.ws + echo + war + + + org.springframework.ws + spring-ws-doc + pom + + + + stax + stax-api + + + woodstox + wstx-asl + + + xpp3 + xpp3 + + + xerces + xercesImpl + + + + + org.codehaus.castor + castor + + + + javax.xml.bind + jaxb-api + 2.0 + + + com.sun.xml.bind + jaxb-impl + 2.0.1 + + + com.sun.xml.bind + jaxb-xjc + 2.0.1 + + + + xmlbeans + xbean + + + + org.jibx + jibx-run + + + org.jibx + jibx-bind + + + bcel + bcel + + + + xstream + xstream + + + + ws-commons + axiom-api + + + ws-commons + axiom-impl + + + com.sun.xml.messaging.saaj + saaj-impl + + + + javax.xml.soap + saaj-api + + + javax.servlet + servlet-api + + + javax.mail + mail + + + javax.activation + activation + + + + diff --git a/release/readme.txt b/release/readme.txt new file mode 100644 index 00000000..0813decd --- /dev/null +++ b/release/readme.txt @@ -0,0 +1,86 @@ +SPRING WEB SERVICES 1.0-M2 (September 2006) +------------------------------- +http://www.springframework.org/spring-ws +http://forum.springframework.org/forumdisplay.php?f=39 + +1. INTRODUCTION + +Spring Web Services (Spring-WS) is a product of the Spring community focused on creating document-driven Web services. +Spring-WS aims to facilitate contract-first SOAP service development, allowing for the creation of flexible web services +using one of the many ways to manipulate XML payloads. + +Spring-WS consists of two major modules: a flexible Object/XML Mapping abstraction with support for JAXB 1 and 2, +XMLBeans, Castor, JiBX and XStream; and a Web service framework that resembles Spring MVC. + +2. RELEASE INFO + +Spring-WS requires J2SE 1.4 and J2EE 1.4. J2SE 1.5 is required for building. + +Release contents: + +"." contains Spring-WS distribution units (jars and source zip archives), readme, and copyright +"docs" contains the Spring-WS reference manual and API Javadocs +"lib" contains dependencies +"modules" contains buildable modules +"modules/spring-oxm" contains buildable Spring O/X Mapping sources +"modules/spring-ws-core" contains buildable Spring-WS core sources +"modules/spring-ws-security" contains buildable Spring-WS security sources +"modules/spring-xml" contains buildable Spring XML utility sources, an internal library used by Spring-WS +"samples" contains buildable Spring-WS sample application sources + +See the readme.txt within the above directories for additional information. + +Spring-WS is released under the terms of the Apache Software License (see license.txt). + +3. DISTRIBUTION JAR FILES + +The following distinct jar files are included in the distribution. This list specifies the respective contents and +third-party dependencies. Libraries in [brackets] are optional, i.e. just necessary for certain functionality. + +* spring-oxm-1.0-m2.jar +- Contents: The Spring Object/XML Mapping framework +- Dependencies: Commons Logging, spring-beans, spring-core + [Log4J, JAXB, Castor, XMLBeans, StAX, JiBX, XStream] + +* spring-ws-core-1.0-m2.jar +- Contents: The Spring-WS Core +- Dependencies: Commons Logging, spring-beans, spring-core, spring-context + [Log4J, spring-oxm, spring-web, spring-webmvc, SAAJ, JDOM, StAX, Servlet API, JAF, Axiom, DOM4J, XOM] + +* spring-ws-security-1.0-m2.jar +- Contents: Spring-WS Security integration +- Dependencies: Commons Logging, spring-beans, spring-core, spring-context, spring-ws-core + [Log4J, xmlsdig, xmlsec, XWS-security, Acegi] + +* spring-xml-1.0-m2.jar +- Contents: Spring XML utility framework +- Dependencies: Commons Logging, spring-beans, spring-core + [StAX, Xalan, Jaxen] + +For an exact list of Spring-WS project dependencies see the respective pom.xml files. + +4. WHERE TO START + +This distribution contains documentation and two sample applications illustrating the features of Spring-WS. + +A great way to get started is to review and run the sample applications, supplementing with reference manual +material as needed. You will require Maven 2, which can be downloaded from http://maven.apache.org/, for building +Spring-WS. To build deployable .war files for all samples, simply access the "samples" directory and +execute the "mvn package" command. + +More information on deploying Spring-WS sample applications can be found at: + samples/readme.txt + +5. ADDITIONAL RESOURCES + +The Spring-WS homepage is located at: + + http://www.springframework.org/spring-ws + +Spring-WS support forums are located at: + + http://forum.springframework.org/forumdisplay.php?f=39 + +The Spring Framework portal is located at: + + http://www.springframework.org diff --git a/release/src/assembly/full.xml b/release/src/assembly/full.xml new file mode 100644 index 00000000..89d5b516 --- /dev/null +++ b/release/src/assembly/full.xml @@ -0,0 +1,102 @@ + + + full + + zip + + + + / + + license.txt + changelog.txt + readme.txt + + dos + + + target/docs/api + /docs/api + + + ../doc/target/docbkx + /docs/reference + + + ../spring-ws-samples + /samples + + readme.txt + + dos + + + ../spring-ws-samples + /samples + + echo/** + airline/** + + + **/target/** + **/target + **/*.iml + **/META-INF/* + **/*.log + + + + .. + /modules + + spring-xml/**/* + spring-oxm/**/* + spring-oxm-tiger/**/* + spring-ws-core/**/* + spring-ws-security/**/* + + + **/docs/** + **/target/** + **/target + **/*.iml + + + + + + lib + test + + org.springframework.ws:spring-xml + org.springframework.ws:spring-oxm + org.springframework.ws:spring-oxm-tiger + org.springframework.ws:spring-ws-core + org.springframework.ws:spring-ws-security + org.springframework.ws:echo + org.springframework.ws:airline + + + + / + runtime + + org.springframework.ws:spring-xml + org.springframework.ws:spring-oxm + org.springframework.ws:spring-oxm-tiger + org.springframework.ws:spring-ws-core + org.springframework.ws:spring-ws-security + + + + + diff --git a/release/src/assembly/minimal.xml b/release/src/assembly/minimal.xml new file mode 100644 index 00000000..89771930 --- /dev/null +++ b/release/src/assembly/minimal.xml @@ -0,0 +1,31 @@ + + + minimal + + zip + + + + / + + license.txt + changelog.txt + readme.txt + + dos + + + + + / + runtime + + org.springframework.ws:spring-xml + org.springframework.ws:spring-oxm + org.springframework.ws:spring-oxm-tiger + org.springframework.ws:spring-ws-core + org.springframework.ws:spring-ws-security + + + + diff --git a/samples/airline/build-maven2.xml b/samples/airline/build-maven2.xml new file mode 100644 index 00000000..5595b60b --- /dev/null +++ b/samples/airline/build-maven2.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/airline/client/cs/Makefile b/samples/airline/client/cs/Makefile new file mode 100644 index 00000000..73ba3c86 --- /dev/null +++ b/samples/airline/client/cs/Makefile @@ -0,0 +1,3 @@ +target: + wsdl -namespace:Spring.Ws.Samples.Airline.Client.CSharp -out:src/AirlineService.cs ../../src/main/webapp/airline.wsdl + mcs -out:bin/airline.exe -r:System.Web.Services src/main.cs src/AirlineService.cs diff --git a/samples/airline/client/cs/bin/airline.exe b/samples/airline/client/cs/bin/airline.exe new file mode 100755 index 0000000000000000000000000000000000000000..8938e7bb39b4f401ddcb348b5bdaf104e2f7fe25 GIT binary patch literal 9728 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 literal 0 HcmV?d00001 diff --git a/samples/airline/client/cs/build-getmileage.bat b/samples/airline/client/cs/build-getmileage.bat new file mode 100644 index 00000000..fdbc6f7d --- /dev/null +++ b/samples/airline/client/cs/build-getmileage.bat @@ -0,0 +1,4 @@ +@echo off +set WSE_PATH="C:\Program Files\Microsoft WSE\v2.0" +%WSE_PATH%\Tools\Wsdl\WseWsdl2 ..\..\src\main\webapp\airline.wsdl src\AirlineService-wse.cs +csc -nologo -out:bin\getmileage.exe -reference:%WSE_PATH%\Microsoft.Web.Services2.dll src\wse.cs src\AirlineService-wse.cs \ No newline at end of file diff --git a/samples/airline/client/cs/build-wse.bat b/samples/airline/client/cs/build-wse.bat new file mode 100644 index 00000000..9c2bdc23 --- /dev/null +++ b/samples/airline/client/cs/build-wse.bat @@ -0,0 +1,3 @@ +set WSE_PATH="C:\Program Files\Microsoft WSE\v2.0" +%WSE_PATH%\Tools\Wsdl\WseWsdl2 ..\..\src\main\webapp\airline.wsdl src\AirlineService-wse.cs +csc -out:bin\airline-wse.exe -reference:%WSE_PATH%\Microsoft.Web.Services2.dll src\wse.cs src\AirlineService-wse.cs \ No newline at end of file diff --git a/samples/airline/client/cs/build.bat b/samples/airline/client/cs/build.bat new file mode 100644 index 00000000..4105ccbf --- /dev/null +++ b/samples/airline/client/cs/build.bat @@ -0,0 +1,2 @@ +wsdl -out:src\AirlineService.cs ..\..\src\webapp\airline.wsdl ..\..\src\webapp\airline.xsd +csc -out:bin\airline.exe src\main.cs src\AirlineService.cse.csosoft WSE\v2.0\Microsoft.Web.Services2.dll" -define:WSE src\main.cs src\AirlineService.cs \ No newline at end of file diff --git a/samples/airline/client/cs/readme.txt b/samples/airline/client/cs/readme.txt new file mode 100644 index 00000000..d8ba2d63 --- /dev/null +++ b/samples/airline/client/cs/readme.txt @@ -0,0 +1,20 @@ +SPRING WEB SERVICES + +This directory contains two C# clients for the Airline Web Service. One sample (airline.exe) uses non-secure +functionality, and works under both .NET and Mono, while getmileage.exe only works under .NET because it relies on +Microsoft's Web Services enhancements (WSE 2.0) to perform WS-Security. + +The C# client is executable: just run the executable file and (if the war file is deployed at the default +http://localhost:8080/airline) the web service will be called, causing a flight reservations to be created. + +If the web service is NOT running at the default URL, you can append the URL argument to the exectuable file +(e.g. 'airline.exe http://localhost:8080/airline-webservice/Airline'). + + +C# Client Sample table of contents +--------------------------------------------------- +* bin - The executable files for the clients: airline.exe and getmileage.exe +* src - The source files for the clients. +* Makefile - Mono makefile. +* build.bat - .NET build batch file for airline.exe +* build-getmileage.bat - .NET build batch file for getmileage.exe \ No newline at end of file diff --git a/samples/airline/client/cs/src/AirlineService-wse.cs b/samples/airline/client/cs/src/AirlineService-wse.cs new file mode 100644 index 00000000..ec6afb95 --- /dev/null +++ b/samples/airline/client/cs/src/AirlineService-wse.cs @@ -0,0 +1,78 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version: 1.1.4322.2032 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// +// InfoVersionComment, WseWsdl2, Version=2.0.3.0, Culture=neutral, PublicKeyToken=26ba029e599ec4f8, RunTime Version: 1.1.4322.2032 +// +using System; +using System.Xml; +using Microsoft.Web.Services2; +using Microsoft.Web.Services2.Addressing; +using Microsoft.Web.Services2.Messaging; +using System.Xml.Serialization; + + +[SoapService("http://www.springframework.org/spring-ws/samples/airline/definitions")] +public class AirlineService : SoapClient +{ + public AirlineService() : base( new Uri("http://localhost:8080/airline/Airline") ) + { + } + + [SoapMethod("http://www.springframework.org/spring-ws/samples/airline/GetFlights")] + public SoapEnvelope GetFlights( SoapEnvelope request ) + { + return base.SendRequestResponse("GetFlights", request); + } + + public IAsyncResult BeginGetFlights( SoapEnvelope request, System.AsyncCallback callback, object asyncState) + { + return base.BeginSendRequestResponse("GetFlights", request, callback, asyncState); + } + + public SoapEnvelope EndGetFlights( System.IAsyncResult asyncResult ) + { + return base.EndSendRequestResponse(asyncResult); + } + + [SoapMethod("http://www.springframework.org/spring-ws/samples/airline/BookFlight")] + public SoapEnvelope BookFlight( SoapEnvelope request ) + { + return base.SendRequestResponse("BookFlight", request); + } + + public IAsyncResult BeginBookFlight( SoapEnvelope request, System.AsyncCallback callback, object asyncState) + { + return base.BeginSendRequestResponse("BookFlight", request, callback, asyncState); + } + + public SoapEnvelope EndBookFlight( System.IAsyncResult asyncResult ) + { + return base.EndSendRequestResponse(asyncResult); + } + + [SoapMethod("http://www.springframework.org/spring-ws/samples/airline/GetFrequentFlyerMileage")] + public SoapEnvelope GetFrequentFlyerMileage( SoapEnvelope request ) + { + return base.SendRequestResponse("GetFrequentFlyerMileage", request); + } + + public IAsyncResult BeginGetFrequentFlyerMileage( SoapEnvelope request, System.AsyncCallback callback, object asyncState) + { + return base.BeginSendRequestResponse("GetFrequentFlyerMileage", request, callback, asyncState); + } + + public SoapEnvelope EndGetFrequentFlyerMileage( System.IAsyncResult asyncResult ) + { + return base.EndSendRequestResponse(asyncResult); + } + +} + diff --git a/samples/airline/client/cs/src/AirlineService.cs b/samples/airline/client/cs/src/AirlineService.cs new file mode 100644 index 00000000..123c63f9 --- /dev/null +++ b/samples/airline/client/cs/src/AirlineService.cs @@ -0,0 +1,204 @@ +// ------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Mono Runtime Version: 1.1.4322.2032 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +// ------------------------------------------------------------------------------ + +// +// This source code was auto-generated by Mono Web Services Description Language Utility +// +namespace Spring.Ws.Samples.Airline.Client.CSharp { + + /// + [System.Web.Services.WebServiceBinding(Name="AirlinePort", Namespace="http://www.springframework.org/spring-ws/samples/airline/definitions")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public class AirlineService : System.Web.Services.Protocols.SoapHttpClientProtocol { + + public AirlineService() { + this.Url = "http://localhost:8080/airline/Airline"; + } + + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.springframework.org/spring-ws/samples/airline/GetFlights", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare, Use=System.Web.Services.Description.SoapBindingUse.Literal)] + [return: System.Xml.Serialization.XmlArray(ElementName="GetFlightsResponse", Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] + [return: System.Xml.Serialization.XmlArrayItem(ElementName="flight", IsNullable=false)] + public Flight[] GetFlights([System.Xml.Serialization.XmlElement(Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] MessageGetFlightsRequest GetFlightsRequest) { + object[] results = this.Invoke("GetFlights", new object[] { + GetFlightsRequest}); + return ((Flight[])(results[0])); + } + + public System.IAsyncResult BeginGetFlights(MessageGetFlightsRequest GetFlightsRequest, System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("GetFlights", new object[] { + GetFlightsRequest}, callback, asyncState); + } + + public Flight[] EndGetFlights(System.IAsyncResult asyncResult) { + object[] results = this.EndInvoke(asyncResult); + return ((Flight[])(results[0])); + } + + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.springframework.org/spring-ws/samples/airline/BookFlight", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare, Use=System.Web.Services.Description.SoapBindingUse.Literal)] + [return: System.Xml.Serialization.XmlElement("BookFlightResponse", Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] + public Ticket BookFlight([System.Xml.Serialization.XmlElement(Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] MessageBookFlightRequest BookFlightRequest) { + object[] results = this.Invoke("BookFlight", new object[] { + BookFlightRequest}); + return ((Ticket)(results[0])); + } + + public System.IAsyncResult BeginBookFlight(MessageBookFlightRequest BookFlightRequest, System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("BookFlight", new object[] { + BookFlightRequest}, callback, asyncState); + } + + public Ticket EndBookFlight(System.IAsyncResult asyncResult) { + object[] results = this.EndInvoke(asyncResult); + return ((Ticket)(results[0])); + } + + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.springframework.org/spring-ws/samples/airline/GetFrequentFlyerMileage", ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare, Use=System.Web.Services.Description.SoapBindingUse.Literal)] + [return: System.Xml.Serialization.XmlElement("GetFrequentFlyerMileageResponse", Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] + public int GetFrequentFlyerMileage([System.Xml.Serialization.XmlElement(Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] object GetFrequentFlyerMileageRequest) { + object[] results = this.Invoke("GetFrequentFlyerMileage", new object[] { + GetFrequentFlyerMileageRequest}); + return ((int)(results[0])); + } + + public System.IAsyncResult BeginGetFrequentFlyerMileage(object GetFrequentFlyerMileageRequest, System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("GetFrequentFlyerMileage", new object[] { + GetFrequentFlyerMileageRequest}, callback, asyncState); + } + + public int EndGetFrequentFlyerMileage(System.IAsyncResult asyncResult) { + object[] results = this.EndInvoke(asyncResult); + return ((int)(results[0])); + } + } + + /// + [System.Xml.Serialization.XmlType(Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] + [System.Xml.Serialization.XmlRoot("GetFlightsRequest", Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] + public class MessageGetFlightsRequest { + + /// + public string from; + + /// + public string to; + + /// + [System.Xml.Serialization.XmlElement(DataType="date")] + public System.DateTime departureDate; + + /// + public ServiceClass serviceClass; + + /// + [System.Xml.Serialization.XmlIgnore()] + public bool serviceClassSpecified; + } + + /// + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] + public enum ServiceClass { + + /// + economy, + + /// + business, + + /// + first, + } + + /// + [System.Xml.Serialization.XmlType(Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] + public class Flight { + + /// + public string number; + + /// + public System.DateTime departureTime; + + /// + public Airport from; + + /// + public System.DateTime arrivalTime; + + /// + public Airport to; + + /// + public ServiceClass serviceClass; + } + + /// + [System.Xml.Serialization.XmlType(Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] + public class Airport { + + /// + public string code; + + /// + public string name; + + /// + public string city; + } + + /// + [System.Xml.Serialization.XmlType(Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] + [System.Xml.Serialization.XmlRoot("BookFlightRequest", Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] + public class MessageBookFlightRequest { + + /// + public string flightNumber; + + /// + public System.DateTime departureTime; + + /// + [System.Xml.Serialization.XmlArrayItem(ElementName="passenger", Type=typeof(Name), IsNullable=false)] + [System.Xml.Serialization.XmlArrayItem(ElementName="username", Type=typeof(string), IsNullable=false)] + public object[] passengers; + } + + /// + [System.Xml.Serialization.XmlType(Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] + public class Name { + + /// + public string first; + + /// + public string last; + } + + /// + [System.Xml.Serialization.XmlType(Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] + [System.Xml.Serialization.XmlRoot("BookFlightResponse", Namespace="http://www.springframework.org/spring-ws/samples/airline/schemas")] + public class Ticket { + + /// + public long id; + + /// + [System.Xml.Serialization.XmlElement(DataType="date")] + public System.DateTime issueDate; + + /// + [System.Xml.Serialization.XmlArrayItem(ElementName="passenger", IsNullable=false)] + public Name[] passengers; + + /// + public Flight flight; + } + +} diff --git a/samples/airline/client/cs/src/main.cs b/samples/airline/client/cs/src/main.cs new file mode 100644 index 00000000..6b5953b3 --- /dev/null +++ b/samples/airline/client/cs/src/main.cs @@ -0,0 +1,66 @@ +using System; +using System.Web; +using System.Web.Services.Protocols; + +namespace Spring.Ws.Samples.Airline.Client.CSharp { + + public class Client { + public static void Main(string[] args) { + try { + AirlineService service = new AirlineService(); + if (args.Length > 0) { + service.Url = args[0]; + } else { + service.Url = "http://localhost:8080/airline/Airline"; + } + // Get all flights on 31st Januari, 2006 from Amsterdam to Venice + MessageGetFlightsRequest getFlightsRequest = new MessageGetFlightsRequest(); + getFlightsRequest.from = "AMS"; + getFlightsRequest.to = "VCE"; + getFlightsRequest.departureDate = new DateTime(2006,1,31); + Console.WriteLine("Requesting flights on {0:d}", getFlightsRequest.departureDate); + Flight[] flights = service.GetFlights(getFlightsRequest); + Console.WriteLine("Got {0} results", flights.Length); + if (flights.Length > 0) { + // Book the first flight using John Doe as a frequent flyer + MessageBookFlightRequest bookFlightRequest = new MessageBookFlightRequest(); + bookFlightRequest.flightNumber = flights[0].number; + bookFlightRequest.departureTime = flights[0].departureTime; + bookFlightRequest.passengers = new object[] { "john" }; + Ticket ticket = service.BookFlight(bookFlightRequest); + WriteTicket(ticket); + } + } catch (SoapException ex) { + Console.Error.WriteLine("SOAP Fault Code {0}", ex.Code); + Console.Error.WriteLine("SOAP Fault String: {0}", ex.Message); + } + } + + private static void WriteTicket(Ticket ticket) { + Console.WriteLine("Ticket {0}", ticket.id); + Console.WriteLine("Ticket issue date:\t{0:d}", ticket.issueDate); + foreach (Name passenger in ticket.passengers) { + WriteName(passenger); + } + WriteFlight(ticket.flight); + } + + private static void WriteName(Name name) { + Console.WriteLine("Passenger Name:"); + Console.WriteLine("{0} {1}", name.first, name.last); + Console.WriteLine("------------"); + } + + private static void WriteFlight(Flight flight) { + Console.WriteLine("{0:d}", flight.departureTime); + Console.WriteLine("{0}\t{1}", flight.number, flight.serviceClass); + Console.WriteLine("------------"); + Console.WriteLine("Depart:\t{0}-{1}\t{2:t}", flight.from.code, flight.from.name, + flight.departureTime); + Console.WriteLine("\t{0}", flight.from.city); + Console.WriteLine("Arrive:\t{0}-{1}\t{2:t}", flight.to.code, flight.to.name, + flight.arrivalTime); + Console.WriteLine("\t{0}", flight.to.city); + } + } +} diff --git a/samples/airline/client/cs/src/wse.cs b/samples/airline/client/cs/src/wse.cs new file mode 100644 index 00000000..b5e83452 --- /dev/null +++ b/samples/airline/client/cs/src/wse.cs @@ -0,0 +1,32 @@ +using System; +using System.Web; +using System.Web.Services.Protocols; +using System.Xml; +using Microsoft.Web.Services2; +using Microsoft.Web.Services2.Security; +using Microsoft.Web.Services2.Security.Tokens; + +namespace Spring.Ws.Samples.Airline.Client.CSharp { + + public class Client { + public static void Main(string[] args) { + try { + AirlineService service = new AirlineService(); + if (args.Length > 0) { + service.Destination = new Uri(args[0]); + } + SoapEnvelope request = new SoapEnvelope(); + request.SetBodyObject(@""); + UsernameToken userToken = new UsernameToken("john","changeme", PasswordOption.SendHashed); + request.Context.Security.Tokens.Add(userToken); + SoapEnvelope response = service.GetFrequentFlyerMileage(request); + int miles = XmlConvert.ToInt32(response.Body.FirstChild.InnerText); + Console.Out.WriteLine("'john' has {0} frequent flyer miles", miles); + } catch (SoapException ex) { + Console.Error.WriteLine("SOAP Fault Code {0}", ex.Code); + Console.Error.WriteLine("SOAP Fault String: {0}", ex.Message); + } + } + + } +} diff --git a/samples/airline/client/readme.txt b/samples/airline/client/readme.txt new file mode 100644 index 00000000..ca645a19 --- /dev/null +++ b/samples/airline/client/readme.txt @@ -0,0 +1,6 @@ +SPRING WEB SERVICES + +Client table of contents +--------------------------------------------------- +* cs - A client for the airline service written in C#. +* saaj - Two clients that are written in Java and use SAAJ. \ No newline at end of file diff --git a/samples/airline/client/saaj/build.xml b/samples/airline/client/saaj/build.xml new file mode 100644 index 00000000..852558e5 --- /dev/null +++ b/samples/airline/client/saaj/build.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/airline/client/saaj/lib/activation.jar b/samples/airline/client/saaj/lib/activation.jar new file mode 100644 index 0000000000000000000000000000000000000000..1c88eb4e21f3c8fa3bbc62449c52e68df3251f23 GIT binary patch literal 44623 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 D*Ui;U literal 0 HcmV?d00001 diff --git a/samples/airline/client/saaj/lib/mail.jar b/samples/airline/client/saaj/lib/mail.jar new file mode 100644 index 0000000000000000000000000000000000000000..9966ca30dbeb8a6a9131c5833873dd2b08c93e2b GIT binary patch literal 270394 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

rV}BhZ3xcYXM)RSQI0S14X$g#HWfTC7 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‰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 Nqp_Ls0OD)I{{c7h73cr} literal 0 HcmV?d00001 diff --git a/samples/airline/client/saaj/lib/saaj-api.jar b/samples/airline/client/saaj/lib/saaj-api.jar new file mode 100644 index 0000000000000000000000000000000000000000..ad2d46d635b71b95e6e69a5ddf1eb770550a1a97 GIT binary patch literal 19162 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 aLLfq*7XaHTj~56C0!WrmK!TB;{{I0ZG=9+l literal 0 HcmV?d00001 diff --git a/samples/airline/client/saaj/lib/saaj-impl.jar b/samples/airline/client/saaj/lib/saaj-impl.jar new file mode 100644 index 0000000000000000000000000000000000000000..612b638ce32c105907eafe7c058a44718a1c58ca GIT binary patch literal 272810 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

rKX_NzIA47z`?0%`as8hK$kAI~UQ~ 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�Z)1^!L(6^b)(C#vejeL=3yR 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%0D()mQASc#dvfr}SUSuLWxsOfG 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�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%0DvxGL|;`*%MRugGFU_ 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%0AF({P|9E!XacRrOR%>{9=LxsOk({q=( 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


=t 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 (ywQW?;G=M7yWD(=#vxp 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%0D1J?*ozCvL* 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 Ug96*wq}j? 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%0D}4i(_db5KJ8S0GceLK(lhw|V1g!^jil!1 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

w0;p2ordU?$pENP6nv&RIJNe^Svk0KP1n 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%0DIX7u!*AI{^Ooj*Hp%H*XJ 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 literal 0 HcmV?d00001 diff --git a/samples/airline/client/saaj/lib/xmlsec.jar b/samples/airline/client/saaj/lib/xmlsec.jar new file mode 100644 index 0000000000000000000000000000000000000000..3c79d4e539a7397df766261f6affcb28a81da8f7 GIT binary patch literal 299587 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

  • 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 literal 0 HcmV?d00001 diff --git a/samples/airline/client/saaj/lib/xws-security.jar b/samples/airline/client/saaj/lib/xws-security.jar new file mode 100644 index 0000000000000000000000000000000000000000..7b9caef982c0c11b9005cfe5001c656e68014328 GIT binary patch literal 1265582 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

    )F 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

    |X&OJ2S#BgW$%)CrMtJ_)A)YXhd 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 RPh$ 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

    =cSEP0pco?~_MBFSwJ9+9XX-VrR7EAGO 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

    wY8ToC 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

    SZ|Y4(d7o?;ZoRHEAb0k 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%0Ag3SN)Mmc_>TQr*Y^R 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 literal 0 HcmV?d00001 diff --git a/samples/airline/client/saaj/readme.txt b/samples/airline/client/saaj/readme.txt new file mode 100644 index 00000000..b65bd622 --- /dev/null +++ b/samples/airline/client/saaj/readme.txt @@ -0,0 +1,11 @@ +SPRING WEB SERVICES + +This directory contains two Java clients for the Airline Web Service that use SAAJ: SOAP with Attachments API for Java. +There is a client for the GetFlights operation and a client for the secure GetFrequentFlyerMileage operation. Both +clients can be run from the provided ant file, by calling "ant run". + +SAJA Client Sample table of contents +--------------------------------------------------- +* src - The source files for the client +* build.xml - Ant build file with a 'build' and a 'run' target + diff --git a/samples/airline/client/saaj/src/org/springframework/ws/samples/airline/client/saaj/GetFlights.java b/samples/airline/client/saaj/src/org/springframework/ws/samples/airline/client/saaj/GetFlights.java new file mode 100644 index 00000000..790894a4 --- /dev/null +++ b/samples/airline/client/saaj/src/org/springframework/ws/samples/airline/client/saaj/GetFlights.java @@ -0,0 +1,127 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.client.saaj; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Iterator; + +import javax.xml.soap.MessageFactory; +import javax.xml.soap.Name; +import javax.xml.soap.SOAPBodyElement; +import javax.xml.soap.SOAPConnection; +import javax.xml.soap.SOAPConnectionFactory; +import javax.xml.soap.SOAPElement; +import javax.xml.soap.SOAPEnvelope; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPFault; +import javax.xml.soap.SOAPMessage; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +/** + * Simple client that calls the GetFlights operation using SAAJ. + * + * @author Arjen Poutsma + */ +public class GetFlights { + + public static final String NAMESPACE_URI = "http://www.springframework.org/spring-ws/samples/airline/schemas"; + + public static final String PREFIX = "airline"; + + private SOAPConnectionFactory connectionFactory; + + private MessageFactory messageFactory; + + private URL url; + + private TransformerFactory transfomerFactory; + + public GetFlights(String url) throws SOAPException, MalformedURLException { + connectionFactory = SOAPConnectionFactory.newInstance(); + messageFactory = MessageFactory.newInstance(); + transfomerFactory = TransformerFactory.newInstance(); + this.url = new URL(url); + } + + private SOAPMessage createGetFlightsRequest() throws SOAPException { + SOAPMessage message = messageFactory.createMessage(); + SOAPEnvelope envelope = message.getSOAPPart().getEnvelope(); + Name getFlightsRequestName = envelope.createName("GetFlightsRequest", PREFIX, NAMESPACE_URI); + SOAPBodyElement getFlightsRequestElement = message.getSOAPBody().addBodyElement(getFlightsRequestName); + Name fromName = envelope.createName("from", PREFIX, NAMESPACE_URI); + SOAPElement fromElement = getFlightsRequestElement.addChildElement(fromName); + fromElement.setValue("AMS"); + Name toName = envelope.createName("to", PREFIX, NAMESPACE_URI); + SOAPElement toElement = getFlightsRequestElement.addChildElement(toName); + toElement.setValue("VCE"); + Name departureDateName = envelope.createName("departureDate", PREFIX, NAMESPACE_URI); + SOAPElement departureDateElement = getFlightsRequestElement.addChildElement(departureDateName); + departureDateElement.setValue("2006-01-31"); + return message; + } + + public void getFlights() throws SOAPException, IOException, TransformerException { + SOAPMessage request = createGetFlightsRequest(); + SOAPConnection connection = connectionFactory.createConnection(); + SOAPMessage response = connection.call(request, url); + if (!response.getSOAPBody().hasFault()) { + writeGetFlightsResponse(response); + } + else { + SOAPFault fault = response.getSOAPBody().getFault(); + System.err.println("Received SOAP Fault"); + System.err.println("SOAP Fault Code :" + fault.getFaultCode()); + System.err.println("SOAP Fault String :" + fault.getFaultString()); + } + } + + private void writeGetFlightsResponse(SOAPMessage message) throws SOAPException, TransformerException { + SOAPEnvelope envelope = message.getSOAPPart().getEnvelope(); + Name getFlightsResponseName = envelope.createName("GetFlightsResponse", PREFIX, NAMESPACE_URI); + SOAPBodyElement getFlightsResponseElement = + (SOAPBodyElement) message.getSOAPBody().getChildElements(getFlightsResponseName).next(); + Name flightName = envelope.createName("flight", PREFIX, NAMESPACE_URI); + Iterator iterator = getFlightsResponseElement.getChildElements(flightName); + Transformer transformer = transfomerFactory.newTransformer(); + transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + int count = 1; + while (iterator.hasNext()) { + System.out.println("Flight " + count); + System.out.println("--------"); + SOAPElement flightElement = (SOAPElement) iterator.next(); + DOMSource source = new DOMSource(flightElement); + transformer.transform(source, new StreamResult(System.out)); + } + } + + public static void main(String[] args) throws Exception { + String url = "http://localhost:8080/airline/Airline"; + if (args.length > 0) { + url = args[0]; + } + GetFlights getFlights = new GetFlights(url); + getFlights.getFlights(); + } +} diff --git a/samples/airline/client/saaj/src/org/springframework/ws/samples/airline/client/saaj/GetFrequentFlyerMileage.java b/samples/airline/client/saaj/src/org/springframework/ws/samples/airline/client/saaj/GetFrequentFlyerMileage.java new file mode 100644 index 00000000..0a75b2f4 --- /dev/null +++ b/samples/airline/client/saaj/src/org/springframework/ws/samples/airline/client/saaj/GetFrequentFlyerMileage.java @@ -0,0 +1,147 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.client.saaj; + +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.CallbackHandler; +import javax.security.auth.callback.UnsupportedCallbackException; +import javax.xml.soap.MessageFactory; +import javax.xml.soap.Name; +import javax.xml.soap.SOAPBodyElement; +import javax.xml.soap.SOAPConnection; +import javax.xml.soap.SOAPConnectionFactory; +import javax.xml.soap.SOAPEnvelope; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPFault; +import javax.xml.soap.SOAPMessage; + +import com.sun.xml.wss.ProcessingContext; +import com.sun.xml.wss.XWSSProcessor; +import com.sun.xml.wss.XWSSProcessorFactory; +import com.sun.xml.wss.XWSSecurityException; +import com.sun.xml.wss.impl.callback.PasswordCallback; +import com.sun.xml.wss.impl.callback.UsernameCallback; + +/** + * Simple client that calls the WS-Security GetFrequentFlyerMileage operation using SAAJ and XWSS. + * + * @author Arjen Poutsma + */ +public class GetFrequentFlyerMileage { + + public static final String NAMESPACE_URI = "http://www.springframework.org/spring-ws/samples/airline/schemas"; + + public static final String PREFIX = "airline"; + + private SOAPConnectionFactory connectionFactory; + + private MessageFactory messageFactory; + + private URL url; + + private XWSSProcessorFactory processorFactory; + + public GetFrequentFlyerMileage(String url) throws SOAPException, MalformedURLException, XWSSecurityException { + connectionFactory = SOAPConnectionFactory.newInstance(); + messageFactory = MessageFactory.newInstance(); + processorFactory = XWSSProcessorFactory.newInstance(); + this.url = new URL(url); + } + + private SOAPMessage createGetMileageRequest() throws SOAPException { + SOAPMessage message = messageFactory.createMessage(); + message.getMimeHeaders().addHeader("SOAPAction", + "\"http://www.springframework.org/spring-ws/samples/airline/GetFrequentFlyerMileage\""); + SOAPEnvelope envelope = message.getSOAPPart().getEnvelope(); + Name getFlightsRequestName = envelope.createName("GetFrequentFlyerMileage", GetFrequentFlyerMileage.PREFIX, + GetFrequentFlyerMileage.NAMESPACE_URI); + message.getSOAPBody().addBodyElement(getFlightsRequestName); + return message; + } + + private SOAPMessage secureMessage(SOAPMessage message, final String username, final String password) + throws IOException, XWSSecurityException { + CallbackHandler callbackHandler = new CallbackHandler() { + public void handle(Callback[] callbacks) throws UnsupportedCallbackException { + for (int i = 0; i < callbacks.length; i++) { + if (callbacks[i] instanceof UsernameCallback) { + UsernameCallback callback = (UsernameCallback) callbacks[i]; + callback.setUsername(username); + } + else if (callbacks[i] instanceof PasswordCallback) { + PasswordCallback callback = (PasswordCallback) callbacks[i]; + callback.setPassword(password); + } + else { + throw new UnsupportedCallbackException(callbacks[i]); + } + } + } + }; + InputStream policyStream = null; + XWSSProcessor processor = null; + try { + policyStream = getClass().getResourceAsStream("securityPolicy.xml"); + processor = processorFactory.createProcessorForSecurityConfiguration(policyStream, callbackHandler); + } + finally { + if (policyStream != null) { + policyStream.close(); + } + } + ProcessingContext context = processor.createProcessingContext(message); + return processor.secureOutboundMessage(context); + } + + public void getMileage(String username, String password) throws SOAPException, IOException, XWSSecurityException { + SOAPMessage request = createGetMileageRequest(); + request = secureMessage(request, username, password); + SOAPConnection connection = connectionFactory.createConnection(); + SOAPMessage response = connection.call(request, url); + if (!response.getSOAPBody().hasFault()) { + SOAPBodyElement mileage = (SOAPBodyElement) response.getSOAPBody().getChildElements().next(); + System.out.println("'" + username + "' has " + mileage.getValue() + " frequent flyer miles"); + } + else { + SOAPFault fault = response.getSOAPBody().getFault(); + System.err.println("Received SOAP Fault"); + System.err.println("SOAP Fault Code :" + fault.getFaultCode()); + System.err.println("SOAP Fault String :" + fault.getFaultString()); + } + } + + public static void main(String[] args) throws Exception { + String url = "http://localhost:8080/airline/Airline"; + if (args.length < 2) { + System.err.println( + "Usage: java org.springframework.ws.samples.airline.client.saaj.GetFrequentFlyerMileage " + + "username password [url]"); + } + String username = args[0]; + String password = args[1]; + if (args.length > 2) { + url = args[2]; + } + GetFrequentFlyerMileage getMileage = new GetFrequentFlyerMileage(url); + getMileage.getMileage(username, password); + } +} diff --git a/samples/airline/client/saaj/src/org/springframework/ws/samples/airline/client/saaj/securityPolicy.xml b/samples/airline/client/saaj/src/org/springframework/ws/samples/airline/client/saaj/securityPolicy.xml new file mode 100644 index 00000000..85090738 --- /dev/null +++ b/samples/airline/client/saaj/src/org/springframework/ws/samples/airline/client/saaj/securityPolicy.xml @@ -0,0 +1,3 @@ + + + diff --git a/samples/airline/pom.xml b/samples/airline/pom.xml new file mode 100644 index 00000000..3e275aaa --- /dev/null +++ b/samples/airline/pom.xml @@ -0,0 +1,172 @@ + + + spring-ws-samples + org.springframework.ws + 1.0-m3-SNAPSHOT + + 4.0.0 + airline + war + Spring WS Airline Sample + + + + org.apache.maven.plugins + maven-antrun-plugin + + + generate-sources + + + + + + + ${project.build.directory}/generated-sources/main/java + + + run + + + + + + + + + + org.springframework.ws + spring-ws-core + + + org.springframework.ws + spring-oxm + + + org.springframework.ws + spring-ws-security + + + + org.springframework + spring-hibernate + + + org.springframework + spring-jdbc + + + org.springframework + spring-mock + + + + jdom + jdom + + + jaxen + jaxen + + + dom4j + dom4j + + + jdom + jdom + + + xerces + xmlParserAPIs + + + xerces + xercesImpl + + + xom + xom + + + + + xalan + xalan + test + + + + javax.xml.bind + jaxb-api + + + com.sun.xml.bind + jaxb-impl + 1.0.6 + compile + + + com.sun.xml.bind + jaxb-libs + 1.0.6 + compile + + + com.sun.xml.bind + jaxb-xjc + 1.0.6 + runtime + + + com.sun.msv.datatype.xsd + xsdlib + 20060615 + compile + + + + org.hibernate + hibernate + 3.1.3 + + + commons-dbcp + commons-dbcp + 1.2.1 + + + xml-apis + xml-apis + + + xerces + xerces + + + + + mysql + mysql-connector-java + 3.1.11 + + + hsqldb + hsqldb + 1.8.0.4 + test + + + + joda-time + joda-time + 1.2.1 + + + joda-time + joda-time-hibernate + 0.8 + + + + \ No newline at end of file diff --git a/samples/airline/readme.txt b/samples/airline/readme.txt new file mode 100644 index 00000000..daffa7cf --- /dev/null +++ b/samples/airline/readme.txt @@ -0,0 +1,32 @@ +===================================================== +== Spring Web Service Airline sample application == +===================================================== + +1. INTRODUCTION + +Features a web service on top of an airline reservation system, backed by a database. The web service works by using XML +Marshalling techniques (JAXB 1), and JDOM in combination with XPath queries to pull information from a message. All +messages follow following the airline.xsd schema in src/webapp. + +A C# client is available in the client directory. + +2. INSTALLATION + +The Airline sample is a normal web application that connects to a database of your choice. + +1. Create a database using one of the scripts in src/etc/db. First, initialize the database using either the MySQL or + PostgreSQL initDB.sql script, and after that run populateDb.sql. +2. Adjust the jdbc.properties in src/main/resources/org/springframework/ws/samples/airline/dao + to reflect your database connection settings +3. Adjust the hibernate.properties in src/main/resources/org/springframework/ws/samples/airline/dao/hibernate +4. run "mvn package" and deploy the war file generated in target; or run "mvn jetty:run" to run the sample + using the Jetty Web container built into Maven 2. + +Note that both MySQL drivers are linked in using Maven so you don't have include these in your server if you're using +this database. + +3. THE CLIENTS + +The client directory contains two sample clients: one in C# and one using SAAJ. More instructions are provided in the +readme files in the directories. + diff --git a/samples/airline/src/etc/db/mysql/dropDB.sql b/samples/airline/src/etc/db/mysql/dropDB.sql new file mode 100644 index 00000000..c91a0015 --- /dev/null +++ b/samples/airline/src/etc/db/mysql/dropDB.sql @@ -0,0 +1 @@ +DROP DATABASE IF EXISTS airline; diff --git a/samples/airline/src/etc/db/mysql/initDB.sql b/samples/airline/src/etc/db/mysql/initDB.sql new file mode 100644 index 00000000..7d16f9ce --- /dev/null +++ b/samples/airline/src/etc/db/mysql/initDB.sql @@ -0,0 +1,53 @@ +CREATE DATABASE IF NOT EXISTS airline; + +GRANT ALL ON airline.* TO airline@localhost IDENTIFIED BY 'airline'; + +USE airline; + +CREATE TABLE AIRPORT ( + CODE CHAR(3) NOT NULL PRIMARY KEY, + NAME VARCHAR(20) NOT NULL, + CITY VARCHAR(20) NOT NULL +); + +CREATE TABLE FLIGHT ( + ID INT(4) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + NUMBER VARCHAR(20) NOT NULL, + DEPARTURE_TIME DATETIME NOT NULL, + FROM_AIRPORT_CODE CHAR(3) NOT NULL REFERENCES AIRPORT(CODE), + ARRIVAL_TIME DATETIME NOT NULL, + TO_AIRPORT_CODE CHAR(3) NOT NULL REFERENCES AIRPORT(CODE), + SERVICE_CLASS VARCHAR(10) NOT NULL, + SEATS_AVAILABLE INT(4) UNSIGNED NOT NULL, + MILES INT(4) UNSIGNED NOT NULL, + UNIQUE KEY IDX_NUMBER_DEPARTURE_TIME (NUMBER, DEPARTURE_TIME) +); + +CREATE TABLE TICKET ( + ID INT(4) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + ISSUE_DATE DATE NOT NULL, + FLIGHT_ID INT(4) UNSIGNED NOT NULL REFERENCES FLIGHT(ID) +); + +CREATE TABLE PASSENGER ( + ID INT(4) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + FIRST_NAME VARCHAR(30), + LAST_NAME VARCHAR(30) +); + +CREATE TABLE PASSENGER_TICKET ( + PASSENGER_ID INT(4) UNSIGNED NOT NULL REFERENCES PASSENGER(ID), + TICKET_ID INT(4) UNSIGNED NOT NULL REFERENCES TICKET(ID) +); + +CREATE TABLE FREQUENT_FLYER ( + PASSENGER_ID INT(4) UNSIGNED NOT NULL PRIMARY KEY REFERENCES PASSENGER(ID), + USERNAME VARCHAR(10) NOT NULL, + PASSWORD VARCHAR(10) NOT NULL, + MILES INT(4) UNSIGNED NOT NULL, + UNIQUE KEY IDX_USERNAME (USERNAME) +); + + + + diff --git a/samples/airline/src/etc/db/populateDB.sql b/samples/airline/src/etc/db/populateDB.sql new file mode 100644 index 00000000..22778cae --- /dev/null +++ b/samples/airline/src/etc/db/populateDB.sql @@ -0,0 +1,8 @@ +INSERT INTO AIRPORT(CODE, NAME, CITY) VALUES('AMS', 'Schiphol Airport', 'Amsterdam'); +INSERT INTO AIRPORT(CODE, NAME, CITY) VALUES('VCE', 'Marco Polo Airport', 'Venice'); + +INSERT INTO FLIGHT(ID, NUMBER, DEPARTURE_TIME, FROM_AIRPORT_CODE, ARRIVAL_TIME, TO_AIRPORT_CODE, SERVICE_CLASS, SEATS_AVAILABLE, MILES) VALUES (1,'KL1653','2006-01-31 10:05:00', 'AMS', '2006-01-31 12:25:00', 'VCE', 'economy', 5, 200); +INSERT INTO FLIGHT(ID, NUMBER, DEPARTURE_TIME, FROM_AIRPORT_CODE, ARRIVAL_TIME, TO_AIRPORT_CODE, SERVICE_CLASS, SEATS_AVAILABLE, MILES) VALUES (2,'KL1654','2006-02-05 12:40:00', 'VCE', '2006-02-05 14:15:00', 'AMS', 'economy', 5, 200); + +INSERT INTO PASSENGER(ID, FIRST_NAME, LAST_NAME) VALUES (1, 'John', 'Doe'); +INSERT INTO FREQUENT_FLYER(PASSENGER_ID, USERNAME, PASSWORD, MILES) VALUES (1, 'john', 'changeme', 10); \ No newline at end of file diff --git a/samples/airline/src/etc/db/postgresql/dropDB.sql b/samples/airline/src/etc/db/postgresql/dropDB.sql new file mode 100644 index 00000000..1ea5d56d --- /dev/null +++ b/samples/airline/src/etc/db/postgresql/dropDB.sql @@ -0,0 +1,6 @@ +DROP TABLE FREQUENT_FLYER; +DROP TABLE PASSENGER_TICKET; +DROP TABLE PASSENGER; +DROP TABLE TICKET; +DROP TABLE FLIGHT; +DROP TABLE AIRPORT; diff --git a/samples/airline/src/etc/db/postgresql/initDB.sql b/samples/airline/src/etc/db/postgresql/initDB.sql new file mode 100644 index 00000000..63bd12ee --- /dev/null +++ b/samples/airline/src/etc/db/postgresql/initDB.sql @@ -0,0 +1,46 @@ +CREATE DATABASE airline; +GRANT ALL ON DATABASE airline to airline; + +CREATE TABLE AIRPORT ( + CODE CHAR(3) NOT NULL PRIMARY KEY, + NAME VARCHAR(20) NOT NULL, + CITY VARCHAR(20) NOT NULL +); + +CREATE TABLE FLIGHT ( + ID BIGSERIAL NOT NULL PRIMARY KEY, + NUMBER VARCHAR(20) NOT NULL, + DEPARTURE_TIME TIMESTAMP NOT NULL, + FROM_AIRPORT_CODE CHAR(3) NOT NULL REFERENCES AIRPORT(CODE), + ARRIVAL_TIME TIMESTAMP NOT NULL, + TO_AIRPORT_CODE CHAR(3) NOT NULL REFERENCES AIRPORT(CODE), + SERVICE_CLASS VARCHAR(10) NOT NULL, + SEATS_AVAILABLE INT NOT NULL, + MILES INT NOT NULL, + UNIQUE(NUMBER, DEPARTURE_TIME) +); + +CREATE TABLE TICKET ( + ID BIGSERIAL NOT NULL PRIMARY KEY, + ISSUE_DATE DATE NOT NULL, + FLIGHT_ID INT NOT NULL REFERENCES FLIGHT(ID) +); + +CREATE TABLE PASSENGER ( + ID BIGSERIAL NOT NULL PRIMARY KEY, + FIRST_NAME VARCHAR(30), + LAST_NAME VARCHAR(30) +); + +CREATE TABLE PASSENGER_TICKET ( + PASSENGER_ID INT NOT NULL REFERENCES PASSENGER(ID), + TICKET_ID INT NOT NULL REFERENCES TICKET(ID) +); + +CREATE TABLE FREQUENT_FLYER ( + PASSENGER_ID INT NOT NULL PRIMARY KEY REFERENCES PASSENGER(ID), + USERNAME VARCHAR(10) NOT NULL, + PASSWORD VARCHAR(10) NOT NULL, + MILES INT NOT NULL, + UNIQUE (USERNAME) +); diff --git a/samples/airline/src/etc/test-resources/org/springframework/ws/samples/airline/ws/bookFlightRequest.xml b/samples/airline/src/etc/test-resources/org/springframework/ws/samples/airline/ws/bookFlightRequest.xml new file mode 100644 index 00000000..cea57ce0 --- /dev/null +++ b/samples/airline/src/etc/test-resources/org/springframework/ws/samples/airline/ws/bookFlightRequest.xml @@ -0,0 +1,11 @@ + + + EF1234 + 2006-01-01T00:00:00.000Z + + + John + Doe + + + diff --git a/samples/airline/src/etc/test-resources/org/springframework/ws/samples/airline/ws/bookFlightRequestFrequentFlyer.xml b/samples/airline/src/etc/test-resources/org/springframework/ws/samples/airline/ws/bookFlightRequestFrequentFlyer.xml new file mode 100644 index 00000000..64bc5237 --- /dev/null +++ b/samples/airline/src/etc/test-resources/org/springframework/ws/samples/airline/ws/bookFlightRequestFrequentFlyer.xml @@ -0,0 +1,8 @@ + + + EF1234 + 2006-01-01T00:00:00.000Z + + john + + diff --git a/samples/airline/src/etc/test-resources/org/springframework/ws/samples/airline/ws/bookFlightResponse.xml b/samples/airline/src/etc/test-resources/org/springframework/ws/samples/airline/ws/bookFlightResponse.xml new file mode 100644 index 00000000..f0184e5d --- /dev/null +++ b/samples/airline/src/etc/test-resources/org/springframework/ws/samples/airline/ws/bookFlightResponse.xml @@ -0,0 +1,27 @@ + + + 42 + 2006-01-01 + + + John + Doe + + + + EF1234 + 2006-01-01T00:00:00Z + + ABC + Airport + City + + 2006-02-02T00:00:00Z + + DEF + Airport + City + + economy + + \ No newline at end of file diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/FlightDao.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/FlightDao.java new file mode 100644 index 00000000..cafd3479 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/FlightDao.java @@ -0,0 +1,37 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ws.samples.airline.dao; + +import java.util.List; + +import org.joda.time.DateTime; + +import org.springframework.dao.DataAccessException; +import org.springframework.ws.samples.airline.domain.Flight; +import org.springframework.ws.samples.airline.domain.ServiceClass; + +public interface FlightDao { + + List findFlights(String fromAirportCode, + String toAirportCode, + DateTime startOfPeriod, + DateTime endOfPeriod, + ServiceClass serviceClass) throws DataAccessException; + + Flight getFlight(String flightNumber, DateTime departureTime); + + void update(Flight flight); +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/FrequentFlyerDao.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/FrequentFlyerDao.java new file mode 100644 index 00000000..2a5c8541 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/FrequentFlyerDao.java @@ -0,0 +1,28 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.dao; + +import org.springframework.dao.DataAccessException; +import org.springframework.ws.samples.airline.domain.FrequentFlyer; + +public interface FrequentFlyerDao { + + FrequentFlyer get(String username) throws DataAccessException; + + void update(FrequentFlyer frequentFlyer) throws DataAccessException; + +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/TicketDao.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/TicketDao.java new file mode 100644 index 00000000..e3be0acd --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/TicketDao.java @@ -0,0 +1,26 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.dao; + +import org.springframework.dao.DataAccessException; +import org.springframework.ws.samples.airline.domain.Ticket; + +public interface TicketDao { + + void save(Ticket ticket) throws DataAccessException; + +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFlightDao.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFlightDao.java new file mode 100644 index 00000000..befc7563 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFlightDao.java @@ -0,0 +1,52 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ws.samples.airline.dao.hibernate; + +import java.util.List; + +import org.joda.time.DateTime; + +import org.springframework.dao.DataAccessException; +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import org.springframework.ws.samples.airline.dao.FlightDao; +import org.springframework.ws.samples.airline.domain.Flight; +import org.springframework.ws.samples.airline.domain.ServiceClass; + +public class HibernateFlightDao extends HibernateDaoSupport implements FlightDao { + + public Flight getFlight(String flightNumber, DateTime departureTime) { + List flights = getHibernateTemplate().findByNamedParam( + "from Flight f where f.number = :number and " + "f.departureTime = :departureTime", + new String[]{"number", "departureTime"}, new Object[]{flightNumber, departureTime}); + return !flights.isEmpty() ? (Flight) flights.get(0) : null; + } + + public void update(Flight flight) { + getHibernateTemplate().update(flight); + } + + public List findFlights(String fromAirportCode, + String toAirportCode, + DateTime startOfPeriod, + DateTime endOfPeriod, + ServiceClass serviceClass) throws DataAccessException { + return getHibernateTemplate().findByNamedParam("from Flight f where f.from.code = :from " + + "and f.to.code = :to and " + "f.departureTime >= :start and f.departureTime <= :end and " + + "f.serviceClass = :class", new String[]{"from", "to", "start", "end", "class"}, + new Object[]{fromAirportCode, toAirportCode, startOfPeriod, endOfPeriod, serviceClass}); + } + +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFrequentFlyerDao.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFrequentFlyerDao.java new file mode 100644 index 00000000..f37dba58 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFrequentFlyerDao.java @@ -0,0 +1,37 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.dao.hibernate; + +import java.util.List; + +import org.springframework.dao.DataAccessException; +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import org.springframework.util.CollectionUtils; +import org.springframework.ws.samples.airline.dao.FrequentFlyerDao; +import org.springframework.ws.samples.airline.domain.FrequentFlyer; + +public class HibernateFrequentFlyerDao extends HibernateDaoSupport implements FrequentFlyerDao { + + public FrequentFlyer get(String username) { + List flyers = getHibernateTemplate().find("from FrequentFlyer f where f.username = ?", username); + return !CollectionUtils.isEmpty(flyers) ? (FrequentFlyer) flyers.get(0) : null; + } + + public void update(FrequentFlyer frequentFlyer) throws DataAccessException { + getHibernateTemplate().update(frequentFlyer); + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateTicketDao.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateTicketDao.java new file mode 100644 index 00000000..25593688 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateTicketDao.java @@ -0,0 +1,29 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.dao.hibernate; + +import org.springframework.dao.DataAccessException; +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +import org.springframework.ws.samples.airline.dao.TicketDao; +import org.springframework.ws.samples.airline.domain.Ticket; + +public class HibernateTicketDao extends HibernateDaoSupport implements TicketDao { + + public void save(Ticket ticket) throws DataAccessException { + getHibernateTemplate().save(ticket); + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Airport.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Airport.java new file mode 100644 index 00000000..36c43240 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Airport.java @@ -0,0 +1,76 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.domain; + +import java.io.Serializable; + +public class Airport implements Serializable { + + private String code; + + private String name; + + private String city; + + public Airport() { + } + + public Airport(String code, String name, String city) { + this.code = code; + this.name = name; + this.city = city; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof Airport)) { + return false; + } + final Airport that = (Airport) other; + return this.code.equals(that.code); + } + + public int hashCode() { + return code.hashCode(); + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Entity.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Entity.java new file mode 100644 index 00000000..54b4812b --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Entity.java @@ -0,0 +1,32 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ws.samples.airline.domain; + +import java.io.Serializable; + +public class Entity implements Serializable { + + private Long id; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Flight.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Flight.java new file mode 100644 index 00000000..316bf2c9 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Flight.java @@ -0,0 +1,140 @@ +/* + * Copyright 2005, 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ws.samples.airline.domain; + +import org.joda.time.DateTime; + +public class Flight extends Entity { + + private String number; + + private DateTime departureTime; + + private DateTime arrivalTime; + + private Airport to; + + private Airport from; + + private ServiceClass serviceClass; + + private int seatsAvailable; + + private int miles; + + public DateTime getArrivalTime() { + return arrivalTime; + } + + public void setArrivalTime(DateTime arrivalTime) { + this.arrivalTime = arrivalTime; + } + + public DateTime getDepartureTime() { + return departureTime; + } + + public void setDepartureTime(DateTime departureTime) { + this.departureTime = departureTime; + } + + public Airport getFrom() { + return from; + } + + public void setFrom(Airport from) { + this.from = from; + } + + public int getMiles() { + return miles; + } + + public void setMiles(int miles) { + this.miles = miles; + } + + public String getNumber() { + return number; + } + + public void setNumber(String number) { + this.number = number; + } + + public int getSeatsAvailable() { + return seatsAvailable; + } + + public void setSeatsAvailable(int seatsAvailable) { + this.seatsAvailable = seatsAvailable; + } + + public ServiceClass getServiceClass() { + return serviceClass; + } + + public void setServiceClass(ServiceClass serviceClass) { + this.serviceClass = serviceClass; + } + + public Airport getTo() { + return to; + } + + public void setTo(Airport to) { + this.to = to; + } + + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + final Flight flight = (Flight) o; + + if (!departureTime.equals(flight.departureTime)) { + return false; + } + if (!number.equals(flight.number)) { + return false; + } + + return true; + } + + public int hashCode() { + int result; + result = number.hashCode(); + result = 29 * result + departureTime.hashCode(); + return result; + } + + public String toString() { + StringBuffer buffer = new StringBuffer(); + buffer.append(getNumber()); + buffer.append(' '); + buffer.append(getDepartureTime()); + return buffer.toString(); + } + + public void substractSeats(int count) { + this.seatsAvailable -= count; + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/FrequentFlyer.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/FrequentFlyer.java new file mode 100644 index 00000000..4ac222b8 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/FrequentFlyer.java @@ -0,0 +1,82 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.domain; + +public class FrequentFlyer extends Passenger { + + private String username; + + private String password; + + private int miles; + + public FrequentFlyer() { + } + + public FrequentFlyer(String username) { + this.username = username; + } + + public FrequentFlyer(String username, String password, String firstName, String lastName) { + super(firstName, lastName); + this.username = username; + this.password = password; + } + + public int getMiles() { + return miles; + } + + public void setMiles(int miles) { + this.miles = miles; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof FrequentFlyer)) { + return false; + } + final FrequentFlyer that = (FrequentFlyer) other; + return this.username.equals(that.username); + } + + public int hashCode() { + return username.hashCode(); + } + + public void addMiles(int miles) { + this.miles += miles; + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Passenger.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Passenger.java new file mode 100644 index 00000000..632d9fa8 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Passenger.java @@ -0,0 +1,78 @@ +/* + * Copyright 2005, 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ws.samples.airline.domain; + +import org.springframework.util.Assert; + +public class Passenger extends Entity { + + private String firstName; + + private String lastName; + + public Passenger() { + } + + public Passenger(String firstName, String lastName) { + Assert.hasLength(firstName); + Assert.hasLength(lastName); + this.firstName = firstName; + this.lastName = lastName; + } + + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + final Passenger passenger = (Passenger) o; + + if (!getFirstName().equals(passenger.getFirstName())) { + return false; + } + if (!getLastName().equals(passenger.getLastName())) { + return false; + } + + return true; + } + + public int hashCode() { + int result; + result = getFirstName().hashCode(); + result = 29 * result + getLastName().hashCode(); + return result; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/ServiceClass.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/ServiceClass.java new file mode 100644 index 00000000..2e1992ab --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/ServiceClass.java @@ -0,0 +1,56 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.domain; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; + +public class ServiceClass implements Serializable { + + private String name; + + public static final ServiceClass ECONOMY = new ServiceClass("economy"); + + public static final ServiceClass BUSINESS = new ServiceClass("business"); + + public static final ServiceClass FIRST = new ServiceClass("first"); + + private static final Map INSTANCES = new HashMap(); + + static { + INSTANCES.put(ECONOMY.toString(), ECONOMY); + INSTANCES.put(BUSINESS.toString(), BUSINESS); + INSTANCES.put(FIRST.toString(), FIRST); + } + + private ServiceClass(String name) { + this.name = name; + } + + public String toString() { + return name; + } + + Object readResolve() { + return getInstance(name); + } + + public static ServiceClass getInstance(String name) { + return (ServiceClass) INSTANCES.get(name); + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Ticket.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Ticket.java new file mode 100644 index 00000000..d86058d7 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/Ticket.java @@ -0,0 +1,59 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.domain; + +import java.util.HashSet; +import java.util.Set; + +import org.joda.time.YearMonthDay; + +public class Ticket extends Entity { + + private YearMonthDay issueDate; + + private Set passengers = new HashSet(); + + private Flight flight; + + public Flight getFlight() { + return flight; + } + + public void setFlight(Flight flight) { + this.flight = flight; + } + + public YearMonthDay getIssueDate() { + return issueDate; + } + + public void setIssueDate(YearMonthDay issueDate) { + this.issueDate = issueDate; + } + + public Set getPassengers() { + return passengers; + } + + public void setPassengers(Set passengers) { + this.passengers = passengers; + } + + public void addPassenger(Passenger passenger) { + passengers.add(passenger); + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/hibernate/ServiceClassUserType.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/hibernate/ServiceClassUserType.java new file mode 100644 index 00000000..5c193666 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/domain/hibernate/ServiceClassUserType.java @@ -0,0 +1,84 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.domain.hibernate; + +import java.io.Serializable; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; + +import org.hibernate.HibernateException; +import org.hibernate.usertype.UserType; +import org.springframework.ws.samples.airline.domain.ServiceClass; + +public class ServiceClassUserType implements UserType { + + private static final int[] SQL_TYPES = {Types.VARCHAR}; + + public boolean isMutable() { + return false; + } + + public int[] sqlTypes() { + return SQL_TYPES; + } + + public Class returnedClass() { + return ServiceClass.class; + } + + public boolean equals(Object x, Object y) { + return x == y; + } + + public int hashCode(Object object) throws HibernateException { + return object.hashCode(); + } + + public Object nullSafeGet(ResultSet resultSet, String[] names, Object owner) + throws HibernateException, SQLException { + String name = resultSet.getString(names[0]); + return resultSet.wasNull() ? null : ServiceClass.getInstance(name); + } + + public void nullSafeSet(PreparedStatement statement, Object value, int index) + throws HibernateException, SQLException { + if (value == null) { + statement.setNull(index, Types.VARCHAR); + } + else { + statement.setString(index, value.toString()); + } + } + + public Object deepCopy(Object value) { + return value; + } + + public Serializable disassemble(Object object) throws HibernateException { + return (Serializable) object; + } + + public Object assemble(Serializable serializable, Object object) throws HibernateException { + return serializable; + } + + public Object replace(Object original, Object target, Object owner) throws HibernateException { + return original; + } +} \ No newline at end of file diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/AcegiFrequentFlyerSecurityService.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/AcegiFrequentFlyerSecurityService.java new file mode 100644 index 00000000..d2abe19c --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/AcegiFrequentFlyerSecurityService.java @@ -0,0 +1,59 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.security; + +import org.acegisecurity.Authentication; +import org.acegisecurity.context.SecurityContext; +import org.acegisecurity.context.SecurityContextHolder; + +import org.springframework.ws.samples.airline.dao.FrequentFlyerDao; +import org.springframework.ws.samples.airline.domain.FrequentFlyer; + +/** + * Implementation of the FrequentFlyerSecurityService that uses Acegi. + * + * @author Arjen Poutsma + */ +public class AcegiFrequentFlyerSecurityService implements FrequentFlyerSecurityService { + + private FrequentFlyerDao frequentFlyerDao; + + public void setFrequentFlyerDao(FrequentFlyerDao frequentFlyerDao) { + this.frequentFlyerDao = frequentFlyerDao; + } + + public FrequentFlyer getCurrentlyAuthenticatedFrequentFlyer() { + SecurityContext context = SecurityContextHolder.getContext(); + Authentication authentication = context.getAuthentication(); + if (authentication != null) { + if (authentication.getPrincipal() instanceof FrequentFlyerDetails) { + FrequentFlyerDetails details = (FrequentFlyerDetails) authentication.getPrincipal(); + return details.getFrequentFlyer(); + } + else { + return (FrequentFlyer) authentication.getPrincipal(); + } + } + else { + return null; + } + } + + public FrequentFlyer getFrequentFlyer(String username) { + return frequentFlyerDao.get(username); + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/FrequentFlyerDetails.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/FrequentFlyerDetails.java new file mode 100644 index 00000000..21bac109 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/FrequentFlyerDetails.java @@ -0,0 +1,73 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.security; + +import org.acegisecurity.GrantedAuthority; +import org.acegisecurity.GrantedAuthorityImpl; +import org.acegisecurity.userdetails.UserDetails; + +import org.springframework.ws.samples.airline.domain.FrequentFlyer; + +/** + * A wrapper around an FrequentFlyer which provides extra functionality needed to implement the + * UserDetails interface. + * + * @author Arjen Poutsma + */ +public class FrequentFlyerDetails implements UserDetails { + + private FrequentFlyer frequentFlyer; + + public static final GrantedAuthority[] GRANTED_AUTHORITIES = + new GrantedAuthority[]{new GrantedAuthorityImpl("ROLE_FREQUENT_FLYER")}; + + public FrequentFlyerDetails(FrequentFlyer frequentFlyer) { + this.frequentFlyer = frequentFlyer; + } + + public GrantedAuthority[] getAuthorities() { + return GRANTED_AUTHORITIES; + } + + public String getPassword() { + return frequentFlyer.getPassword(); + } + + public String getUsername() { + return frequentFlyer.getUsername(); + } + + public boolean isAccountNonExpired() { + return true; + } + + public boolean isAccountNonLocked() { + return true; + } + + public boolean isCredentialsNonExpired() { + return true; + } + + public boolean isEnabled() { + return true; + } + + public FrequentFlyer getFrequentFlyer() { + return frequentFlyer; + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/FrequentFlyerDetailsService.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/FrequentFlyerDetailsService.java new file mode 100644 index 00000000..2b2384c1 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/FrequentFlyerDetailsService.java @@ -0,0 +1,49 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.security; + +import org.acegisecurity.userdetails.UserDetails; +import org.acegisecurity.userdetails.UserDetailsService; +import org.acegisecurity.userdetails.UsernameNotFoundException; + +import org.springframework.dao.DataAccessException; +import org.springframework.ws.samples.airline.dao.FrequentFlyerDao; +import org.springframework.ws.samples.airline.domain.FrequentFlyer; + +/** + * Implementation of the Acegi UserDetailsService for FrequentFlyerDetails. + * + * @author Arjen Poutsma + */ +public class FrequentFlyerDetailsService implements UserDetailsService { + + private FrequentFlyerDao frequentFlyerDao; + + public void setFrequentFlyerDao(FrequentFlyerDao frequentFlyerDao) { + this.frequentFlyerDao = frequentFlyerDao; + } + + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException { + FrequentFlyer frequentFlyer = frequentFlyerDao.get(username); + if (frequentFlyer != null) { + return new FrequentFlyerDetails(frequentFlyer); + } + else { + throw new UsernameNotFoundException("Frequent flyer '" + username + "' not found"); + } + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/FrequentFlyerSecurityService.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/FrequentFlyerSecurityService.java new file mode 100644 index 00000000..57431e0a --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/FrequentFlyerSecurityService.java @@ -0,0 +1,43 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.security; + +import org.springframework.ws.samples.airline.domain.FrequentFlyer; + +/** + * Defines the business logic for handling frequent flyers. + * + * @author Arjen Poutsma + */ +public interface FrequentFlyerSecurityService { + + /** + * Returns the FrequentFlyer with the given username. + * + * @param username the username + * @return the frequent flyer with the given username, or null if not found + */ + FrequentFlyer getFrequentFlyer(String username); + + /** + * Returns the FrequentFlyer that is currently logged in. + * + * @return the frequent flyer that is currently logged in, or null if not found + */ + FrequentFlyer getCurrentlyAuthenticatedFrequentFlyer(); + +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/GetFrequentFlyerMileageEndpoint.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/GetFrequentFlyerMileageEndpoint.java new file mode 100644 index 00000000..f54a3e83 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/security/GetFrequentFlyerMileageEndpoint.java @@ -0,0 +1,53 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.security; + +import org.jdom.Element; +import org.jdom.Namespace; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.ws.endpoint.AbstractJDomPayloadEndpoint; +import org.springframework.ws.samples.airline.service.AirlineService; + +/** + * Endpoint that returns the amount of frequent flyer miles for the currently logged in user. Secured via a WS-Security + * UsernameToken + * + * @author Arjen Poutsma + */ +public class GetFrequentFlyerMileageEndpoint extends AbstractJDomPayloadEndpoint implements InitializingBean { + + private AirlineService airlineService; + + private Namespace namespace; + + public void setAirlineService(AirlineService airlineService) { + this.airlineService = airlineService; + } + + protected Element invokeInternal(Element ignored) throws Exception { + int result = airlineService.getFrequentFlyerMileage(); + Element response = new Element("GetFrequentFlyerMileageResponse", namespace); + response.setText(Integer.toString(result)); + return response; + } + + public void afterPropertiesSet() throws Exception { + namespace = Namespace.getNamespace("tns", "http://www.springframework.org/spring-ws/samples/airline/schemas"); + + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/service/AirlineService.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/service/AirlineService.java new file mode 100644 index 00000000..70839529 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/service/AirlineService.java @@ -0,0 +1,71 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ws.samples.airline.service; + +import java.util.List; + +import org.joda.time.DateTime; +import org.joda.time.YearMonthDay; + +import org.springframework.ws.samples.airline.domain.ServiceClass; +import org.springframework.ws.samples.airline.domain.Ticket; + +/** + * Defines the business logic of the Airline application. + * + * @author Arjen Poutsma + */ +public interface AirlineService { + + /** + * Returns a list of Flight objects that fall within the specified criteria. + * + * @param fromAirportCode the three-letter airport code to get flights from + * @param toAirportCode the three-letter airport code to get flights to + * @param departureDate the date of the flights + * @param serviceClass the desired service class level. May be null + * @return a list of flights + * @see org.springframework.ws.samples.airline.domain.Flight + */ + List getFlights(String fromAirportCode, + String toAirportCode, + YearMonthDay departureDate, + ServiceClass serviceClass); + + /** + * Books a single flight for a number of passengers. Passengers can be either specified by name or by frequent flyer + * username. If a FrequentFlyer is specified, the first and last name are looked up in the database. + * + * @param flightNumber the number of the flight to book + * @param departureTime the departure time of the flight to book + * @param passengers the list of passengers for the flight to book. Can be either Passengers with a + * first and last name, or FrequentFlyers with a username. + * @return the created ticket + * @throws NoSuchFlightException if a flight with the specified flight number and departure time does not exist + * @throws NoSeatAvailableException if not enough seats are available for the flight + * @see org.springframework.ws.samples.airline.domain.Passenger + * @see org.springframework.ws.samples.airline.domain.FrequentFlyer + */ + Ticket bookFlight(String flightNumber, DateTime departureTime, List passengers) + throws NoSuchFlightException, NoSeatAvailableException; + + /** + * Returns the amount of frequent flyer award miles for the currently logged in frequent flyer. + * + * @return the amount of frequent flyer miles + */ + int getFrequentFlyerMileage(); +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/service/NoSeatAvailableException.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/service/NoSeatAvailableException.java new file mode 100644 index 00000000..8ff3f844 --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/service/NoSeatAvailableException.java @@ -0,0 +1,38 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.service; + +import org.springframework.ws.samples.airline.domain.Flight; + +/** + * Exception thrown when not enough seats are available for a flight. + * + * @author Arjen Poutsma + */ +public class NoSeatAvailableException extends Exception { + + private Flight flight; + + public NoSeatAvailableException(Flight flight) { + super("Flight [" + flight + "] has not more seats available"); + this.flight = flight; + } + + public Flight getFlight() { + return flight; + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/service/NoSuchFlightException.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/service/NoSuchFlightException.java new file mode 100644 index 00000000..e38c552e --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/service/NoSuchFlightException.java @@ -0,0 +1,45 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.service; + +import org.joda.time.DateTime; + +/** + * Exception thrown when a specified flight cannot be found. + * + * @author Arjen Poutsma + */ +public class NoSuchFlightException extends Exception { + + private String flightNumber; + + private DateTime departureTime; + + public NoSuchFlightException(String flightNumber, DateTime departureTime) { + super("No flight with number [" + flightNumber + "] and departure time [" + departureTime + "]"); + this.flightNumber = flightNumber; + this.departureTime = departureTime; + } + + public String getFlightNumber() { + return flightNumber; + } + + public DateTime getDepartureTime() { + return departureTime; + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/service/impl/AirlineServiceImpl.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/service/impl/AirlineServiceImpl.java new file mode 100644 index 00000000..0a0bf6ce --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/service/impl/AirlineServiceImpl.java @@ -0,0 +1,123 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ws.samples.airline.service.impl; + +import java.util.Iterator; +import java.util.List; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.joda.time.DateTime; +import org.joda.time.YearMonthDay; + +import org.springframework.util.Assert; +import org.springframework.ws.samples.airline.dao.FlightDao; +import org.springframework.ws.samples.airline.dao.TicketDao; +import org.springframework.ws.samples.airline.domain.Flight; +import org.springframework.ws.samples.airline.domain.FrequentFlyer; +import org.springframework.ws.samples.airline.domain.Passenger; +import org.springframework.ws.samples.airline.domain.ServiceClass; +import org.springframework.ws.samples.airline.domain.Ticket; +import org.springframework.ws.samples.airline.security.FrequentFlyerSecurityService; +import org.springframework.ws.samples.airline.service.AirlineService; +import org.springframework.ws.samples.airline.service.NoSeatAvailableException; +import org.springframework.ws.samples.airline.service.NoSuchFlightException; + +/** + * Default implementation of the AirlineService interface. + * + * @author Arjen Poutsma + */ +public class AirlineServiceImpl implements AirlineService { + + private final static Log logger = LogFactory.getLog(AirlineServiceImpl.class); + + private FlightDao flightDao; + + private TicketDao ticketDao; + + private FrequentFlyerSecurityService frequentFlyerSecurityService; + + public void setFlightDao(FlightDao flightDao) { + this.flightDao = flightDao; + } + + public void setFrequentFlyerSecurityService(FrequentFlyerSecurityService frequentFlyerSecurityService) { + this.frequentFlyerSecurityService = frequentFlyerSecurityService; + } + + public void setTicketDao(TicketDao ticketDao) { + this.ticketDao = ticketDao; + } + + public Ticket bookFlight(String flightNumber, DateTime departureTime, List passengers) + throws NoSuchFlightException, NoSeatAvailableException { + Assert.notEmpty(passengers, "No passengers given"); + if (logger.isDebugEnabled()) { + logger.debug("Booking flight '" + flightNumber + "' on '" + departureTime + "' for " + passengers.size() + + " passengers"); + } + Flight flight = flightDao.getFlight(flightNumber, departureTime); + if (flight == null) { + throw new NoSuchFlightException(flightNumber, departureTime); + } + else if (flight.getSeatsAvailable() < passengers.size()) { + throw new NoSeatAvailableException(flight); + } + Ticket ticket = new Ticket(); + ticket.setIssueDate(new YearMonthDay()); + ticket.setFlight(flight); + for (Iterator iterator = passengers.iterator(); iterator.hasNext();) { + Passenger passenger = (Passenger) iterator.next(); + // frequent flyer service is not required + if (passenger instanceof FrequentFlyer && frequentFlyerSecurityService != null) { + String username = ((FrequentFlyer) passenger).getUsername(); + Assert.hasLength(username, "No username specified"); + FrequentFlyer frequentFlyer = frequentFlyerSecurityService.getFrequentFlyer(username); + frequentFlyer.addMiles(flight.getMiles()); + ticket.addPassenger(frequentFlyer); + } + else { + ticket.addPassenger(passenger); + } + } + flight.substractSeats(passengers.size()); + flightDao.update(flight); + ticketDao.save(ticket); + return ticket; + } + + public int getFrequentFlyerMileage() { + FrequentFlyer frequentFlyer = frequentFlyerSecurityService.getCurrentlyAuthenticatedFrequentFlyer(); + return frequentFlyer.getMiles(); + } + + public List getFlights(String fromAirportCode, + String toAirportCode, + YearMonthDay departureDate, + ServiceClass serviceClass) { + if (serviceClass == null) { + serviceClass = ServiceClass.ECONOMY; + } + if (logger.isDebugEnabled()) { + logger.debug( + "Getting flights from '" + fromAirportCode + "' to '" + toAirportCode + "' on " + departureDate); + } + DateTime startOfPeriod = departureDate.toDateTimeAtMidnight(); + DateTime endOfPeriod = startOfPeriod.plusDays(1); + return flightDao.findFlights(fromAirportCode, toAirportCode, startOfPeriod, endOfPeriod, serviceClass); + } +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/ws/BookFlightEndpoint.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/ws/BookFlightEndpoint.java new file mode 100644 index 00000000..e58b54dd --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/ws/BookFlightEndpoint.java @@ -0,0 +1,166 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ws.samples.airline.ws; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import org.jdom.Element; +import org.jdom.Namespace; +import org.jdom.xpath.XPath; +import org.joda.time.DateTime; +import org.joda.time.DateTimeZone; +import org.joda.time.YearMonthDay; +import org.joda.time.format.DateTimeFormatter; +import org.joda.time.format.ISODateTimeFormat; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.ws.endpoint.AbstractJDomPayloadEndpoint; +import org.springframework.ws.samples.airline.domain.Airport; +import org.springframework.ws.samples.airline.domain.Flight; +import org.springframework.ws.samples.airline.domain.FrequentFlyer; +import org.springframework.ws.samples.airline.domain.Passenger; +import org.springframework.ws.samples.airline.domain.ServiceClass; +import org.springframework.ws.samples.airline.domain.Ticket; +import org.springframework.ws.samples.airline.service.AirlineService; + +public class BookFlightEndpoint extends AbstractJDomPayloadEndpoint implements InitializingBean { + + private AirlineService airlineService; + + private XPath flightNumberXPath; + + private XPath departureTimeXPath; + + private Namespace namespace; + + private DateTimeFormatter dateFormatter; + + private DateTimeFormatter dateTimeFormatter; + + private DateTimeFormatter parser; + + private XPath passengersXPath; + + public void setAirlineService(AirlineService airlineService) { + this.airlineService = airlineService; + } + + protected Element invokeInternal(Element requestElement) throws Exception { + String flightNumber = flightNumberXPath.valueOf(requestElement); + String departureTimeString = departureTimeXPath.valueOf(requestElement); + DateTime departureTime = parser.parseDateTime(departureTimeString); + if (logger.isDebugEnabled()) { + logger.debug("BookFlight request for flight number [" + flightNumber + "] at [" + departureTime + "]"); + } + List passengerElements = passengersXPath.selectNodes(requestElement); + List passengers = new ArrayList(); + for (Iterator iterator = passengerElements.iterator(); iterator.hasNext();) { + Element passengerElement = (Element) iterator.next(); + if ("passenger".equals(passengerElement.getName()) && namespace.equals(passengerElement.getNamespace())) { + Passenger passenger = new Passenger(passengerElement.getChildTextNormalize("first", namespace), + passengerElement.getChildTextNormalize("last", namespace)); + passengers.add(passenger); + } + else + if ("username".equals(passengerElement.getName()) && namespace.equals(passengerElement.getNamespace())) { + FrequentFlyer frequentFlyer = new FrequentFlyer(passengerElement.getTextNormalize()); + passengers.add(frequentFlyer); + } + } + Ticket ticket = airlineService.bookFlight(flightNumber, departureTime, passengers); + return createResponse(ticket); + } + + private Element createResponse(Ticket ticket) { + Element responseElement = new Element("BookFlightResponse", namespace); + responseElement.addContent(new Element("id", namespace).setText(ticket.getId().toString())); + responseElement.addContent(createIssueDateElement(ticket.getIssueDate())); + responseElement.addContent(createPassengersElement(ticket.getPassengers())); + responseElement.addContent(createFlightElement(ticket.getFlight())); + return responseElement; + } + + protected Element createIssueDateElement(YearMonthDay issueDate) { + Element issueDateElement = new Element("issueDate", namespace); + issueDateElement.setText(dateFormatter.print(issueDate)); + return issueDateElement; + } + + protected Element createPassengersElement(Set passengers) { + Element passengersElement = new Element("passengers", namespace); + for (Iterator iterator = passengers.iterator(); iterator.hasNext();) { + Passenger passenger = (Passenger) iterator.next(); + Element passengerElement = new Element("passenger", namespace); + passengersElement.addContent(passengerElement); + passengerElement.addContent(new Element("first", namespace).setText(passenger.getFirstName())); + passengerElement.addContent(new Element("last", namespace).setText(passenger.getLastName())); + } + return passengersElement; + } + + protected Element createFlightElement(Flight flight) { + Element flightElement = new Element("flight", namespace); + flightElement.addContent(new Element("number", namespace).setText(flight.getNumber())); + flightElement.addContent(new Element("departureTime", + namespace).setText(dateTimeFormatter.print(flight.getDepartureTime()))); + flightElement.addContent(createAirportElement("from", flight.getFrom())); + flightElement + .addContent(new Element("arrivalTime", + namespace).setText(dateTimeFormatter.print(flight.getArrivalTime()))); + flightElement.addContent(createAirportElement("to", flight.getTo())); + flightElement.addContent(createServiceClassElement(flight.getServiceClass())); + return flightElement; + } + + protected Element createAirportElement(String localName, Airport airport) { + Element airportElement = new Element(localName, namespace); + airportElement.addContent(new Element("code", namespace).setText(airport.getCode())); + airportElement.addContent(new Element("name", namespace).setText(airport.getName())); + airportElement.addContent(new Element("city", namespace).setText(airport.getCity())); + return airportElement; + } + + protected Element createServiceClassElement(ServiceClass serviceClass) { + Element serviceClassElement = new Element("serviceClass", namespace); + if (ServiceClass.BUSINESS.equals(serviceClass)) { + serviceClassElement.setText("business"); + } + else if (ServiceClass.ECONOMY.equals(serviceClass)) { + serviceClassElement.setText("economy"); + } + else if (ServiceClass.FIRST.equals(serviceClass)) { + serviceClassElement.setText("first"); + } + return serviceClassElement; + } + + public void afterPropertiesSet() throws Exception { + namespace = Namespace.getNamespace("tns", "http://www.springframework.org/spring-ws/samples/airline/schemas"); + flightNumberXPath = XPath.newInstance("/tns:BookFlightRequest/tns:flightNumber/text()"); + flightNumberXPath.addNamespace(namespace); + departureTimeXPath = XPath.newInstance("/tns:BookFlightRequest/tns:departureTime/text()"); + departureTimeXPath.addNamespace(namespace); + passengersXPath = XPath.newInstance("/tns:BookFlightRequest/tns:passengers/*"); + passengersXPath.addNamespace(namespace); + parser = ISODateTimeFormat.dateTimeParser().withZone(DateTimeZone.UTC); + dateTimeFormatter = ISODateTimeFormat.dateTimeNoMillis(); + dateFormatter = ISODateTimeFormat.date(); + } + + +} diff --git a/samples/airline/src/main/java/org/springframework/ws/samples/airline/ws/GetFlightsEndpoint.java b/samples/airline/src/main/java/org/springframework/ws/samples/airline/ws/GetFlightsEndpoint.java new file mode 100644 index 00000000..cb1f94ce --- /dev/null +++ b/samples/airline/src/main/java/org/springframework/ws/samples/airline/ws/GetFlightsEndpoint.java @@ -0,0 +1,131 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ws.samples.airline.ws; + +import java.util.Iterator; +import java.util.List; + +import org.joda.time.YearMonthDay; +import org.joda.time.chrono.ISOChronology; + +import org.springframework.ws.endpoint.AbstractMarshallingPayloadEndpoint; +import org.springframework.ws.samples.airline.schema.Airport; +import org.springframework.ws.samples.airline.schema.Flight; +import org.springframework.ws.samples.airline.schema.GetFlightsRequest; +import org.springframework.ws.samples.airline.schema.GetFlightsResponse; +import org.springframework.ws.samples.airline.schema.ServiceClass; +import org.springframework.ws.samples.airline.schema.impl.AirportImpl; +import org.springframework.ws.samples.airline.schema.impl.FlightImpl; +import org.springframework.ws.samples.airline.schema.impl.GetFlightsResponseImpl; +import org.springframework.ws.samples.airline.service.AirlineService; + +/** + * Endpoint that returns a list of flights with a given number, and that lie between a given start and end date. It uses + * JAXB-based marshalling for both request and response objects. Because we use separate POJOs for our schema and our + * domain objects, we need to convert the response domain objects to schema-based objects. + * + * @author Arjen Poutsma + */ +public class GetFlightsEndpoint extends AbstractMarshallingPayloadEndpoint { + + private AirlineService airlineService; + + public void setAirlineService(AirlineService airlineService) { + this.airlineService = airlineService; + } + + protected Object invokeInternal(Object requestObject) throws Exception { + GetFlightsRequest request = (GetFlightsRequest) requestObject; + YearMonthDay departureDate = new YearMonthDay(request.getDepartureDate(), ISOChronology.getInstance()); + if (logger.isDebugEnabled()) { + logger.debug("Request for flights from '" + request.getFrom() + "' to '" + request.getTo() + "' on " + + departureDate); + } + List flights = airlineService.getFlights(request.getFrom(), request.getTo(), departureDate, + convertToDomainType(request.getServiceClass())); + if (logger.isDebugEnabled()) { + logger.debug("Marshalling " + flights.size() + " flight results"); + } + GetFlightsResponse response = new GetFlightsResponseImpl(); + for (Iterator iter = flights.iterator(); iter.hasNext();) { + org.springframework.ws.samples.airline.domain.Flight domainFlight = + (org.springframework.ws.samples.airline.domain.Flight) iter.next(); + Flight schemaFlight = convertToSchemaType(domainFlight); + response.getFlight().add(schemaFlight); + } + return response; + } + + private Flight convertToSchemaType(org.springframework.ws.samples.airline.domain.Flight domainFlight) { + Flight schemaFlight = new FlightImpl(); + schemaFlight.setNumber(domainFlight.getNumber()); + schemaFlight.setDepartureTime(domainFlight.getDepartureTime().toGregorianCalendar()); + schemaFlight.setFrom(convertToSchemaType(domainFlight.getFrom())); + schemaFlight.setArrivalTime(domainFlight.getArrivalTime().toGregorianCalendar()); + schemaFlight.setTo(convertToSchemaType(domainFlight.getTo())); + schemaFlight.setServiceClass(convertToSchemaType(domainFlight.getServiceClass())); + return schemaFlight; + } + + private Airport convertToSchemaType(org.springframework.ws.samples.airline.domain.Airport domainAirport) { + if (domainAirport == null) { + return null; + } + Airport schemaAirport = new AirportImpl(); + schemaAirport.setCode(domainAirport.getCode()); + schemaAirport.setName(domainAirport.getName()); + schemaAirport.setCity(domainAirport.getCity()); + return schemaAirport; + } + + private ServiceClass convertToSchemaType(org.springframework.ws.samples.airline.domain.ServiceClass domainServiceClass) { + if (domainServiceClass == null) { + return null; + } + else if (domainServiceClass.equals(org.springframework.ws.samples.airline.domain.ServiceClass.BUSINESS)) { + return ServiceClass.BUSINESS; + } + else if (domainServiceClass.equals(org.springframework.ws.samples.airline.domain.ServiceClass.ECONOMY)) { + return ServiceClass.ECONOMY; + } + else if (domainServiceClass.equals(org.springframework.ws.samples.airline.domain.ServiceClass.FIRST)) { + return ServiceClass.FIRST; + } + else { + throw new IllegalArgumentException("Invalid domain service class: [" + domainServiceClass + "]"); + } + } + + private org.springframework.ws.samples.airline.domain.ServiceClass convertToDomainType(ServiceClass schemaServiceClass) { + if (schemaServiceClass == null) { + return null; + } + else if (schemaServiceClass.equals(ServiceClass.BUSINESS)) { + return org.springframework.ws.samples.airline.domain.ServiceClass.BUSINESS; + } + else if (schemaServiceClass.equals(ServiceClass.ECONOMY)) { + return org.springframework.ws.samples.airline.domain.ServiceClass.ECONOMY; + } + else if (schemaServiceClass.equals(ServiceClass.FIRST)) { + return org.springframework.ws.samples.airline.domain.ServiceClass.FIRST; + } + else { + throw new IllegalArgumentException("Invalid schema service class: [" + schemaServiceClass + "]"); + } + + } + +} diff --git a/samples/airline/src/main/resources/org/springframework/ws/samples/airline/dao/hibernate/applicationContext-hibernate.xml b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/dao/hibernate/applicationContext-hibernate.xml new file mode 100644 index 00000000..fd5e3993 --- /dev/null +++ b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/dao/hibernate/applicationContext-hibernate.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + classpath:org/springframework/ws/samples/airline/domain/hibernate/airline.hbm.xml + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/airline/src/main/resources/org/springframework/ws/samples/airline/dao/hibernate/hibernate.properties b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/dao/hibernate/hibernate.properties new file mode 100644 index 00000000..ee1d84fe --- /dev/null +++ b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/dao/hibernate/hibernate.properties @@ -0,0 +1,8 @@ +# Properties file with hibernate-related settings. + +#hibernate.dialect=org.hibernate.dialect.HSQLDialect +hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect +#hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect +hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider +#hibernate.hbm2ddl.auto=create-drop +#hibernate.show_sql=true diff --git a/samples/airline/src/main/resources/org/springframework/ws/samples/airline/dao/jdbc.properties b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/dao/jdbc.properties new file mode 100644 index 00000000..e71f5bb9 --- /dev/null +++ b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/dao/jdbc.properties @@ -0,0 +1,14 @@ +#jdbc.driverClassName=org.hsqldb.jdbcDriver +#jdbc.username=sa +#jdbc.password= +#jdbc.url=jdbc:hsqldb:mem:airline + +jdbc.driverClassName=com.mysql.jdbc.Driver +jdbc.username=airline +jdbc.password=airline +jdbc.url=jdbc:mysql://localhost/airline + +#jdbc.driverClassName=org.postgresql.Driver +#jdbc.username=airline +#jdbc.password=airline +#jdbc.url=jdbc:postgresql://localhost/airline \ No newline at end of file diff --git a/samples/airline/src/main/resources/org/springframework/ws/samples/airline/domain/hibernate/airline.hbm.xml b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/domain/hibernate/airline.hbm.xml new file mode 100644 index 00000000..e2fc3d35 --- /dev/null +++ b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/domain/hibernate/airline.hbm.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/airline/src/main/resources/org/springframework/ws/samples/airline/security/applicationContext-security.xml b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/security/applicationContext-security.xml new file mode 100644 index 00000000..8fb3a6aa --- /dev/null +++ b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/security/applicationContext-security.xml @@ -0,0 +1,111 @@ + + + + + + This application context contains the WS-Security and Acegi beans. + + + + + A transactional security service used to obtain Frequent Flyer information. + + + + + + + + + + PROPAGATION_REQUIRED + + + + + + + + + This SOAP Action endpoint mapping is used for endpoints that are secured via WS-Security. It uses a + securityInterceptor to validate incoming messages. + + + + + getFrequentFlyerMileageEndpoint + + + + + + + + + + + + + This interceptor validates incoming messages according to the policy defined in 'securityPolicy.xml'. + The policy defines that all incoming requests must have a UsernameToken with a password digest in it. + The actual authentication is performed by the Acegi callback handler. + + + + + + + + + + + + + This endpoint handles get frequent flier mileage requests. + + + + + + + + + A standard Acegi authentication manager. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.springframework.ws.samples.airline.service.AirlineService.getFrequentFlyerMileage=ROLE_FREQUENT_FLYER + + + + + \ No newline at end of file diff --git a/samples/airline/src/main/resources/org/springframework/ws/samples/airline/security/securityPolicy.xml b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/security/securityPolicy.xml new file mode 100644 index 00000000..b6d644b4 --- /dev/null +++ b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/security/securityPolicy.xml @@ -0,0 +1,3 @@ + + + diff --git a/samples/airline/src/main/resources/org/springframework/ws/samples/airline/service/applicationContext.xml b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/service/applicationContext.xml new file mode 100644 index 00000000..a287297b --- /dev/null +++ b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/service/applicationContext.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + PROPAGATION_REQUIRED,readOnly + PROPAGATION_REQUIRED + + + + + + \ No newline at end of file diff --git a/samples/airline/src/main/resources/org/springframework/ws/samples/airline/ws/applicationContext-ws.xml b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/ws/applicationContext-ws.xml new file mode 100644 index 00000000..88511404 --- /dev/null +++ b/samples/airline/src/main/resources/org/springframework/ws/samples/airline/ws/applicationContext-ws.xml @@ -0,0 +1,121 @@ + + + + + + This application context contains the Spring-WS beans. + + + + The MessageDispatcher is responsible for routing messages to endpoints. + + + + + + + + + + + + + + + + + + This endpoint mapping uses the qualified name of the payload (body contents) to determine the endpoint for + an incoming message. The name GetFlightsRequest with namespace + http://www.springframework.org/spring-ws/samples/airline/schemas is mapped to the getFlightsEndpoint. + Additionally, messages are logged using the logging interceptor. + + + + getFlightsEndpoint + + + + + + + + + + This endpoint mapping uses SOAP Actions to determine the endpoint for an incoming message. The key + http://www.springframework.org/spring-ws/samples/airline/BookFlight is mapped to the bookFlightEndpoint. + Additionally, message are logged and validated. + + + + bookFlightEndpoint + + + + + + + + + + + + + This interceptor validates both incoming and outgoing message contents according to the 'airline.xsd' XML + Schema file. + + + + + + + + This interceptor logs the message payload. + + + + + This endpoint handles book flight request. + + + + + + This endpoint handles get flights request. + + + + + + + + The validating JAXB Marshaller is used by the getFlightsEndpoint to unmarshal XML to objects and + vice-versa. + + + + + + + This exception resolver maps exceptions to SOAP Faults. The business logic exceptions + NoSeatAvailableException and NoSuchFlightException are mapped to custom SOAP Fault. Both + UnmarshallingException andValidationFailureException are mapped to a SOAP Fault with a "Sender" fault code. + All other exceptions are mapped to a "Receiver" error code, the default. + + RECEIVER,Server error + + + + + {http://www.springframework.org/spring-ws/samples/airline}airline:NoMoreSeats, No more seats + available + + {http://www.springframework.org/spring-ws/samples/airline}airline:NoSuchFlight, No such flight + exists + SENDER,Invalid request + SENDER,Invalid request + + + + + \ No newline at end of file diff --git a/samples/airline/src/main/webapp/WEB-INF/airline-servlet.xml b/samples/airline/src/main/webapp/WEB-INF/airline-servlet.xml new file mode 100644 index 00000000..c6a6419e --- /dev/null +++ b/samples/airline/src/main/webapp/WEB-INF/airline-servlet.xml @@ -0,0 +1,25 @@ + + + + + + The handlerAdapter makes sure that Spring's DispatcherServlet + supports MessageEndpoints instances as handlers. + It uses a SAAJ to construct SoapMessageContexts (and SoapMessages). + + + + + + + + + All incoming request are mapped to the messageDispatcher defined in applicationContext-ws.xml + + + + + \ No newline at end of file diff --git a/samples/airline/src/main/webapp/WEB-INF/log4j.properties b/samples/airline/src/main/webapp/WEB-INF/log4j.properties new file mode 100644 index 00000000..f8c051ec --- /dev/null +++ b/samples/airline/src/main/webapp/WEB-INF/log4j.properties @@ -0,0 +1,15 @@ +log4j.rootLogger=WARN, stdout, logfile +log4j.logger.org.springframework.oxm=DEBUG +log4j.logger.org.springframework.ws=DEBUG +log4j.logger.org.springframework.xml=DEBUG + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n + +log4j.appender.logfile=org.apache.log4j.RollingFileAppender +log4j.appender.logfile.File=${airline.root}/WEB-INF/airline.log +log4j.appender.logfile.MaxFileSize=512KB +log4j.appender.logfile.MaxBackupIndex=3 +log4j.appender.logfile.layout=org.apache.log4j.PatternLayout +log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n \ No newline at end of file diff --git a/samples/airline/src/main/webapp/WEB-INF/web.xml b/samples/airline/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000..b3bb8244 --- /dev/null +++ b/samples/airline/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,48 @@ + + + + Spring-WS Airline Sample + + webAppRootKey + airline.root + + + log4jConfigLocation + /WEB-INF/log4j.properties + + + contextConfigLocation + + classpath:org/springframework/ws/samples/airline/dao/hibernate/applicationContext-hibernate.xml + classpath:org/springframework/ws/samples/airline/service/applicationContext.xml + + classpath:org/springframework/ws/samples/airline/security/applicationContext-security.xml + classpath:org/springframework/ws/samples/airline/ws/applicationContext-ws.xml + + + + org.springframework.web.util.Log4jConfigListener + + + org.springframework.web.context.ContextLoaderListener + + + airline + org.springframework.web.servlet.DispatcherServlet + + + airline + /Airline + + + wsdl + text/xml + + + xsd + text/xml + + \ No newline at end of file diff --git a/samples/airline/src/main/webapp/airline.wsdl b/samples/airline/src/main/webapp/airline.wsdl new file mode 100644 index 00000000..38a5897f --- /dev/null +++ b/samples/airline/src/main/webapp/airline.wsdl @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/airline/src/main/webapp/airline.xsd b/samples/airline/src/main/webapp/airline.xsd new file mode 100644 index 00000000..2a9dddc1 --- /dev/null +++ b/samples/airline/src/main/webapp/airline.xsd @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/airline/src/test/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFlightDaoTest.java b/samples/airline/src/test/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFlightDaoTest.java new file mode 100644 index 00000000..2311db15 --- /dev/null +++ b/samples/airline/src/test/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFlightDaoTest.java @@ -0,0 +1,105 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ws.samples.airline.dao.hibernate; + +import java.util.List; + +import org.joda.time.DateTime; +import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests; +import org.springframework.ws.samples.airline.domain.Airport; +import org.springframework.ws.samples.airline.domain.Flight; +import org.springframework.ws.samples.airline.domain.ServiceClass; + +public class HibernateFlightDaoTest extends AbstractTransactionalDataSourceSpringContextTests { + + private HibernateFlightDao flightDao; + + private Airport fromAirport; + + private Airport toAirport; + + private DateTime departureTime; + + private DateTime arrivalTime; + + protected String[] getConfigLocations() { + return new String[]{ + "classpath:org/springframework/ws/samples/airline/dao/hibernate/applicationContext-hibernate.xml"}; + } + + public void setFlightDao(HibernateFlightDao flightDao) { + this.flightDao = flightDao; + } + + protected void onSetUpBeforeTransaction() throws Exception { + departureTime = new DateTime(2006, 1, 31, 10, 5, 0, 0); + arrivalTime = new DateTime(2006, 1, 31, 12, 25, 0, 0); + } + + protected void onSetUpInTransaction() throws Exception { + jdbcTemplate.update("INSERT INTO AIRPORT(CODE, NAME, CITY) VALUES('RTM', 'Rotterdam Airport', 'Rotterdam')"); + fromAirport = new Airport("RTM", "Rotterdam Airport", "Rotterdam"); + jdbcTemplate.update("INSERT INTO AIRPORT(CODE, NAME, CITY) VALUES('OSL', 'Gardermoen', 'Oslo')"); + toAirport = new Airport("OSL", "Gardermoen", "Oslo"); + } + + public void testGetFlightsInPeriod() throws Exception { + jdbcTemplate + .update("INSERT INTO FLIGHT(NUMBER, DEPARTURE_TIME, FROM_AIRPORT_CODE, ARRIVAL_TIME, TO_AIRPORT_CODE, SERVICE_CLASS, SEATS_AVAILABLE, MILES) " + + "VALUES ('KL020','2006-01-31 10:05:00', 'RTM', '2006-01-31 12:25:00', 'OSL', 'business', 90, 10)"); + List flights = flightDao.findFlights("RTM", "OSL", departureTime, arrivalTime, ServiceClass.BUSINESS); + assertNotNull("Invalid result", flights); + assertEquals("Invalid amount of flights", 1, flights.size()); + } + + public void testGetFlightsOutOfPeriod() throws Exception { + jdbcTemplate + .update("INSERT INTO FLIGHT(NUMBER, DEPARTURE_TIME, FROM_AIRPORT_CODE, ARRIVAL_TIME, TO_AIRPORT_CODE, SERVICE_CLASS, SEATS_AVAILABLE, MILES) " + + "VALUES ('KL020','2006-01-31 10:05:00', 'RTM', '2006-01-31 12:25:00', 'OSL', 'business', 90, 10)"); + DateTime dateTime = new DateTime(2006, 6, 1, 0, 0, 0, 0); + List flights = flightDao.findFlights("RTM", "OSL", dateTime, dateTime, ServiceClass.BUSINESS); + assertNotNull("Invalid result", flights); + assertEquals("Invalid amount of flights", 0, flights.size()); + } + + public void testGetFlightByNumberDepartureTime() throws Exception { + jdbcTemplate + .update("INSERT INTO FLIGHT(NUMBER, DEPARTURE_TIME, FROM_AIRPORT_CODE, ARRIVAL_TIME, TO_AIRPORT_CODE, SERVICE_CLASS, SEATS_AVAILABLE, MILES) " + + "VALUES ('KL020','2006-01-31 10:05:00', 'RTM', '2006-01-31 12:25:00', 'OSL', 'business', 90, 10)"); + Flight flight = flightDao.getFlight("KL020", departureTime); + assertNotNull("No flight returned", flight); + assertNotNull("Invalid flight id", flight.getId()); + assertEquals("Invalid flight number", "KL020", flight.getNumber()); + assertEquals("Invalid flight departure time", departureTime, flight.getDepartureTime()); + assertEquals("Invalid flight arrival time", arrivalTime, flight.getArrivalTime()); + assertEquals("Invalid flight from airport", fromAirport, flight.getFrom()); + assertEquals("Invalid flight to airport", toAirport, flight.getTo()); + assertEquals("Invalid flight service class", ServiceClass.BUSINESS, flight.getServiceClass()); + } + + public void testUpdate() throws Exception { + jdbcTemplate + .update("INSERT INTO FLIGHT(NUMBER, DEPARTURE_TIME, FROM_AIRPORT_CODE, ARRIVAL_TIME, TO_AIRPORT_CODE, SERVICE_CLASS, SEATS_AVAILABLE, MILES) " + + "VALUES ('KL020','2006-01-31 10:05:00', 'RTM', '2006-01-31 12:25:00', 'OSL', 'business', 90, 10)"); + Flight flight = flightDao.getFlight("KL020", departureTime); + flight.setSeatsAvailable(0); + flightDao.update(flight); + flightDao.getHibernateTemplate().flush(); + int count = jdbcTemplate + .queryForInt("SELECT SEATS_AVAILABLE FROM FLIGHT WHERE ID = ?", new Object[]{flight.getId()}); + assertEquals("Flight not updated", 0, count); + } +} \ No newline at end of file diff --git a/samples/airline/src/test/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFrequentFlyerDaoTest.java b/samples/airline/src/test/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFrequentFlyerDaoTest.java new file mode 100644 index 00000000..2fb4d3a3 --- /dev/null +++ b/samples/airline/src/test/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateFrequentFlyerDaoTest.java @@ -0,0 +1,48 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.dao.hibernate; + +import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests; +import org.springframework.ws.samples.airline.domain.FrequentFlyer; + +public class HibernateFrequentFlyerDaoTest extends AbstractTransactionalDataSourceSpringContextTests { + + private HibernateFrequentFlyerDao dao; + + protected String[] getConfigLocations() { + return new String[]{ + "classpath:org/springframework/ws/samples/airline/dao/hibernate/applicationContext-hibernate.xml"}; + } + + public void setDao(HibernateFrequentFlyerDao dao) { + this.dao = dao; + } + + public void testGetByUsername() throws Exception { + jdbcTemplate + .update("INSERT INTO PASSENGER(ID, FIRST_NAME, LAST_NAME) " + "VALUES (42, 'Arjen', 'Poutsma')"); + jdbcTemplate + .update("INSERT INTO FREQUENT_FLYER(PASSENGER_ID, USERNAME, PASSWORD, MILES) " + + "VALUES (42, 'arjen', 'changeme', 0)"); + FrequentFlyer flyer = dao.get("arjen"); + assertNotNull("No frequent flyer returned", flyer); + assertEquals("Invalid username", "arjen", flyer.getUsername()); + assertEquals("Invalid password", "changeme", flyer.getPassword()); + assertEquals("Invalid first name", "Arjen", flyer.getFirstName()); + assertEquals("Invalid last name", "Poutsma", flyer.getLastName()); + } +} diff --git a/samples/airline/src/test/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateTicketDaoTest.java b/samples/airline/src/test/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateTicketDaoTest.java new file mode 100644 index 00000000..43ad81d4 --- /dev/null +++ b/samples/airline/src/test/java/org/springframework/ws/samples/airline/dao/hibernate/HibernateTicketDaoTest.java @@ -0,0 +1,91 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.dao.hibernate; + +import org.joda.time.DateTime; +import org.joda.time.DateTimeZone; +import org.joda.time.YearMonthDay; +import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests; +import org.springframework.ws.samples.airline.domain.Airport; +import org.springframework.ws.samples.airline.domain.Flight; +import org.springframework.ws.samples.airline.domain.Passenger; +import org.springframework.ws.samples.airline.domain.ServiceClass; +import org.springframework.ws.samples.airline.domain.Ticket; + +public class HibernateTicketDaoTest extends AbstractTransactionalDataSourceSpringContextTests { + + private HibernateTicketDao dao; + + private Flight flight; + + private DateTime departureTime; + + private DateTime arrivalTime; + + private Passenger passenger; + + protected String[] getConfigLocations() { + return new String[]{ + "classpath:org/springframework/ws/samples/airline/dao/hibernate/applicationContext-hibernate.xml"}; + } + + public void setDao(HibernateTicketDao dao) { + this.dao = dao; + } + + protected void onSetUpBeforeTransaction() throws Exception { + departureTime = new DateTime(2006, 1, 31, 10, 5, 0, 0, DateTimeZone.UTC); + arrivalTime = new DateTime(2006, 1, 31, 12, 25, 0, 0, DateTimeZone.UTC); + } + + protected void onSetUpInTransaction() throws Exception { + jdbcTemplate.update("INSERT INTO AIRPORT(CODE, NAME, CITY) VALUES('RTM', 'Rotterdam Airport', 'Rotterdam')"); + Airport fromAirport = new Airport("RTM", "Rotterdam Airport", "Rotterdam"); + jdbcTemplate.update("INSERT INTO AIRPORT(CODE, NAME, CITY) VALUES('OSL', 'Gardermoen', 'Oslo')"); + Airport toAirport = new Airport("OSL", "Gardermoen", "Oslo"); + jdbcTemplate + .update("INSERT INTO FLIGHT(ID, NUMBER, DEPARTURE_TIME, FROM_AIRPORT_CODE, ARRIVAL_TIME, TO_AIRPORT_CODE, SERVICE_CLASS, SEATS_AVAILABLE, MILES) " + + "VALUES (42, 'KL020','2006-01-31 10:05:00', 'RTM', '2006-01-31 12:25:00', 'OSL', 'business', 90, 10)"); + flight = new Flight(); + flight.setId(new Long(42)); + flight.setNumber("KL1653"); + flight.setDepartureTime(departureTime); + flight.setFrom(fromAirport); + flight.setArrivalTime(arrivalTime); + flight.setTo(toAirport); + flight.setServiceClass(ServiceClass.BUSINESS); + flight.setSeatsAvailable(90); + passenger = new Passenger(); + passenger.setFirstName("John"); + passenger.setLastName("Doe"); + } + + public void testInsert() throws Exception { + Ticket ticket = new Ticket(); + ticket.addPassenger(passenger); + ticket.setFlight(flight); + ticket.setIssueDate(new YearMonthDay()); + int startTicketCount = jdbcTemplate.queryForInt("SELECT COUNT(0) FROM TICKET"); + int startPassengerCount = jdbcTemplate.queryForInt("SELECT COUNT(0) FROM PASSENGER"); + dao.save(ticket); + int endTicketCount = jdbcTemplate.queryForInt("SELECT COUNT(0) FROM TICKET"); + int endPassengerCount = jdbcTemplate.queryForInt("SELECT COUNT(0) FROM PASSENGER"); + assertEquals("Flight not inserted", 1, endTicketCount - startTicketCount); + assertEquals("Passenger not inserted", 1, endPassengerCount - startPassengerCount); + } + +} diff --git a/samples/airline/src/test/java/org/springframework/ws/samples/airline/security/AcegiFrequentFlyerSecurityServiceTest.java b/samples/airline/src/test/java/org/springframework/ws/samples/airline/security/AcegiFrequentFlyerSecurityServiceTest.java new file mode 100644 index 00000000..080bf71c --- /dev/null +++ b/samples/airline/src/test/java/org/springframework/ws/samples/airline/security/AcegiFrequentFlyerSecurityServiceTest.java @@ -0,0 +1,65 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.security; + +import junit.framework.TestCase; +import org.acegisecurity.context.SecurityContext; +import org.acegisecurity.context.SecurityContextHolder; +import org.acegisecurity.context.SecurityContextImpl; +import org.acegisecurity.providers.TestingAuthenticationToken; +import org.easymock.MockControl; + +import org.springframework.ws.samples.airline.dao.FrequentFlyerDao; +import org.springframework.ws.samples.airline.domain.FrequentFlyer; + +public class AcegiFrequentFlyerSecurityServiceTest extends TestCase { + + private AcegiFrequentFlyerSecurityService securityService; + + private MockControl control; + + private FrequentFlyerDao mock; + + protected void setUp() throws Exception { + securityService = new AcegiFrequentFlyerSecurityService(); + control = MockControl.createControl(FrequentFlyerDao.class); + mock = (FrequentFlyerDao) control.getMock(); + securityService.setFrequentFlyerDao(mock); + } + + public void testGetCurrentlyAuthenticatedFrequentFlyer() throws Exception { + FrequentFlyer frequentFlyer = new FrequentFlyer("john"); + FrequentFlyerDetails detail = new FrequentFlyerDetails(frequentFlyer); + TestingAuthenticationToken token = new TestingAuthenticationToken(detail, null, null); + SecurityContext context = new SecurityContextImpl(); + context.setAuthentication(token); + SecurityContextHolder.setContext(context); + control.replay(); + FrequentFlyer result = securityService.getCurrentlyAuthenticatedFrequentFlyer(); + assertEquals("Invalid result", frequentFlyer, result); + control.verify(); + } + + public void testGetFrequentFlyer() throws Exception { + FrequentFlyer frequentFlyer = new FrequentFlyer("john"); + control.expectAndReturn(mock.get("john"), frequentFlyer); + control.replay(); + FrequentFlyer result = securityService.getFrequentFlyer("john"); + assertEquals("Invalid result", frequentFlyer, result); + control.verify(); + } +} \ No newline at end of file diff --git a/samples/airline/src/test/java/org/springframework/ws/samples/airline/security/GetFrequentFlyerMileageEndpointTest.java b/samples/airline/src/test/java/org/springframework/ws/samples/airline/security/GetFrequentFlyerMileageEndpointTest.java new file mode 100644 index 00000000..ab7bea72 --- /dev/null +++ b/samples/airline/src/test/java/org/springframework/ws/samples/airline/security/GetFrequentFlyerMileageEndpointTest.java @@ -0,0 +1,53 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.security; + +import junit.framework.TestCase; +import org.easymock.MockControl; +import org.jdom.Element; + +import org.springframework.ws.samples.airline.service.AirlineService; + +public class GetFrequentFlyerMileageEndpointTest extends TestCase { + + private GetFrequentFlyerMileageEndpoint endpoint; + + private MockControl control; + + private AirlineService mock; + + protected void setUp() throws Exception { + endpoint = new GetFrequentFlyerMileageEndpoint(); + control = MockControl.createControl(AirlineService.class); + mock = (AirlineService) control.getMock(); + endpoint.setAirlineService(mock); + endpoint.afterPropertiesSet(); + + } + + public void testInvokeInternal() throws Exception { + control.expectAndReturn(mock.getFrequentFlyerMileage(), 42); + control.replay(); + Element element = endpoint.invokeInternal(null); + assertNotNull("No element returned", element); + assertEquals("Invalid local name", "GetFrequentFlyerMileageResponse", element.getName()); + assertEquals("Invalid namespace", "http://www.springframework.org/spring-ws/samples/airline/schemas", + element.getNamespaceURI()); + assertEquals("Invalid result", "42", element.getTextNormalize()); + control.verify(); + } +} \ No newline at end of file diff --git a/samples/airline/src/test/java/org/springframework/ws/samples/airline/service/impl/AirlineServiceImplTest.java b/samples/airline/src/test/java/org/springframework/ws/samples/airline/service/impl/AirlineServiceImplTest.java new file mode 100644 index 00000000..3edc3d8b --- /dev/null +++ b/samples/airline/src/test/java/org/springframework/ws/samples/airline/service/impl/AirlineServiceImplTest.java @@ -0,0 +1,190 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ws.samples.airline.service.impl; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import junit.framework.TestCase; +import org.easymock.MockControl; +import org.joda.time.DateTime; +import org.joda.time.YearMonthDay; + +import org.springframework.ws.samples.airline.dao.FlightDao; +import org.springframework.ws.samples.airline.dao.TicketDao; +import org.springframework.ws.samples.airline.domain.Flight; +import org.springframework.ws.samples.airline.domain.FrequentFlyer; +import org.springframework.ws.samples.airline.domain.Passenger; +import org.springframework.ws.samples.airline.domain.ServiceClass; +import org.springframework.ws.samples.airline.domain.Ticket; +import org.springframework.ws.samples.airline.security.FrequentFlyerSecurityService; +import org.springframework.ws.samples.airline.service.NoSeatAvailableException; +import org.springframework.ws.samples.airline.service.NoSuchFlightException; + +public class AirlineServiceImplTest extends TestCase { + + private AirlineServiceImpl airlineService; + + private MockControl flightDaoControl; + + private FlightDao flightDaoMock; + + private MockControl ticketDaoControl; + + private TicketDao ticketDaoMock; + + private MockControl securityServiceControl; + + private FrequentFlyerSecurityService securityServiceMock; + + protected void setUp() throws Exception { + airlineService = new AirlineServiceImpl(); + flightDaoControl = MockControl.createControl(FlightDao.class); + flightDaoMock = (FlightDao) flightDaoControl.getMock(); + airlineService.setFlightDao(flightDaoMock); + ticketDaoControl = MockControl.createControl(TicketDao.class); + ticketDaoMock = (TicketDao) ticketDaoControl.getMock(); + airlineService.setTicketDao(ticketDaoMock); + securityServiceControl = MockControl.createControl(FrequentFlyerSecurityService.class); + securityServiceMock = (FrequentFlyerSecurityService) securityServiceControl.getMock(); + airlineService.setFrequentFlyerSecurityService(securityServiceMock); + } + + protected void tearDown() throws Exception { + flightDaoControl.verify(); + ticketDaoControl.verify(); + securityServiceControl.verify(); + } + + public void testBookFlight() throws Exception { + String flightNumber = "AB1234"; + DateTime departureTime = new DateTime(); + Passenger passenger = new Passenger("John", "Doe"); + List passengers = new ArrayList(); + passengers.add(passenger); + Flight flight = new Flight(); + flight.setNumber(flightNumber); + flight.setSeatsAvailable(10); + flightDaoControl.expectAndReturn(flightDaoMock.getFlight(flightNumber, departureTime), flight); + flightDaoMock.update(flight); + ticketDaoMock.save(null); + ticketDaoControl.setMatcher(MockControl.ALWAYS_MATCHER); + flightDaoControl.replay(); + ticketDaoControl.replay(); + securityServiceControl.replay(); + Ticket ticket = airlineService.bookFlight(flightNumber, departureTime, passengers); + assertNotNull("Invalid ticket", ticket); + assertEquals("Invalid flight", flight, ticket.getFlight()); + assertEquals("Invalid seats available", 9, flight.getSeatsAvailable()); + assertEquals("Invalid passengers count", 1, ticket.getPassengers().size()); + } + + public void testBookFlightFrequentFlyer() throws Exception { + String flightNumber = "AB1234"; + DateTime departureTime = new DateTime(); + FrequentFlyer frequentFlyer = new FrequentFlyer("john", "changeme", "John", "Doe"); + List passengers = new ArrayList(); + passengers.add(frequentFlyer); + Flight flight = new Flight(); + flight.setNumber(flightNumber); + flight.setSeatsAvailable(1); + flight.setMiles(10); + securityServiceControl.expectAndReturn(securityServiceMock.getFrequentFlyer("john"), frequentFlyer); + flightDaoControl.expectAndReturn(flightDaoMock.getFlight(flightNumber, departureTime), flight); + flightDaoMock.update(flight); + ticketDaoMock.save(null); + ticketDaoControl.setMatcher(MockControl.ALWAYS_MATCHER); + flightDaoControl.replay(); + ticketDaoControl.replay(); + securityServiceControl.replay(); + Ticket ticket = airlineService.bookFlight(flightNumber, departureTime, passengers); + assertNotNull("Invalid ticket", ticket); + assertEquals("Invalid flight", flight, ticket.getFlight()); + assertEquals("Invalid amount of miles", 10, frequentFlyer.getMiles()); + } + + public void testBookFlightNoSeatAvailable() throws Exception { + String flightNumber = "AB1234"; + DateTime departureTime = new DateTime(); + List passengers = Collections.singletonList(new Passenger()); + Flight flight = new Flight(); + flightDaoControl.expectAndReturn(flightDaoMock.getFlight(flightNumber, departureTime), flight); + flightDaoControl.replay(); + ticketDaoControl.replay(); + securityServiceControl.replay(); + try { + airlineService.bookFlight(flightNumber, departureTime, passengers); + fail("Should have thrown an NoSeatAvailableException"); + } + catch (NoSeatAvailableException ex) { + } + } + + public void testBookFlightNoSuchFlight() throws Exception { + String flightNumber = "AB1234"; + DateTime departureTime = new DateTime(); + List passengers = Collections.singletonList(new Passenger()); + flightDaoControl.expectAndReturn(flightDaoMock.getFlight(flightNumber, departureTime), null); + flightDaoControl.replay(); + ticketDaoControl.replay(); + securityServiceControl.replay(); + try { + airlineService.bookFlight(flightNumber, departureTime, passengers); + fail("Should have thrown an NoSuchFlightException"); + } + catch (NoSuchFlightException ex) { + } + } + + public void testGetFlights() throws Exception { + String toCode = "to"; + String fromCode = "from"; + YearMonthDay departureDate = new YearMonthDay(2006, 1, 31); + Flight flight = new Flight(); + List flights = new ArrayList(); + flights.add(flight); + DateTime startOfPeriod = new DateTime(2006, 1, 31, 0, 0, 0, 0); + DateTime endOfPeriod = new DateTime(2006, 2, 1, 0, 0, 0, 0); + flightDaoControl.expectAndReturn( + flightDaoMock.findFlights(fromCode, toCode, startOfPeriod, endOfPeriod, ServiceClass.ECONOMY), flights); + flightDaoControl.replay(); + ticketDaoControl.replay(); + securityServiceControl.replay(); + + List result = airlineService.getFlights(fromCode, toCode, departureDate, ServiceClass.ECONOMY); + assertEquals("Invalid result", flights, result); + } + + public void testGetFlightsDefaultServiceClass() throws Exception { + String toCode = "to"; + String fromCode = "from"; + YearMonthDay departureDate = new YearMonthDay(2006, 1, 31); + Flight flight = new Flight(); + List flights = new ArrayList(); + flights.add(flight); + DateTime startOfPeriod = new DateTime(2006, 1, 31, 0, 0, 0, 0); + DateTime endOfPeriod = new DateTime(2006, 2, 1, 0, 0, 0, 0); + flightDaoControl.expectAndReturn( + flightDaoMock.findFlights(fromCode, toCode, startOfPeriod, endOfPeriod, ServiceClass.ECONOMY), flights); + flightDaoControl.replay(); + ticketDaoControl.replay(); + securityServiceControl.replay(); + + List result = airlineService.getFlights(fromCode, toCode, departureDate, null); + assertEquals("Invalid result", flights, result); + } +} diff --git a/samples/airline/src/test/java/org/springframework/ws/samples/airline/ws/BookFlightEndpointTest.java b/samples/airline/src/test/java/org/springframework/ws/samples/airline/ws/BookFlightEndpointTest.java new file mode 100644 index 00000000..a2a433c0 --- /dev/null +++ b/samples/airline/src/test/java/org/springframework/ws/samples/airline/ws/BookFlightEndpointTest.java @@ -0,0 +1,116 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.airline.ws; + +import java.util.Collections; +import java.util.List; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.custommonkey.xmlunit.XMLUnit; +import org.easymock.MockControl; +import org.jdom.Document; +import org.jdom.Element; +import org.jdom.input.SAXBuilder; +import org.jdom.output.XMLOutputter; +import org.joda.time.DateTime; +import org.joda.time.DateTimeZone; +import org.joda.time.YearMonthDay; +import org.springframework.ws.samples.airline.domain.Airport; +import org.springframework.ws.samples.airline.domain.Flight; +import org.springframework.ws.samples.airline.domain.FrequentFlyer; +import org.springframework.ws.samples.airline.domain.Passenger; +import org.springframework.ws.samples.airline.domain.ServiceClass; +import org.springframework.ws.samples.airline.domain.Ticket; +import org.springframework.ws.samples.airline.service.AirlineService; + +public class BookFlightEndpointTest extends XMLTestCase { + + private BookFlightEndpoint endpoint; + + private MockControl serviceControl; + + private AirlineService serviceMock; + + private DateTime departure; + + private Ticket ticket; + + private Document responseDocument; + + private SAXBuilder saxBuilder; + + protected void setUp() throws Exception { + XMLUnit.setIgnoreWhitespace(true); + endpoint = new BookFlightEndpoint(); + serviceControl = MockControl.createControl(AirlineService.class); + serviceMock = (AirlineService) serviceControl.getMock(); + endpoint.setAirlineService(serviceMock); + endpoint.afterPropertiesSet(); + saxBuilder = new SAXBuilder(); + responseDocument = saxBuilder.build(getClass().getResourceAsStream("bookFlightResponse.xml")); + departure = new DateTime(2006, 1, 1, 0, 0, 0, 0, DateTimeZone.UTC); + DateTime arrival = new DateTime(2006, 2, 2, 0, 0, 0, 0, DateTimeZone.UTC); + Flight flight = new Flight(); + flight.setNumber("EF1234"); + flight.setDepartureTime(departure); + flight.setArrivalTime(arrival); + Airport from = new Airport("ABC", "Airport", "City"); + Airport to = new Airport("DEF", "Airport", "City"); + flight.setFrom(from); + flight.setTo(to); + flight.setServiceClass(ServiceClass.ECONOMY); + ticket = new Ticket(); + ticket.setId(new Long(42)); + ticket.setFlight(flight); + ticket.setIssueDate(new YearMonthDay(2006, 1, 1)); + } + + public void testInvoke() throws Exception { + Passenger passenger = new Passenger("John", "Doe"); + List passengers = Collections.singletonList(passenger); + ticket.addPassenger(passenger); + serviceControl.expectAndReturn(serviceMock.bookFlight("EF1234", departure, passengers), ticket); + serviceControl.replay(); + Document requestDocument = saxBuilder.build(getClass().getResourceAsStream("bookFlightRequest.xml")); + Element result = endpoint.invokeInternal(requestDocument.getRootElement()); + assertNotNull("Invalid result", result); + Document resultDocument = new Document(); + resultDocument.setRootElement(result); + XMLOutputter outputter = new XMLOutputter(); + assertXMLEqual(outputter.outputString(responseDocument), outputter.outputString(resultDocument)); + serviceControl.verify(); + } + + public void testInvokeFrequentFlyer() throws Exception { + FrequentFlyer frequentFlyer = new FrequentFlyer("john", "changeme", "John", "Doe"); + List passengers = Collections.singletonList(frequentFlyer); + ticket.addPassenger(frequentFlyer); + serviceControl.expectAndReturn(serviceMock.bookFlight("EF1234", departure, passengers), ticket); + serviceControl.replay(); + Document requestDocument = + saxBuilder.build(getClass().getResourceAsStream("bookFlightRequestFrequentFlyer.xml")); + Element result = endpoint.invokeInternal(requestDocument.getRootElement()); + assertNotNull("Invalid result", result); + Document resultDocument = new Document(); + resultDocument.setRootElement(result); + XMLOutputter outputter = new XMLOutputter(); + assertXMLEqual(outputter.outputString(responseDocument), outputter.outputString(resultDocument)); + serviceControl.verify(); + } + + +} \ No newline at end of file diff --git a/samples/airline/src/test/java/org/springframework/ws/samples/airline/ws/GetFlightsEndpointTest.java b/samples/airline/src/test/java/org/springframework/ws/samples/airline/ws/GetFlightsEndpointTest.java new file mode 100644 index 00000000..1f7e58fd --- /dev/null +++ b/samples/airline/src/test/java/org/springframework/ws/samples/airline/ws/GetFlightsEndpointTest.java @@ -0,0 +1,75 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ws.samples.airline.ws; + +import java.util.ArrayList; +import java.util.List; + +import junit.framework.TestCase; +import org.easymock.MockControl; +import org.joda.time.DateTime; +import org.joda.time.YearMonthDay; + +import org.springframework.ws.samples.airline.domain.Flight; +import org.springframework.ws.samples.airline.schema.GetFlightsRequest; +import org.springframework.ws.samples.airline.schema.GetFlightsResponse; +import org.springframework.ws.samples.airline.schema.ServiceClass; +import org.springframework.ws.samples.airline.schema.impl.GetFlightsRequestImpl; +import org.springframework.ws.samples.airline.service.AirlineService; + +public class GetFlightsEndpointTest extends TestCase { + + private GetFlightsEndpoint endpoint; + + private MockControl serviceControl; + + private AirlineService serviceMock; + + protected void setUp() throws Exception { + endpoint = new GetFlightsEndpoint(); + serviceControl = MockControl.createControl(AirlineService.class); + serviceMock = (AirlineService) serviceControl.getMock(); + endpoint.setAirlineService(serviceMock); + } + + public void testInvoke() throws Exception { + String fromAirportCode = "ABC"; + String toAirportCode = "DEF"; + YearMonthDay departureDate = new YearMonthDay(); + GetFlightsRequest request = new GetFlightsRequestImpl(); + request.setFrom(fromAirportCode); + request.setTo(toAirportCode); + request.setDepartureDate(departureDate.toDateTimeAtMidnight().toGregorianCalendar()); + request.setServiceClass(ServiceClass.FIRST); + List flights = new ArrayList(); + Flight flight = new Flight(); + flight.setNumber("1"); + flight.setDepartureTime(new DateTime()); + flight.setArrivalTime(new DateTime()); + flights.add(flight); + serviceControl.expectAndReturn(serviceMock.getFlights(fromAirportCode, toAirportCode, departureDate, + org.springframework.ws.samples.airline.domain.ServiceClass.FIRST), flights); + serviceControl.replay(); + GetFlightsResponse response = (GetFlightsResponse) endpoint.invokeInternal(request); + serviceControl.verify(); + assertNotNull("Response is null", response); + assertEquals("Invalid amount of flights in response", 1, response.getFlight().size()); + org.springframework.ws.samples.airline.schema.Flight responseFlight = + (org.springframework.ws.samples.airline.schema.Flight) response.getFlight().get(0); + assertEquals("Invalid flight number on flight", "1", responseFlight.getNumber()); + } + +} diff --git a/samples/echo/client/saaj/build.xml b/samples/echo/client/saaj/build.xml new file mode 100644 index 00000000..2cabefd0 --- /dev/null +++ b/samples/echo/client/saaj/build.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/echo/client/saaj/lib/activation.jar b/samples/echo/client/saaj/lib/activation.jar new file mode 100644 index 0000000000000000000000000000000000000000..1c88eb4e21f3c8fa3bbc62449c52e68df3251f23 GIT binary patch literal 44623 zcmbrl1F&Vw)+K!E*tTukb!^+VZQHhO+qP}nsAE>wefRx;fBoY1`?{m|jmYi!-u%~e-B1O2o1o@986O{wCzztXiqBl$TiQ8i%qQd)@J1s z+oZ<4_;7cv5^nMg7wJ$4UA701X^Y7}WGlRw@q#y`Ob65QN1XDdl_^eM%8@^PR;!i0 z6ai23w$AkI*+9_!s*`4VHx7?VtQ`9$@RPax@u967Q@nEhS%TO8}4 z;+&Fx=iF^-vG^5KP7(~faL&PN{!fQve*ggdH6(wJ+`kS9@E;39TkC%e+P}8||EGnc zv(107Li#UO`i4&CF8WU9w*RRC?!Rx~U~Fpc=;UB-?D!w%k@>%EE3I#CWvFkbWNT?` zWA0(>Kx=5F@90>pys3(03jdo%-N7*)J{*!tr8>DTub!=vWX?b+8n_@RQmu+w-#@v{ z->A^6S=F<*XM%(0@ioD5gLlah(!oOZHvr!I0`HS=y^~2}yPf>zVrcrCiO<9I%k-63 zBi!%rV>W=$`)D-&D37_Q$f=#j1H=)xVn!@iqH%|S^bxCtXbQHH?YZr?tC1)y3bvXy z{kxH-RBn^>X@<$RxF-WJDHDzsEn}Bx?NfK>Y=5k&9fK#*MorqT>tWs~M$gdo&M61l zuG4`JKnu_hkN1N??^MtOo^5ZyAo6uWb0W)%5RRe}hm1hPKtGyr|C(?A0IW>l9|{I} zKQ~+}tSS-r&SOL;Lo9aCE+w*PGX(%GkhZ($#kf&#sWLYyv|if#Yt#y?F5&TI%1S8v z@H(q>lm#i4(;!KvqHLt%dqeBX81ko~?tXEWU?`q2gGih(VocM6Eih#eVXVMxUm?ST+jI#`!fVqfaRGEmZh9C!` zt@+2-H2V+h1;uYrOh;938#jW~d9iL&=m{2MZIUljF;tQ`vnb2>OSE)riCDwPd@l)^kXm2z@^EoiHzsB@ zRmzpB>g4G?$X+~buNQGvk~Fnvnan8zW3N>`Vo4(so~7DB*Gia$9t?mX+7yZkphpD3 zk^|!BC+@G_bp+93qt&q#mX|L*@o*T9i0KvzX%{QA@c2iG)5J9&CBZ1;LgmsSRr2AQB2aQ&m=!#mbLjEq-WjwklIyR#cL! z9D9d}?iJ=R@%n5?VO~u`bZMDM`pU=>m<uvc{qCk8FL_;1DlJoqAe6wQgD9o*hjVyD&^#=#6SWxx@dyYhf+2h)yc5q&p_6k z_d_LTF41s@&X0Z!M0qDz5JY*`U&yVU)5ZT9hWsK~(5;z^jr*1e_DKrEoYqjRRcExC zgw=G}U}woBDc==aQHTPUfxjiaMqjTK!&SNwl+#F+D`rpG`|~8A&DS6}QTnVQXwH% z_N{dY)3;7<3cejuasqVanMoz5PaRg6dFU|5Ea{YMo_*G-z`PfE(y+HTGr* z#cf|{R2*rH{P;tqZ!*sBDm&=J$E|)6cMyLNw{t=3*~9!ROWh#RXJ@a_FD<3gUjSSp zM;~kLQJ~*i$9=CUz1xY{HVRiGTq;%^aDvalsPZ4WGG@LT5YZ8tIKYgj@`@@GyPXlG z@!Cg?!ITHUsra95?<_WDx-6l_cO=RqCQVA(WcdTn~Jo=SFA7QkJJPl7zk7hW}ZBL75 z^GIjABd@(moQlws!=*e*Rj@D<1B*L?%loM`o3d%SmVsYdSd=cXsV*rx28WO?X!{SD z1GC8c@rYYigN*&2sPOppu0J%zm+1OPP6#+5GrK-*o7jr?{1T7S1P&QK0X{@-4%c^B z-7!9JvZa4%J5fn5v5F4)ondJUNo(?HjW`avGqa5!3~4iyOCO+fDYb%BV6p=hjmZAQRWB)$1)Bd+1LCV%t(b>+<*1_rTU=XZi zuDB?N%oB^c5K@<13?4AtkkrJC-zF~vA|KyC-sXpwCMQ6nn6Ode_j6bmVCEGhbzrQ` z%W(wn*i9F60}#i`^k%x7<0a?e#*@zX+vnql9y}FcSKKx{yb}Sj0f7Dw$XGBC=# zDbY-ID4-1HLuifVN%5>0-1E}Tn#u_kxT+_stj%c{`em4sXAq8A{Rn5i{d-x=D=d&@ zG5H*F3iW0sNFLk+{0`|};wIZshw2xJ=9``N?zsG9i3ZYYL3&+7v2O<}^8D zae6d`LQskEb6`K&wh;l(Q0Qs)AxwaUNTvpCE6KI5g%|Qu< z3yBew%gd8WYMFv27;+?!$*?$pT4gUm>{88-n4qQoAJ_%Ju|zy%whIzh9`Hz3j>-#C zKv~Vtnl#tb%!@EWfNE#^C7>2JL=v1RNrab54g~fDV*l5 zUl!O(0=}J8&&s27J%7>C`vi}<$Rjtw`>FB*C*tVJ6L?~a+AR#?X3YZywD0H3ij(+n zwL$i3pA|ET^t>Zg`0&R$+Tj4OmTiJI59m9mTFKFay+Bleb+c9sTL6c-E5RO!Qn~!f zG&S6?&UXHVrqp#hXJJ8#gX~9^1S!us_VLgs^M=kc8Cpi-lwF!5MIIW0%?;8m<5PKk z0QyTyl7wz1(k{Q3zN(eje^x(Y+6^;y4jG2Cr;sBwWgVW!&C!hHjp@T|OVHH`ZvmI{ zk*~-y*y#@j)w!Hk`|vI}Ml@-teI1dtUymPPe=W)$JSjj9 zAOHYr(Eqe3>HjYlB?I%{%Q9I(+7?kBnWvV?_|>h2uOG0wxyeF5FY3!K*nZK>V4C__K*i|Prk?OcRNuj35vES7PHE8yCI9+Pp)@s`W<R$R{bM)X{6$SmR2GAr5xk&tL7<+xH%qoNq1bOmBy`RTkwuaKi5Ym{c50!QzvZ%l8 z0BPf6*jxAb2V9SgQ5=d`<7a`s3!teUXw2$z z9nHKSL48=$kRY|>FPl(#|M?mr1d?!`t3?5v+r;@x*J!Tpea)7|!tE+tE{CO`To0dm zp<~IuBv90|^fA~T56|0{{sYt>Ac!p}Quag>W4*$qLEo~*2;;(Fj(0x;(!)t^!CE*! zl9y2@oJ`TqRA%R69Uu{o#g&8i($0U%YNwwBSm@vhp6$}J1r?YsZaH5dS8#Nz;1S)2YT*%Z7%xhv*R_&HR?QKX&yGo* z6OBolU7(dsD3cHT!SG<<4j~a9Nho*6>IrPnE^gz z9-v?W8bD=SUb(wr!GsP6f|1~m?2+Jbh{=3pg@E8bzQww(hPL0@?7Nt-0}q+gBZk07-zQlP(!jWrJ<2r@OFwOfwxFp4r=q6w2jC`^J` z9p99T1&)|>Y4A6Yq=k`1q2q_qM}4XcaP(0Sf-nvuaaX@QwyzkgWGz#z=e^s-D%tr{ z`W1;&_@eUlnsOg?c30X7s(zrUY_4>g3|`2iHkQtc{=Piy*KMF*^GYcx=VpU@n{_q?OQP?hrWz-TvkDf>;7cR5yU0GjR^S11CmH z*Rk~iYC6A3#0nFM$S9z@kF#*86jPhz?dxDbn%gN2U=z*onT%jWLoYNpE|N!qbVG!0 z5S@{B)c22RRq&J2cmFf3^??6rTIv4VE#RNiDq?PB{7;sq3gL>hit;^zYd-P|U_dXh zPaH)okXjO4EYAqrte;^x+!#rapoGFGZlooOyHJdX{yc%z`n;#Om_iz9abcuL8paf3Z&kmj8~ga6 zsIiySz^FHPzrm%f-RJ1qE}8o)GF++K;UXe#>Kz6|srTAYN9LV6hV0lYHeK$~K7|Ud z=`mB+J9ljl{$W)V-LGGgj5#K6z;LHV+(d_y(E354wPS86-d@Tht43L=_Wh#J8jPgI zUfLsUMp{XCSwR7QpqD}-Ke?-pLqM2cqRd8{)OI9_4LijR%taSGLIG~IDTs`%$%5kw z<5!~c*L0{d8ACWXo}u8mri*C%R#{T!m{ca19RO82Iw+V{tc`x5mS1j^RqNm#*x$$5 z3^yxr<{Nt`a7glL(%eGvDTq8>#qHFd{xXjYxCUQds-(~wJ4U2QoR2=@T?8S~GY`Pm z?D*)~JTcqW()j8~S!#rOe=usYicy1@ZY+a|BsZ^<_D}##54NnU&&&T=X*yNa96H_E zpw2|4CtTLq`D|WYlnv4X*rn_!+n;GC*ROMxNMEdnnF`#bba_1m2YZ3sIXo8&roG`( zywHJ(UBpnf$7q7=g|w@1$4#!K7>};vFt*SB5m{qCYF|!v>QYPY2A>g7$xg1PUOw_J zF-(@{tn=A`SVV1!TymIe!Jf=isM%`M!_*NU=$(0%aY|hdXQAXee3pEgzsL1j6L7o# z0a>%(0YFf-N5fvU2lkpDfOc09gh$~9k&66@PPeeG+^B}U?(=d9F@jcBm;RnX`n! zx4w#32#qmw!I5FLTT#ssxK-KkhBe_`O?T%4Ys>s3+Neg#^$SLL%@lVzdT9{)_2o72 zPqyr8Gf!dtGk*U&eEv6vuRMJi0f_JMDF0k?QeeOL(oh;8!AJx0dW|Eq=g;LuF2O$QV|E-^O1ln1LU!ZSV|)hO3!BRlqS@ov zBdsZ#rAvzf)YuC$hb^c{F3;5XQq>q~>rkMaOef==;oXL=+x52e<<5ooGMl@| z%K5ob>X-P1!cP#Z>i8WPQtC^RSzelSY7U#4Vf1?nq*d`#Zz6^FC9LjneVWce2lUIL z(nJ#8|PD(BbtZ&F7tKni2T6k&Pb+uTZVao(WUfR6N(m^_1fYG&JWh; zAQf*vC{)bjMYD9C6MLS`a{KaEhm@3N2QY=G(v#LP{*+bTWfBUaQqxE+#}FD8vGWrp zWI?QD*K~C(E^nP}QQe%axQo{(QL5mT$CQFopvOmY?z;sqa&F;n9XD9##j>B#eb7Vx z6mA(^AY#{#RD3xif$+Khwt3!=(f4+4pc8yXkdY;IX;U-&>3tPDj(0+}Wd=u>Nn$@F zN%!P=X2TN8Mme1f(1bUFJ+Inx>7n~%D?iT35Gi}3t@?yZ1WHiqdJxmMnv(q3=S}CB z=XRQ`ASWg1N&Ve%;TFbliGl(=m;#n@GuIEHHOLQ9Nbmr6qQJB!izXMo1hmdzbcJx_ z8-7u099(~^{qUzLkW}^bZY1Yb>!UQNGH({lywDHy8?8T!)){0pFqLOV%oecB0*@FW zLc0oc{w#4O;uU$tGUFAe-dU2|w;?rDj?x*h1kMT(hq~xewU4}j2&;KusbJgdjya|d zTWbJZ!A(o^rch9b0|Y)-QHGss?^&tGH}=u+#K-5FG0lZ`bC>>xYO^+Y-u-bOFgd2r z$pog0wqIH5ZfM+IRY{I^z&y0PFaj+_!2N@PR~%O3oZR4fe)WDe&U3H&C{Fu*J25PD zv%G77mcvn0V-ydhW}3>09&tLg9h-ciK!+a%WEqJj&zldWcHfGR8owaoM}3c9neR1* z8<~l2Ns)M$j#R^yKhqlSoz@^H8w9B&;a9>$#R0!eUa7zgVzTsLa*41vXNdXGE36yH ziZ(X9WI*`3AUCv>f=cNfa8AK*`<#(Rc3DUG>$b3HwODaa+S#4&U-k{PT$1Zl%s+Vp zrGb=|T1SbJj&YC!PVNFIF;0EHxEdnK&)u?WR@4No}vs9q^Z+G zF07m$IU}ZZe66sl%r4MFckv!vkx_0d?)GC5a@j62Ifa``VBD<{ez68%9d9;uN2vqu z-cU|$I@VyIy*oE`CKpLSRXljBdG?80+-pf#1U=u{)vaf#lr9{kQQs%c?}cGXI5}ta z`$oVuH>OHwDB8p=XX9;#jJp4`Sog4UWwGqEd2SET4R6X3IT=lkK5+Oy+-Q1oV3 z%#uE>5SC|4`NfvEWvarEr~tLB-5^K%k6fCi_hUAk6_9N}FmG5FFwF7QyG|E#@NRPY zn_xX7wnxRb>s%EFZ0n)Xd4F}NzSy(|T4nc#_!Bm;Ato&^u1&9Xn1|gR;9{z@4|w8K zDW0_}%%ifd^@M8gdWw-cL|N=s8}}40_Z%Ac>+;Ar8^>Q6 zRDv(7qFTse)ObpY%13|x{-sI;^9lDCD7Hrcc;5e$TF*lKPw0u`{}esR={qp>MH9<+r6lX^|KLt) zt1M9L8lCz`OCNo30izeFjDfUJx!}d*%>cHoXreR)W{WZqFwU_i$w#Ag{Tx!Ca2{Ya zu5n@vKOn8Rs{#(HAA7E1w-^yFm+4YUH))qr($`b3Ls2c?3uT#wYG;RXuLH>c*nQ6| zfLrx4n*6bjB;x&tTP5CK>_K*P{lEg-Z8NkRZDT{%+4pkj`bXMFc5oB3<4^Z5|6Koj z*6^1K^p||`mpJiXWQYHvB1oHC8!Nfn8UHV|Vf`PpK@iHA;^QEI3$B6WNj(Y#Fr84l! zF#M^wH#$2OGgkLpf{wfLjDnw>r3Hpr^llT##qmbu%hfd|a8lB>P=;ktj0^8w#%sib z*3~9XZw*-)8gE;@P43$CV(zAlxjUEkjs0>vb{Llr?bpg>7^n6CaNf+*)Dcs1pe(WI z*Y@v|3++PaG&21W#SGlTzt9)BvV?7ekGL6R#=yIW;oNpkoGgfFXwDuJR>ns19d+Y! zOYca%kjP^Y`3G)C5c`3Dw4(d|<>jR>nk6QGID*N4AMTm&BeZAQ_XH?$a&D*<0=#j?CTP-{)umSa;b`=m*Yg0X`5w zj21X2c|oPdZuI2(Vj*aQh&k~DhjCJ&q3XY?f`WpGbhyb3IbwcI8zSbMJ{&S)-Uk3H zi!gz{ZG;6CLH|6EQjlWCC=_GDFf4fJM(W}kH_{piigM}Mf(;Bm7Y>n?86P7&4IZ}K ziCom_BHxcfGc|VF!$t}WALq?7tkwB-z|Dji36|bPy^jJ>3)vVSQ8&(nrU;k0;>T2xjFPM2w1~o z5&>|O!z4~)cwQ2ZWJYm$VbZiZc0{AFx&)!w&Dz(*Tdi*IEr3M|<^fIRsgl>3@zqnr zfiQg>U6#@GxJa29Ytr15Q|L&8rmYu{Wv$oPeUF>MK?=O0(yU2>^<+U>h*7TZIQIiT zcMF3hvv5ykdbpA6CufCm^HN?(NmCV0f|cbuFZo({H)M-JCZAz)5ak-|M6p7Bi>&Fo z%vAy8bSlTn+YyWZ$;F!2dq)6}n?yg>n&ywAEVwCD!9Lw$#F!tyv}V)eYig!739;5U zG9h;cK>X)^k97p#UMb$O(n401@o{iex4psUve3=6Aw>na-sc3o*vk)qLGliffZ**L zf~4Mu2k>4g+)>a{zC!2jF4ppH&xK4UX5{A@4(jej1khnyh5r1tK6t4 zTH_!gi-NWC)kq)88CXO1oG7%ZiAB1MOeiCot7q3mV zwh_a3^)fqjpFd3>o9Z0}r8J$f%yx6G)bDB>W?Ah(IgyP@`;_)yc&m2XTb8S%Hirgw z}!}rvJI^_Um)=f!VuF$CvRvu==w~SnIEJ#{8 zNKLyaqSx@`Od%s@wRrjD;EWCYnWU3TSX!Po~$ zVLn1zA@rM<{PcpKESxvKHItdY2;Msv@?x_`+Y1n~BvcCmkI*cGNRi7V zA8>}UK|uTJhaZ=?BM$hPR{~C<6TpT*TTqjWd@NKHMj}ie511m8&vB9=AUJhxcat`H z`|X?o;G)MCon*Ww)CmN<5*mn3_ziHK29_Q82t2;l&SQMaIo^z^5xAVyxG$-e1O9dq zX=eACR%2jIC*RT%!dn@zQev@^6&XOLtKL04gOew>cO&hKG2@e4B^m1jd~y!e$$JLyo1b)OHI zofTWUz5UDA!XTHJyZE%pTgtt8afCf*>nWNu{WZj@7Lp!k5Ma`MDkx*o>BE;T;Z5tR z+@N0Ud^)lH;4FAsBIaw?kAdf9&R#NJ7RTsU@CT+;$uqH6o*pv`saz;MZYX^pCrH1)MVpDK4~EP?qRrKxnu7nA=q+V#WBe~7zO~}6 zB9=1pH|@GnqOm_ZW*lhJL9LN_r?RCI8Ik5qpK?FLeHOMar^1VO#3OkL#ip?W%Mv9ZNJNhk?8OrYhSO$mTxVm9$NJk83i4@jcG0D?`>8T8^qs z#k#|#PgumNoSv9#YV`p!sZx}I)bJ#_>OI2*r4Hh#>|J@3I|@`=g@JtA19@3n$mQ<` zZ1IuRLz2BT!yd`F;$P$=3j(1qBF6U0*-Vu=oCm5KY%1IPXB-c5@wvT~5Y?AV z(Fn2%=fQR%9|~RCBy>P}W$US-KRnL&c;XrK8PYb(=ng|~QBM4l;JJ@ieS+s(E7ojVaL1F!r;xOnD$%#pHDK;% z*%9)U!RwtRbXE0o{p?>=*k4oZ-pH818&6>ncQn&Mw&oIJIYU%VCT`0wFh~LOTHP|2 zSVtU@=Q+IAfk--{7y%%yI-RVrn8Pi@1tchQxS# z$mv1sE^+S=6WT@1D4gP!Lo2+mRC{`J^cW6V1S0(eehOgSFXXQX%LO7?4ND=&p2z~S zNJF6wnvY4u>z4#hoUU+&2DynAIFDZu-@${6edpVSML+Xg@ytCgpnAbqqslyzByw;h zWw%BL%TCnfBOu>KeY4s$pXh-4ra#c502Jgc@IEQbV0~sKT;(@JLw-TakcbpF7i1-a zWGi|4+4H9)3&z~$M-h*3ve$n$Pi=tt#u9Um$qa9fy%&pH{-_GfFMk#DVq=o3r}Ocw z>TE+-_TXjm5(0<(s?kihjiGwT%q4BZ-GI^bezucnC`w36NHQaz9u&hT{s#IB{B0o! z*%klE`Q!alBl`EHTUh@d!Mm6nyBa(Ery?N6|J+dATHn-I*82SuU@{+E`mAREw0kq9AC@^#usz5AP(Mn`~ttm`oZ?1^A9>f;8*p zrz(HSAEZlfRCp2)pH5{xOmQ*MJv^+oDgwmb&5fXF)%K0RWDZCpozPIPksqc+Z?+i@ zXk$g1sjD^E#rB{7Vm}`5!M@AUD|3Z)p8(=r;5Vbhf>x9@qJB~gDY(3*Pht&4@Lvp{ z({C|Z`Erflzu?K&rMMR%Cn>Og%jx4-?IdnJ;u{Lb9%&MO3!7BK+H3f&bzj(XMM`{< z7m)!3riw$IIS*+8&6KDBs?}__>kl>S4>v2Y*^h}!U*#Mci0_UD)>Uad!LrX!IV@I2 z%=I+m*1*vcnD3JBqf<|E+{$>6QDZ<6pWA*FlHYFoWD7S&z^JDx(lI;teyC$u$aHed zPpCw>6oSU61nx^7}rG*Xf- z+g)Ifp_DVPUO%!_EN~UKY^KVGVU0_)Oj0?`iG}oFcK!-$yID)km5Jve+h2}0w-lT; z_lIQw|3`s|`v2Hp{`Qn)<-Zw*b)wVaHJ~@3a74MXlmI?uk6FINBH(w^TiL0VKt~d6VfK0ZpF)Ao)B8?S+3(Mf z)=Pk!!B|iig2kY0bOVN|1AxdtPFM^xp^-enl|Cf51Xm(X5g6vfx)=ta%QfzpQnwf8 z+ZcM2fLKu&sRMMuTz!V&1NO*sQtrr8CvICkC`S3Ly(f?s@SSXLfQs?O}QrtcpB)9_tB)CHanDXC)jS#^RF&sz_ zYV-_#qs&e#htU&VB&1sLTtwP2ViYdBWrlY0<6kvYsH2n>I`J`$q&fqWq&oeTq%-z0 zwfoLUwtHPMY|>r9t|(?jO{gpJJi?5oc}k&@K3jcc*| zFq^+Of#k84@eH)q8ssYXOIWK|Zr8>a8AZFX3QQK_qH3FsW4Vx($b{4oBxs2oE+IO#5c>)ThMv_|?)`-M zT9dR{mu9Ob(9lez=n?Cy3oRi*S3cu?hg%HR37C(n*6xtu%wEY&ndcV1pPrxNvqbL| z{TP^36Xjoh5q5EkFN9G9O0CPMT0nty_B3n%HLJ_T4VnBnw}Ns%catCJAS1sdHzsHr zF*K4CDqRk*y|abb9koVxrZIy0%UyI+1#TO9{bXMTjscEGwJyKb9-~{)+LdlU=VzPL z^RYe`O+1uY$)@!S;vMBOy$I45_f1DRWpt@_^t_D*OKt?o5XCU?mtzH&O`V8f9q4r# zf1$F0;?EE8PpH4P&8kp0r0qZTzes=_riUcMI(fNUKDmw?p4%?kj&J4e?v;&8rq!nG%SYzR&h6LD%g1s2Z{9n6KgoMM zBPP#x<6N$9gbqJa*TU1r}kU@ekccOMR*Ys3s&np@$R z7t#)Oz^=hwHK~Wt)8?Jan@6bEHi@olWQi-}B@gHhNu(>=9*>(X`YqGFj~9NFr!@8` zn6wu-9_njYpEfA3#hxMQGd|MDXt0mK9HE!3gSKgXq4?Fg3S<>sO zkd*`b4F|=0h@Y2j6!pydZ!1ZMC(KQ?x_B;3?zz-0ETSoL3;X7$6a#E_QY0oUS$KBT zBh?tY>8)O)j)#HBKF!CZ3oa>EPl19!t2e88IP-PKkfY9@JY87VyhZ%Gmn3KWjmctS zNzWdR7_-gVx`TF22TwY)Pc);&br;=;mb>SGJlLN|G&CHWWWTX#5app`LM96`2OUgA zg%UWL*bPmO!t%|F)++qyPv@?G3eaQiR~?JTZ;=~vla zNqRyF>uhx92c*A+e+vp4EQtrt?(qj>%tfY1*G9}9?^Pv6-t`j8*m$YzJHB=epxp_> zY_evILZ5z8PY%yga0k&*c&YE{``3bdDeob8N$+0*?#3On-O~WYV!pNvxZY_8tFvQv zOpIfz{ks0PTG7Cq{J1n{x#J1GJp_aNITVZRLp}cmfvfmh-uB4!*@YdMH?VRkvXACA z)klZo6Rd05X112yx*$V%08-%Se-?HqGW0t?=+JW=2h^wVPBZIh(1qvcz)qjR@y#u= zPwY?h*TS?rvf!VCl$S}6*qW>AG6u@ka7h`1Bq%%x<Lv080Z>|VN-k7@i2pE*&%XyR+Dbk zH^rwHyt57c=w{WxSB{oIS5=ehhaF5!NKT^pv9x?~FllSgKT3QwoXO~GoE;5U>b|79 z6FU^KJdWFsS6a+(nwHl}5{ac$y&uo`T7iuTE?=RW`kfhmJTaNmjb_)~qA(4XXs*~_ zTrr`C2KK|76(}#;YA|XsRK5$<6i=*XR0h#9SazX7Le?`%jFwl1NGfk4r^PF8@F?qz zKhrmh?~aQzIOE~uu{B>&3JZP8mOQkpi@TBT{csgafzB7=p*nA-A@Nya2PU(yjUhUx-OP38c+QCREz%qZ2 zYmzb1I5vVJ57p%3*ae(GK$DYc_j8y7NotH?hL%1dw$G>(E$1ilCU1eHDXGqr z!6(jxT7t4dpa&iRgaI_6ZVITbXDJ(3&LUAYm;^_e8>=R@0Rc?Ougy=dOaatzpJQG3 zc&6MCzH+eB((U62HLPEtM20-?z||OTKe|q{y0*G8!(COi&q-^J;_UXb{^6+IS9ST+ zK|7U%M5Xrufq$21*mAV}1g=kY{)*XQHvHB(Ez_v2+YdtgL=_firQQ#VXb6JllEK{( z78#AYr+y)Mu(VS5ly{LIE*x*tLu+? zLd%Gs*=RLKv4O2l=a@Iki8{*#hemErFg(l+FMMXHv=%NhHw(A?hci2JTsXc9_rG~| z6#2MY8vP_mu!hOeLAc!uBRJC)i@{%;B*?mDuqZYjlj0BOM2}s5q{cpTN40$1FRf^U za7&*piVMFmL9R(#dw*)%V{3!CwS@3A-BhfYqRz=;fkLiHo**r$jAC*^r4oc}FZme5 zr(>ir%2(=uMSZ z8(tQ6fBpGayyilcY*PgT0KkO(e~j0Ev*N#5j<=Gv4{eHkRT%*+a2BGOxuhjk zQHa1Uxc^D?UILpKxU*TNPF174g(SvXR_b?}&-JPcXcC6r>yIzG&)}9$1uLzDex{x7 z&CTv@(-)4fuh|DxfSNs3D5AEUeh#nk11ePA#@CSHR#KZkSlnj*q$E6CXRASPpEdG! zjon-ya@)Gq%FGkhXUHM@7<;pi!ak}vm&=&2F{;bAouZv%}oU;>`p8)u$ zB;qKBdO}-Ui{z3RV{{W&xwZ!Q9SM$(d?%j==Xp3Zv)V#A7%*_$Ui-cIAOe=BSA@14 z<|Vu@_|>eIoN8k;ego?BAZqDX&Es|lnm~d$5#=3T{e6AOJp~do30&Qh+N z4P||%8dDk_MLaHLT1nky^9xZCd-lHKX&U8u>#ePm;u)zhs5b?Q8wz@*7FJXsWpB3D6K#eULjB>Zy;9|Yq!Qx}zL-SB8P(!1dlRZI`WuehehS>Y&@CZ#@Pk!2HRJJUWCAEm|EF%Iw@aEkZ_0`ivr z^S62f2#iz*qVu#xFB}vJQalddo&U*dRU|@~^?kUzT8I#mRS$03 z_F8JMedO|N7Ey`wDOiNz8*+D=1wMGa(A(E6n2L=uL(8f=UPjdQ+w>~<_dn!rafc$a zpg;Kw-v1?8_OGY){`?7Gq3@#a_NM~#|2xt5uYeul|F`)sg82W$_y77z;(uo@Xlre) zZ(}5DU}0?d&*KtYPqwSPprD{YptLTaE-s+3BB1>TONghRTU$e2$fuuO2}==(BA|va zxm80ALSI=!T~1$n2?bMKPL_3I!9E5K;wI__;wC;hJ(33E1z>WTG8Xa8Cg?;!sg}YH z7C*!)(z5*%*>=;cp&dCU5?nOj9cM?p(L{f4XaB>_E)$&*YDywk;w*GLIs; zW=myDlQLyo6jey<)9*E_~LalK9r`gb`H6&NB^GZ+XF8cOIscjjv zi5%AKm@eTX-EXl38_m0L+qeu#zf=85FDHQv)VKm!o!oU=y-9R}pk1L3y`vsr zhp`v!-)b3|q&)f2Av(U_h3DoFh@!>yBIx*hDXJgo!fg8BrROz<5ceaIjUh&zN7Qfq zIfijdvZ8SfW;};v-=CmU<8YOFi#4>r#yE;Q6zky9zV{K24Dj@a@&jGdI7Dh(qO7dJ zQ^99`Vhp@49;70nkIezi5Q!IItR3Mb)wA@WG_V>s^+tb`Df9@)8_%u5G?2PC#@^%n z6@bIB(kc=DR5Eb|%wT$vj3*EJU?+4%?1dNDJ?4M2$ zr)F(fu)?>H2OS7_`#T(yY9xQN7(Hxlt00ZmHP-9-bzoiKWr` z*>U@^Q?dOb>^bA-QYX;kwhkyMDv*vgMfTcCx<+z&X5us1+DX|5g?u*e2Vb z7Vx2ryicD9rUZRJPv;vo9w@~-bA%+tJ8qOUjzB7!j&10m)h|d{!H{o&NQRuHBp(?n z$q+1>mSy0eL9&Md5=-eOB@6`Xc~61+bNV6np?9{dY*Za&ky7JMosPG34+5pqUakLB zxoIB?vZriMk`nMW0!>$We{?m?OM95@P8wx*p!IFnRpMUTD^}Sj_xG3IF;Y9`&!btq z`_tIxImbzpL`YT#@en znIjPd?H{sp`PBXX4a;LB@_b=JjC*-DLv0IB9;xf<-3p{DwJS1)T-JcjRp4ReI?8Gp zGk5%KLC7Hev>bEAcyBgx7sk;+QgIti zmHTN!pYhc zc~4wlgtSV84k z-QKV*B7>jW+A@tGabj1JL?tSNNI5iL3Wwy9KQuE|<}e9v*?Zl66rQstHbESg4+ljp z!6b5k69W?SXY2_KgOU||$UhJf7SY3?mYPlOHWf@#{Jm@N&u7H_hhgtI?EEzV;l{Y9 zOvuhP);CydscXWC8+X6T;}Is%iKads9b2_6H7}X@_5$AQPRN1@`Q{~0MmA|?vG-4| zHN-%zWYLT8^@ENv-*%IpccWX$SdmlxyO}Yk8Ozt5kknQ$5=tGzl^WX_nQ|GOqmXP8 z^G6veO_EP1bcmR|O!C!vG)qpCGZa|)WG5&!a-9-WDF|^Iv7KKahY;kSYm#r#8YbGptbUCkHo=95FbFmupQ))LI#Tt{;7okxl|v z9^@%fN@_U4GOwLaDP59@`m9JcaUeAY=%w85oDXkP498oqe zRIOGNKFqCNx^Gf1GVp^5FgUDK{O#J^L%(9pd`+lnVcaygD6u6 z^AMk^eYf#OMwPiGw*A6g|JC@<(clzRCP|f}qj}c#L)K0xY2A`{XZejb8P~W&Mll+3&beeSnvVOmiSxLfmP*AZMg?Ra8o?XIzBiP!?Ww>UOV zn>&`P1u0~KJPtk5h~!e?8dF)@l8Hitm0}vAZ91@@rpQJgl-u7AGJQwIRPDkX2AtZp zfLCT~L0qjJ*k&tjvxyqXWj%8Pv)sEJaM1XFn=LS(5v$14FSIJk#h!PrKZR_yn%(>g zaZ)^N5o6;si$&6Jdoo>#UcIkq;nXyzu&f}QC7* zm<#6fOo40s^tLeT!g6~Z8AruZy7p8_p5-pD6zGzDVpOQ8NaoiP=r;8LOUFKE;1XX9 zZXR5-K=j`L$jFOse2*L0P*yP{PGuu@T$gqb7D}^%u;#o zh*UGcxPp`2cVM`}lfWu7ezg;SG$wtP>Smp@bb(F1Y*WM@sK}B%vYfuW+HA6o$`z>s zL%?ij;clPJo7II_wuVR_wnOKIz)JI)u#rjYkJWHJVG zCP)p`?ZO0TA8y$v&UU?<9;_zCweayv7xz7oY?2K&#G^t-NOysC(5buH2<+bREdXII zKat$#yUBlXyGiDwdp?g3fRS8Uw`pVcB*oz1ML@0`v`*{jhE>fEH+`B+UbXI3E9CwU z%HA=$(qQWr?oP+HZQC8&wr#89WXHB`bZpzUZFk&p@}&>H_dUG#{&>dTW9&b>>Zw&# zYpyxxl12459+z{+L;he!J;cW5j4V7sas}HYeL|J|!J^=ji}MO&Zu^T1&B74V8EunR z-g)+_mO0F`gB+#}>oVq@CboBUg?BY8Ty{4OXy0`5`!y}aqbK5cx;mNPr^3J86)0Io zPtgu~vy;K~8E7x*0i}dc1lN+rm5H~lFl2AB^6P_XZ>!Q`xRfx()L_ecCE~%}IY@R> znE5 zlsN~1-@vM`!?g;zQ4;d3CWA6vU`ubIQQV5x5lHp!c`DC;yvqT)q9-36Kl*1SCjiHP zh@L*kAT9SIS)M&0uNz~FK?#STC%kl)R63Zz|2QpwORuH% z?f#k!1S(m|B7J6?hMJAqXaGMrzARKNNCjkF@H{m>xiC_6q}^iu?|k+vBx_%Hz%V** z#C*jFw}`JrF)ppbHO*qhT`tepnT|STem`X6@qUH=l)4bRv)q}x<`4yV-%Fg7i26X= zLz}sl5dDn8)0Z1Ev5>?jvJxo-2n#Z zL>$mzL9$~~kVmK1DC-4vYr-H5Ay(amuSl`~E?S=}$RwnEC8Wd94REqShGdot4h1%c zu#BcFv|wT_?GaU%M7?rgDWj9NgoAg+48qv&;1d1$ZmN{|OQ;fcRhiZ^85e^&L`zC$ zLCY_x&R*~n6<=<+mYAkPNWWDvnB;tA!{8jNow~}fzHZQq!rVj`Gt}w}0Eja)FefA9 zmpjvuHN6+=ZKK+t5v0F;we{gM+vbt_X3Jo#hj}^Kov7R|hb8nfBM`_w$X?L@P@nD#&51i@(WKZ&VmSE*P2hE5$(aoqW($^c{_n!~40*S~As2%A zmzjjEDAvMGLDK}af}+!=?mh$y9=>O5^h_QlJi^kig9sLf5Aq$6l$;!V);C|AjXH^D zf5Z_lY7>U_^1*O}$FI-qtWD;11P9o*O{DWJ;ow+ zbxvj+6MgF4Ek>|BW`12``4gx{)A{| z<;|HNl@vf_(B4JBe~fqon$p;hm>Jyr z0(nOtlVDFk>rdR)9=x8pE{8Zi?K?go^uEC$*JD)Ec)r{GW2E-3rPCvh+B>PCe7JZaV%&A3cLmeSUpsoISh`m>gMlcvxY z@8yq6$R2`9BxN!`#eizH`}G=H^IktWxY=ZAIQkR0w1eiS>ohm&EaGy{%YI1f#JdDb zt|1&c(mqM{GFQ0J$McLt^_}g*LOv@Im)QKUTM>}Zz%l3x~>I+!hXp`%hVrTIV z4=z2mEFx9-11!sdCkb@jx6PYhA93ilM;h|>`%p)G^WS2se@%>-mTPD=A0{<15?k#^ z&=yRPz?_%zI^4|6o@a6)ThEu$5UAK@vSHmM;LWtZv^~cEK2R#%KE1#85&$~s-OJ|k-pjl`_kXuN}bx!J}jpdbMP2~k0!x9BQ zfD#4w3HmYP*8NIBFa5ck54-U1PMF*2S+Q{g&}xM4bRKa=L`FId68(Z7gTxA#1xp{X zW(3Dke4g3|Aq@0A1NglU;4MYq)c2@pxx$PHxyO;Do&b+)Qv2wq5QqfGUZv373~{Yu z_uF`XmZZ~NA*tZ!l63#Cpbo`58eRO=ffDi%_@>`TpNMS_5B%Yhfe6jCO_Z!SM?rn~JuJ$ib8O%KI( z1NegN7?rrH70~ELb;Og{4An6-;U`}==ibCr7-NuN70B!jp}ai_a_eS&;a_}~Ca~xD zNHdh}!7YA+nxPB}d!M%(DKLY)k z>J0ac8062>lI(N3|MQ9YM-B8>jQfA#*MIP{f1GNO&tGl-ZUpf^;PfXlt>Oa8Dgqk1 zpEuthrHqbQn3^Pr6Ejc`D%O{PKkj5 z48QnDW?V>`{AFWcxV!%gPy}@Z^f)v%KI!LBz`zAxXbHSN|9Hpe^FKrTXK4Npm*!uF z#{d7j<^36?h?Ty}-?=oA$}0*;^6=bj5K_?jDZYfXAp-Q{#Qi8}>tFcg{F)P#pIrjK z21%Ig8u^W7KYn}O^;e;&sUKA>dnF(HH3DPCD1S5UW&0!B(W7i+N>{h*8+)WE#NEz1 zE_S~gDw9L%?IHjO2vcO=ZBr^Qqj7W)yMex2uZ!3Oa*!LSh)-P4o~D5`vRX1I}6(tsTYO zuJuI40^_q9KI=v0bUsm={`R9{>IUPF3UzP&Hua9wnQ9lDf*dgY``@o9TP4lWy+;CV zi>l^F9Pn`rM@#11RilL5i7H=j0<(2v69UOHM}Hn1*v=R?lCx>s8r+rgHEEmAGxbfg z&Lg`m+jqoKuU1un>WRB2MA*7X_gQT9RNIhfx~7vZ;g;{Q2RUI2bVc>C=k1YaN9p_G zkU2vWNlTk9r(8r$d_VXpD<+x5yuMK5>({L}$Azlxvsl4N#YC4}!5A$g3agGo#7;83 z<#PMP?~ht){pJ3r!5e>Th(|s71d6n>s=0_%W5FH|E_jF~C$0m=3F_&{#onY87Ra07 zIrD8%8c4nJQW>4fGjFCXwY8}D^Vk{Cw^ScbSXb-3R6RQ57Ap=apcQTD#!WDH(qC=P zP%_iS715oc3_`BkPGMK$-@KGI%x?%T z=W3$Bkbpc(pjLDFBWoI=7cT$18i4DKW$`I!WHO)Q4rYX`0pCAMi4MZ=-fD-hqXd0& zyIkNLs@Y6?ycMqNFBkN0ZiC3*KTB%XpEdLU9FuteE++pj8vW~j9;s}ph-8ZF&DsQ` z-vbYT1d3d>Sk94O`-#F&;ui^$3u1mf+u9AP(no5-7V2)f&lJZIcQTvL`^(zp7ni+Y_}_ZOA#*6pK}`G^ z2lp8v$pYYd0lYe}vFuX<5cIg0H znDo6xwAZv#7XCj(;7QA%q_Pe-j1idHi`2FB^_6xhb@Z<-NObzn2rKR3`;$51&ZNBj z2ht5Ii9sjYi)8De;3IoWys$?p+>9ky z7TO8$P4rC>M^j3rsfv;oki1qCMu!22<*H0lwQ>y1?9-W2I2Sm`a*5-oL8Zrs)o~Ot z6Ws*TOXD(MH`UInzvwc4msxFHeinOVpXX*OI$XvOuI>Zbm$_Bk22HKVlA8eBKrIbw zY*cDlm-hsQus3Ib=AY+>NhcKwyHN8e85B6w`d-*HxrECys$8?~FO;6wYZO7Gsbfi@ zkm6~F<*x2L7b81bDe#Sb8(rFTf965K_gXk;H~G22v@fE{2!x59ktBT=ts^%y{_dAb zm7=m**#0x3ijS=#u*eCEVizY&ktwJaO_`gcbQ;97hS(#X+5cGxt4W3!8(6zjVdQ{u zH3g+Efb6Q^3xCoTvTY-;)+xz(pErc)G{KHAbcm~Jug7s-k~{pCTyk49?cSZ}d_iA{ zi4cod8qvmpyo;Qvd~kC{M>HHTbJlF)OavxN-AsK^v}j_qDnX{oE#h;^HArW|^cWffB4SkSDU~P94tg2pFAp{dvKhKvEQl=! zkxs$3kaR?o)P@?RS|y*A3$}g@IA>gQOWqWA$6t0sD;0<~`ZB!_%{2Pxbl~7s{pL%p z$eikw&H*lob@=$Le$pn$ee9_$9k@Bw)Za@FWYhj)q0kDSkOW7}7<;iu)UPXEChGy_7yT`!)urskHGJQRnDTl4BT7 z7_E%dkd`f4N0}v50KT)#3-+Z?B1eqWrX@ro6#5oV^nx({{q!%G_p08Jo z??-k2c;M^SdEDN4%GKqBi;ixX)tg=o`F2OMZ7$h_)KFi%L*y31%;0Jc#yk?v?2a&{ z?RpS$N&9+(2t*VPe@Xbr^cbym}j2i_-(PARoK!X;Ry8tUZ)!6kscO;Tr(3TAI0`Gi6*b9kU(aNJCvSw zx$R3;+#+QdzgzHATPSmY+L30gt6MTTTRRa};dv}U1#{6f4Hv99jiug!<<07Xtk`Pg zV18H$lvXpmjjfpQ3R3_hpFS+nSr)-dd%#XH5Xf@%AvA0?@e~Mn7p5~(s}+--LHDoL zxk6i9o|}Qj>EC1+Fv~^1mgEhtu?iSIs3Antm5;qSx^5CMf9Id?KdD{2)DH%`_6UJc z)22^-2V>ZeL6m7_8w;>T;j``G>h+S05hZ`vZ;0efQbZI$d8(TL4x!#dJ~>7k6z_p0 zb56(Vo57RcLhp0|+Zmn|!Q5<7{&9D8*)F&$tLv??mk_CqBi&Rpv9_}A1Qy9<8tT=_ zxmC5y4b}ByCrCBr;}UPn&k*?IFUll7UqjZ3Pjw0?<+k?sli|~FLEqZg z$=E^a)2{gM$Aq-fA7Nt9D`HR_5I;cxXgSG#u~HfGlcjlt^(tSPTuhP$7`mPWqc{^1 z%f?G* z%k5dmWhYoQ7+woJe=mRljWVW02)&OMGpc3UZ?D}wOO@`*B0x2tE5lB2Jk%adsQtJ* z0E$J7-9GL}kxPoxK8;4lVb|E3r*D#ktjIO%P(Ns6xIN8TFY3q*7g;2`q8BKRs~|(p zjcj6)Q6|H%tQ-o{>E*pk@0C5qQBU5NipaPyp?pkT+Lz2;MI(XJu{G|Ti`x9Ql{qoN z14Jn*3OibO&p#C5YlEE2XXj#SN_XHOIbb@L#HFQ$QQ;z z_YkA=@y$VHOKucIvP_1VwV@UO_&1=Y2{;I`$q{yF!tDSykaHXf(*qyqdTG=!37^!A z$wK)zk_Y5#jLuM_avqgSBmHupxx!*lO5Wos%BpUgK*y zi>K!N=CJ40tFNQT@4wQp6{ZT(W`uL+uY> zk?(oE%?q%gPIt^0$9i7+f5(Bdkr&vfYbf;RLhiz+Q$$)OEz_W-5+!lhMX?dpLbpKA zs?7w@n(NG}(bW`W#3^TTDa9T;-P&6=sYM?azF%FAe213DO{WowPG0r>8kyuo!KcKW z-(I!Tt5CEN0uqvWVp=B{Pro_lfFhNIS4gKJZQ9fqopd zPQX3Y-dWEuZLNV36#VgN5ln}99AEv{G`829u zmAQY%^-%tV$!Pl^{dp;nQBu+AZ_R7v(Bl7anHTifX4!-$w`NwH>&q#Exu~rYy|Cc| zg}729Jfp~+oo?k~)4Ot8lD|M)G2E;7@I8Bd-OPMe+rN0I2Oj%gEz$|-BT+w^C^{*! z04szJhs(eL)*Hq$zhg$eJAZG0`Szic-a=o<)@XbY3b9!^6|?^KB1?sfht+P^XArlGdKPk?x*rhda3 zJ;CjUM4Kk|R2kwCCyx*vSv;oV@R)9nv7-Sjxxn5!X_tm*7_>KDH5I{yT(qu1^G$^P zlCo8D$CFJ?7g`;M7IdUkYj`#g9KK+eoI%rIvcxc~0_#6K- zbU^ceIE?72c*+hJWm7e5LS3hr2Y_}}b zC*eAyW4@Hdy3X;%+tg%|jj7Aq=i{p$jx>^Eb8KK_x|R~myi~z<%6utSvvKeCb7Ls= zDe14Ao&ip#A291oc3a)w0C#O(RcDaPRdD;ER<0d`sQ2kWLC?!SwuU?T7-D3wYAf22 zO53yW=)dR69FIFrJO(!K z;5MooP+T45(^(yccwh%ImkT7ETO}K`p~78_2!h?9poXE;o-@i(o12ADk9$)%K(uF= zn6H+5k+>S3Oi znfSB#{y0qiuX3KI;wm5Vd!sLaIV`VnGaS{LkLtHhcmrBOr>|G{NklY5IeK^~5-JsM z$zEA9hV!YER~gfrd}bDm8ehdP!O6pnOHYr>uXWQdSDR4K-CP@WSd2||<02IwO; z=xc*Av-E)t*5G3`@fcWt?Gj5OB?=%cFE zHIsqHjP(=hjUiV|V&+8?)UDDN!X?oCmO~~#9N_LafZa3tv`2-*mkval2 z9E5vH=e@g8BTf6MPWCXvaeIK0P0V3u992PHQ0DQS3O_fP%PXB8Fc>_BZu(^n^S@BE9TrK^5)^D=?T$&`&^fUN zKCKeBi}b*C75w?t9oI<=<3&h`6D6?{883>{Ky-C}WZDj%7E)NaYRZhNj``U#3LUS~ z5szRr%J0+mRc|utROs)XeAvcFur0Mbu}ldEJv*;kcpV#~sSlBhiFJ7!lUopQV4~>- z{VJ=3_ccv1~B0Qq68t?n8Zi1U0^FZ4@kV+ zHzn!q@w1_5U$o0I)2JpVYE@si1J|=pIyo44LaQlX-De1BeP%}gdH?;lS<(NZxBkmE z9J}^uwgw;caiBzwA_uPo-=mnLGw%_>W|kKk3l;HTX)Xp)4~*t#8yFhg4~5qq%sA;_ zg=}6IzcKkR)y4Go{Qd}R7e<7lZzY_gr#S#y%eZf}oJdfmC(F;zA4{;h?Wb#BJk#h7 z{gjT1ca_^Ctq<2+tv%GNwoe6}%d}QAz#&*uk4dw|1pL#c&me?_#{R)z@x1Q>6w z?S^13E`@8gfs!D1AxefpmyBQt80QovhQi&@F!Qgno`Tz>>uD|KHlpJxQdVhU zifQs>nPKXEKrD>Lt5{Sj78V=pP6`3XuF3vF<1`qdbBld292srlb`o5_`E%;HUYZRh z$CBoXaCDnon{0{o$@T>SBik+T#bK~C5UxX+%_P(H79)Y}oq1dmc}(b>s+cT8;J|r3 zb@s($j@M^J9hj*;T_yv>12d#ehAMGQHYF*!wqfa0>Ny_)f*g@@8=o}(hHY>z@T5w- zYawGw{i;K52r|a(q>*~!Dr4`0{P~$Eb(~~-;UQ(MIfQO!oXlfH@C;{Ir*V>2QK-3H z9u!&U@g0mI_sV=Mewl$O<_FEf^O#Ynrt4))`Xrmn97Kl|D1cGh4B=jS?X?W+pB39?fJ9NvnQVAQesd{)1R|#xc4C9t*>K=)2#!xX8I&BXQrM=gz4f z$(oCAnn~Q(K~~iFuo8IDN%r0%-TkdmQGkSMzx7?c2Sh)aCD+0^r;=t-Q-VOoL;uWc zZ%>cruMkdS9|Wf`wDzKPgGslOMNRYDsICdNFxG>6Ml;)Q!>?|G`*2|QPxHrC40-1< zxKWJq`%W{pD!wS#xL|yLq*hmQ4_`W_=<5M7tam!i~(CM!_oc|b? z%Ibd_nY`Ozr77f}Z`FMn>(%&1*^Pu@J~)}U*`lcHCOCLg|(eK z()rQIN;OlyN3VOVw5`3A&qYA>9#;y97|+rh!aen3K!F;KOx zZ1H@k{l1Eu1WMf_RgmeV2}o6YF1R2yX@y161ZNEd-Py`~74A9yA>@@eJAY-Zvijq2cu>kJx#dV0AYo4MJwXZ6lJi z)?wbf?+i&Xd}dY#ZnQ*Lw1sP^DyBk;@i_+|1#Z!BV=EUZGB`RYs5NL2)og{kY9#fW zE&RNjPVYJwN1d40W**)-tg85gz3Kx+^l3<69eV9%;&{e){-G)UbLU9!jOFnon(st0 z(`EQCN}DrRD5N;DMAJWC-iGrlGG-mhk5`I~tw3j9Z8R6W6^20)5l9nIH z$fNs~ju+2y1=V+ck3<7HW*qSgfOq=L*hUXQ)@n}(9?PC>pOc3Jl)T@W+$G1#$dj&P|SyE>EHeln)~*7C?Hle_Ed z%TA7l>5iNaPU#-sn?^p3Xp6*Gf$g&IqhE0!+NYkpe2$jLbbXHLeFqE*vGBUVNIb=Q zX>1bo;66N;VPHIn*H422qOYbtTMvv!M(-gp@|+Cntds62+9WW!aqwt|O>NgP@(hKq zZ5$6Ck*pK!K{0lc?@2OtQWMb_;`y{F4r&)NdkYV4w08!h=_cCK(FLh3cte1>-ty?I zUk-jlcQFJ8bNiix)!-Te!$G{Kj}a}#PQ3?ii|xE;>6#FVYna?QSvT}#sx-)eAzN*| zwS6DY*h#UciI^34ZH=*|A3LP}f{U@0c+IWS7R;7?IAKccxfO}Gy~6kk&%2wAgy=o4 z>)pG?YkYdNzU-TQeeRa^wjLRN1r*;t?9ml-jTp{k{H`!qW%QaB`4kzkHTswtk-YK9 z{oXC|A>T`d_)fexh4@amQ-%0Wx_!Rrp0)%r-z0qZF2{%hSBgO79%&(T?@FF~FA^_8 z_>)BN!h#u99&Az6a1|0DK90D29ps9g-ek3kkFNnj%64*HkUJP@Z9!d_C|AnYjTc%v zVl%5qwnR^E-NDG|T9RW;bQw(u2TZY_lpR(icDhvXRhI6K+XJX4G@6XI)W%#6#T z0+H~DW=%99?cPM1)9=*a5uP-!7z$3K`r=sN6gP0ai4wjUBdVyry{bk{#6(d&jhe=o zS2N8@V{jab0x};X&&X7V4+s-Tf)8yoRu#h1!xFn$VU<^cYZwGm0G%kW>tghN>d-9m;dp-@+F6e;{6}4T(fhA`m5m#L9NMLZNQ>Gj zxgQGXq|ald6tO%s4h!zwHPVvjTzl14XyjzNqzGoT+orkmS%daX zs~grw$$2=r$Cw&*79~n$L8xr3h{jSx8)Hz56Tmx2>f*s;KkWglc>*_O8af!EsSVUS zmyqv(bP&(I5>6+>j;ydB(J0~F8PwvzHi#^i+^F(|xn#&%Fwbr%9|f4W*=X;NX?{LC zTR_T4lRC>o#%F8Ir5(b(KFIA+{G9Hk1xaSdb1y6qWGI}wexqjX9%l;NN;zRE#1h0i zasi6X!yQ51lKzCm1XRm`34F$|WvJpLd4qaUwuu8)r{|}{iYZIXfv`T*5`|>?A26F+{V4&BiF4cZ$!#Llg`%3+_X&8O9XiD$($k#mc@i#^Mqu3C=zWYK_}xjW4m zOK2ff;n%bWO2~zRFJS;6M1|}kMy1G;8J83405{quJW`|jWbBuQ}r9q?ScwZql`f&f7z*=nzp{3G~`7?qf8+5JwKa4+P^o-rYkKC70a%2 z%e3V&eencPAcQk7Cx5+6<#|3URFZzodmQIQ%JGU*s|=yfRIBmp$npU_&H@{+s7YBY z8(d6dNsK?CkX~`HwOKtLGp%*cD=8%iHs1uk0MW=BH5g&;lEL_43Qw)D%&8PKqR^?E zrqpX^apF)_Sm6cnrg0mkt7MmqN##?vQY;6mX`sOiVyMMbXMU9ERGNYV_?UNHEP8M$ z0tLMb=;^L_I80vEo1K0J866i9#hXS1RUYx1ThINCy3wiv#W2~ChrK8*>?r{{P|jMx zTnbYHv0%l=6?iusWHV7pa*I~q9~+@loN7(s+~XjGhi(;#<>WtpbxDrRvK3HoQrTZ) zW-nJhyHnXXsGEa^F;quL*PO)480eXU9Yn`$;!_Wp3EjeNRg00` z&fp5kTtF?-^-JOU3GVA)@`v)U1`eWj$S}cjn=F15J^E7IzUFsl*V9wx8G76Ba9}v z!F89sQsRTcU0OMDxqVL!hl(rSt{WQ%z(Peko2lm;s7(}B8Ssq>be^MAQUU1W{!u9I1 zMFL^g?YQ#J4JYgt zV5vO{Qq@omQJ;es^eFyA#~gjELakO$Be1Vl6<64h+jKN2%Yx=9VxYjX)i1%#?%USuoFo!Kc|SNfgi1}vLlO)CbpLkgN*a!}%>$5i>G*Ng`ftAwM?a3ywn6%`WYYxU95>Mo4Vk~+wAoz}G-nke!xFQ0vc z^KX@An(e7EDNpo!D*(flX$lb4KRGdX6z#2P14 z`3jOH=|Jgts%9Ler&-(}=}tGX{EFMY6tsdB(v~nd`KsuszFA7qk~4ZEnle(#_=b@9 zM6E5P!xC|^;;&--JWA6|#XkkRrZ{(dWF6CzLC*25Xl~N;(*>?C!*LuG!DS`+3kcZ} zqFre9zB9v4dLN?pmw-j$5Vk^j@`!j<>;cUnbQ|p__EsiQKyoLIxZxhg^n6B=$pdk$ z_ZvIO7(d(Eo~s}HFBh(0v=Ur%WLij$Xy*_)Mx%GxTo^+rvwb7?(_w!CPArmwZhn3z z+*~IHc6EAF79+;ZZ1c|*@(Rlia?hZWbp01W1U+Nc`Y96kNrWhYycg#o3+)gCg7y#JW83D006Z#=$QyiKybxAv#6I-b*^a65f6>*4-fFCj=3&Cw`NC4SKqkIfOXzDn-SLUS8(CK&TSqD!{mD@3XedTLMu5WH2x^h>-7;xk%a&`ggxW*?KS*h8EGK|OU zm)s>e+x^5vYWZ~6=LGK=dOw3vxCr+OA{2oZ?5)ktOaP6)Qg{%@4;6aM#>LLVF(J57 z#?AUd%VWjOR`l2z@-DC?E!PmmD+Kj$4T0KdVTdn|FIxEdoFK-x@``Ikn2qm5<2fqA z2q6I)vm|Mfn9vAz&X(G=PF*0b_+)XMQ zEfiwtOkuN;#FG@M0}_QRIf!DRe_JvLPB|?P6I39BG7$kpzAK0HeE!OpXB4rI zyKvxnD-Rf^psJZ93lhM2Y}Iv;tyAnpgjEs9P$Z05r2gi94k6t;qr@H30R-03tY=_h z&Wd$^8ctxymOP@`#XhC1N(4$m| zCOcFiOwXf zLr+d>Did-QkM4ifHmxy{F&1vRZ|bm?jd_M#NpC42dooB3K|iR?is5vMS6s2WUQ{*) zg=wrOTu>dV4Sx^5^Lx*5&Qv@{Qit52Ckr@1vFPJTw_7e&_A%zAtSfxbqb_yiVNKcu z%}>%dDU{Dxcbuq;;tabCl`wEN0ZX&AL9j4%Vkn}R09SCtKcw9?HZ}wqI&gVn16wsw zMMs-dAS-nHxgR~dR@i?bFjLYbVNkqjsf?-|Dut;TsKcv?YK)sITZ*D6|sP`Ip-nURYA0Pm-$yLew?gBXGs{x(XSV1w{G9LPdz zl48Dfo?<*2xM;>3$oX4*GqoJwn>=++)tGQL5T-!f6pi%mjolhEvJV!)Z46;$U;wRw zmMVNaqm8`VX``BuC!hry73o{{R)Z0ubS0I!H?rgue3h}{6*P9=EEje?6TI6UdD;}; zeM@Cp|Bay;Y{q0C#!uJ`7uD>%d~^0UW_ZQyF5e{4>1TYEN3WrpJl{l7{2uA|c8JLR ziZ*+=NVq+S43g}Ofw{xs&4MM#8N-QvhQQyrNIMj+ULfU!l{|}{_Yn24_0qj~pThbM zyJRcV;3pcUkq|yH%%Kv^v=s4q9)C0JH@AKoo^VNG)nsuXMK$gy7B?$Tp0rl3G=YUZ zyBH<`*jWYA2gGVlVmyZs2#GkiW?X-81ENBZ=yo1Hn{AfQ4=GSvVzMjtkniKyUv3Uv z(cx0|>>buAdh6PbGu54z>h`yvm~qQB=mZw_Yk(>tl-tTU^!D3;bo$H8sdI>au$;J9 zi;em_OiJE15RA}Bhr7>-3^?Ps6MHZ+}%U1;+w~tgK zW3{WChWoG?g^O}4S0XekM2t1l!tXt|`XFWvYROq64bj7O&f#Q|ZiX8$pNKJ@pE{gb z=JPT`S~5|FSozUU%^&$r><28pEGHkAt@oN8L}k+V>P1ZN88A%TJdB^T6rmqy`t@7= z)J>Z7bQ)6$Z**4wA&+G;qft1C_VgN)e1L;6{k#>KCe(2Ty?EM_n+7okt;>S8_fjK} zO>^f7&#-8XSML__1#J$M0M5>!|Dwu*Myb4keZq{1qD6ujmMCs`7*w8DsWPEbFVYK% z1b_^~3{v^=NOdNVD$KpbQxP6%gG^4iNUXr{ocqB^B~a0=WR*fJs*f$_=#yo(LB~HTVQ6X{)q7U#V8egXR{A3l!0yk zyZOjTE8f-}X2&6a;7SXNScwR1-*^RVL2lmR&bn;_L7P^bk}g_$^S9%j5toS^5kb5D zsy?G2Vf$Iuiq>(}!)ZY#NyT6&nJZPE+Vp$yPj+jY2S}~O=bdy5aqE{I44MdD3|X+^zB;rTAn!>E;YPc zGWRWS&z*8SlU#^kGku#dC5N@#f_an6*EURkwHzAPOj~j*@tIt6brSZ^#$n0wBK9c8QBW`mjR&@I?NNpVjn3( zpqj7oh=fu6!6?YC_ABlLyPGr^#zu6Bm=|STO1NGPj} z2#w5dj56bRU4o^m7&jOWazh%*rj9~`E z^Z)@?(H6iW6ChKNr<(cwFKW#cBG=D0j$gj4{#Qm6<^RQEWnlcftzP73!|qT2hjLIO z5VRgNPJRCuqoo%xU!rqj_#pvAP}F#}UWe)m^kGajmTD7x*^slMyKvC}g9hV=^G@UM8o#Y* zw2c=6=I#q{=UX$Q&QA8?842XE$TyHRILEmYB~F=obxwHq-@Xf!?=FH6oI0a?cH6_d zDQ~R6T)g*^WN)=11Qb9Zoq@7SAy=ClK&=J5%APj=7T!Y0%)uJ_(B!*L`QqnRns7yF zz4j0&JN&A`M;;KvyQ|5Tbw1K)7V_M}WQ9rtVwVNT7TL3l?8_i~mcrP^K6Z*4Ta2v`(ncm@DIr8;-({!JO4-U< zmZBH-f?sLz3-gD1=?|sjG4v)@6BXJNv%t?EY(=J6;!nxOL?c8)% z?c=%{qLF4-Mi#vcQD~zH4P&lvM#J4GSxQGrN~&)jue{GiH+E2a`QC3ZeJSs<#6M=& z{&XR=meJBEwB8#bO{!Y5_ui~wfm{hos4%y4N`rR6!-MPP?!Lmrlf#i57mZ#IPnaDc zTYXwF9(X4?Bx$_z<1NbLL*IrBAKPkikeDMy_qQUlP4d?aQR&i+&xT|JgFeKi&4Nx@ zl!?XDv7LJ7KEhmjxh~kvH;-pl1yW3zjs*S}27PA!d{%4_!La833 zwEnQ+;RlP?+C?)ji7zGUS4*)L*z>Y)IFa=GXZNZzG-r#faf_=i@v4@8j8o-%xv$Xd z?(zNusk76?E|G*tLrMLNN{hc|=!I$+NI|s|sUzF2iRKHTWRo$=B z8LF|#HLlICqs9`F9NrC(nS`?fqTaRI8Zpv<0*WJ#YY zg?sAFRN80l2koKHm}@q*PH7zwJNz(Z0EyK8&^}XH)bv!W@a-NItL|k`k%4H&Yd_b- zdHK8UBAfaQlf)>sCLt9~*u`b)PQ~;ro5rgT)X76KDG&-k?zZjo&(TbWbIIuit3Bk8 zuDjB#6FD*ETTv_48s9Y&RA~qJ!NXob4xU#ow*O|(a7N~)lX$sCmhhg#4HArIEGoC8 zh9fP*sXERG<&+A^Im57+R0f~>+ zA!a>b>?z0EkTHf}U0u_e8CJNJ28A|!8y0fXzP#CMVj{_JT&t6l#rmjJrBhDz?N_ht zGz>p)qhE^A%3;G1#qyC!{%oC;+kN4|M)5MtbvP-AW~ zJl%ZHFQQXFaruI6eF)5qu(hRbKsfS)ie8QVg#F8X8!PSo(&`gB*VTk44z$L^Xtuao zH)k$|b_^+Li9b$Cb8zA)c}G|lNMYbj2ch-@XIVv^;oC@Z2@ShYal*&IWRA=1;ueo@ zOvjV6WuThYJPSYCb8s;fHT0t9>p@k^12?KQUk~_ac+sXWfa1@|nYLBglraTl?>F*N zzsPtuE9O(@ankCR5{a?f2YbAMMAumHt2IVv#HSR)aQ6}CUW~p8m4O|qUl-Y z?xmcH;7exh6_b_W%gpuUwr;y_OI?9e4HA?DOho8BiC=r>XBU*TKijRkH4d z?AJc}URt){lI(Dl;N!8|MHZ5x@pQz*%#xxM+9LU!;0D*H(Ii2&i7dnqDp8Q0`cMVY zC0YR@)p42qPapU{ujhWkW^p0@VPqRg#QQ73X4z#=1EAav;7jih1)HcmbK89Fm^)3z z>B}U8+H&nC2M*I3FBBkbPuP%ZZap==Rc?_0(2KVy>M=?+ZBg9{DR8NnHpvq~ow{@T z1v$yR`-Amvo1PiGZZ`)VzLeRx)to}r+SdlLZ!Yc)Z_WiVDBda>cDdn0$1f;Cwkhio zm!lhAX`FwZxoK*&Dt~s*oRsMnX;oa&vl)iUB{GdC>C>|9tNQJse3g+g?3L_Q3j4Ue z?r9X3DLM3!qs0-L)M2bMb}}Dyb&f`h_hE#V)4u+73LS5CA{uxt$(q(X<&Co^(>E_*5oO*yXC1)Q zdTbN%ybm!NC>}y`Os6u-kA=x}t0one4?^twnNhCP&idXK@Y^XMq2$l$wEsByN^Se? z$>%yv%Cw4uPg`4q3Wo(>mD}DsQP77%a85*U@-v1e&E7r&10{p|>x`C&ls*%NrOIfR z2L<;lqCVJsU=7*yckR%757Nh1x+7Z)b+2sH1Iby->r9%<024ij92@cLrhZ zhs#2J&h_yySW4@hArrPaar#Vqo)MqPK)%~^Soxfc)$$%5~M=gvG1(P^LG^iUC9FS4QI$!o7?=VEI`7#0)-(A~`GnQwZaJN`a5iqL{_ z^JKATOfWGeBV$Q(>UUm4D6Mkw+7nR8p@bQeneG}6ogv@vVnz`IHs;5;Z%rNy&f+La5Xkv9kzxciGXe>Hf8%f5i}HS6YDL>$~q9o zuFGz)pJyrlZB;l=nyi_OI90!CljIBkXm3~hB(CHK6ye#0{4cIMKAITmz9QK+T3Qxf z%o1V*vf4X#IX6x6LEawg<{@pd>c$emile3augaqW+KZDn1>sT2x1m$zKDzMY>kKj0`sQiJLF{$&y?ajt=G!h>(hqgACr_0ZN)5@MyTL4*3(x6$ z=?xh=K=NWkWY~P4Ec8sRup?){EMv(k>~$0E!M-~}xA=uKeOX^?t~^yqb7JwBl_(ZD zc%jH(WphC(QZcXw(Wj)+I2~i1H9xd>E&Enc5czc#wnGkQ3u6{ge5juKUf48Ipuusy z^DU1lo5OwXX7EGr%W@M$f1=eNs%k7P=NGamyl5M{r>ga2Bk8{ zz)#2?LP&qjz36>qv@rEE{}=V$LatwJoFU%GhN-k@59)_f8AKg+b$rD`O2vsngTAR7 z3*ayL%4v-p?yoMnXK*(13geDnYbuOANm?nxEI|tvaRd#Lr{?2f=C?^KVZt(aU zyJ40|;l(#MC;ht>hXWrU9UdTCACrq`7I|!&$3Jaxk!Vt&X|>xTTx)ZoWS&H!TiNz% z(2Z;a-4QW+g{B-(2JilM1F^x;!w450A#RbA^@wPB`aqaLmdv$m3Ae)W+GfGdp)QK> zn{HO@QlVC|u4hG|yvqcRu^01n6dED1x|Kr3JuQjgIHUrF>`=9%fLkxenuihB`GS+v zZwa-J76(Lw_;}pzK8pWN37y@W82Cs6{{DQO{KMYiPZHxkrz;iT-}Y_DudRaTScc^Z z3D>OE)+T}FBIB}pwEDn;0|MaUOYbBYL~g6C5rul_(JFU*CbWxL)GF3yr4IQ*QA?uB zmTeUY{us;T@s=%_&qBPNuT_g~n$qaL%qE*`0K{P|0pws-764KEO0p`%t(b3d)%2Y# z$%eZHpFASuwAvNsX->uy&8&(72-Ix0jm8LXaI0raD}|BujE>Lqg9Q!}g!7ocz8~mvW*p=q<@AEk(;-o`44WGMZ6WDq%f$ZLJ0x>eXnJ zolEAuYbCbk84H^8H*`MSHgrCkF)HG^D8TFgs(W((t1udet#g;4UEjv{Dwr*G3|#pn zeYSv&qXmS1!WE2bdm;ced4SpV&o{z~bt5~Uu6J(5@p1#exJDJ-+hc4o=AYABPq@cL zi#=pSN>Y2-CG#%q+0vQ}w;r3x$7i3{7hAQ>U8B}B+S?k6#HjYzWYkPag?wB~th)`K zaVd7aGvef_G_sE%ioYJU=5M}a93PQOcR>QuQS$QPh|-*u`swwG*$zT7?=N314woJx zcMXZD*vsFnDrC1j>0uS8r~f31KhOTvyC@A1qr?}oU@@IG8AH_7#*yYrGX5a-Jzy6| zV}>UcsEdzO+WuAh3g_~fJN=}2i#{5gZdb#p1ln#D-%Y(q9W`ac_nu(I+SeeOfMPNe zy#JF%%8{evU#^L)X8yX-O3~l8bx35>?`3pyA&BM3+1HXEH*S3q!+1%UnOZJ{NYS3&>z%Yh7a z(ajhL$bf(7IwCoJKIi&@|BwX0GHf?OUyyJ<;P z@3sZqu^fO2@$wMatp(Xm0|Iml>+Kf4{+_$G0yf_<`U%Hqg+VyCTek;y+W+YG0e%1< zM`wT;#0Tn#u3?OAwwpQgYbC%TyJ6tOx8yG@wAmK_inX0*j#CpIw})B|JtA2kVhRE0 z%8z38Km^zfZC13AFm4w^TRksltd9)1*d5trD?Nao#Q;8JF|7@bpCtt*_0nRxG3{va|Pz&T3{pBvU;s0zS%$nfX%0J}#8@e9U(-E)V zY~`4UAc#3LBVG>aW06P>9`rvm$KnEG5}u(6FLwm+cN09oJ0xen zI}%z;Ou`!M*kx+D3m6{8G+Z??8DP+aH#>raPuT8`yz8uqRvMGv1Bl?i1PT9OhX)!x zgW+yl;A)G>mw@fEE)IWy#G(no#lt+jk8M{sXFPZqA>?nGVjew4FO_!$2~cSL0r}_9 z|CeEbwl3zuN$mHkPIo*V?0%jZ*Djbj&cNjOOOS96Z#>}JuTr}O9JI=qxj5KkjRPQZ z{%r>NbG9_Dx|n$r=v1B^LBhME@c`rO4&xtkm>=>5cL0Ga5*`x!cg+9tFK~6m{8o&O zs~GoBxZ8W#xVV_#?67gg6aEQz`@1tPF6K8CY+RyC|AdQY)q!>f%-wx#+(*g(guDHH z23KFqeN$}LjY<6%T>RdExhIDGt`VJ%2Nll_EUuoIn@QLKf*=zg;$L^xFgrl+NnvjC zp!cM91PN!khOtxNfxSb8i-Ng@!MXzhT!Hxk3k7$3$WWK`$BU&Tu-smxB_Pnbfo}Xi D*Ui;U literal 0 HcmV?d00001 diff --git a/samples/echo/client/saaj/lib/mail.jar b/samples/echo/client/saaj/lib/mail.jar new file mode 100644 index 0000000000000000000000000000000000000000..9966ca30dbeb8a6a9131c5833873dd2b08c93e2b GIT binary patch literal 270394 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‰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 Nqp_Ls0OD)I{{c7h73cr} literal 0 HcmV?d00001 diff --git a/samples/echo/client/saaj/lib/saaj-api.jar b/samples/echo/client/saaj/lib/saaj-api.jar new file mode 100644 index 0000000000000000000000000000000000000000..ad2d46d635b71b95e6e69a5ddf1eb770550a1a97 GIT binary patch literal 19162 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 aLLfq*7XaHTj~56C0!WrmK!TB;{{I0ZG=9+l literal 0 HcmV?d00001 diff --git a/samples/echo/client/saaj/lib/saaj-impl.jar b/samples/echo/client/saaj/lib/saaj-impl.jar new file mode 100644 index 0000000000000000000000000000000000000000..612b638ce32c105907eafe7c058a44718a1c58ca GIT binary patch literal 272810 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

    rKX_NzIA47z`?0%`as8hK$kAI~UQ~ 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�Z)1^!L(6^b)(C#vejeL=3yR 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%0D()mQASc#dvfr}SUSuLWxsOfG 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�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%0DvxGL|;`*%MRugGFU_ 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%0AF({P|9E!XacRrOR%>{9=LxsOk({q=( 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


    =t zYLFhVU%H5{3c{la)({G8JsoiVXbXWmlf&(4aQi#q*C>qeZSM5?@$g!gfnVMW*tAE@ z3wzmzOk8Kr60y+&vp>Jhs!AirT11PEBgmykPN`f3b~R02<86)rELBZT`?UefQYvEG z;+lVdFJI4P4d+pH<5>34hSPhO@`jtZ^Aj5b?a1Hb7sg6SrOdsC7BJOlTvPQiVM)2h z_9WC!{fWqEh(NqSDa6Uy;H?(y%}a{qt?!~h`&2bdo}4zYjyVEE4xy|S^Pt?mD# zdZRp`j_d&9GOXFg0Ette0rn7_kl{5**BWflzii>^p^Yw2L`H_sCv2IU;kQMx1|4Vd9|)Z>vJ`A@s}hxt{nC0?epsC>ucxhb4Dij z<%&2i2r_dI8M}4&(VGMJZ*3p@uAEc_+n{c6hiI#KpqC9nKi+uv4A@Sv-I@WmcUJw? zOjuWKTqTcydwgx4z5g}Bo?$<6usCEKVz;n+wtf7yZvPX6JVGuBkLWYs9(XW5k}n{r zY!9=)fry8^FV2P`ro9Q)m#9y^!izs?*8@^7epeJyFLBodQZHfm7^#!0j}X$Au+IwV zT`6#d^f?8jCv_JVayxmK9qC;ya3|s#9B~^>z?I(71>Ccphq@D2T9?l*>qoyg5Y$$L zI~8tpSsIwJup#oUA25o^gew@DN4q2{2*p&T8SO0?&nI2lhOnjwaI#4Q&%`F5dI$CH zhH=XT(k#$kS#6n%+#M0#+hng|At$x`~(gd;vN(PUg zKolwF5Zw+Ef5gl1b}RSBhHmkCv}H$&FtxV9g>hQh#>Sdh{g%e+mD3A)f|j|;MkjO^ zkW!Qw+wnqa@#-pb-pEY#*l=O)khBh;l63UM_xm8OFhF52?u>O@4kW{^;xLMf5 z)uSh65tKNt;mj7kOfxt*=qNY#Qy%ZWKL2c1IA~y3UF{ELpNKz|sk;WXzxg-o>9Q}N z%d|r0=QN@U7IlEE5!HE$C4nirm-?FeQZ*R5D~Iyr#15)zMSP2yGbjzB8p(w?%V^u# z4p2llBLV{Kd2$e;hyt$Lf2HA{-X1w}Ar;sUQxC%#?94}46UY7vgbg!Jh^7!(xP zCWW5ehvO!4u8YrJpEHYKPOah&*CvYt2dazl@{MUEEbM(~67VE`RassII))-tsF03` zf9ed-wJ6wF?jye^IGdXndSe zcU_@OX1KS_IY$(z6FL7ln*ipgC@+JJe0iJ}Z$w~kF~uDioD%Dl*m9}>rK?2VGy(&R z)*Sq{FC3R{j9H0JPFrgoT$^Dw%lLQ8xQe>m(5p{;-U6-WHRqiVww)Ry9D$7ocgn(D zlwEQjxOfG1ct4Z)KY$A!AWY~FER37jzR7dq5uLxb%7zNxCKt9*Px{;vZS6*cfXHyV zpm1K;1QAF*s7npd65nRE!YV7qu#*wQat9=2~4 zZ%nm!3AJcDdzIM!p1)jb?-FZSIeX;V()+!E?d(-#Yd3$X)~tpzFm+A(hxQ&X;$x;r z{WA0?0SgNsgvV3RV}%2?^#~3PaaV|o)NHq@<587?V>)hXj)7{)aVGB3hk@g|O8KTW z8WWey%n4kU4!8F+Elcy>fL;C=KA$&)?B4Yrdc9&Zhc&7FDP8;@D%9Jjz%|3HOB#EW zP2sKh!utv#y9$oE--frY?_wFTpIGm@p{MMMJE2=X=$Ag_yb+Hgi&4+#;4(wzc|sdO zCVGSLnAoW=OrL)j<~^{-*jO?igFwa8FhiaLsJd5XgNtg@Vb7{6pB;shOjOp$Rc;J~ zlU!8Rcq`po2CVfYi&U^O2d$f_Y;8)TCt;>`y(yFO%KGohr#C^BXD8cmhuK-iXtivG zl^X{38SsBpE&S@|P2XYS;@Av48xm*X3`hf}@}SHQP6IA~=+CLWaH`Hx!_}smZZ6h> z=YcYcBf|B64{AdhY2Gf?YB`YjMNB^98DiOmW8#pEqh4)Qzg3_9h~c@!B?G*iAhu+o zT1{?pKC01MfT~d46ne&Cyp*oaS6_dKymXsT5P9h1OeL1WS*)ce*yfo09&Fk7kX9u& z_EeeLp-_WIx>KmtjAsHU1BkKNs^p|p9&REMW9OY70UNv609cEti4WZN?)sony{$p7C`4;8TeUd ztD4e^9(nbLGMQO6QL?l_NsmPhbjVs%&>mDu(TbnJpwLQvJ zuSL9@K&EBN_L#KEh!)ke1m!}qkeZgHgSiwUwM%ibl@ufOVS43IvV%0v4GPk$DxpmE z@+}lZ%=#Umg@N<#2jP-nA9dqy636p-v5Mt5KrNTFL`u1|_LhNiDU&G$H6__0(-DWd zC6P%_xwNi6A{k3IV|x6hSY|evOHD1FNm2Ps(}KK2O&LogLwcM<)&fwHn>>~|KPUxC zsmxN6k+OOA$JQ?s4_!{f6*?!spN2}5*?J&|W6*{k&1`Wg`cT;~E3VtO|^<*Hmr- zYGir819y3tlh|^4bg4PUa6uisFlJ_;Vf2jQwFHVa8zk$28}7DxkqdL&r%b-vUm$Pp z#M$koVqENOqn zB1=2`mV_j$pdC$hna%lPzk|^Co%zTf(q#hhm_KQr8}{V~^Md&^a58u@w!ESH#V80? zy)Sjr;1CD`e+_eI>B5j>d^%WK3zJ|_CHL2yi2pzhVL2B8PJ)~8M`K#)6JNC zCS6Uz8CPXP_&B)2C7= zq$xQ5G%Vt*g`b4di;8*6*RU|6rk=8vPR6uGEeWxyU`n#dV2Y|1=FGKeW6H7#aRlCw zIuvPEjZCs>azxs27$379p>|qbrl__ir*K-6Q#q=uR+Tg4mgG#i1RSz7D>Lnc>d(zw zvOV+q%Bl{Wn(qK_{7-&F1L$h7#CM(Q_`6Q^A67J#olWfjZ++^Y-Z^r1UWO@JQmRx! zh$bC2n)L3pTKTU6LW{-2t0N^iQj%M??Nt@>pDCXpG6s?)j682e(N4|UGE$4TOliz_ zQyF%qPw(#!AK--)dnu7H&Y%{5LKsvA72_3@2qC+E#oLXyQt#zLp|(fA3GpM`pc+<> zx>Fn^FyMciIrS^2Q1K=yq}GljGE!bqH8nZsOt{rTF zxlJvLm)ShxOl&aocapYI#G8Pv{rv`Cn-8PjKBlR|6$~=BzkXuNVVS8Uc~LmP8<)?4_rO*iVZj&_qd2C*+=r^E;Bnx8xd zsIAfmoM2btm+XJCvu^e!f)I7Gkm-i@gFai98^i?AG6Tf4x1Jk2COS}b7HVT*VWV27 z5Ex|(6)IGYTpV;z_Yd7KBQPO-TQCxf1~E%Naa4!=e_gV{QdUM4(7pF?T~561BLps; zFxTOPZE*M9PTTChD}l*auxk3;<;|Vx7md#8Cjkwpib%|V{+MqRnrEy(VvuJN*Gpw8 zEGCaJW+<``4p-z6y2nN+p7-t_L?RWFI0lOd3x5vJA)-V0BkDsUN0=j+p`ifrf#nR; z3RVC|Nd78OoE$V8^~C4}+~gY_k$iNJh=|f5lNvW>sPro?f`Nf2Q6%M0AA+aJ4^%|_ z3c&VAa&OqwY#25hv#hfy^El+Z%RUpYOa>vRa34oxD_jU(36UwGUOf?7{yW%zuUtXB z9PXxloA8km|M)@wpPi^x?5s>||5ax1()94&7)tS*Nvy6T((lpXGaji!)^09B_$wkA zZ$gTgKuSC&2~#3gclZ-9)&$sBfTC4zlcM)jFek*3wUZ!}+purivTZh5qq}@uPqoo( zmhRA9w>cH<5ZKAei^bFw__XAkTzGo>K4sgP`W9uF-Bhdh+;V8-!}FVjb<`Fi{T-BJ zJGW`=gHuyJHCmV&wiv(*=mLHNu|+vSYL(oz0A`2g(cQ%ao?QHQx8z*6n2n z$ws-B1(Jt!*XnHnzx7ZB-l*@_9fjF1?oY( z)&`=7d=B#GhjiEM)d%e)+GPzGJy@SM1&6=m;g+2<9`NP%bnrhuZ`hLy=(s@W+q$@K z;Ot4<^a269;0PBCAPf)&rboa)!$8D9<)E?u-RlGVv|&F8=Wv1GPUxpca!vd0QP@ zBlXN9FPryoSbqOnYXf(Ca~7=i186aXYoTB&JF1N7!NiQNx$i+t&fSD?I(=E)$5VC}q?Z(1PY&yxWkE0-)t; zt#twOR{mY(%|oqBa;%%HMB@s9a>ZOUES&pV>xIzt%PDNAU_jz*r{GLJ{aKWVIBy@~ zqZ$!Q+BH)+j7KM5Y#s4pT6mj3;#(Ra3)SbWKRp-IpQM93&_gbc#+M`F!tRfG-I6Z< zPOs6K>9hGZm{ncnci;Y8a|)S-Bx=p7hwP`&{)=DKIb7!5AVrOCy*+7N6HSV!j$uC? z#i$!eCpw6MO_sHXPe$`FSV*A9hh*hQ*IsY_Y|SP1Bk9GX>$1Y;Ie+g7Cl#i zhVuR&G3!U8Z$Sm-grybt2*BOp-XhFG6X&haK8@zs6!?wQ7k45)x2n~G=3XD+Lh{w? z=B{wyU5Z+jbDMHD!sbfd8gCznkF%yX^Pz0)Lt4Qub_h)4c5~>fV+EJ%w5-%5 zeE5QzUASk9xb!#UBG-DbFz~mjkHh)lmKEejujeR?$IJUUlu1cjA$u7aG3B(Oq`p-d zo|xMA!rqd)3F8_O8qU*5z)@*ZlD6an_=jQ-IYTCQY1kpwtmw~X$PBp(6ZE<2hRNdX zMQ^5o9C5fQ90}6Gx}Omo)uIHf?5B}a!^5TfH6hQN8a$VoGcx2lQYgIDTv@CbSve)g z3m#^%lA(WNOUjtmdM^g*h1tnE@0^@&0Ai7!f84!+3i^3-vZt-ZS7%+Q;IFo$3?52{ zEozsN92&@-P|Z?MXD^8g#J{rvm^10XN%1zH_9AQFn zGvE_WqQTF~l#9Oe-#@K$cjOu79;84ZwIWK9D25yVJil$F=k*~VY#Jx&aqvu9v>LLG z-r=O5(eb9?vn4xpARHU_*|-jZ>%`?3Aq=T_PRe)&c*mvzntt*}<2&q%-@t+U!f4~T zlV_z!tSG4y4luK$bCbAfnDZfLo|J9zXI|*;bbtSIpa>S(a*7ZOOD~{$@n8)hx=;t#ZkzC~v}`p4gH;r>7E% zY*GAr9~8-URWQNsYK=GzvAKlngug1g3+eqSfv%yc_*Jh|^s|&U0V|5s93JpZBp5+W zu{=s{yp1lgY*9)?9by=z*X_P%YDjjhq5#b5P>UASk6&m~muOTvogXGeb;st3Q0b1Z zpK$$lOQXq+L^A19S>#8T6g8}8pqd9*^sP%h%>$R0OV?OxXdTiio}}BgwmKU&8AfQ0 zmb+Ss!rP|N3DhbZ*n2Nf+ z#m;jX&{dH_0X>!uDh#8c#GHI8PJujnV%Ek&__o#iQu=chGG((2N`sdzMJiKQechy~ zg?GKwW;_DtWHk>25UhfYBXI6{u~<&%u%UA7-IJeBIFcQlx9F}&u_AHaoqxv2*}k;% z<-D_D;2779*{Rlo`L%xV_lAylG_jgpD zTf+HEuKmb98~eXPo?B2qe-Gvy?a4@@!jB4yoU|?6<_<2e;S8;1wViP z0r-7>)#sUT{<7;YlF!cmuc+r4)X$wkeT8TG@GqskFX4A}s4x9}daC!8LBFEwFXB(_ zkgwQhX{ayW8-9xSxWTXDYkp)u%{@QDPxX*5{u_0aPpX?0D4Z8FC>3{1mfII9zg!CS zdnikl0%;l1_V;2g9bY9AI{vDLJl6RhnE10Hu6i(k7liQu&nD085uh9wh`9AQ!Hfk* z7@BEh16)qH!;$>LA2!pu#srpCctPWcQHF8R8Zjmb362AZm=z3_M8s@GTuemKnWGXm zA&Sz=ri%%vp@Plx8gk3FzX&=eH6)h}e?`J*HRA`c9TVTDiwoR0Tk8cck>~psA9AqJ z2px2v)2zOFn72;m=$# zEX{+J61udW?3t;BKvFi%3rj^)wt_*GTKa?wGh7mD`()NOc ztDOCeX|ss#$vB=;wBvIp<>qKuiEvWTxU#^TieiV=ZLjh zd}**HJsN@~HLmQzoQ z!qTI>P2Iloamg2juq&n=C&hHnC9E8$1Zy1-Z@|3dOLCrgT8W#v+R3-DEXY!HcJ-}s z$r~>ove^8>0e&ENJ7ktK3U822=;a@=>(qu8pImiLb1^NTfwuE|?7Vl#ByVwaMZ@``VKO~*fI3@y=>vkJvL z(8e1Sazk!ulFbTuzC~>cc%Tn8DQ1K`)Ufg%Ug`UNjRA;sJVuuQ_k`dWm>nWR*nue0 zMka4+;fV|Puc+Q_`L_D z?U`#Z$SZ?qTgbzAyJUswFS36OQojdi{}`lv4|tKrUv|g}vcJ4YlkfcUf*n7v(!PKG z`KrU`9_a+s_GPz{#D8Bp);0>CcV=7zcuwfq;SMx`;ctg$XKGo`E4ZY|dv5OtwOU$Ut$*Q1U)bJbM&oh0fKMpMacqS&Q} zwuC*ZhN%mvim|O{4NbDHo)d1KJ|VTj@ByS@V~^D^=m6BQvPNr|g3#?WhQ#?)&~p;^`)bukxQ#@uUg#^7sm2R!xX zu<&cJV*G1#1JcbK7zF1m-T<%Y9DrAhF5oSC3&4)$TTgf3U7r=rn-I2V+&1y}ace2o ziflLVBzUm%Kb(twWYa!G|E##=Xngo-o1lJeACa-Qb?J7vYIa#A zG-lakvWPXW3APvLRus*L+FrJsAWztMZkWp2870QT*@w#j?V#?cp@fAGy?pbAe;8tS z|A>qv>i*iD`Goi7JK+wA+7cjj*M&Ue~rdQ8vnZD^vF(BE(Dq%RtJEBww% ztu(E#Dmb_p2Aq$OkaQpdlYAbA*_&geiW8DNr&WBIY;vL%s4V?a5Ax~e$k*2=(Lr9? zT|kVOk91EElL{}<0W2?}4nHsDnxSaw`dB>uRdL%_uK(DiaUa_IRumKVIWd@i!u%jf z%sWJ1KjoSgvm5x-n9dt_r+k?GhL*g0D%?!72Nbhq*8y@Tp$>ZI@PJ(B8E=~Nra1cQ zfD)45AQ}@=zM&YOt8UbOI>HR_4slHSuF)?KA~B#i#c-eeqa@GJPDi@zq4CFvgpnA# z`5p{8**zj}4kE$h{B&TC^2v)`P)$vC2tN{Gw>O>oH==ufev$N z;6R4TWcnFdUD80A=?L--q76?C^eSV#ge+)NFkk(hSq9 zcWH-l^5&*=EIPr{l=uS)wV>9D>}dv*u&Wn$%}DY(lN_+C2X{?S9CH%ID!lto? zw?ou)Jny!#_43h8n})Yh*GYFFx2#{x*_;f~k`M3rB3YA)mVTCy?^RQ4=WwyU>~mP> zhgu_r4(fSdQ-4D-h$iW@B_oqb)zh=slWVlpb48%yyG$Pf92G~fAt>@JYV>Zc|1K++ zV&6=iNc}kIWnNbHA1cDl-@CwcRL>m4qa9b%KBQihTywq2a;#!e;4&a;Z^aZ`s=m_0r6x+*m@$e|KqX|%WGs+(pR^;1^vsxM3*$lhEZEJ< z&U2~qZF71D0hRWjk%~?6G#a4#$mD7EXj5A)x(O~wQ|}7Iutn8ks=!7D=Av$ljB%;A z?+KsQh0N&?{51WJ1Rm8~K{_8JWK)E_dXQ~$H z4r7wISIJphK?UOxZVJN$rnY6mWOdCZ=%1NZTN#Jn_NA0uI{Tn9T1r>ncPU^iPfu>M zGzU!OwpkpDaZM2sh2j&1O~WsRZs~%9k?NC529gsgxxJkw7PP$S5~z-WE;47YGKwQp z)US`l(s0&okyWv9a44OkF9r9oa4{moq2h24Vek;<4a>6>94s<8d?FERrj%zK_vhqXnX+C*x^~yCGgL)c9E@#Q;yo_tx+0hQ8oB zYuC87YE*=DZ_!zCfTNj65i$lWmPm_U(n!JV=7h%{FTIWJn2eUVdZ>dU=Vt0)oHlXEC0~=x*!1J0 z6=a+0?-jLx)5qkQGMCp#m^DIwuwU9nTkRRR>TN|V4v%JIE!6Yx4aqVO7Li-?m{q6M zzs4n8ADkDXdp?AkF6Ag)XxPL(b#R&hKuZDC9O?;+^?{s#kd? zXGOi%)FPCkvQcBa^OdFy!b$mtC)|i;7O@PCCIOr5ZOyAs&gqdj(VZg5ySm17{|3C? z6epi5QP=4(&4AoUa(OZrwsKtPpwU^EB>z_qh`t4volzG+&nSO=5?}z%|BLsf)hD9Z zEmVXM0N)AKLZv6NYq1ETas%4g14Za{1EBV)R=@m>s!Tab#=10itS}L+qDZQTPjT&t zBDv0i8pWOE96@*gLnYg* z@5^c-hL5V(283UTtO)oio$?7HFpZ|;jD(Y@* zV()BWXZugEVG=(k^-~Zb^lKbYKXNgl+6f@M|4E@&_-&3Q0E5@bV$6++>lK=zwy#Y| z5eQDd?fnCP5FEiOG+zj-{j;VruBZL&;OzkxjqD`Nph#7qBb2!zc?cB-rv!=NQa&3axMcy1we~g>byF%B&h)BL;BX~2m zjJH9$7HojCXkk|fkt@iB&EiD#^zfQ?jX|ASP-*N4O55 z@F`8QM&+nt-LkhgP{?hjY;8i<3M9o+9-~<=uhpFeVz(lq{bkEVDX{u*-v^c)Wd{5*yF|)>Qg` z+5`mlIa$8Bx1QiXelY$2p*u$tGZS}uA=z)*_jeQjzox!ANmCwK5oP2{*vz7=$lu+e zz(v2E;2`iIFw;DbY|fz2JQzKUDHX{)>$Lo#FNfUNTirNXOgP$n5rU4<`$wKPOX%-i z_1awS9AKjWzS-jAT(2X)u&M@87*%jSJCS6Xebf5a9p2F0Et=1Ts!UOeUy$~)7 zC1bJD2tk9b>O;9$G1&DF4cfF8$O;t3f-8!$Bf^SR=`8nu>`a=g4isfSA>EMN5as1o z!dRA8=@Q(kV|JC~cQ|uyN|tSC-TDxAT}MR-zZuLrIwmBzIP%yY!5wKAD~THNz}7N# zVHUk9<_!tFRPiJnR=P<>=gH{Nf^DW%k_GB3yv%F^>KK&IdT-1=a_eA0qqayF7y$jg z^uS*l)2>hf1m(vX!>%3Vi#lKjo%cEx%-1D3v#UN_Yzi6LCiLf((lM z$>IW{M9lHeeui)uNB9}a5-PSXA!B6pR8GPWaaEd|;s*}n0rS)vKb8~PZ;puo9!;Rk zBiaX1m+!{3c!Q%gWZY-#_$Tbdbli->+0ubg9W+fPW*qptmio)PE%Vf~@g;*V-!j;| zOSz3bTSBZb2_ohVlIaGqc+@>O0^OtXIKzBYrZ6TECuLmb6}Slq9mcncgDQ=3p)9{K zEBzgU1jp<)>2^j+mdac?1n!2YE9$I-2Ry-v{k8DD($G7UcE4fkY0dUy08P)o+Kg|5 zq>*&gcS-os6HarHyyG}&>p9GN2pC{?l;lF!$Epjzf}IEbe)rU-hp3*uOx`4DOTWlR z%o1f>&cbr0Jg5;KNATi(6GY2{@uy(-Yt`<&ubUIRWBr5?|INYXBCCnJgJ<^YETEhB z+d|k=@-`W33~o!n;Mt6>LA9Pbj*3od*#tH^ZB_V-y<+wRZEO9q=Vm| zZuacIM>P-z0~#8qq7#KM!$`wG!=z)TVbt1p%{U;7I$`)r1YxK$Qk%+FoFTZ4fzMFS z_?aczkYThWHs+Uo8KC8Wqe*QB+b?Q>c|vl<%>M<6~M~6v^tw$y?VT)7{+h_&b*qxRFbXA(X8T(O_Ft=B~-M=j}1=m}Sh} z;jgS(fgPC#sw5R$X7E83%a?*J7E^TxQ17%!=j^MRMQt+XaObR-bh_3TX*ZTCa1L-z zgM;U4Hkf1ADxoKMO%0v_xee7ZuzLy%}YDvg-6uU1XWETh$n;HG&2~ z0hU;;LK{$(NYhK49V%MCF;L=Lh1H{kG(5-h5ylUw*jT+|u!ME{dnK=M+8>fTnJtl~ zaUyPc624>TVEc4&&RO|%3*{VD*4%%i;pc|xb`W!NK84MYf6%{rJNYhEFFzAD zM#}DNmYDGe3;pgZA}jga6DS$!yZS+VuZk5C3=ILqQ?$DynrETJTWa`_ezatar70Bi zcg`HSTdo5KxDl8R@JL`%EDpgiiurSaR#JCmm=s$orpY;O3JE%*G_>jp+Ec07``;qe&$ z8hEa9NM794Jy@Gc__2lw6>^yX^3!Zy_!R*Xyc*IDVP?b^&YlcU;^C?8paf?;3=QI# zh?@x|=8nhhvG5L8m-LQj;29zT-YCF}WF`|?H&ZX8ek=3pe)-F)`{%CUC#wz#v6y*<1cUc+wpZ}}a3{V%q)%?%yp|HZ+H zk?)Wj5J1Ro%E?Yj7tfaf0tJGaJ+l?XC>f^7gH-I^ zU=U2%#8okDXMseaLyBe~+r09wsBRD)YB$rjuR2F>S?X%gE#XbuJa6ilGMQQ*3nZ45 zS*V?9X|`!2-TaskyDdh7X1@)A_#r6?bsCT?M3WRz8?q_fr|J3tIbOq$(79({n*I@S z6c{A<7`yA@PLd6eg!MjyaP>dH6*oyq`Stgd&3{kX|DxFO&&H;If~)^CWfs8DhZrdd?dn15Ei6u(OzgkMeX;%pA}0MR5~1z zxF;v~@TM~ieVg@nFbrZR7_GBoK=L|T?HP$-7CI?bf;*07b1Fp0Ev73ExlD>8(RC}; z$YpCRr(0E}KLqUYqAJaEAzW)A)aUo7G9h#K$oSkv1?B%A%HAHX+6mg z^3HdV9>DD=$J^MRfB*ZTZ}!(c@_CN?Bi!#6Vo4Ei=nFCV{j2}jdmL%O?ML|r59OQo z^}mcf{7(Sw?My8HQ5*aZh&76`@<9R!zQE1NjWv7t>v%lt5|WuQ<}v7UB%`}t;+?G| zwDF+GkNTbjWO$!HzbFoc9`|E{vZlS6CuXzQyYlpJ@aGwa%Hff{(K^@b0QsRqSg|rV zSq>1XC~+_HTi}F{DCJyINv1l(mO|~_(#Mfuniw^p^dZqAvxl~=08=zHYq}AsWS?AJ zuJA`JG*FEbc(1F{f5(A8b=mPMl0{E-{=40;q@Ot z%i5b*npv9uzZ?927OS{DQc>$u4XTcc1Tg7lOM65XO)>XNK?hmDdMJqm|745-qR#72 zzhn-{pmv9afDGqQ=W7_}zFvO50;6bUXf8Kdi?h`d@_KRy35DD`NR(w0p|kDchvrVx z0}w$5F9M4%qC^nHsSCPlp}>pib=&4Y!=Vwz*tihbV8Q*604v2|z4Wjq5ie=YX_NC3 zdCwEthkB`Qp;4!E*$2QMA}M@jO&RCFr?!TmHyt!TwA2zB$itb@H_1%VC+E8s~%C4Ace{1o480fpkr#1>e%qBjILw^cv_oGoC7y$(xl}BdbH} zIt;e>ji+VnB73o0rmD3COY>XJL7N57lK7hhO0`=h22=A}5If?VL)yFYP(<@Q?jwx; zEo}Xrm)R7`#0qjse_u#*Xw(=vl_)*vNloZkj}OY6J(=hJGd}&2b{9$cOnNlsOyjzB zpMb{`JOtgoUay`P*rQLDcp&B%l)j4zq=Kq6cjQsyabCk^TP`v7F zAPPK$r2GRIg`O8Q7!Rt4-gQIlz-&+G@h5Eq1o=V_e1)hueVPj zcy$gO0+CFH-I#iGLy@zt){1Dd=o|dwCX^Nyt?AFp(2cE0l`C8T2X)(1kL&CA&e@(y1{ z+E|6TqQrR;k?zZM#N5o3Zw&J<4~PJc59H}DVxj4z;04GR-rAvqM_?75USf}tcUXq) za50@8!Mo7?k)&W?dcvE&xL5T5?}I&Q{h-9*8$hq`Ap74xrBvz|@c_4poBVq_MQp35U&PlSz?P&Y*Fn@Sf8fi4lno>`6T$ zd+AkJ!ga?`&1@pCvlk1;fd@z#*-YeG$!tgToCIphv-i{$RD8w@2cl5k(FPf|;{loaPZe-UZoC5U>O;NyMV zgLFI3qWKX`#v4>9m}H#mhE~2=>YC})pyv0ps)x{3)l={tbCj5@=+_9Pb|Jr<;_OPU z0ZvT9n_xM$vPno|@8se*#>NL_Lw2@>kuTLCt0Lae=dY)DhUjUFB$|e9(BJ=|pI%f@ z-ZJ^tPM3an=&1kOyWn5@W+NKEm66p^{?dBdXcU5gknDG934;_p!&+e{qP7l-3FnJ_ zXbk}+)Mt@JiGIv)uJ-0Vo9@|f$?-QYNtsQ`eDvUdfV+BKUz6ED=WKAeL^6B7xZm9H zTz8yiXFa{}`@f;$Jp#D#(Y8-Ee# z8Sbm%)j?W}{^r?5m=9zJwHZJq`$CIr^Xw+h2UZ92NQ=2?7*l=r&==t5GiZkQ^cgOo zEU-@UB(AfrAPUPbwzQ&DRG2hvnI>c~OTOP^(FQC-|@%O9^Ka^|E@pp(tC zInJmZ$WK$86q095I_#6c{T`RvP+&0@qMWY6o5u&YH{!@OyTJk1=c0p;fbozB&=J-X za^z&pW{ThwGR|lwfoD82KM_|lKD11lbcUFq^rWDToTxVD6ZqiZql+~yPM&rk4ok(F z>mZ27K5T@|Ouv6^h^{HlcxJ$m$B~T^A8w`~pPoPn8%k z>*A8hm%<*DZ7hB&T|8=v_9qF&;!sDiL{J$W2Chr|anVJFlBxrfwKYFA9B*n46}lm$ z&}e#C>Y}+5K^hf&T&%X3Dl~IhvXXr9P-`}8o_r$LAfm};zn-6{L#2L63V#u~8D+R- zJ6euvb>ls`kWruL4>?hyblOGhwn+w)a^}#_m)$#N~J|Z$^=*2 z^5V**Q>)GAE?&5>#;4TA!w0L4`WM$mKUz17X}5lW%5Y3zG+&ift^B|>3vdez*20q} z9J((4OQyM~>kT%IKUm7PjaH75G}Ve0t!$0n1R*9SXHmAQ5$LAabf$}K<);0FT2zVZ zBH2oz6nsqNZD5tf-!#N}=W;L5`H_}UI?389lQ%4)zRWADDm^otFNfdjSmrBQVSaC3 zrMB1wbK;pekOYsE$s zt0dms20fXimz_81q&BL&Z=we)2NuL{s4IeKa3@gDvljHt4Z5{H@Pqw4VY^3+>m?6{eObNab5`k z!f-z6w>xk?@PKw;cqBOvhs64`esKtR&RYhZj>y9=ATgM z+LBhYq3HmHlw!d)N$&Cbw-Sr%)+8F`=m{tLWy~`oyoNW#$bz_0Su>cSEH-7Bj~+w% zBuMWJh4vFENKr zXIdiepjm!R$FpmVJXT?|Iormp`WH#wpJ2zi{YmU3?myA(1?Ya2IZUKlGnV|wJ0-Vi zjSVbHg|YJQ?r2Xrn_;mlW0W|A!vbd66_J1DSKzjMTxyRJQxjq*zWujsWBEH}d#^|Q zh54OrIDeo2Wl5)C=;Unr9}OQ{`Kf<2e5z-yjqx(eBZ&06j{{(GQRx?kq~HqM&BI*R zqixL6HX<(9UO|Z(mq%7zidoB!ThPVn+ zD633yD6-Cnbza3mxCmLqBPOz0=;H5WQtWR|Yo^|srOQVpDR8AVPm!s>H!a*H&Ynlt z?!_WCG9|LPt7MyRUVw!xlXWPCc$MrvnYAvT{(xbfu_y@V)TgaWjH`qqlRB9Sr$F+` z8Yh%3$_A?@Opa7EXK>95r}$m1zxTMaG0VySW#j(4eh$74Sd;z%wJw5*iqH*OpJ+RY**j^-$|!$l(zb^GN)@g&y>+%kTlx8sBqWxw6f4VJyM7l5 z;9ImTk7(62Q@ylmX}4MVx-8vNiwFDPde=O-{&Jtl;B=n#IdwHVnYIs=_rsI_1;ge< zt#V7kGGDF;8Yh&5v^zy6#Jqx2l!=DbvRED?HfDKL+(B+pnN!M@?4SfH-%p8}EJVKI zvcM&${7V`vbB@0ZbBE=kpq&}TNe%L}eExg%D(NFNKwFBVE*M%0Lm@D$keB8Dd(fJZ zj}(T|U_Fvp^1gb1IS>%l`VUwsj3S=$K!oTe6%EkegoVKoHcC{LztW*v1%Ocxq|%F3 zWff;wuJnW;nWa4PCi{wh!IxJmL!wjOsP%_Yy+ZWL7D+?B#scx35KL9Gs@<~U99{d# zeuTD`uNJbS@Rrn6G+V%9zlL!tg#VfW>GZ#eUDW;H97ikwOH^#$Gg`%_hOjfOn9wj@ zz@i0j4%NyHx-4_Q+)#aAj`c16W%N>en!6>ctjRrL`@Zu31sN7Zvwpo}gJ&SH+Hu zRkNl|5jE=#^O72ge;dA(T$>{j-d71E}UW*PrTk)Je`6T|>oza|1TrnAa?87QgR7BeH z=2EdzQnB*Be9^dk5xIPUj#f4EiI@u`J2qEWwaC=d(5z&=dO_3Ov7BE+NbF^xxzrqY zt>*|d2_?~HSGk&L{c8PtGuz)mler_G%}PmY#c%gshSh$x@oHq?&(v0C6jf(OU|ano zGTFnIRMLi0MG3Y!amJTR>e{4}o_P0oEmlrzCcSxX2#kg#m3fV0J+pts;XBZw+RAO} zrd7qP_|iI!w02pqY=^A5L9YVr+#nyTk5tjk;LW0`46MyA32mV4OBLW{|7GPC{FayX zlkhVFs~6tCHni`DO3)AW6$WVV=yK6%IgZ-6;_?M#D0p(aiFjHhwxwCx$ucXSrQg3~?{fPW?gQe|BBek?ze!oYpsl|vGpUYvIM zQU2#nASIj@>nGUE(A@s1)hkXcLYmK>`oc7i3fjkWOHU~o_ z9=n&A<9tj|5y#PJfg+CM;W$OCmxBw+*fs}SB;hwpnDKJ-mSQv;!x>PFOs>nZ5~duK z-R(Ojc%_YAgU(H#+l$eG@yFqE=nftkf5mtCQSm`M!d{zxgRVsnN(ZYCr5EL|+}hZz ze0QFVpO$+^z-J~MyS^P^U+dJLv^jmtu7mDH&yuXq+4w!q``^TU_PUS-O>jB1XEsB~ zV|T-lJdR-U*+b7c?WxaXbh^ z(Mu^|vquB`T)5|V0rSiA@|^(Jr%Bn?f&ozI)g1>kKTpwDmse+_6rhIl}(*?{h_ef!=%0UJCZ& zz8K!W%_@d|0Rz)wSPcC_2EM|$HR=xwKmZ%W2nT53$37X)2MnOWv>MJw47kB~F`f+> zKm-}Wj54^yD&mK}J8lOY(sJyE9?Id^k2%uEemL-i0{CEFjGN(#{G!1yKpC+H(@~A# zqSp+&@ebX@VleCnJ(!Es#K;+ULmbgZy%~4o?jA7k4UP8ew?Mjt>)D~6UodcyFKGjNWb50Y zpDD#4rQoQG(8O$`v!mspVwD4jM#|M49-(6&zWSe=zOUelzu}RA`JpuYovynxfnyH|{5!^|(oA>T&wCSb!QpWid!Gh| z!I959o8)uya$jqon8(b0^PZ5$o~1ikv0K@F1W#8zfw(0Pc-%(oosqc98k|Fw)N$Qb zjMH)!l)x=S)w^7{+JV;GgY+)%4ClgK0(HuVpj$c9I6{DHI2?e$<(S4i^tkl5UC&x+ zrzAVeFi7W(#pQ{;GUuIPcx%qijgnmoPB$_{bu4&`Ou3bAP>Mj{Ru2t`;n)ECj5s#B zmj*l21FHpdsj*o(gM{F4tOxVn94;_nTBK>zxn)DH95&jyA31}F*s&}J63DSQLkVg) z=ferLqHvl#Ie(tc+WsibZsheZc;VRgFOcEbjxMO-Tp10|{t>_hv+3&(07v358*2c= zu^wzN!?7M|Q07>rrx#IWjDKn~4hT#hVI#<AQ^iAOjFz9pM@WK=&U9#W zy{`x}?5 zzp-HKtk;s$VfDMrWyg4YfWi|aW>#y=tOn3QJi)5H$E)q{*7}w0!n09oW*bowhSHH! z>T0XvfN3Qsb}g5kJ#}O-#RPR@s{TEI$Io!?`VWXk$+5wb6IMxsM!L>e+SYuac6|1( z+PJN>`AG|!o2`XH(@)}p8IYs;g1FZ*ML+~xIJ^l&5;T~;+nYBE)3XB>Y)Mn-=@tQSQr5=MZ6wvM&cIF5 z?$S9mVnbEP73q7TWS*Cc$$6SJ?WRdvi8_fD7G*|;{%C!bl@+}98S#!zNClpK)yraA z*RktoCOb_Mr{;rHPDQ1cptR+&!G-qV&XP@eM|ry8z7-D-O@A=ra#EyiWjbj$Fmt6_7Om z(gW#7qkw4Mkc5=zUN1x+tRJ!)Fu1n_7cd^t{Sx#Mu85ymz$Zk)3tfEM09T?P+H-;j z|H8Hehq#9s0K~yq;IGBAGjt;}nmMo!EF1#qj2>-@8mbt9@PieK$ zx}aWe(su(SU+8fRFHytTZU-DD;&|33kS`^#+q9*izC^swmB;_hmV#YB;TYJGIoS>AQm-`GDBX!lUHn z{w|TMQfXr#5`BCnMZ|{0kT*#RQbN3t+#Ain+%x6fX~A?z&(iOwq_s)+Q>2>o6Dvr) zVvBu}o_c16wMr~e-5guMwS(O%4DCVCT*-Kc2-y6Mi^wUL>8 z^vw1nI_GKOj&}5FlWpDxb?J}&NhS_$&jZHGVDNi@KvifP1&XMCTv93}(25JRg;lEs ztDfu@2J@M1w*s-bnd=k161SbCs^#uwaoxe32kFo=J;P3V+C^IuXEt`&jt(ev(dr&F zM|$D-VXPB7l^%zO%xmj-XzsQKbh~`B!e@=EfH=~)mWz=C8c+Ocs_D0TojyzVKAyF& znh7S)jLewKm}-Y8i`4V(V_@|bE;gE`O&JFI@Wq}h zpjx-o51^W5;cx0wk*E`b-*ri5w;6-W=5^u1j?3;k-NaP)D)u-a>(-4c_6FBOeX}Bs zFe&E;{x;vR!XE+tyi(qG|XkT4QwkwN+?h?>{Ni6~2moHh$Gw16Balo#? zEHBgOYQ!R!;v{;Bk0KR936LTcN{JAe?BF{(x#3V0ay_HDGDxJ|nnj@lzNELbkmLb)P=&a(B##NVvXp;qBl?6p#9C&6^%tv29COLChS@zW_Ru+gZ-v!m zEWtkFUmRpRffl|TuYv#uq;Hob*M)4L)iG^zFyQvk); z&nH_*L6m_)C4oYnLT$_Oz)w(_(587AkWQoo^DdGnC4TAaZ9<8fP>)0QMfqr6k&q{Z z`PkIxBM0dIUK{U|!>}Buo6>L=|9i@hmjuO~n3kl|dOp5}FMcUAxY_|diP{>@1YmAd zp-Uq27kR};{wfRpiwW?TeAP$%Vh{dHOY!$VHd&-#diCO<7v zwE4e6DK%&hZBtA?`B_P)%-kADjg!r08U{Ms%x0Ttxz5G`se+W&A=@1_F0;AJCYGWO z2PdH>#j)XveNaUDcE&-I1c&7 z>A(yf@LL~!Ie7IN9u>~*aa_d2 zM|OA!^Bx?{ZR(>m%7^)3x=nicD_VY{U3;`VI*4i1WczTqOcw&c%)~df&3`H~8vtFCvM6!eZfz3m>w;j z;}Jc>t0%StY4(Mx_Ey#X%#kEN{)$EYhs0gJgCU@9>J?1de>1|K>yGxPX-!&7Yg^4t zd#UWNc|rp{Yo-LY<=_TI+)0ZgV;Y40#g_6^TUBr{)}PexTuENdin5Fw=_`*vX?HN9 z%0jW4C|59SSQ=t}H(QuVtZX$>>PnXxPYg@_j7`-bGOI=+SY5S6A!s2Z9-d>5k1k8J zyn^Dz)X!UZGEre|ZvNqID=v;}$-?$29+b`X)w)OHC8|XdU8P>Tqu9m)n_0QjFR#RA7 zM1`VSNq6n33?SL+k%p9@CGA+!5E>d=>IXkY^0$#XV~xoSq#;{NKzb%#xeqG^&Bs?C zPRYUxeeSa3OXgB_^CYpf(#*<_E+oiuGw-b?JmT4pQUeH?MNuCOqkg>Dpw#(qMVO=b zfbXf^@?IBWpwzp-(RE}x7h*UZD1)kprpGv4Era;PWfw6Bh1= zd8D>@$PL6fB%1S|?Br3rQs$PtpAA1i`Gw{|Ti6z1=d-^QuavLi7-$B#+VYCoP$0y{ z1RoLu9wj)Kk?`;!?cvUvicsrWoDR^T{35CY(KTkHrrq`Ai3$<|ELHb5a1acj$56V1 z^%ehwGoqGBW|O0s6V4>T$TIO@mQFCpvn`oCum~rC3WL)4Gk1*Gy|(;fmfNb=dBOhK z;%u-rvQa@0vj@eoM$#-HP|o3o(eFvC=1jFKX6IW zWMnAcZxDvgVw8PuUeP?b^0Dxgt#VNe6n@GiV^6rzS_{@E_r9^suVunU%?HIiR&-Ak zvmwj2<(=Rao~ah)Sj$T7&snYq9U{O5`A5~G-cZ=6FP*l;e4AgY9itN4skiR!-J}qO zL5=&BgBIsGOqUlh`U3MpDMQ255)u!APxEZs&S+OHy z%iN+}F;f1d6s5c+MJr1yL@P`yY1_^)$F#beC>*6-+B+e+qtur5?&bdL-FYWXsc)V5 zSEwl7Wx>E<1LN_%1W))EA(hpGdR>m$NOQ67?T)PXCW$+#ibsxy8x zoT2x-#tL3zjC0)laZtN1OX*=_Y;ZS_{xi9$J!}PB>0_A2NywmtYl=zZq{k$7SU0=i>OCKkJU&^K63$UJZ4%ms?oE=Lv_xh|b{mBUWXH|n%`K?) z<oeT{bA5SUN=>zrajUUKSbbQH)tY;06PJrS~Ju*%9B%5|#fkG9_93}~sz0m3kx!=C}so)F{*_-02 z9w@%PO+r|o_0kaUT?S>D6Ious#T9n=0UdYGXCPM&g?PHlIp7OEsi>_usAZH<%e<%` z-%>5@GCyc^!>fYgSgHeHHS%k5av2HDbKp3;AUgJfX*hA6rAUR)L#yv&D&4gz8 zah0@#(?`93%Y}hN#g8n()aKdNYZ?TOjp=z`VhHs-6*vZGT^$`%0K*1XH=iz848#F| zwDdMF%bUZfaXo3aNZ2@?Irg2e$9!U^Lp*8b0GF0HbVP7`=6JHZsLD!d>RcYjHQ?3E z=vlEhoUWzyGv=9^y^^)rM6_s2B+V#{Y4yjnWzo)1eB@OfRyK|NVZ6G@NObqJ7dX+D zavjNV^B1Ng&bzETWvxTaI{Mp0I@Eg^UG>of&22h1ji>9eRyW5YS1r(dUGi92J}K&( zGE+x(gEf3IPh)0X+is+)WO(xFAsx~D&d{WHcvKO|*X^=rmHd&^>bQd5O)8YUc2ecU zljizjx$ZLg)1%U?DR8}MxE~5?=lKG2%pqOq(XxE#UQp)mmml*YWg=FIbABlH#zf7z zbR=V35^+lH)>eDIVvc=EUV*jdO-Z9trxEi(E|}EyXbzaUMwwoJbjla8+LB|TmCLQo4Jvqyeb z-K~jS2K~_?w7wqwR8Sx}(t_G6H9~Bhl#4a`TCSiHVU2)Z@NFK&JSY(7=TMCbJBQ5n zYN$~sp;@d_lcmIX%(_`wQ4{joo5du6@cS+5m5_R`;ojbFW`5T+YVK#GaJvJICwxZO ztc~!A|NqEg|7ajSz|zpgeS5}tetX9Mm*lX2auxq+bN8?Oc19E0M|lPF@7{LS5m}D_ zq)u{aKwzZpX7gEdERbro%x|qqp2?#E*qIWMEfO+HG#453GP@;NM`vK%=48yWGl7Dd zz!c6s?{mD)8BQ1a(`@hG+rphU+%LOiz6|@P&mS9m-yhy^pZeU~aO*Fg!tpcxz$BEs zFGOVbV1Q-6cSuSLm4CQk*7HGQf4D#!^^H}}J6);a**+=QnX%ix9^vp296|T&4GN>L zcx{ZNrE0BgPeOF}yhF8dHtvd~L*1cr^Kc~cN}rTt@4X=Wa%YYQ0Ps-tl^yFMKU6NA z4*gK!Js6>RneM^CHJ9ri>b1czvO{_Gc*4UxTGU7QPL`_*k0<*PhGPt8?%#va;Ke6&a0ReaP(UQ~GM4nR@& z)bD^%`5zC&JrqZz^*%B90e~_l5`mE^yU*zub&{j9XcLz0O$!p`1rHm|D^H|iXwvAa zh%u#e2bvuWJ6rbb8@6s8Z^z0DN61iB)j*f!F^8K7se ztRc!GvhD8Kcm+jt`Bs%+WEfQ!j0rPhRYY6qW;GX*!E;ws$)b_7a*b)1w9z^SBWKca zTR?Ddw+4?IzTEOCkr;Rbf#3BzC^~J0ZbQ6{3`F~hsPTeJ3rImSh3Kc(UwRBL%%cs&;mMcTpPKYIytPVp{hL72Xbu)S$q4Lh79p^(4lDs+o{b+Dg zV=}y?@chhci4#eVnvYCq=<__LxsB8&BgYot^1!uZNo12K#$mhMG`8a6Bguss(;_i% z*>-(@`|co0y;H@oAR@)CGy@1$Y@*Aqj=9rV!jdat5pnDYWwlsE7%0I)YF8Sv(zzI& zW5pS)!lDyS3Uw=H4faG8))7t&Tf2pZR2FOGYV*C)BA#$rLXty^%x0MejF75|s{K+p zQ9-R)zLoxr4AWP3OGZryteT2cQ%bI-gHnAE(y9S?eU8Sgv3{c2OHhn6>2Bjmi*H4T z;LeBzo=Z~j0nKT_MWrujH8W&HlUIQNn4soYXarI0EhHMo3l8rSLiY@7LSxS6>vQYU z(znCFO;de2(t46mjyNrLF%jFuds(7RGc>W6TU)Vc0jr=Bscx}%INHf3wh7pOWjbqk zQ|PpeQE2t*&pty`MX`2=$zc0V3s7zCx=R4?uSKC%0<6QlE*J7P{^kpXrmn6g{E0&i znLJ>yc}Eb8>lpr{`W96>L;9Wo4b+8Oc4ya=(6$*=(A~262|0i9p*`7cPpn;5^(ofR zAst#kpeJR5_Q<>zo)Hg;r^JK6h*aj)C_n2bbWZe{!{Hv*?vNpDkj^De)vB@rjy05Y zIt>hVj5-Y>DqkmKcWFxc(J9D#sLG~A5ey7@5&(AQZW!#|&{1xYwYnpFo1@JQCb_(_ zF@Xg1kt=ISG?~Lv3ZHmeEaL)-97!zN%3SmAOaw1y%WQCg_pe34m_CRSH$ASt7!+BDloMkWWko?a z63j%grQ4us0!K~In6i7%$;ig}D~=bC%zmW@)1pjtg_{)_ndoqP@_WSZ1XPRf(J?jhUKB`TtrX_w*gaU;xWiw$&o77v4nCl41`@A;O$)6 zaOu}RMgl4AG}+mJS9hqKDx|an?JR&2l$9w{X5u`TGiyP=u5keOF39wHeYI_ROs9A! zfzZ0vU1jTuS#8~GoD9zQ$KU>{nKr}cVaqv6ci~~f^)j!v#a9H_sw-f2*4`RhU%e!9 zqGsN}J`Z$-z}R8UWrJ@gcw%mo%+2jvg+fn_oY_#_3{(su>RO;kmrRIsWKOylj_%g9 zqMhIx76>gV_|$J|t%G1yi{^jJsVE+AaJmbWxi0&x9g1#qYKFYD!N-~$63`rYsOAo{ zLO1?tMDA4kb{)T8&c)=7jT=Q$yQL5i#4jOv7klLsE-m)T@Dyx%VeI zXs7FIu2dy*P9n>kcL|ahO804uNyWxTGndvV=BKC^wl>3j>!Shjk|A zDBv{3Jy8LVQQJ_)3PL>MiT+ybkppJYCHSgg$A5t zigKKtKU(dAerjJ1NDd%qj<-IC5?c3(iju^gtVz8Xb#8*n*Ege!dIw)kiKyOzg=OUW z2?)r^f-v9P*yLiqQ2QWzku?4Y^s6p3IBk7SK)VoH{X zzFb`64o3!{c3843Nx>>{uqy{|Msq|Uq~1S&#Y2h}C(`9^1mJS$x@XLCZOxQtti;smD}ucteS8{j+He-P6+BP5+7R0U|Eq@;hechg#}&q!83KLO{r<0W7;~P zEVrI(pZXkW-4CQHxk9P{AzEm-y8)KDjH(sNN!ZQSPPvm(C*2%=kAOOnU+iE!IlG-M z?3!sL(gmJR{IhK+j~8oP?=fXQQZK7w(#|l8$Ok8@TJ2U=3hKHVKH)mHjAGw%llD?% zC0?bVwH&|1bsKh;U4QZdMh@kmhbvePTAZJvRaIZ_QT+KaVg&d48vj2!OU9v2nA%wD?3g2l!e zrN1JO-2G%pf8IoEjwAW~-%Dd;7p#(iK2813yLWBG>8=5=9tSZ7zy6#szzkqkW9GkT~*y1`ZIs&Al z4{q>$w9Vkzx1JVLYSQd>NQ<*;x~NuQ-vtJr&YC9&YmR=tgAuxFh5D1d67c!3^Yn5) zVNwbTpaMHXT96sw0Y5-mkmP3uG(ncP3>qs+fQ&m8JZSwD0X?dN>}-VHjfY4*R=Z(d zzHt$R*KGI89wKLgi0u!)rwl}=frr&?yd~PEMZJND$n4CPldG7^&nxCmE2$#f=L4EG zHX!`D1@Q_2e2VO#t#%E~_robIorf@^Ojv)@QN{i{?S#@l zTrmE{k|a?wH8XWGwKFzVuy_8au{kY-I)ps3Lw%)em_JdDz*iZ z1HX*eVu?>}b}*0jq!9n5bUnxpj0{aNGi%vg`R+fzjFIDP0~*2M6(P{aXmegMUO9+^ zGu7kjwn(jkNQ3jKWc5x?5bqUJ z6i*H>ISpCLI*eZFCH>tv+~n&Ao^Pmk&yU&9H$f~ke;PL<-U4V`josvXG>en>ZVqkW zfm^~UrV(94d8#lxxx+Up**(GB%k<1!+$H> z`a|1|p^aAGpdZ8-I~sA{U}Kamm|3hf*EWEbGZ7{@7{}I2-*S;Hq_hRuVkM}R1a>rp zO|q`oa*4PnarfLePjd6|C~u=p-mCHGGyP`j#h-t#t;ycZ{9iBi6Y0M_uMisfN}V%5 z)6&_o=^AN4T9MXI3}`R8!2N8~G^>K%G_Vu4uBwM--PSeBfKg6TG|^Xf;98Te3hRF3 z#t*q|ZQxxrto`(~!FSz~-~S=m70~MifkU!-HZu#Z=TXF|}Y17xFvGvotvQLsgWfBW7=r%aPs+t9WH&(*I_{-(Dtz&$w6^DtRA?uyq z-B;QWhA`DTyjMAow0E_-JF+-U4%J1j=IDlMV6oS^xZFLuJG57}A`Oi3UEW&UnOr?M za|a&gKy43(Y;EqyL=V?BSzK9}ZQh)u*s8y;H-bIXy{)Ird{MxGxvAoaIOO5bJ34w= zRMjO7<85Iyg@ZL=oZ{zqdwVRi+ANt9%$Uc2Ut2!d*g|#(BR1c`m88g7otn98dW@-0zv{Y0@VJEpy zomR59efS8)Mpa!~?`=1hjBHJaP9GPaJh#r!h9;acQe0kdTv=aP?VdcbKC!UBxLj>7 z$C$BjoE$QRe0&sX!Cc`kfHfP#WY>g!ihr&Mf6WWHs?#9Bz*dV(-;WZ){u#l;BODV{ zpNO?sxV0#b+b&hOVa0-mQ+0>BFI`YDkSN;q4f>Mk$A2)+i+7_zgT^P5bW)es_AaZd zK$YDJDMf6SG78@g?)Kb^tGB5gFdGKj)-oqVcC(Q zHLU@R3$*wT@3EJw;xCOetPB7W3NDO^zt#;{*$rL8_>oq+$KF}&M3;xrqTLey)RfSg zmUr3)V_?{{Um$i)bW*G*V1UN#_hYhPixn4GEF#X}@1ynC*umbBf#dfoyN5(BV#21+ ze7IRB80yR?NMK|X&9v)KxTOlPhlPcHwmVezYYzd2z65JWeFUwRz&;!H5p5|pSjL8T zs$ju{C8)>y?V69H*qmZ4JSZ?QVxCz{$!=z3_;NG0vog9NdC7r2DN-}|`u}K@xsQzF zbV=21&oXNv8K=hr&Wp;C<DfmH zhceb2ih~4Y&r@v2<+cYi8;C;p*xEpZXE4wlc^u!FG+agP43O4@xY^^XxK!0-&v!GZ zPmc;2a9ZLl5c?o-sq1K4*)Gn$}56B@#^()2A7tZuc!z-~V~AXrbcQM8>JH zMo$6o=Pwgg6Ks@Hf&9bLFleN5L3#~XBJb8X){q=g<9bY@uW?{U0*6jUJCuQ6OBcTU zxLVa(71Tl!;$Nk>hyc5UwjM*Fu%x6jfQ1493(sm3ic9!ph>=29(nymuldj|%2{=me z1Qd{IDnqa)r%~}(qM1~uinhxBy>Tah(y0m?I5LT7%3Gf9{Cb?y^%Bm=BM~*qxMRv& zBFE#Rj*KY7TE;AIsp3d=Rch4K8Jx&udPB3uJE`mtf;H+!5?XTA;*Q(1WkM?yOT0>g z8FABMAgyQr#QVPlS_Ma?8YN9joS{&XqB4rbMnG#4(4{PEG6U+e1M1W^cv;qI^ViTN zq>;@kTBQu+G2PiSsv5LF70FnWBymJ3$mQ{sl>HY%@17`xv}y`lQb4RAYKR)L2CxBI zK-MK(qFVC#Dpo4Ru#2NCf>n&OaTVemL^HApBM<1T31TsA$|=4ULwR^=$fTj{c@IVgC|KXP!K3c4#*Tl3Nrgx zK+q7$2pSRwhyf!YsR$a<29(0T>B$u)Q!(%8lw1!f^kiN$gq>#ubTbk$ ztRtvT6o3s-1yMuR5Z>2nwTo={#tFIBAd>nB3cTzVp!GiEHy2TbQlWmKT>Pt;Qi=b9 z61E=J%~ByD@JKpreCGGM*C9i+%F|N{Lq zIt?^E^X}~RvekB;S5O|Nzm`?X+WH}bLN>};ybzj+C zmBmr*Qn`iwjh7J*g6&RBJ1z2>>&aDxZe$r?E-{9q2-o%KM_mEOH#hXN-i zBF3U?h`davGqPH|U&Kl?QyV|6glkdo6WFimzHu^UV!z zsTB8R0SNa$0?xsgT(SB5+Az`Za-L0kMra~AvIus9^FPQ=%2BQEq;f(SxUA;HZ9v>Ufj*J>qihY2QeuRd7j|F|B-=0Xn$iaV?LwsZG^RWSX z`9D%gKh(m$H-f%FZ+A0pb_u?`kiNi%zRd@IA{cUIUi9F zlZcxYa>Yh{r4^XTk;=Pl2Wre}B*Skt{H0t)sy_o_&-;e2HVxcZH%GU$K1DEu0_EUD zE3kt*I~W&Tc#Nh4w93KTkcjI8Vihm1D$>$^rL}#a-#XH7$uY?xwMNZ~MLhEgfh^&& zrR0ozywG**L5)POmy2Bhl5=-2f2yzywZ{w5$U|Olj~Edqnu{dwjazdo-S>-{#6~ZkgoK&LRvYJ=W7)$w)y7Gjn!b#Y=S;-0 z_aN0As|GnT^}z`C)hLJfNq&|zz$1?IVm(mCs~T)}v569M%=kz=wdz2c_6>aEog1}h zU)|MkJ@m*%{mDq9jPpFPKqa;@f!@j=i(H2@B4$uy78{}sP#IMN*Jn60C8L#pg%!%Z z6aTDqvN{SV0}&8@;AXLz?O4irT`SKwN34(?I5&=EREizhmnh>6msJeHqcT4a-%0Uo zXg?9K{j-(8yo*gORksyfj6B&{mt?>ZG8{+}R*WqLE`^e!Rd3ygh~nC*)S4;mW7l^l zO5Lgtv37oNSxo(Bb`#-4LG%VInb)sm;Tdk(I%u|x13Xt1B}h-TQ95NdqA}8x%Nm_X zQCr&d+G7#2nz>s3?Jja$QM+;R&Cp`B0Ue4%4=2Tx`ceHu9kZ@U-var*ut6z1_$|4z z5rJ0434vDr9v-z!HpqkGY9M($LlvXh0J}j2MeP<$}a1m9~#< zYZRpTMWzMFpt0U}>oa9RKk#1|I*CAQ#ct-f>ac|5Emu#Wt^QUVMxysZTzR3S zmt9e9N>QTnHE3R8b$xBWE3f}^%0@(R2NW@+55yJLxnncveysY>2*0x$U5X5_;j~sa zGrF-auRcCnZdEzNud8)dS%k_klk=98lbTyDj_2%aIOmO!XT0!5pq@LUMUP|W!)a&m zw-wa_8J%aS@>nS^Cn!W!F^*a2o-Jc4mK#I*AV)OgqM`^zhREhhMS?0vbfc>>!FAf1 zbti77Q=fAu`mBp&@s_pto;EASO^Nfm;LJU9(F09xw38#-ZQQwQ$9bpNI(<)v6c!*D zk64vFDga2y38FcHx0bo?=AQ4Ae9$#MufE$^@$>OzJiCm&*X-R~EeTL?}eQLH!;WNFpn!?>rAZhr+%$j|})93f|BVC-Y@=0#tm z<}NWH7MgXI6O6R;T%F33@esVh1e}_P9-9alFx}rn3ZX~(M?3Pb%)VnYJK~+Vh<=eS zGv#t1$g82|h6oLxcPzq_tE&Aurx2mc!-f&cKS8t}-D*j`Gc3~nOX4+Vd{66d_iH18 zBk&cP_Tbgfh)_?Oei$ImfZ?usXN;Fkq!1WJmhRNzvX+2rwul^MuPD5684Us6o-Zz$uhYr z)u=)5dK(>45BMi7Q*cIlxLz{HhTK4a^L%CLK{r9Ro6KJ~t`YQzU@ZAiM@UTc zZ%=PEL=J0U1TIFgVNE0OGuBT=Dv`&ke}hABC_ui6CHn9{JfF6x4>s!F>YVl3bmpS# zv5c^aDJNueQhBlb{{F7Ax%4Fg>=?K~%yYHCNmtiM2iS*VKz*bNt_JIoCR8c9)LeDg zWMo1XpTv&-efRnT53*XIr9eP9;Ytego&F4B$JpyE zXO6DV1ko|!?ql5=(k?GFx7EGKLLGcn)wJQcwowe&xg8kJPx}N+R&auDgK?ZU?1*{Y zi4NvR$UF}t6Wq&>rBBM;;9xVf>8xmGYE`3$uA-62W|o~bDAvMC<@fx9S#K#3sR8tN+m4?qlkpe$UQZ6!D`jb5Ph*j71dor!uhWR(& zc7|N~&F0v!{Z{5!Knzk_dLPXn*{nsR4lN&t@r!@ z--wylcufYKM@$_wu6H!_3;DHupJ$}(S95-Cg1B?d^b;d^MxYKf1~=q z^@YW+=OT9OOu`?HNyDy$q;@6OYLTKhWKzHvQ4(}`xhLfxA2V^$S3(S zh-&O)3@tbCb^XeOgZsRaKFNSjvuo-n?+XbTub64=^l_G5xf3#bPM?T#&vJ6LnF$DN z;WJ2sc{L9#-r)FQtWZ|1L3WSj^O9+2!z*LYs=BCE^`JLSTfhg~Yg?LiQT&cZs#4s6 zBXMe*EQLI|mwgXiIzB3S2W5@*C+|JboRKC$K64-N2F1+td4!ktIxEqM^LXhVYNMBG zi~z01-x6<1STLC9Z6&M5n8iG!a3&Zu*PlPPdn6yoD$8QcaW1-JsjTW+J61M?evm9Q z6^^5Hqh&p>lQYUPZEW1crzC^#dvG6FjGgF95i)`DBC82^lkDX4cL?r0zSH}Fg;sN- zP5hQqjL$pZYtpYx%>#Qdm|b;eNXN)=*v80Z6C-@I^-+V`{Md}?)@uu;viunr)qTYY zinf^ zu$DV0Tc1VlXcDQ*WZQZ+(%~KV>NTW`VO(@1Fa5Q`6#EOR8FtZ8xDkR2f*1IZO9!RE zVe=Py)-Kxhn|R^a#x;0G7Gh6tWGq)wEZ&sUTLWx!_D1n3R!Jql}=?XXY)j)n$?4;R;Uo5cio(yP|Xb`TmiYBe{!FLbjox z@@%Joe+%Da9X*1m z@U{%;`>4XNMP#>7A@7$-_R8XZX|#+`xi7)(8$Vbkqi+bBWPpXy8 zI@{rmP#3TjuDYGz$4C7C??#!du<>llAIjX}4{%=af4$h|Vr}3k;%@I~;^g#$oFf*p zvvoFccmD6aGYPY{i~R5-z0rxJ4s7y}GQTCrn?Mv(_kSJ53Ihxs>XeZo;K4jKx2g{) z>kA)IkAU6bhQgT;RY`(85Bu)zK~1-laKXV1EPCy@zdX#$n)G`8ID>*&wptYinplrZEzt{*p)bop|uMIpyX?eewJczxnrc<hQqEEhDOj8-o6^1oT1NVsAl~_6@^eAt<4HGbGZN*Wae%@y|M>HN+FFBg44vok zfq-uHfq*#we^%muRp78Tgm;o!Gv9Nj&m9SI09;y70DK;CBL7;(f_zFGbQ~*`%rBZb zNFl~Pe#S&uQf7IZ^1qVRDwQoT@+&QcDXI#Hit`&H0+lw~)w61;Co8;eKHE(hZZqA_ z@5hPM2{;yJ#R#6da3qlkl1<w$~Ov4fu>~JmWXAAE6oBOv3Ac17WtZZN0}ro znf42cRcQq%k!skM5tzhv802m7Bp2A09gyKm(g@phM@3t-`pc3qt=nzn?ok-Hx=jkVP%Pf@C;2N`MiRDjukwHIVJ)lEPxa58>tJhO z6dQ8Gom-bem$nhS()-u>sCYjINlL83tu7QjP{k*^iud0FInH&TqM=V@9{wcW2v~T( z-$$^D&S985;!T6dG=-;OfjBPxt__#2u2}_0$UKL}a7u|{=6@U}d?KnIEE2vkD0w9V zxg~z#749D(`=k`iDmX_J%ql&AAlhdX_)@|e*E3ni6_APVph@g#RJrh-@#7`X#2N zQamexy<;HUVPC3%#$<@Iqh3Zc$X^Tq z^qWeE=C*MzP2)CkqC$S*SOv~s$rE>#)T97+rUN# z73+p?ECIo5Bo zkdhHA>Lim?#IflZPcbGe;b?0vC4zr^b~UhSIC8ddOuE`YjBp*bYyl~Nres76QT-vr z&uk!`!?ZwU7G%p5lWupklNws-JArAsxRQQS+o|J(4gXa*H;vM;Z!Gm`7(IFz!z&K>CDz~fFq6w!Fb}113!qWPTZvNVcW|4t``5I9z zIAKI@Eg9~0kTKGcQKEsceXO;%)D?3Pfo9J36;g8gH*zFng=tkOa>NL_sK&-tU7@AB z+ToDgi&is-)Wll2QJ&RCPH-|3 z@|KdJ@)dF(4YS6ih*D(QTJ^NLq_XO?T^VmKQg9Kn5}S;2>mtLX#)#E<>`n8v%pSKwim0qSpihmW#;R7U zo2;!efo5!`7Iy5aDsik;;!N|~N~Q=WbK4bRnsJNcLW*g}FlL4yI^Di`Ly~nVsYVR4 z#Kk44vQL}zFQ)hqp(R6VYj+zfhxYG{kmY%EAheg5C}_sJnHl>_7j|*(uMu0A5mm83 zE}{6GD=fnKrxhI?b_!Zv`2P4{?C=b0WdClKQ&TE$q_Djmox{vnx}5ihQDB z)N@;i5p%jo&v%x5d-4|JAd(Q6t*@PyytZ2GOTSxN+19#+7VR(C)I9dF^Oe=xt4@de z@J?8pY}*}F=4PG$0u4-kQyUKJqs4IxHGdTOBk$KU8NlFLM zvKtzA-C(r6EJ(WnKI}_3%6FbDr#il}%h*df%6BH!#@;%|^pl7>|Z&%jR|lW+Wu z&C6WM_tamo!Q~MJ>dM0r#>1lVIu4x3sTFPES;b`)2{MP+CQ%iK4Hy*(rBO;K(dGvV z6^sFnNGP!t$mGElj1squWmC?&rEJ0*LRy0To!*qqk`E2M&k#ErLv!QIW#YSRo01* z^VJmG#n>IK+QRrEBMsR{RYWQjD_+PcmDW+r`HV%Nl8rqp%5GR|Fj?b0l-&_}ruQ=Z zPHL2r9o;omOeq>w*yT{m=|o|u#F-rlo9V$CInU5 zF^OIf7zg3@Ld&uhiwBTnXG2WEBe6-9(0U#v z+x$*@dV$77r+Eomg>@EuyM)TGwfqJR3!-++@n!LiKMAY>jt3NMy1}&vSA9;$G~7bw zf*Z+s6+bxMa%&a%s-qHHNbQ5Bf*!aN^dvoK-~12)&`748V=6@bP*r#QpgiDNrDXDS`+lzVB}ys-aB};jJ&tfNDGVA-FPvUh*2Y z=;2a1K=QnPolok6=)7X5JC8EMg6A2=WXhyEng_ytQrwwf`rCyXt%-s&d01(7 zhgO7u4JUe>fm;XiB^};7ldZ)qu_!(br>x`eedfDXE>ve$pT2+^biA8r5{!IVO)|93 z$|D2?yzoo?IV1+9xh>p#woq^%KD= zH1Rp)HojMi#I1iqJ28Aq@U!UF%D7O&66gwvmM{up#pQ4A_EzNCr)D{>_VY4-kNaYF zK4=lXwOrtF89N@6WxYX@&UHuHchPR)K)V(CxSg|Ll|C#8orNGKul`{d^!EpmZc{3MT3l8AH|jhK_A6y3KQE4UjoE^KG!HyJdqtnnDQm$?^mHRKM6JM>kX}-7(NdH57RAIj z1GE@F4`>=g?HB5WJ9WI11V)8)OyhRkRZTwPSmBjO%QhamjOkAdcYo2N;07}F>BBpL z*rWCYz0xg;72Xg_2bJzw6n;RD%nqoX2|3*6`Y1DyT5ytzLSQkf8R1v_@WW9vWkO77(9K6Xp)Ce^>n%RiW? zzqgdXKvKR(mA^<*{7fjnF(-Q&lKmo&)TEEp>OXo*?yl!_d)bn6`|t3ikN6B<j+T#4!B@0vDM{XsXy~xyiKMY zLFp%DZz&YUsAx0PeZgGO1J7nBWCI_Wx;E}a;J+d1w}OGWjMmXp489x?lITM;r|=M+ zk2I%xu@*Ch-{b$@5r*g)y?~|M(@zc6fe%gx>Q^>+Rvmrn$7yLOi+0df4v7h%k!Mq7nhD#OQGtsfiTC@%e^T}KDv7Df7m;5N* zsBmv2R6CT6M$QJluEHu+%ma(W&1&3Ad> zjC8OinR?6(ZjzzogcE#LmS4Pp6Uv=C3aIxKDYY$WXE~|Q=Nn0e$+)MFn%55PuQnKT zwT^z(>|WQ-D9}betovD?#R%%Epq4|8-bpkO$M*M@OQBtHu|5rEXFmOB&u&yHKj$24 z1T=!9HH{K044sIwUIo3_fSWTigR4e+ z>Gp^ZJTVTk_QcYnjBggFR;e1|+^HRDL0;~HnXc3$+;vHs$_tVdt`9jL8NeWk-D*^y zM(u@JqGGDR_{q(#j_v5()u*Le-bF8@PLz44meyVakHT@JnIiUR?Bxh*KnjuTi7L60 z9lYRT)|VQ~N?uBV=dbab{vBG`d)Vj`JIs!;8|FL7ELbcDWxdROJ@JwvjS0v}4%7NO z!5S%kI->lXD)SI$goU_$gb3}M6dX;}_SgVlE~B&$m?Mq%u(H9!dUg&WSm++6k9%r{ zFP4ZK3d$Zx?P<_E_TM_YvC2Bb<67@P#pRIV(G7dq`p2UDI@o#wR}5p>!c~1?NSX@h z9%XD`tDE7u!~V@|z;V6d_5g6(hLOl`m0<(K6tu?xSJdOYEGu(^b8OexW;|3Q3yGY+ zt9uK)<_{j?V8`{jAtpnuhtSGuoGfGrDR{w-l4!Ys65P%9Ex=_6B-0!~&A42+eaS0{ zDT!+vyI|94RpbXz+9NqBNvq0WT*UV`sGs_7lzIcJj@T$SvsMQ(I;u5 z5-O++n{9-l;q*W8DJ8J{_rPgrp;plY z&@$a_@S2p3@d?uuMigw|)m{Fj-(#ACgCP^GqX1x`LKX>38AgkwOx?nHFAd9wyL9#` zCeL(E$4KkKVL6s(0rKR^38K^ls``p83sods7+3P)Z=gtmpzqht0N#Jdo$K3Sofx}+ zu8!Ons>%nxsE<2ErQWbI0Q?FVZ zvalRjG`B3|YrqX6*Bm)?{l&rUL_0YN`CW9T3zgH`>VB&bz$IaC-lX6ZF5`sho#7;b zeU7+KD&bH8?=}?2LL{NeJ3f)p5F;*Nj^ictp%kz8r^*Y>ULzAn$au+`MMB zO>8`Ua%U#tnJ+L)bgO=H6geaC*hb^x(-O}sj@%_X?I8Y8%z>Jh(a;#4;RJ7c85o=~ zxDivjq&q5~rOTRiiZJATIm8e&9p=pggYb^f;xI<=c~8b%{+KU?$2t_?r9y?qUm(X#bJls(fb|v`)@hCzYOeDD^DQI zUYDa25*qIX@$Z_LJxXPrv~rh4M3(~XAPvL5f;Dgu80v1NSr>&R8?v=B3#9NgZ13cU z@@Sc;haItXq=kOH1SSfY6ii~t`wN=`agK;gSg>IbWaGlmmh8D~^IN5rZRt4=4;g-< zc2TLBM6k(ce{OUVDf#_+7Yn$6S|J#G_RWQp7f%h3eoLena{Zc2$e@+lTuLb^e+=XH zbBO=!&dF7i6~v|V)1&4FRhp_DcLP`@sFr@E2y;Z1cirMg&EIFfWBs(Th=;9 z;y40TSX{`Bq~q%__kjG`8quBZhM1kntdn$VEiJbh-5?p%vSV${$=dLADriQ()WUM8 zvvIcG!>U+FR;6*!ZkjBi6{1n|%GfZl41ddOe>_}T=@+)jU&+*4J=w#b66&GJaAFnc z4fKzH20sMPXr+KP5>d5Cpt-(HHrVv6HC?uTfIhHik}@MiaGfS8eVgWoWV(i@!|Cq9 zykJNz!PPSORF*1cf)yDPQR-Y?D!(+VO|)<(x8-7eXmCt`i>M89s*Cc!BTA6Qqjssn2w@p`_a~xf zSSy~7k4(Y%YZ&Rjw3!DK*$pd<0pBz3=J-W|@Vxc6kguwBSxI14p+05ro(=ltuHezW zv+SVMx_?Epo&FmxXP2(WahH?uor-=?khj>4Sy{?!H5#!>F`eP0FObiSE&3^@n^r>F z&XWig^HpBeLU6F3D;aUeNee0B7Waz99>I&@QuhuPP*V-MEXM87(;fEs&KIqv%httl zDi&@3cu*;S7fgeFvItxCIa+Rq;5;q_oRJCJ5Tv+8&5%EzSzuWID*PdcJ5P z&mcO;^-_BUr|m`yYYPy6wXhV%lr-B3GD56|TrO*KPY4=C3{kbAvC zr*EOOlD4Ch&Xr7~(Sjn8xv4V~3(KYuIyuKfqz+FJdmM=GpbP0nEbb#DG}Ax;A}c9| zZR(eR-qr4SDT%kO=0?wDf!cwTaL{mw4BgJ{(=G}m`(9qRTo|Mfp+Fq6hMv~!kxz!% zEX&#=)GX2Q9zvi6YX?ESkf+2MRm4}IfO?x{${MwHJ?-Id*7&b?q> zuh_ES@mRCqkKeRl*o5=*5{L*>xd_Ylcn4O{GqladDrBiDFaI_$I$Ax%9ImV-=W7+Z z5x0)iM7ml%lsH&jPE1wLXO2|YQ;kvD#vts&+6bv5j_% zJzsHu2HC>A##pYt%`vcz9=u+wp3nJ{;U(&3rJX#Gb-t1ocZhx};bPTwE2`NlI$P{) z^`K4pb75{9y)MxciQ5=xXziH1E^up_a6Pbf{+OCrIaQq_!QhG6IuakXg~@Zah57Fr zxK&invvtIZuDF9`=E63bjLF$53S;G6ySjAkvAp(GcUdFddVLI9Tls0tgLC zfesL-S5#Rh^Hsm?z5a69G27;{g>RaS<@g&BTv6w$M064LCz-Ju{z)`Nv`A*W7T>$} zKCt?O3j5{|4o=)l*3YDB_>e0Z^(DQIWKR}IlGc?5GF& zvsM)U?T{lO#IfpuWt1(V|K8`0qH+t(rOtq z=qU8E+X$d6e|>t8nTpYZ)z)}g^qMAMGd4D6^I3;+tEOM@15O^U^QO1&-vRWNulD}a z`wjf}UT^qjEd$`m1F@AzW?s0CnZWiNbN?Ze{sVEakfnC)7*Fq#BICnQ6p z({5&oWA}t~vxM}&yKsqJF~o6HsGIbE^lbLFE8Y2=NPHp$R-Lh}sYjHdcUcI%QLZ|&L_xiN#6f;)A>e-B;^5ykk)ki}i})X%j6(l)o&x`_X8Udg{}w7F{D9K|0_^fo z4)l7V56n&=1N_{TgT4V!_#a-PA}`O-LNE1hQ8$$dHwQiQ2)?e6PLKnB2XGST9=r5G z-`<)*z1NC_A3mv&fNLxmfL5aZ2QQPVA4~g0)UuxV-&=|5o;Yn2+eiM0`JVygM8SXc zID_||^ZDOANBiI4$%(wcor8ZPVGw%TAP4pGp#ZMs0&iS^nTQ9TiHW=&ddZAFZW|=3 zKRWscn)DFJ5Ahc6pDcR&Zlo5`&`HI^sfvawn(*GekPwH#zTc1*;$EQ^)gYW{jP5G` zY%W-O=m;K@yfO}=Nn@TCZcwnS<+v)tn8HXOc%E=(C2#_Lawg9ObmQGZf0Ccr;?X|D zW(gQep8-W(gj)Gj;bFFi0zKU# z>Y2tbd9A+843MoRX9v93rMRa)41S7x>Em#~-l6L|@@*@b<<;V;4gr39b4y2=wR+fR zn*o4q>jRI0aqj>vzVaXcpl~wbVEf$9!5c%%iLSEHskYHry{QsERUsPOj9FyIT@?Bt zqk97thIadrk#}^<_#BEh!+oQnsluxzJ4#I7XZjG{8aqUm2nx-6(l~ecM5)SFuBn8m zaE`X?$NT(rl4SshkXW!&wqDZ;jr6oQ*6CXjDl>;qH%$s8rzs3Nv`FL?MaM;yScN9rxFJ8~ACt z)hn6e1C#SeY6!A!^+E@722X|4G;`aC1i=HS4kI|3OAMkaB}YmDwxXr)x(6rzL{7*k z?9G(Yjrwnw=+%jOVD~P#I|7vZLcyZ-Xnwp5#d=r^pxR z*x7IH9W_02{y*zv$c@?5=s}Cef_!e%@L@%?jttBt5S1q4#n-ICruzhH<^eZPQ$TMF zZuln%(o!(2hfG&H9M(11QteHO3c!D9(&XbZeg51*-bF~p_+uq57{8;=)rMlAm6&U& z#C0O{M?D$~Tw(h*BmZQ>h!?5l!arC_=+R9A>$28VzK+x%ilsLN)X-WnJ2-fALB04n5FFThZeTIHPoGI`}J%k2+JAh@{DaoP7WOe~l9VnXsu9P!RKD z*U*0&;J7g7OlMNgrtJ}Wt-^CcBZ;9hiVNedN@kjMEjQyN^t|I zVNJCdo<`X|bBnZcvon2LD~eAy3ouWXi>;Rgw%5-~UPwVi#CwYLh4FYpT!Vp@lp~+KVa2|Vsz2rdTNKf&m;jfx=SH%Gf zP9kT_1$+Fj-_Bh*gA&qb?8$@7rpU_9S*prr$XUxbAu&!7eKQ7ZGgj_OgIyu5=%9kQ zZ82&`0;g~L2|gJC*=DD;FN8@kaVn!)2kEPy*D|-!s>ChC7!X6zDXvTXHpo4W5siu6+HC!ntVIe4Xcw`|eVk;R# z{I`>!u=_T@-yQn;xY+yX?@q(ho0Cy+%etVHClUfcw3Y40`wZj>c%-NxgZ}adDDxNB z6a65RZg5AIM_gbcL1_!E_aIZsGC_AnRerD9CmT55FF;udc2s^ycaCT!a1PhmeO*2{ z!@uD1p`qBOkVdw|al^-`9X8=fqpI-Wl_8dEiGAi7aL|;l9I9r5vEXW6Sxz=?(1@{C z`?I-kcAWYR4f`&)nh(c)&TiBN?+FY$4a9{)A1B^1K#SA@-c|&Qn%~PCFK^rCB^h2N zBE>l8g=!Zq9Td#a*;*}|R9e*kAlB-uevxq++g85p9p{{D2PVq;EbxtPZfjt;KOn1| zI?Ts0ldap^a7eR?Ej`${4a=5m+D|)y=pDnTg^_o2zZXptMSRIblraVWJAU3(!`Z2^ zQ$ar4+!4aN(0$NHo}FVFYy{%@M^wZ>CY^{gL=chIv>{TD{MzGa@VkopiOJJf_=74x zix?)MG+m_R1Icrx5WnyiFLv%P>bw)Ehvb4xsT`yMhEZiCx~yz170HkNc9zVS@>UJ8H|b>-@w@%*IbL^*pLBOK zpv3a6;&*r85z6X4)AeG%@ruy*Sl=+O_E2 z12@Bb|4hJ6ha(R3FvgJ5H7Sf8MIY_%@EFbE*uReG?pQf$-Y*hHYuk^|qGzO~boC*M z1#t>T>GB5{P^j}cx48wkIN9pm(W_zFgGC0Tia-UzEq*|&@Ljt&IV#LL^@HF4Ks5Y^ z#<%*EQ)GWME(P|#4hj2jja%C}xj35q51D5xY1tvE!GFcnS~boM4JD1x5X)$;XmM%b z15j;;9m*|eNeD{LKssQ+%+5@0{@KP!4fE~c_5HR34-dsh5u-%pCcGtjQ}qQsk8(SZ zH)IJ&e#+!H$(-b1a?}twSs_JE((tX`I){Oq>ArR%i(kA>x8o~|E3ZN6JNi_~K*8WC{UuIn& zJiuJQAWWA%Z6^!kgMA&`ejVcE+mP7CDmlKn6(itTNtXT7w5I`gI!3P&c7?Gn<;>`y zSM-RQnEFS&TFY-YK+VahAY7h^IJ=Sxh`BAt_$_2(L9|t=9I1M zazQg&zow0`1GI9@DSby9fH8;$3fU%i)*i6EA+HC|aW^5@*(Pspzf17gjm${Stfd9`=@e}5X=6|?n zS^xa6J&XS>Q#)HD1Lyyt(qzTSAJ;5057G&s$QGiQ4ilHAXs^qj0#HmC2c8L}gYs9s z4t>GGkiNyFll*~8z5cvnyAG&ah9vFNaD?%EsX^7zLy|4Qg030DyniIHYl1;SiAL} zJy9L1d7KqyJh!@3ZYuaViK^snMxCzCYJ2G%oPN&6b@`kgod79~9icEv~Htwt~{YA{m}2%!Y%gCc z$0d+y4%>Ym)aY#inZ)kFjat9LCwKzh%C=D~L~SsJ>-*O5(&wFZP?)hXLMV~x#i}Xj zQP^y}Ry;rGFKu2I40z5?G`3H(<LCUirf+Tf0d3UjO?*sy%YO5vCD*cM9jd866Mm7!4XU(|0bST{%xMipbjDk z9jC2lKfN>xz<{|ZgM5BL1!#^>(q+0j^VcQ1bL(T zKPxaSmXLGtrvl4CfPi@ZubM$STjT%4BmIveY*yNpTa-usx>~6=LCpfE%$$Hz=;SQx zRp6ID{^1x9N)8xdq$-gATW|#pll#KpMc;8}07XI%C(d{=-1j?-yxnpE|3&(upO|yK z<22)DJNqfy`~C5Nq41zj9iXah$q&^q@BqF@6-98+5Jd$s)>g5X(RVSh1%GV%%i)2d zt$5G%H_9p63@}I_!hn);-Otheq3MpC|^VQ_TTb36gZ0Yw#%O z3EvB!=%+^rXzVO^HMO)uEFx4BUB^rl3Vf;no>O;%LCW+#H5+QX+F_3YO_GgKy)|fK z$f%U}ygOjV$;_XiW5_2Y?0|6yjAj%v1bxRmcrf(^FFhRsl;T9z>DR6%X_zI(xgy0a zKAYA0A~cUC!9AT1WdIkhdy0~wIm!~peX_+`i4vpWvwsBbp>oy;28!8yO@UCFY!g$F zYeKGCR-fkH>o6f*XseH*U2*)x6!fz&2O@)p{jV#IlI{3s?$wKH`S{V_2DlYtd-38_ zVNW3}h>V4X%2~OiMhn7Nq^njTJ%cUl*_*h3H&XH~YK3UnVV@ma&fW!G|J5a9Xj^Q(LYnjLu+6KDYv~89FSA z5y(i{JsF!JN=n(_=NqxY&Uvun9#}1Y*T;hA-nYq{H6t(%i2C5v+r<^Dh}SVvo7w3)mCsJ8)_>*2*`Sa9N7C(ov{gIX+aj+&Dhd8UiwXVTs72Jm-NabQ z+0nw*>_0X;7+BbvIR2N}JX*eAa*!Y1XOUS(tFT(L+x>PgAJmvHZ$pZo92^(<`v0Nq zo1!z@qI6^1ww;Pov2Ckj+fM%2wrv{~+o;&K&C1QWx5wzy_n}Ak>wa8gesj$=_XjKP zBJF)!35+p252^r2{@&OGInSqA00#@4T^h&r^YuFRuED=u9jZ3fHvn|%&-gn9M9%og{!;Ye9AN(mU zmj02eMc4N^&*xds9`f&>%c*t}MtF@7cbwb719eGMv%7C-!hUgXH+A zG#?EywBx>Pp<{Tq2TVh8h@wR8on!$DZ(D|s1fZElCp9m6SPqO@dsiK!zdb*FZTF62 zTjA2zBAn0Ro_8COxY3oA>=vf8Lf`8qa-DCV;kTksm4 zy?0|K%vFy42&RhD3(S{C_wD=TIC7{rAUXMmB1B-1DkdGPH!mCo0{iWGc&dhxF;W10 zhN-A(ox(PtLmZ)KtB;GsYNAnJ$sA}&E*)(R|XX46yrekM@@%1hQE z%b-tJUwz0)0vloz#OAn`Q0-Yh5)ZjqIZ1CsV&$LaglpZ(Dx|mQP|88r@2E=JHqYt& z<-x8Mj-_sm;t0;Ikt{BfYgc9uqzXfXKB7mb2n|CU?9QsE@DGN|Ke42~;7IE&zciW$ zwRn=+l!|TAEH`Bhae1{bt7{Tjq0kGL^S&VdYx&CV=WF|amoLrtHOlqBDc^6?K@;15 z*RGPb{DJ`5U(?!w?~FVK93(Koi<(H)+i_J*!v?V^XsH4|cqY2Vd3GD-QM;SX!52A0 zRzoxiR_5D9@vqQZLado4U86zSys`GF*Q19?x9Qejx!pwJ$dgC22wl+NXvs8eitZGV zjtCY}_F1Y+3TaMw$Ex-KqojS35%QP`Jax_*QwRFUa5@U?yY2@W1A2+?chkGCOA27q z(7c?pg%Ike2GUZ8OpniPPM$IY@RR0P!xnpaWmzy>o@rTdk3hWAxjAW3lLGEy zc+mt8T*AA;LaD^hZh5LU+MejrFWnE=4}ogNCs5la+{4~&R7WKmO=zEcf!x7qAB<ao;iWjY@WQKv_46IhV=CiQmT2l^r-2s$_cfb*MQDy7%n10RYy5~pdkYNKvhRP$KcR! zE6_Jp3Tl+CqgNW8!=A-on`T;Hx6cOM%|12Xw39dc=kG?!2Y~(0{y$SbBlD05&(F^4 z58o10+a8Pt)_M42xX7<66=A7ecDgH%exuo=MKa9(4q0ux;3<~vTl`3#C<{{YPf+oo zqd7ys&zQJQI8~dqWQ#&Eh`7QbP4>T2DaU2aujcC<^p@M1-ItN2{l{>bPUwmw5M2kX zSaP$dj5}mMSbu>a38ut#gy}1gLK{6)@1Zfnu>O?I(x+6WCJ0om5D!yXib47enxjH7 z8q_Hmr5dKqMgHWJt2OWu<95WNz~&8zcIXg07NN3CiZNM0r1BR27-Gg~7)J^ha11*@ zDj(Q+X4J@{ItikV==)?Ky@mX*?NqIkj5O?f62OK2U$#?K+iyMTzsfFKbw(Li74OTs zVT|Hb$(%?6XN^P+9{RjOMJp4eg?fodfxaiId5zp7sMvtR76bApf!9Uf?UE;zI};>t z5;iXPkNt-w>=^ouiWdI=ci>q-@o9#RApjB`!ZOR zw=F@9$a^OJgIpu>q&n<4#H(2RT>~D|j(Yvz(_>;tBcjmz$W8lj$G^`*fkf<~uO0Ma z7*Ta@_*yfQn8hRnm*C4n0g& zUH+s^=%NwHK$%Zuh%GL`dFj#C*7p*=UXyJ9O&)`SLQi>goHGpZKRJka3NEQx_0-HZ z17B~FAmAy*?ck*mkU4@lvY5ya6*JYUPdiKjNjfO9NLHyXKu<~Un63h;ta!65uBuUI z_0nwC2(PYeJc2hh#tW+OO+@+_1K{l@rFBIn;+o@!%h)&#w>TG)5e>^`?@VMUD(Sk4 zm6UW*kVXsAOl&Q*-JoJG-;_tq*y|2c|0dse`Axhp3pX}fM@6)1$@v3@YFr-+WwwhW z4%SLqItq`$Ktf1z_=nuYY<+(!?vHVeWP@Hb`wCSzN?rY9x}8~;q%0OVQ4*~d_;*qd|9=oWN{FK0S7V~+Y>v+?GiQDSTvnZCtH(8td z3)h@jz^6$t6d;61XnGS#2BoSIt&Wx%%1}YYC z)IJ%N&_yTUNFm<{2G;PWm_ChY`c@@R}}K3($R`g9y3dyJ1f0+ zbClSFAID8X+U1rx`I4_rx8!hwd|(kQa3yf0Ep7~&Z4nw%jQ_SpVCO~*ZW)HOsW!5^ z>%VuyaGA$T7zSQrSGZqQw%}mQi3KZGn8}HPY19{bQdMY`50S3Cy@0HZL{Q+BLHa$q zGA_)HFr#6%0?;sZ#g+rke&rYu!r7oxiVmDlCZjlF5f|T?iC!KdJV6!D#=I)t`1^6Rt9Wf& z`r+~*S1O|A;ah~XA@G9%MO&$R#6d6E22UC4gOePIS5O+?N11KIwdrU7jH;i5`sW&f zqRs|ZPzl^xEqJGds_StIy zwnDx#8)G81kZev1@tU$~C1Oy$`#jh#}# zQ^@L|Xvn~jm}!VIFze#14GHw?=xr0E8yZ%lJ8|{8)dUu3DEKNsr1nq=H9*Y6@~TuT z7nj~@nrEhl*Ot@@ms(N*w4Jc6eP5U)zVA5sjrex+dD#A4<$+C+xHA2#j8)Q%$ zGbAx4elV}fSWlXknAJ0v8F19sXGOClI#}~qa!>YV^=h)4aji^>G9mYofysd-P8}$^ zCWOl}Cze~onJFXZM(v=1l@?60g8ku|5YCF#hsa=zgCYkTOE+bYoD#Fgah(*j=XT|s zook1hjthG{QN*j7ot!o{Bj&{I-60zqt!*qP&#oKw$`t)y9&C(rA4{d~) z#^JKsli9UqGn>k4wm&+&Fq~epKiaQKX5lvjo?heZ3~D4YBcAThYIbT#X>`e|KDGum z!(}d!cBq;_(uon)H84~s@q!D0a;(|2Ms>A2vW6XQffdAbtP!hAZnQ%B6}iK$@7yx^O@I=%p&c6E9pGDCEDVls=hZwYM_=Xz&0^Wr++wI(!s=la>ZYLvx0 zt;uKx$)!82NoXc-?;6%Pki|Q;s+@(tOE-IO{W@F_r6`+^p9AiN>tf;fdSK&i;wQ%+BG7c6#gRVmYg8VAYQEo!+cx|Kd68 z6VS--h_PRl+sJ7Kn$=nX7o zu6W{V!NKP6-p~T&8k|Q;qKpaXLA1}4MKepfN=>@>+V%dz)hK+Su5bJBCD+)y4-%3J zOL&M7NOWsfhqm0rCI|LQoiX60G-3)c2% zDo|L^ksD!nEYr%;V3G|GFuDtdvlW4L5o|k>V+9bO>l7!=7Vn^k1@#m7xwnrj*I=#Z zUY$;OcA0?2C}|$oR9EY$9n}EOCD(~S6_b%ifeLaih=%7IODeLt_NGuIt1TI_z#B`^ zY?6yMCt;m$)JSnSVw0C7+>K{+oc$mpKdEGJWW)#pX5Ek+htgFQT{ID*2M=qAs95tP zlOa++V9->e4mm(d=$!9r>!_+~(lg^mFS4|()V&&#NGI;!D@ZU|G>IJVH4R6q7vP(q zrA3P59mbMs*f5EVwA7uL2yxj-A}MUM4xgasjMLX-^>#m@dHptVTfyZGDt_m0cK=)s}&lAQpK8F+|&}xL00{ew}O*oTDy(72-(aD z;)XzG5?1|^NmXwZ7@o0MZg%!6H17##CijErLD#}EWO8f(R4KiMn0gcFlv|fIx24P& zeNwi1LRY;+so7)^oxx3!O9fp)^vY9$iH@(B3+cfS^I(eb@xYy8j8`i%)(R}^W9(^xlOHuwt-1u|E5+H8vp$aUN~=XJ@U_^ZqlvT1 z@<2Qo5y6%e=9#8k_A1Tapd;n**P4#^L$J)1?C*wp3t+|hZUMU6E(gvo5|;~kMGk0z zF@`dq(wX*4eYY!y{%c}qA3 zRgK~%dTt!pI7IcXsd7Jk?Ovu^*z8c_YH)e$-^iHX`STjD4 zzI@|PYzvU&#zAVgarK~Zab%ty1&FW3(!4F!oL7oG8c`T5Zr^r((_zW7`RiU;SV~pI zkR%;eRH$7KTQKY``ZpY>#>e{(d(8S#?^Ig{#tLz*rdPZ0sPNA4l+dQb>r$AqY zMQ$u>j_{dtL%T3s$!*Or>1JB%WfMVqVLHTW+>IwoffusNZ(V5F03d@!(|zXZx3XT5 zRBflSwjj(ofDiRk_|nFvEthplq-%!$!R_H0_^@FP5=NAvTNLIy+px$t! zZmaz3!be}$sz379HKZqh5Klre-UuwaB)1!8d**sFi^ecc$t)s7Ga`13ahhk{PH-_! z(c%*1M44nWY!mM2l=wauNTvi7hy?3c7KoeSy~6h_q-y&1LraVcU}waUTvNaU0Yp$Q z-cl@a22-uEr<52L7@PX}fe)mSthiVP4b6sF7e{c+2ii37HQ=hsQ?(a_+Nf@tv z+K-dXt5{Gv$#FWHDP6V2FIuKoF6UP8<5#B5FQz3fYGPJuB&^k0U4N0e`msImi@_lWqE1llW>e|BBxH#Gm^+E%Eha{uLwf z6;tyUfAjNa;b$kwr|#U}D~T^&ulIM7&(Ok8d9k;`Id?LY9!tBAikz2{nwOHRm!p`M zqv@9;b8l%fUl;L@v+0+mn3tvL7q+>V=J=P#xfl3&cX8G&>~J@+eGbt*4woUjvzTp^ z=xvCqk0z*3Bmdldu5He?mOt(YPomm3Q#=!5b-qt006#NZT zZ0{zco4M(}z`4HetG@28Kp);fd1pAjIj)z%tv*Um2t-0`9=xG1c`=AWFZu_;x47V~ z*vAp8wIs3H5zGb&Gl^jP_9__9Wg!>NbD;=P?!;~xXeYsA&H2@~ony@tzZ3O5H5KK3 ztqTU);474mY3*ZzJqgjnLyR}Y>8skIQNdPw*T_fu$XBjy8-AAzF|= z3e|#=!9x^!htYn{npyDTEmJ!Ure+MM%6XS>%$n5SxeBI0E|nL_$C3ZFN78B%Q9w%h z#iq1)Wfz1|9dI5i{s_TeB@(5z9;u0-;=09w@h+8O+-@j6##nMvV5=G30X4H8W zZ;%Z|Wzsd>C8);98T6Jx!V-c?`w;?}0VTezN7o9=;$*EqknkTrPnd5)6q!C}oR z-^&5hD}~P}U){h8HDC&=g{TduPYrCDs12jf1GHY**O0fjaz*pt%$9CyR}V_sk0Eg)wcq;n84dyNDGX z4S$9vq;W}AwdltUB!s;g4+g!+xlGpAv?I73U^Y4XHwd?MSI#g|)^&8)z^UCc zSE{F$U|MRh_HO_?vZiDtN{}#A$(1puBayu9G|EjE^g@;>Jb;J}mIu*_{ly!L;i$Bs z9h{fBKNwOLE48^PV!1!UzlUoFb)PFlKCZD$vP;B+s247N+nBJbb_nM8Q7@5USF6{; zgfjaA&?LsBoHpmd!%Jo!6%H#3KVmE7ZLu?``_dZH4ScRDbK>+OU`L_0YPx%-Qw-Zs zYhhXWxImzejjROC7IYR%8(6#pq!mOFGkGVJ60dh0`#TAmjV2DJ2gMwb%PM&ogMU0v z_@)~JP5?nkRQ`U9#xMfVKlcFOlC172{WL;h$2NuMPmX!v=R0hvbV!aY|N4`Zw z2ctvmolbe7S;!s+`U#^q|`&2TYgyITm%Vg3J@QQJsL4cuRz)Rn- z;%@`esQpLU>4>K|4eT+YDV`V>j}@GS+Bo9$FTTK?r}FKT7XwwhvPag?5d5@ccuZP% z8!S?dt==k}Tb33#QaKv(;}1Wdm3-qR^X~bG837jY$Db%vRWI8gU?3?Y0NN2BPh`1i zoJ}{o*_8*szwJ0#61Nt=u#|c1xdsW1&7xj#`$icL?hRg}9(Y++t#Hrge2QgYAqNlJ z22qu6&h^F~Q2Nl+jgz?$__YKl4iODhL%Xa{bM+=?m8n~Ho_wJmp&;8_QxA<~}rnsrC&_FFAioH4;ct0i3}-WgzP zA%^SDim2mmkoZBCBlsD6IR!;5tstML=gl;A9qwa~W%zTziD^=sBH@?$0^mPf({Pmf z!x2X)7_%_WY1J#C9d^Bwy(hdSr`jyCequIuEW4PeHvl-pBXdNlcr(!wp_`%@ z0-g+SL#d=k-8+&Pq~{NV_DjWXk8zUyQ9o$%W|rp`1(r`v9P_MPobhKTTpnQZ7-#1m z1!@=OFhM?f@jrd?{PGIbfqmj*o`5#<3UL9p^K&q>l`hUKv-I3+un$Arp767L_?s|I zzr-Q^ZU4-r0^u*r5$6qXci^8i3$t=%B7F!^{#Ak8iUr#$+m&YXP7h&RzCp+7RvJKt z|5dyzi?da=OOMm7HK5Jr9UW4;c;kZeH@|oP^l@bJ9)4uoPXhT;YRks z)ZiE+d!t(5OG11b;^C6}4I!`f`~+X%dST8D#3wao3*0$1<_hA?7T*VP_WA7Oy|?zA zt%o45Gx6S@Zx(SrG-w;~{D2VPeSv%%RT_JCU`JuftNU_mt; z>4m03qru2-RJ>kHWs^q{YO9?vpv&}H>Qox@-(W=z;4^d9!MMw=qN0u2~_jg`z08l+nAgiA#Q7@++#l zjF!=&ja2i|W0easJPXM;{4b9MH~0sE=^8{cXW6zSulcFfqn@`Nt&$=s)Qe%aYarYf7D`r749Y`&#vjZbEHabh14MO+2%-o&$5AA7K7I)E-KVV^@+- zU*zq2iv<(oUQtoaB`&B8#}^c0TT;Mn5RBv^bV`bdJ6utMvJgI$+ zs5z~yIJvPqubodsU((TE?G<0qv8*4+t~aaH^l{UxvJDOQj-F$KdOuDJz_qca#?Hy7 zJ7az0x*&0XhAFNE5*vL93FjMdq{o?YlsV_m*-mza7Oh0XwqliS=2;>f6dWC7$H53d zZ>I2~e6Wz&00VDQJ|)#8Ir^$R!m!ib=T??8_YfI#o(0qb;4Ce}jvQ$2T- zA3t}Lhb>+iHGFbFWJ{7$yDjrTK%HSYSo>%5NUjB)_Ga3BT}^ulIaj z%pBZZ53tr>?h#F93=D$3nLDpSi(kW(|D4=bA4v*^RGLI+#;A8%NWfe0y5zWRLOJcI zn^UN%01c~DFtt*?WYKogY(F%UYvCServs!UGg^r?vtp+t+f59w$xmjoiNnAx9d##O zl$+I-)dly;j|t3}`SaszE$Q$CN&V8q5UisHmS;vD zP;I`rh1YvZ&Yu_)uYlYowZHvZ?mwQe-WK!O&;0(d6l6cw$!^y9>PudPzz^9jP(1w( zIF=Lx7EyMNL$eEw%RhurP%>XJEOIUEpwOFPbk9ONT!)WMOz?R{TZ2vu{lGJ(v^xCl z^HrQSyo7`}c-BF)ffCCpaM(O2jYJ3YAMF{FJW1&q=5%$q z$1BPg)Llgzwu3ZWMaiQgE>`5r(KpU#IqNPn44Y0pPk8gq&rvscoJYvs=VWx4sf*!d zE8N&~-sh5GM_Q#sG<9;K&JmBsB8d;ED!`~gE-7gQx?$Q%WxS#}KF`Z;=n_r`t8I-* zkv1J@CBwEE_dHw^wrjw_&^Fb$rgE3UdW;UWEAljI~YTGEWg2Hx1=OcZo32Y=s0vJ^0I8 zN~h3f?dN26Wutjrrg&v;WcIr60uXpYci7aUGFe)2UtJWlsB!W+O!i8U0XU;B2)F7A3^c?3R=ua1NuIhRT zT%PB)2bN;8`+-8Ue$pu{=g^lgu`MK&K=Z*{v*i zC*r=1TDC(2K!B3x@hre0(t=HU#o(O=&5MTOQ>kh%7h8A5U*8)YvC_}oTDMPEuIaIp-B0LswRr?<^?7EQXY3S)-=;* zUYw znh26u9Y&ug7%tMcoE@rs!nn3Kb)p*N7jZ56i&VSpPS^$J3k?_D4TVQnZ{{I9h+X_L zly@^8ntSC1>I)7R(M>VuiU|~hxIK6PEwTubPO$#JACf?6x8MCThjPY!iCDa`6_u6@ zI;PNSmm9Q`{Xl}0#`K|gLaXGq?$-Ve?4{M!F$?Y(VhbG4W7X$?+YLbj06GK0kw@5% zAJGBp$(lTKa-1K*;T9rb#5 zS+*#C)yroD@b@wP`G8&L011Ongnv?iF+69CRciIhAOKtNPw&O-v~79+&)HM5uL({wG_BCE&Xq-@Ck)N$}5E-@7<5 zqsq|^B`fll;!u6qm9)5SEOu_I3O3aT9cwo2DXj^^X7g%itBxfpYaYb@76*SGxDt_l zhApHt&Xo1ELtX|ev2Y-xqO#KdTB>j*LNG4@pkUUjBFs4Y5xWfS;o4Z7ykx_Zz zrU`MNnB+pBkuiBtJjO4uJYipm9k5qT|J6GuAg6;|kjdm+NKQpx;2pA8SAV&7)E(nj zGa&hdUtpY~dXV-Nzma#w?xfiuM^Vn77m5601pk5rdSeHEkVCw}K)hB!-LWAboRf@l zh{V}N5N)Ff{*?lIZGpO5CK+`TiR(cY{EHEo>g z;H@t5N{M{v_5D4P>Wie{qcZHy2l;SYB*_m`(U+*;LqUX#s^9}^hx%>=NIsb#m{ayI zWbf%+DbW3aAIN0t7r1@Mhn+w8of(kXcrIubxgW57%LjSypMx);EK)!48|POmf2YGj zpqV;Fkg{1Z2aK5}MTiqR++?6^n?eYId+P-#^X}*pAT9ku3W4JlD#)f;F=gOvt3p$O z<5hE5mc5c|XRWUPAsm8fKK$_Oh2zk!9 zy!Z+s(bM2b7KLU&4QuAad33nEjdwuhCH4?~e}HEYT#ief`Fe}VlI`~j?tx5!^?+6& zUhsP1ZiIRvdXGWmAiW88(0WDvS%5K7<)nd9QT~4YOVv32&6@xeXD01@(-A|VfPmQk zXS@lU?}z~dGZO}TM>~5HM`sHYr)X70`E@2F-(z*W3|2d#YK^r9=y+lR55xJgw1vAJ z?$lwD`oMjGxk10}RavFdpqNnhn9ohO?d)p?at`zihf{)myW8wJOL&s~5LoGVaT9lf zq2;si;~&6*)Ho_2f{Q~mKr|Z~d+lou{#8(aHKYTfZx$};QhmJ98l{iyrL=ox!;Mp; zfLBr{oFLZPL^l{>)`vtpUltgA8zu;@$z1EE@Ag)Hp5i^!DVJ(ug43+i5SIt5@C22h zC9tCry>m}40u{K|tg#3r`^)v2LXo!)RtV7SD4d9V|Ff-U?_hYQmiTxTB>WTmf}}-0 zFIDZ%cVQ~#P}}AXRg=^(G^Q3FrFI4GSWW02!n4{{!<2ZyGW)z_P-wh;sOg;IUH6vjZtGJ2%M|8_vb6NipLnlHC91P=p^AGQe&wO?ZX1!73&wNw zV;JSq5XhncTfgcl>1}tR;o>=RoOh52%oVk$QJ2FoJ^!wTZrSS=m?rPM2_Ac~UdZBH z)#HMnnEfLk=SR9Jgo%}i7jO&P=12lsTD ztGicxV3UTf{5mJj?ih`tGoA`$z1i^?0Q%HOz0qy$tJsWZmZ!qSY1NTB7IvL#hu@9( zm)56y8*v(NBZqRN{6ZW0IP@(uiAS%m{)>an(@XU|g88T&{PeBDwBi+kCFw{s6VdQU z_=*9^J9_#*r;nvPbwY5}M>ZZeaNW_idGaN7f4dfSAEv7P?E0A@T-7*Sk_OsBP>tIs#wb{ zD3(oqY37{Bp^rjGkYsrtVN2IP5+eHDi&f3rNwES?mss+(E@@1Vx+Y66w36CietS1B zc3V!~D;Bf<-SJk|?Z+UeS7^Oa;Xno-t1NGH?B9PW4F7?Q>C8pf^fzSgzJA~*O}qpJl*p;iRYj>CJlnR#=sP$Dh9 zBv8}46e@ZzYr&;oxww`XDGjd)(JqL1+HrF*3a&$ZKxZD;h4i+BIxUB7UXm3m#aR~R z5*Abn%b|fOZ&IpW1hInzzkq%H+6cg7oX%Z;n2MPUkM71 zmM-oRAgPbG%C|0@88#LyiX#7e!4;@ah z3J)8GyW%^dO~4ah+YrX5FXYWkP*Q zP008>ynpJ>&(H||&__va=ZZvyrAQcS8#P3R_&$~ZrM3y->=PFVRUnH^Pis{nc321j zDq$+VL5&#SQmz&R{uKFWQ1YQ{M0sF)n#f%Kr-y$Z6LeZ3F@f7UQgvMAM5F>~n(e{! z1~a!O%V$%y4WV^v0PW@${k(uLPvFXR3!G=?n9NYv|4p*akF9$D3Pgr$y*9Vp#+~sD z%DBm8vyx@H27)HxFPK!IxOW_e`Wa*$UFNfjXENR=q>i|=@=*J1$nt{G^)*>@ zQ(Eo&z2~OYQt5psj(JTM8uaUiJF+xViY5Ks8#8$d2}Zn_#T`I$UQ7PveJw8{%aE|f zLsiHyGZS~uQdd)S-*9x1aCCvE(OUK~^@p>zB)bW@i@z;-vzW54L0vfU@aN2n*@ul~ zuub)%lQoM~bv&AV);IhA9A!lg2f6Gt-zw67Sn<%PDQWTmTn4?_C2y|?CWT;!<3H(m z|6pXBvZ&kjo8gX#_`k-8rNO^2GNmqUwZVkc{j6?Hy+EHINq>Hb#BrRXMFkN04JnzD z7iyZi2?kR9)s+!%Vv&2x4*fu)J#S91&BLly{y1E7O#3of+2U0uO>AIoiPe5az?oR! zrJoW0nyD%$r=|0BAcMp+D8i$Xn$%w=ja3~ohmGYWPl`2Lw+8Nsr^(XL(-`}lC&Mvd zb1s=ZIH056E>vfr@l1rPiGM7zw$~w`2H*F|9lc>S+%9}sKC$Ew+&P&11QjESgHMz} zsxFyusba=?qj|gg_9LtWhr))>BU8TSZmiS$j!UM%#$exbqQ3(iL3^^6#Ek`>>@1sF z^>WdUhID@{L=tTj1doTy6*6peg4(G^$LkoKkaB`>8Yzme*f8#8r*CfW8a`$}zc z<%(*|99)0ki<)ldMbRIeCCVkZD}S8pr>d$5ZIs99*nacs*UvYG{m%5!=+Lr3PutD# z{rK+IaC^s<1`bW45T=EbMdYdxkKQE_778guZP)e?Dju z@^Hz-Gkr&E6O03?oogVxVEkKT=;>-B?0`13%FKb_zmPP_p%d75N(^M2ni9Ewsgm~Q0vv?x;GJa`$vKm-kY`sv;U z`XZ`hs}*ACnvy4B(!xKs5oDWqsaH7Mb)PwP#E?`*Y7v_Ji4S&tF-%}$>U_!S3z^oo zHa=M=wqllVHQA42882+}bR6(^_;JALzH_qH8ZrH7qhm)N=U1joq51*A(ZuAIW~7}r zgoLTWm=1eBMCf1zb|R{J2ow*Ig%ST&)c-@R%}_Myl>WwY{P&2+^xuq#PK<)i-*QYt z7iSX%Wi?3~d+Yy4u1!|ewEIq<`r9IjlhF1+G^;f2NC7~(qE(VG_-INza3 z&4Ral75;q#gn|x2rWgOB7=}H9V9_X6pk(&@ed=|}`u+U5l`u>nqc$O}R|sUkZEO!C za-Hs~u5F@VbdMnNoeo2jN56h>&j2R&hBJmzGO9mn-vV!Dj|v*=NmjE)v!*!9R9N4& z{#5N=ZGxsJ{#Erf#pGwt+H?=oak69fVN8P05jY^|)4BR^6B-Zx{xV}lZs4{np=C9} zWW?22RNyxXR%2?0?PdknwQ;fWBDa#hp~H};)pr(5VFm}aTcOsD^76B2L3@aRzQX+|Kf_W{p0pW)#Kwg{Cv*kTK zfhv(XPPKHo4-X+|T`?o4o}@z{t9AYv#hGMZJ%27@6A)ujerU!Ndm(>Cq2C3$qijaw zXAOp|KC*kerHQ-Ark721`Vu9*cH6|ZH_#^o=o}&DS8VkmDd1%cN&yxZKk9J3;4X&v zK;M~-c7PCYI0r`t=wf!t0C28Dw;R2%lkd4Q4K=qbC1e<@374y#$FFJy(3Jfo&@TkOF%{r?T0T_`|jp075}tXpUHK?16s$am7XK z=!)@x|4n|=J+~h2^;d2(n4!0X{B?wH2k}2I*?)j3Ngr;6^DXK5g!%6|?@o-O)+RP4 zw$A?rmeHy<|9DOL+WuiBTb*Z>r6w}e21^jYxz&v@r$#TZ5mY8s*lroybUr^Cnp&d% zOWgAUY!}T4#HQmTD^Y!_TZAg`$+Hc{VJ&0!s zx6Q<(?>>4HW{|n79deD;ZT14#6^BSP2+g0K)sM5#FsG=??1#Gmds0dpl85GmZbC7K z#agn_bdyf^X7Wp2Cev&?1L(89ssQTBy)iYvdP=5R#?Fp)hc1`SDpYVK>lPxvBRspP)*)5caJaUdBY})jHitF}TN|+eNuEDCCWezXQVAW`BB1_Sm z4!sw~*vptg3n*-F>TO{L?}Bk8{b5U}*@`iZ3!O6G5f+mtFrCdfH=pt5Bx1^>7>OVk zL~!GK<&ev5Nal({oh9CW;r^H+5}zfU!zTPj6~%^v|Gi^t?(K{r_VK)$@3;|$kzWvA>3 zE8Aw6ZIa@T%3nIcIPk_Xz6RjaM1c+j*a9gfN7^`9cE`!Zx34J_C)zj#b`~++#fon! zC8z5Nd#Opq^>0rZ3g`-#oUtI!- z6(^Gr90CXv;iyAc-?88lKRgo*B8Uf=J|SP^cSv>A-|6EHKTRY33@@;tZ*hbF?Ee~t z;ZeMr@Oid4B%sU!rK45Ar&l&-D`NLb& zcuHow#-E%TWf3R7Lay#9Pu``oh;xd9n*5OQL40N_M3q2I7teHZ}&1 zWI`?$*3K5T|I7p;CPx1;3sfs5vtsvcXE)7p{G(@D&aWU0-+DoDNGRGs zai^x27f?)drCu*o_M3g_g(FCQ3UTC2L^Ql1km_lAMerR)`UoN(r{XF;W_ZoTg&^HI zO{6RF#0hUg?b;9f%yomCD2ZEB9@Vn_36ci;H0$Q^YYSz2XG}dK=dPpG?0vO4VLyxf zXSzg;=zaDTg^gtQ1?#aa75m`=mU)kr%~3K(I{EkBSe+^-^3%x*GOf?rU)&vUC%jjg z2evMvnPv&Pwnm=XRJ&s9XL8B7O*ek}Aa3V*SK-Ju0tK zL|4Yq_0y%tRC$xL zN=|9HN_!+KfNt6L&?px@+W*7ZHwIbqcWHK)ZQHhO+pg-eZQHhOblJ9T`VRHLFVhwvj*xCgEQ>K< z!w*MvE)GL%!x1;n=Gjd^crDIc`1jr!+hO)4;Tv8l#`leGbPpUCB}~ z;+-@eiPPj6wViePi=N)K7CC9{B03=L`$#-JAVa;RW}J~@_HB^K66zp3-~#Cpkjk7{ zvu+0J9q_Vm;VBXmO*O||yHQk{I7@9R)4WisR>vxg&VkF3%`o*EucWY`zC0IbS*l9i zly6nwvAO{@9Zg!vI|#I$YB~Ae1ZUT}Iowxo z26)3&FpX((l=lu$n3QO)^5g5=%N8rugMA2zC~N5~w=dI^uC=#yprn6tDFzdiyJjHeU?6P~gb;3dTDFF$(_~wKx-pHu;y@LX-rxlg z@bZjpCEA0N*mavVmpK;`m2itGwqIc@D*-%@+F`h|1PO7gVu1JpxCOk zMXA=_ZLKXavx({W=RBF zg_c+X$sG)9Q|huxk{Bj>c=JznyL?w|H`7&e1a&l0eLvW`EH08u>!wQ%OEjq-t9|$U zWD)MhEHcP(&xYm3fFUob1NUeq{q@qqcIF5b++@?T;{&d;5E5`JH38N+Rtc+C&h{2l z;fmyAOR^#t~_2VqW)*=}1ySeZrCm30H#$yN$G6RYcPTIN^DxFv#YDJ1AT^NUtGAK<9(ckdwPA# z^wL&y;1|>z*kNr1KTn5sQ#N0IZYz#Fv> zsjN^!9m#-7vD0PsC%12DS>@x2D3hxEqtw$9(MhTca>C;b zQ&g^*p-QJ(D}$J8HDs?97pD`crq@vbQAQ>j9fROdNbKRp9K=($AeBAuWG!YPYa;dy zMdOx{OVP_I9z5=N#U*8Q0z(M>02%R)b8_N-|C+g;nY!M;4079rhTj+lLk)9a@+Uu} z{JCJOeyf72XUiE~1}fpz5oxxU0hL=qUzKh)dOSkn^((`sU9eFVwY)1FKUvyTI&oJ;(3?9p1UK|Iqt- zCo_~IRn19%jdQmkY)Xp6 z+l)43Tx8ihXR*S-A1B0}AgN_BGP{7}lnD&RR^d!A%Panx-9k5G<_P0aLE_AB>CxpV z6))OmR#WWx__YjK3PZC^%A*@_4KT7I#B_>vYqbcWE~zHTTh+t}?kU zqM=g_h2ymxR#Irjx0axJTA;k?&nY9ks5m$ z)YaP-&(+%kx2glpc%F;qLd_k!0P1Z5`SW9u(Yg6Ulw(~|TEs|3r-2d4iO!vZfRAKs zvB-dw1)GVMQtn9HP8|K>cLkq5Lvf&**isl?Bj>DAY!qlBPjM?y{tGzA09d&9aF3;l zOh#fhf#u-{S4V=Ra5C7L%#G-fT)L7A`&mY6MAohO<8d*xgup1w=4xxA?c*tPBFw1s z3XP#QPOEf9qn!xW5Z0Wt)iUU9DANeyHpPB*(w@+F(w^9NP%SHu1#Km9(w+c2DR1Z# z6mRVVZg>Bc7w_Xo<>5KmGZYruB3pO5)3*84}q}1q!aSF8B~hK7;wC|AwIZ zNdBrF`gO-1KwY_K)QYepX`7ocw0j31;dhWd)T{9~%fh>Zli4vpE>=zsDdKBS5cDer z$okPqTP=@)u5L7hz@cdqcM4kdEZWNh<%gSN)1gAC?#g_~M z;t7Z@h0GsCkdQPtoLq9AB9p}SNKrkdvz;0{&gn^!-8Cz9T$+t;SZSVSn2Co%G)jYR z&LKd{li~nn>{Eox=sk+q5VX2WgL0UPhhSK=O))YmL`<}1Mkeh5Y2^2@M=hdNi3Yg} zB^_zNraNBFvIo%;TSez;itNm0%d3_odU~oKP_LRAm)(oj#>Qye@ylP?Shv&_ z10&G9$%$WSyt_p9c9s*vXr~-%Tcsv<4cOnmmhe2k(Zb`X?c*Ljt#D_u67p<&Vr7N~ zx2^Ts{&1odzPCxf9FME6QHm^22^Z3#s z*luB7V&G12XdA)K#m^6)Ag@pmtb;DlM@WX0?pvE-oBb>EaBeR@lN@%@0D-PL7w34I z10s2o7B6@AuG+NhVu{j3-Tv|E6ZZLV6n*d~yXpRIi+2TIn;=yQ%PYmLuc^t zrwoUxKfH~xUUl1cJ#<`@h-DA*`WD`NZ`s=l9wkJ=#NeK;iw%m6358pF^BwI?3KS8eS57sQdQANy{jQ7;Q@AsGcvzoc3Z78bSj)pPQGT`TUY zI>0gMU9xXD6;P>pE+DaCoE)_-Kz6i0EJ2m&!RtPlTLvCipM|t9JIvceq5mQt!?NpYN>)uXEUvG_Z}3P$+ZYR< z)d0+D?!@_&Eo`Q~5Sg2QFFSoid2JI@hi~akU;rmtr1?o2qW5?-P00zaO(TL$Sv?83{3cG9QKR`-|Een(-!C{Q{_*s%yyyVN8=57Y zK+=w;C)2!-1r0-Us`<3k(`lBq24?f|f{>=8MvZy-*_20|{1YlqxP|hx!iXvv|02hbKfIBH?6nWN{fF{bsNa8_eYEy|P>pMgl}gIr2< zS1PP7a2Jx>@q;Fro?vM?BVvNYElt)FhxhOHA!UN*dI_T`ndjpL%c)t=xA|x^0pK?7 zS-|kqgV@&YbD`kU`$|cq_L8?~nfC7%Iws1_$;uL0La9nDmNBF#F{(Vb>$hUqJEwiM zWK*d#WYrb>c-FWN2m{EN50MgZs|wn1n@wa|gI27f$`9^q-!cV9_qOBJz&};LlCBqR z;ml+HSoQgq>~+*6q5bj1DoR4HSRX5phDN$_O?=iDhvW8WclF%ZFuMy6ulCv;XsNO6 z$FU`dwGCVlyCF)=P2J&fRo;uAGJ^N=!t%oA=>dx?h1ePLF&bcw>fyoD1Wg((VzI;f z&>9qam~fQJ6Mul-Swotbz$mrWm)aG2sDw%maQx@=5%EaZ^&V;~*n!-oKJYs*Rf}S3aU-?^)QEtlT!7)Zg&{3Wi7S9U$(oRe&#MOnmcQs^ z7V+gj0Y~!4In~eKppoUb;}rY#!|}sGg!ATPzeFlSa}#eFO!+^fr8$DQc943aLkuc(Q}0$E1Fskjg-IAhd7HXOZm# z94KOIt3{yUa>*qix$J$ja(RU}px24|{X9UcL8Vi%^0mf-{n%@Z!?vinMdd0)k84R+ z_E{=S@65vHp}d6t42+x+*Q-Ztw-K+!w9zC44w?^i%j*5D;i5@fy2JD-5_fGCeynFi zJ7@8+8Tz26s>aST6;A}9Mtbg`YNOPO?&Um&b~0XgKzr%YQ)S6l25~bHdsS6>bth{g zsZZ3@i2GiC)&$vLpk78DAS3)N|Gs{YF@4eA?yFFJb#;;1Yv}peCBWsV>#7aZ>cs^+ zB(o>vc28cax~kGjcdPgXWJv6YM|^@&AHY|S_$p&BwCU=d;%6y8^8VtluXaTYCM5=& zh16nfZKOPcj3!@Ce2D34;yrr+{+HsA(-(>2>89l>YsE@mRieLLC18sn{@@w|57TQ6 zwe8L|e_~F7pIG`ieSFSf%)HLMA2xFhT>-3JJ;GNlp27OU%(an20J#N3d{52q8Ecz$ z*+kujP1P-w3nGD>%kAnY(&oZ;U8!3i?;)s?l6$IpFn%yoG{`16I^!?D0f^~rc;@!){-wOy+o~kS72PlvJ(b4Mr(Pn* z*Wa0)CpCnb zmINW1v;j+Ep6RO~;udQZ`@s&(0f%K!jJYFxYyOvAythiQ&ef)KOYz`mbSriImUaA6 z7Jj9O6DsKnF)5VDGqeyRjmG;$SVy)Yt^>;FK&sW{8G4+eBT{&te6B$-xw31~?r~+% z3~P~W#q`w2qOf_MGu8Rnx!U(V;=UN`M4?Ga9>{0%^{6 zbZJea;c8IM#M`xGdWKZM7l(Hlb10UGZoI~=69aW;$f5wLvLoaCoL7E7$Lg=oz+s z_~Wyi_J{ULJF~UPr}k>9{X|c?xbm$@Ey~?}~hnDjbF0v~8rzoKr$T}IL`ZoU7I1i z7%FwEpkDU0NrQB4$Z-_zae+Q`=EI*tJQG*-Lf&D}fA+gW+_N{0px`Ln1Lp}r!FA_C zo*T}EMG=M!Kv_Y*@4^;G!Er&P9&pMvcEnGjNMa;oBy#{A)wPGYQD-R7UjThJjC@6g z$~CNjZzBj!f|8?r$%kgy&V;9YkwcF@7=+?G2u$L7m>2Sv=^uT)gCvuudPxqvQM%oR z>H#ls{t_X{j2zNZt`O;DLlIT@s83Hdj|xrv9(yV*p8SJ;xea8_ONvBrB$CXV}iwY4+LPG|AWC9Un!Exo1Sv}s9j%tI zq$HLdPi*m|3L6CsW~Ihx7*<2lZG9lk8GvrWjGUD*s}>d-wirRl#F4P@*wx`9={IlG ziAt;TTbE{>XA7d!5hX1aoThOh*@CkhB4#~AQ=UtjlD$L&<=!|gp+Y=`vOhC`(%Bf@ z5EPozq!foZm!=>bqsC~!8*eQm7(d=WWL+;iR_7`K6a$k?frRzwVKVHI#qfIBo9j~N z$Te%w!c9N*9`8P9xR6$R+4t(c`mAIjn`AKKPmPABDH$dEu$GFgUcEw9scPw%jGL8a z{Spj3$rm$d*$2J4>XnWXSg9zS$0`)+^sy(3u(+_~1&-v01pU|)#AqXaP)LTiiAy{p z7#cb!MBFi!w6E_PQs(kJ8%`|j+3>X4qXUJltMMwB8OYP;DsGZ_j5Vi|o+SchyVA=df4J(_j62dlP^JbM%oKj|D z+5xNslj3OwqT=VK8WR7_hd>#$lQob=9&*>7Rf%;h_=LnE8k)F+I0L`SM*qtoYLwfuE;vvud@2W39ycI&s(!HT_mG_x%SpwZa2{l5{_ZyQ5)Q}2Q+#&VU_EB>$ zIUY3HgYXB;RD4nRO8b6$;!wUC z!*PAuRK6(ur3a(0XUH#-!8V-eAI|+cnm^;_;;jm-I#JnXZ}Tda-mSCjoM@Qv_`GTsTQiK zeo@r2J7|cDG|74t?^I5J#bwMTv!oh8wd3Z5CpriX-cvTDH>g*AUw%(s^#%Gx8ub(A zQzxW1uvcy0ZqF_aJtOw75{Zr`*;2T~^xkg+(nDk-t2a^9$$BF6#p1z^ngy?Y3$$CV zl!tb4=MD+Lo6q9kq*$oh!8C+Fe|diCtOwc=U-tZotD?#dVduy*@%`1!*E;)s7W6=+ z<6nzGIG{AW0mk_*BRg!2Mvor0mA7!p=R65jo$|T3(XdlghSn2-dwmBFvUz<9(S*mb zR>ZH6!-Uo$Zxy9<*Qt_H_cCkzYM_SS&&XHr-A~V{gN>5m2boXP6eum@v$6mxnD9#x zQ3~DLlNf(Ot)J$ZwK|kPo8~+*s*KN(B5T-Ad#bP*xl1}KrdVuv)Px_^!a{|BWX%W> zs`(Yxm)}kMFC9k;ik=dR6p4_s@ZBBdov7nHjW2d;n_1@=%|h|n>?*Vy`NLsj#fus@ z@P==O+q~+Rf39gcLu*BE9MielrhJ97_oH>cq_R93W`y!{UTj~%&S!wY1z}~eV_V^N z>Lxx38kf65r3bB%hq>|!x7%@EDn{>c&mVa&4&8~kKC$l<4`DnK0?5rDZMh(y;zxz% z_z71<4L&k0ag%=_*ZC;5sis7wo7>GP1#k1j+GWsbRnH53#G0)3HP6Lg;`e;gclZrG zz9_o=rtUu-JimgEK9WQ#cF-MjTW^2mKg*kSo!q4e@F?fdYgKL!w=H7c-?wF>&#F{J z{fX}Txq5N%p}H>L%+bu6ogyL~(r8Y}AD&9oZB7sIsg)kE4)alNh&Zb<6XmM+n>a4Y z)6y*<>4uZ#0Q>O|!(GD0JFk;JUUmQv8624$*{cjxItAV+42tL0HG6?Mn9hO0GEDgt z-5)?NBq_7PxdT*bR)&ep1Za&R7?q|NYSOaIN*7^jZ1IFi#RPnxVC7Hm6ZGoHQEuSn zT(R7`h?C5)%uh}YZs6v#(T+zWpEn2HH;3xEz3~vv@bT0 z+z_uoD`It?fvgPC8#e0tK6_G4Ao@%!^9*J(jgldhTGs24=ke3I3{e0~d!fL0OXza~Z7 zTOH6^kUfE$d&HnqsazteQ@u){tY!va(+tAuNmYh7^Us}^+yUJ~dZOG+ul6dXG-U zEV5xugE?iZ5e*jhMe|xSdk4l6u=54l^h{_?viwKqPj7W9yCFL1g`AAAK7_HI#}iNS z*Yl}UMZVU+x+l=O5kKKSe-*k-#t+S#KdF`%EH#EH&Fal~9v@;|7eA~EU133~(~cCp zNVaU%{q&6_=oGgId!2eza_dJm7z)&E`(V1fxYrBtzFGG$zalSng8Spf_yVUU@GenLL} z`u6+PaHR&v^y)wp_~)d`Yv{*ZfE?#{{lh7HwBL!6mpis=`zoF0bUQCR6lVJS8%es( zsa~@?FJ(D~jzGFsue+d_G0J^nOn6By$MhiVgMCNOR%u@i-i85M!^WAJGjHbia7TdZE?VpPn&4sL(c_p0PhjH7r;C zmQLM_GBSc6nQLbT8TGC*Io-nos79ffAyH4?S>T`lC{Me0?e0U)^b25VQYI(^oS~YH z0EQtu(z8k9X8S{$HznP%Xrt4~?NnW=Gda1;3a8c?U{93fYMd8(pJ&hKdB7#MSWxHL z}Sm#)9Wj^;H4|`u64quK-p(0)NZM_K3z%>DW+RvY^1- zHQ+pAX9p1iw}VxY-nUI<^6pgad4GpnRDhJcxu>6>TbKg^rb<{w^;l1{i)(&3akL-= z5kapG!!bga)C(qzfW>TShO-`v9)Kc({>aS%k1>>f;fbCaH0Q_d8}nFWfhUjf*!2ik z64c=nyLQGjJRzKk_x_3Lmgcj)eq;amhdZbH9?nMe<(V^n;mTcRL9uvhRGvt{9R^5^EELN5;atSB5mP8ti9OG zyz$KNzQI>CPTSLfDc9Aykzt*>?lVGaqf5$?h;S~Eo0VfuorYs1+Nr@%3oe2lg5_u- zgOa!w9zBZ0LK^LA{N=G!j-9Ss*1bpV1m- z5l$^fDeA8RQMKuIWVm4#MTh7{oP@p>u25!B=4-qp(Y>bS=(*Y7zA<}ku#h9dw zq13>TNd&xp#h5gTLNdj^aEFZvfsO>&E3+UI?*=Cx398f`}HPBKGl=$0x~x@WxXLvO`+As zhfSGg8p@nne6`BYt}vEjUyh!=-?2^y8g35z_-MeZ({zWH{EDn%-G@d%vLLSa9^PpFP25Np$qimf^bmloKe@9Y~BlZImB;n zLsndAk>1oic%0HCXHVc@GtTpB{>BwITO7mdtqV^0PN1{;LTYy)J0=lM;w`80pv4Xkgxa!EhTC$-;<)y2zohRPUTXso)pC2DT z6an_+5e_;sdnimyreOI(*aB#rn2nMWbI47+Lyc@Z8P=_T3%xpBbkRUpk@0Hw0VM*Y*<^gYoR9&aRx(|L7G&Y*QK^B zup0~C%*Df8+vTj5o})AI+epO|ysHPxs&!`_zjKWgo*))GRvN#6@8_U+J64q1ak%)b zAG_?_KKOJrc~7oXZ9ch-_89%%^bcBY;4ib_dt^i5rQQ5t~-jiO+n>3Ls-q_Y5()=;}e zRl`uKT}-)a4kWUrdJ*%NqM$B^_*`tu*GFwd*+SdLs)TW}n+)GSz)p6+$v8(xx|? z7X+A2dacQpOqDDXUm+OmU8SwC?1~8K(-qU!5jFHP11*Lm zQ_(PYPa}hSN-^?^ur;~j=2Md81z*^U>`@gBv&hdljMs>|iEye2NSx*KGZ}nW_d=<~ z*u-Co%|0+`jebS}a|yzpijJKUR|<$)SNp~G^=#exb&U5YMwKmL^EvuMh+45Jjkr?C z#z_Fug;@)kzyBe==%4?7$TTFU(l-M=jPSoV08;j_F|@P(cWz=xx{EiqINGS&N7lnX+}9yj$7MVKsriomFpeUczU8)Tewze6)*lXMKb;_7Z)K ztY?gUhbh1V_&K?uU+HIN#BvAMdlOC^|KI~WvUB3P{2QSY&>dVE?~!KcMD<42kH)@J zFOWP?&D4o&_b;^oF4?+qT>*{Q3G5E8%=c(BwxT;D>sMpk9G%D>=w@!jH~W`*0H5sb zIB)+(@PvN?Chieu@I?7W)(^+XIlPcwQOx9t^Y$+_0Z!Sxaoz!q=n3==f0*u3XY@pS zM%FLJ*g3qAU(w9$h>{H4-}X>-E8)iB96a$KpQjFqTS9lIr{6>Z?W1da6{ z&?47`rX-oH3Jl(7vm#Oy*ixc7fj3d*ECc3)XGR-ygtR9B42=E;z5 zK8;@-DRpX@JrSXgGByh;*nL)p>laTAmrtIWuGMJ)8*w?6bNsJh$%^hebP|}Z^l9-Rp@~)EHehy-L1RoM0@?Q^xw9KS*7IS6 zCwi(ptBcdd81UVB5l(?_2*hMI(~W5p2<(XKq6Mg6RB@_0fFMtogha=_j_S0Z9J`O4 zS(cYW%Z=Y;u;Rr6c%g!iC{%K_w#`BTTWc8>vKmc73r-pmLz}^D$p~xa4C#@BXj3FM zVjWW)Y!XXa8m`r%QDq;Hx89ScPepVm0m!&;&LM&`f|ya_`)Cql@qHT8<|U8T38ct@ zlyy8$4d$dqEU2UX>;wscAFYX$ziV-!8=lGaJ(Px&bPcE}PUOK3cukcY691;LBcLfi zF;v3@Gv1;krI>DU7dDmlNVpT=)Oi^X@=5IJ&6=Gu$LpZRh$_2=(-pVq_tUB`*qWGd zsk^kn`A+35z@cLtdzyb_nm4RQJK<)pnM=j!hy`A3>-E(wWU;~+1(-1x*K;Gtr2|K` z?OcF{i$#=8{d7m6@sqM&;m6SVmN)&dJJsV)SfFn4qYJ^qzKb@L{9KbsKL(h>kdwm6;g|ygWc(>@V8<+h$oKw#@ z%q*y+;bXNm30z1sOM zI|b07=E8e%xKCra&O7bI6X%b}hKMenQ`j_~ElZnMqZPe);a6lTV?~iyiqEtCJgwWn zfekJMn1k)0=vZr~$ni;QI(rzggpo~^`*(w$N-3z!5O%1UdyrCF(RT7X7&ok3`eUFI z=w9EO2R6eR@(8Gv_VB!a2y{mFayu}ig?2_>sQTq{@HngCV8_0)&la~fut^u9_aLH;9u3Un7HlR zgg|qQ+)&`_DW*+?;#_zo1~#r5Wf9(Bamroosm|ST_e_fF^nxv@nZ&SrnA@crbDo zHL}Z?K5qH)^Rq9hhvveR`kkrTV8^>{q!bid*dFh-K_>PR?49-s3ccB+k2G?LrPilXRWA0HZ>{moJPOHN$p^xs@Dxl%`vozIj@KwdDI#+G6B+Xs%L$ z7E2TL+(t4ctugc5v6N*JB_N8^3`g%e@=y)timFL2ZH1)z%95oS7L{q4ha~|{PZ*Db zlU#ngro=WDT2`uI*aeWx40o71ZqJK_71k(cJ2q#VzaA!i2Gas(BHobFP_Qi_E5_qy zN95M{YFGfmyd{Hdx-C<~1tPaCgxxd}0NatWAy^N9!QQYbc8uj#!enjQq!eqn#uRG{ zVq?m~V;?n$cXWjbZErMf-0HZZbHuSW;2hi5EBamK+*M|(%(ZjjGS$%>`&;?9;<=NtbF7+DEoLzIAf2|4Cr{4kdky|7Q<`go8CG3^U7BA9$2i?Rk z%=$_sMd)O`P)d>R3%#;xfm&DD)kn>iZtJ}|dal4^T(&CvARr89Qy zc-D_|`m8uhlM01drjyzq_>(`st5oJQek8OIxZqQQdv%WQPeXwM?S6P(ex`1X5Kco1 z)o~QhNuK94*+dz0+Vv&bm&qHZ78K5T%y9^#WO z^f7EE!n5I!_Ds&bgp8s;jmH$XnAp2lcqG}ruwRJqq*!-qF#@WGG6P7YLSv*qY{6KN zq|u`(I(Pv&xg^6HuiFZXs&7ZBsM75@VEVmnRT?gYw0!)&sgSp_ShGPfq|Lie{^jo8B;H|FY9onWZNPn8jGh=$#>T+ig83tQ&CQITta*SGv(M z7fXx?LH*ul<1lsniR`Vc)K%7zIysEa`)BasF`ACoIfr>P>cqO_h$bCQxij52+Y#_V z7kaqlcexirWD9CLH+8U7(*=>1t&9asuC)&mZ3@1RF%af<2sPW7+N_F!p$ApRnwD)C z3k1u4v|-sI0y|lBOVKwmY1JS)< zv9e0WQe}S{%OR(LPAdG2)xtpFJjGz+qa{F1<$pAS4l8Qjf+X0#K5eCaFi~5dug_ zRF~AF^@ss9C$38B(R%~|ViMUUcW6AK0M&`Dk~?%BVSt=OH_07Zk2pYg;187a$mHb2> zYr466*L@eXGRv&p=l^*nqwWlRY7uD*vR!;?I;S&Fo3D+^i`!Ii$~MQ0!i)S!BRUI4 zi^2>3s3U6k!&6w)4#d+)v^8i)WIii!M`k`NXh&#XJ8(y8UOQ+X*c{opwa`o8nQ8;b$GY0Fy6X$xCRYD-(o zY7?O$r9*y4ct(9kd`ACim7Y-hNG*lOkV1r0HG6ZF)LlQ2TKvaWL z74B1*=bq0I?q0_c>|TyRfJe44B$z-52N}jeBNkpnB&|ccg5X3X?<^XifnpUwsz|0L zlEOi@f;c)1a%b-Vawp+{a%b)UbEn~ebLZ{=bSL6~bZ6`Ub*JKhb?1CXd=NJ*AI^`; zPyDHKJV`%9AJL1{OZF-DH}!@4&g%g40Dg#n!uu`hh53&DpmwM?f;qwu{fppJIa~B^ zT3W-#e>9Q&$08uaB|((_+aloUdl&hyfjJjLCua+1mw$wV;*NGM_7VoR#?~f|B=WZ3 z6Ar_FyY%k^4Fy^0K>?KP)!H={%c`d;3isPNF_r_>vywUEQ0!VwBJZ}k3gM1nrAJR>B-bXL6BRK>oML?gZCd>gg#CBO=Eijizkru~@T+a?n z&O<6M#Aj2+2a`*XWZ@`;wQ<5g>ku0c`2ES?WK$0U_o<4ThKeF!s{lY(pX4n4delbQ&KrdI{w*dt0 z%|QrZ=T{RIwH$O-FIZI&BH*3ng1nsenX%3FPqU;V2WO(b8bk zj4(EBh|$@OL!Ua9>SU}iw>aKE7TCSRod!)Nc;)iKirqX{dBj>MU1c8Whl zSZ6kwf13shiVe5_&|;X%dWberAMuAJs52gwO+Ua~{(z!jnr@05O+Nt& zs%6}VL7rmTg{IO|xpRT+-_K4-$Gd2JSX4$5@uM?a-_~qYsDpZJbh{lIJ8SeI50lS{ zNAR^Ju!|d=qGaYY7&fKhwm>z^7_YFlE=BNSo6l+{tJbL>l``cfWhs5Pc5+;3>MTt< zsV)R5B6~nHG=wju7DMeIF$X@Gf;P48NFN`G%?gPqJ`!*l!l`t{VvF+Dn(gKeyD!9yH zfCw4;%-#N;gnLhBQ-%)NpT~Gk3zrq#qdB(wd7ZY^uYGzcjOwdZQ$!bJG9fbwT{5>{ zeWclM{N+YAkv6DpBRp3)@4Ti|s-hlE-JfqRLkib?neYWyEYbGMoLc38v`_Ma%BoYV zOii=Rx+h-UAT)Ir1FFK`!msqk!Ic{j@!ZfL- z2^qxGz7voG7`~v{%9qeS(Jqo(rXV{e_mKXobYyo}C#oLOTdtn!18$(*;b)NCA;y54 zL)ZZPy)Y_Yl3OxgnZ;T)rp||8E#{ip@!x&gG@s-z6@9a}Eq$}|)b@~Rq?cQD9!paH zgR^&x(jW`crBb0x#iqP&_KRSNTu7ecALna$A2%PY}C`Hfmd_9yCwn2#9ac z#cybJ6pY?Ky>=ND$bXaUjX$0No70)?cdNInoQ~T4Jy^&pf&5wWnQN2_WaC@F*qadr zvPtRZ0LjkaTnldD`vu|>S=320&_qf8t}_uPe$nvcU0HNU9(qER7g_;!NJtudN%yWV zUuw&k8;~5?Oq1v7Ovp8%^VsShYv0L9+wp~G*fuwww*~Cl;Hz6o3py*uKhtt)_H}eW z-qAyfJeMp{D;~QUt^@u)cK0|FGdlHhIxZ+A#WamNZDOITC7D{=Pg|Ex5Rp6Iy533lP^$Eh^$0I8*;m!61q%%D$cxQ8D# z$FIJ@M4Tt3zj7P&N|jiiZtDv7r{hki^Ml|Y)1vsANVwLxcc%E@UJcf9a6u&Qc*k>9 ze$LwN!;_s`a$%{}pP8_8p&$`aMj1{QOF~d{d4lt1zhxZ0Zn&E7GHK}+k>ObDx!?-y zkV=Lwu1o=*ucpjgX;#*y8fk>yGD&+*48qe4GAP{l4JiZfHYxCFl4@d8#5n?ZXQPFr zO1bv<_b}~2jNQ+BZnn{uu4WX5mf&DUDye{Fus1;Y;L_U8zHAFYlX~fCyZWAyydlq= zIy$3%oFpffOs4UbnRCQ`H-z#lJbyLm8eqd9v17a;^o(-xwOc1YY+ZhK1c0mK(M}i~ zplM1j1X;P8Q+Rd?msp$Me{dkYcydwT+Du|DEfQ0kce-PCy403TQYLyiGBB1(Wmb%- zN&ovJF~0K03hLqAxmNtegXL((UHxUKJ63h;f@9Cc$_#wxq-IYk`uBp!#V^-X*b^aZ zS2lM0QP!tf$45K!zaVD~L zrfNYcnn=9#G;%*42>#iVPDdn?9ZUP=K&LkCdY@Ivks^8GSKonw6O+b7%|3!vE2=e# zjl3@pY8y#fWz&BxLLFkx!nQLR^RL^6r1wv_;d){2WaGuVP7ER^~t59-{6> zCied!nf{ZNZ4~;X1_Tg%Hdtbo7F$}DEW6#M4NdHHQ3NZ%oA>iEK;*5o4J|X1Nu+oq z`41HPh};oCZiQ=mJ79nkKit^s`!-MyDX@(Aec zi$_hsW>%5==Pz!ib4CJk%+}p2-GTvgz|S6Hu-;UMnk!w4O{1}=e9TICzL)F{)_$3 z8FiqkUP!e9h*Mh}4hy5CY@9$o;gP|Ugfmy)SuDaZqXKM-A~|ZAIlY-nWY`iepC=a5 zn4T)BkI6(#qd7O;BfS@}sHA@cKK%a(to@JrQe4%j6UI-dbMOCW%GLkm@ zx7U$W4gw6tTSAn4VUV=j?13VLf<^p*_@NjtY$;$l^~XAy8*g}Lus8VqeE0(bu<$tS z6&f69<9Np5YK(^ZU^i9HDx_9$B5l{&jDnaCJD99Xalww64?7i=iv&@~V4~>H!}gnR zJBX~kVp!n%pV9hSgBT?688K4MnZcaMEhQ_4nIN|n^a0*_OJ*XKfE7)cq4B>;Pyq7@ z=U`8qk$nllO60uCKk|Vbk~1o4R7;YhT}Vs0Ws*BXpePdhIOm3FPHf9Mo1#<0yy$pr z+LOI54*0C-(CSU~W48>E8@Z=ZrsAH!nCvF|pxwSJ*d*HzTb@DVyozxm(!*9prluo~ zEAYaYH_oDoqlenkUbS#0%qHpF)K`&{g7gqi>R%6Jv56|rqcsZaQ)Tk+pEsO&Qnqi% zQft&qo`$^&Uv^IF`7^`67)04+AfB>EcqU>KuoKc077uOIHSndUJh>!{00t8wpbQkBA9c&&A7D($dK$`&gC?9-#~b0}T=a;bbBR%3_`Q=wYE7G~Yo%s|W=rV>&5hsvAkpE@0k$o!3v_fgHda@LI+j`+75_M2y4MoZs=s$$ z{_S|TzifHUaK3Ch{l|%P$KxYmMBrCk!&<1YyULIe6`$dNf%hU96rS20BewAYBr1Mu z0IK}zYyi29J?@J46c|?SXntm`(>*NeUyC5`?qd}4QqDIt@}1*D?riV0q#K8O5b~Xq zL-1^#@_l%lIsx&239x?A{Cl-|j`t|!@=o{6a=z2J{{sK|j_J*)-)T(e9c<^d?$@e( zHpB7^(xl`y?%Q$r2@dV7>lf?3aZ`V9N78HF!AHL&M*21Ny?M^~Dc#MmsYm(k^-oZJ zFM*-o>g&}Dg7%E3)Rwpi*5OlyYDr zKVj&nBAV>4L9J|$asoKy0jU1(59uo0 z50^-k6^&4_+f9+tEvxs5rrEVbaZjF9_l~;ysIUNccmS5Q-A4C*D(~bd)9d^pD$Qy` z=(N`L-CuJhkv0{pwn6mFX{`|+kEC>}L!_z><*;!34s@-JBy>g@G>RcRRIX(OK_NS1 z*&wf#(x_V%r;4JruyWxOHn-_*La2h+IOtl{1v6Aas)#Lp)dhJ;7TMZk?ug%!jz|*$ zX+uEpor#ZfDw;#n+V#*ohjgwFD;q_6o2rD*w<6c|k(C^+_cD4@?knm;%`jiOfG&FU zT-25FeNVcbc+rvXLfOjt#eK`DaWLEpJ=^Y`!dlig6v8O+3pE%n)IVo;!mWVGm zD)Kd$%C!XK;H`@qBy$a|{Y?bSn?{X?qUJb1GsYs< zV~h&#fOkYPJeD?=JE*2|2f#+#cc|phM+FBsNT9-3?$=SpmJ!7=RMTzl#XW@zqb7v= z!3U~hLxB>d2>P*Lg%eFa0&FX4YRzjc$}6o(XU3;R(50554}8*aoh3-gNFTej8}6*ZPt767uLm8gylK$KbW z$rC%1I@1cfD>z*baIqk%%BsTF%8GP|iCx*fBnxw9^}uFVVOvu@IhfH|-nTJ3zbNN^ z_0DmDMTH!rDLOIyZh785x1t%v&|P0JCLVMPU}wLmLSq4_u~|PZ+g8>{*^e}DOoUH5SH6-Y_o^vTA#wWr3>eW%5L(Cj9 zYN!RV)z!sW^{qwi38U;~0Q$3AVrsCkPWKkX$zllcR`Iv5pSb)VXE%a*#PC$OLC>J# zm~RP|Uu*~omdDV8h9pT8(8Uw2rFP;RtCu^7BrY0EXelfd{o@xEu_FBmB?5jNNYEk( zsad;E&rjgel7^UnxEv{#u{V@&;NLpQMdZLq4+Cq^uwryKP{KolxHE(@AVaqDx95F1 zpHXr^LUCS)!~fRK;9J0i1wj-WDV#0`6vz<620$FT0d7iug?tL)?>)X1PHGp7V?Vz? zS_W^@<$CG4`-huq+6=@_0OK+iuy$9nX|5rkwh_&0FeAVuLigIxP>5Ma2S;R>|4HhU znbbCc-*W=!rfpA=`IRw`7N|3(GPsFL8zJ(;=8^~v+yO8t9L1vZZ7>MX3?XV9!mXc7 zfRH`q)Bt~o%O>WS>Bt7&TySNi=Gg0uj7WH9^Kb$($jBuS?32kH{V9u#5J|PvOuj+` zw)M#u?Bj$B={GSU#H5pEmA(hH00irZXIEzP5Yu-f31HNn#}O6A>P+fBfyGPK_u^iL zp;Ki#mq$UAsPPD%xUA@|te{-|KToIfcaCwxcMp&S(%B-<*l0~7w-on)PcZ=Yse`}r zBBtTA^ei+zIVS^a!WV)O*HLE8&pdW8`O+HlX zve|_uN=Du*h1f^6|NJ6;L3IMxC#NideAWj*fUAcLO~?|1VfSGxz_4H$b9z{4JzdB8 zKZ1yip~()Un*`R!yrt*#fpfYu<*U;>B}&tZWuOHVo9bj%k3*^b^C7D6wKPOnHT;ixk_Q`0>@)Gp~L^0tc>IZReLGv|AnRFS_HLvd-OM54{ zE==ZmkH2L~ie1bIrX}b-DT&?c^&b~at$#I{gF$llRgqASGQ`FxXFWPt6KloQBTi@b z5+LRGxY&p*gl<)ER74oL2PeCLB(vjGLc#}gB^iox5QFZ+N)s@V;)b6HqsEyVs`FIr z9qn`U??(h_1rAc1o04I+Gr6a$IG&qPVdcghVb%0CAH1Yq*RX1bU9ffm(J$8hW;a)l z0AQ&e5W!k;tc7Q>R1HP3Y)(qzlHc@^1@Dj1`D5AkRadynAd}zvVA+mDv37ybFV*4F zFU-bqvp5%uBgaK0VdakK=^>LNs=f>wejOEyp_4*_Z{$U*OIt`LS!r3QjISdvg!rK9 zR`0R8)AqL~kt6D7xO*ba1=W}Tkpg{uB#j+f&M0)n+(@0z`PR29 zUF=r!i7x&Qu!W1^`I^h=#)8|G3qDHP4zO7Dk13(zpW}pur@#=6_ypv#^8+03bA%#RqshYB%DoGT;CMc7%f zXHTS=VWeQ(Ae{?PkOb%SDsgG|bMxz%7G*AIqf~FN_q%<(2=h_qVis-F?~jEMg~LE> zH0X+$MJ4n*%nY)hOO6QbceEgVMa;iTPvVSi$J#(rs>8nh!rG3;pS#8DQbXoPkhk0q z+gAj9N+9#2jj-M!Yt{|QpF!L8X|aA%_(m`H&-q%JXskh@=Y<_$RjK1Gq~qyAd%quzB;eV0VAn;Rhg6p|E%_*w5tUel<)t0T0A z{8+kR?Zij1Dc3#|?&8R{k?i88Oitt?_llz`iJ~H|&frI}tBs@oM7ptnhAV=i=2Jq| z7pf=I$c`O{_a-!G>&R!ubR)b0q!Vb(u-=eFmr$sYM+xUB*+|utSxDIpp1SwuqX&l8 zj4tVhb&tet4OvYx6Gz4!LPFj4buyW9mNhPW<%Bs%X|j=oIovVg%vV_p6!D`%x3p`= z-nZ=`^P(+R2V6iSI#{+@FOSIZ1R!Dm1cNCgGWste+eyy<&S|2sS(f;jQZu_WMAYMa z=XVf+hK>pA70Fc;Mtx2wuX_lO`ldl2)vqI31um*)CDp?utbDnz7(8wz9f>tCXHNfS zx`vZt&-)9Ql53WJWnYd8Jkt5BBg)xzOO%Go4e?Amvujh-VxDp?`8TE+6|?vzH5vTQ zy>iDg)-FI+8EUPTUaoH$EGWR%ua0P*c7|?V#9ekSHCLd_oIvWbD71Vb7VWLjk%U|0 zp`GvGn}L+pO_4$yWdoIt$+jS}fOjuIpWKAUv;=`PObz8h+}tnW(T7wtlS$fJUfGn| zX}-CKFow62kN+wGXv&H}MB*f!uE59^Q{52`mOsSn&8jB9c{9#8m!Dp75kNkhVc~q% zi%I3v&J>sQ*2FIr#<(V>egC&2s=R#`fM~Fg4pkOpN~K@2Z(@$?k;u}A%F1G5=_^lQ zIZK|S-RpY+V?sFLU*eF^psqZ9*g-n3VKlrs7EaV2dZv6Ff#rn`(5Tom8|9~*NHz?9 zQic`a)dBANQyN6iv?fbAflAKJi++^=i$9u6vO4j7g}`Us;Wq|D;4Qgxrpg0JI<*;O z^-AC?36P*DmdYrpQc#^gcHSh&8yMH5YPg+NO>x4oNI9dMU$vX44joibr9QD7_vl*9 zmcQWM{*!DqjurCk$t;!wI=8(Nk8t+3mXu^dz}u9CF@X;g>gLgA29IghmPGC_=}s3h zbR*35l^{1GP_!bvXMt|#_A261pwL2&L$vj%P)q!q`P_Lud}|{*+@U%hjnGFxqm=SO zL--^H&I?9^{UHndfKt4(HNSmpWu8LMT%~**G}AF(DS*Lj&_g1#Ig4hv5Kb1!>93$N z)sS68M#3SJYbu%GH3xfzOxpAH%HC5GIj+kw(|g5|F+TIPEcHU|@~v2xB*2ozgqS{H zjdqGP7qybr1lh}9vlzy}w4d_4&=%_TsQHx>S;pSXPDQPJ+8(?UOP<^&0zp*<#}J%L zB4ggI_P~aRxlmr2FuFcYLO)#r{{STgEu0bV6RGJq&duKP9IdUgdV8IvIg4*!BC7Ud z;2wm2z=HKfq`&hqjm^8&9EZJVtI}kfKU0^p#Z&|*B8!tOjmL)W(akk;%W0a5t^GI| zJrNV)3_TH)k}au}sL3SfP_f$BfrKlsex8Xv^W3x1XkiTL$RIh|k2u+5ZxW(}J?J1u zO`@tQmY{rjR6}|=Xf1#m{Il;g{7jnrQAgt9O3X+(&l^H9;rfMk=ss8df=DNNuBSP} z8u6FUJLwsiU-E51y?`F=(36RgM0hm8o~h-) zt!j_?)hu=E8N2mVh8Lz$Ju5r#7nc9A>QCC2wXM|)EBhFD)0_9q3U49~~kzPSWvpz{=&IGM3-h_c7VgDRf9{X<4mmF39k@5OO; zMjxtr)fL(za&b%XuF#ms5@5V*?Yf4c{5>I9ZqpGOO~};5xljx9!`qY?+k#m?(+s>u z1ZWgUjnbgW+Et2CxPy8#A!BF7A5)i#t!~o43!KOa-(Hz}<3)VW4haxzGB)qi1#D%n zr(rrXK^W}*cJ>=}G0xMoMt{t*CNcd^dO*VWDz1;+i%1%@(9^U}k#*|i6tJwB7Z)w^ zdW@_ni!Ub>p>uRZVv=$=GM1+z6P8bx-;LT?b zuCaSI_iXvQk${mr3Cc&vuP%WfFzwguz#~|1`+@z4N?7ZT&{Pq!l}`kSSqcUr)vjD7h69;;;k0BFIvkoimiwU60jVskiOR*uFR zN1=H8G5SHZ*u3C{efVKYpp1K&c%W1>6Dac1qURWOg%1A$0Kv@ncAFd0W*_Lre%W9p zD@>%NmRU*9;$tG*Q%K#eHhuO}Cl)o{Y_xyeNJqR8bb11&G+J^*$qJm%S<@II+sE+G z7e;Bcq&oLrDlrHUbb6e2&EzqZzIq`)xsp+BbBKeSuOT?hHs^NkWco&}8uh+ClebUH z>_WyO{SB6FQp54i31UZk6h-HX$d%SrvA~7Qg5q%135jNa$hFH=x2v5U_TccVD)>!3 zI10#t5eULPbKI;X1-q<^r23O8Wk!nnuh>zs#gSTB7Y$%|O@&U*%C6x4zUlr##kC}5 zrnrH+`jcexXodChsyDIe{YZsQmb#XxtD&hOYhA4bot zH$~Mp|NgwmVJiQ=-Qub;V&;J)FA$$`%p0~Q<&8_5{sH<{C_`-*EJMvOWwJ5??u1pW z2a$cO3ynVU&6K#7`QGz!yz3XX$v2*LVmo}6$#!5h(@vn4$#&?5aStwi>Kmzh`Q*kO zQ^tn__>pRlT=5+Uka0P6;bM;B`547hNlNyk3#YE2MZA<*Ae6+L^$CMNzjFRn0wMv9f}A_m*Ify7^^%lWsab^a;$R@uVw z(%R-Cj_Zh{PWy=Ia!1}&GaSEN>Co+&l9GhvOdXiAk~rm#AUHTOE}C!xJha*K;?WWA zF~#-sA1F|814OmE)03DvHTHR6Ji>OXIB1ssrViz=xsm~1 z(ab|FLuVz+ZyhN3_4-HXC$l6PKuIF1qdKO0C8oX*LLwFp3XQ@e+yY&*__O;9@%t|| z2&Z)u!o_$Mqg+0RzB#zh5KKC+Wf|MhEiEhL$Rm}+J;22lbWKDrnPgO55Azz;t$XXE z^i|$k0>1(+F;?a+03sMSS;XnQqWT&)6x!N@?1Lt@sjMEduSX1^DUS()wV$iYJJ{wI z1Xqt6>?X>xcp+HnKAwwEpe{GclcK=$Cr$K7tX#5J3>)WG})t6AIa#>f@Of?9r>g7>)rJ- z#n-GcDEiAW%;axTW9awtf?l!QHB{J9FU52~o(g6*Ju`>dQFdos@HJ*20d|aWVcZ&q zECD!wY#sxIws@j4WnBIWW|+dVS+AIfJAJak^2}=~;R%8^Cxix^v`6Yhg6Jk6T*AGz z_%r3GgYgLA`BOGo8g^JZ-#Jg%QN35+c^w6HH(mvvLTta>z5bv=X_9#7#1#)%C#Z2I zUM+s>ZuM|*9#KsLrQfUv6dQgZZ`f`HhxQaMPN-FO_{gp%w6#M=T))>#pG;i$nDEi3&>?}m9kh?{%F8eFDvg^7~^FU3KiI6L;Yu`M?;e&=hDX;rnXgSxl)u3Txb zYyH(|4O_tP&Yt(AnMzi5xr}AbMPVMxHo$R5Mti^vJhrZ(c#SE;JP`7vWa2_!c9U?ajr_F+^sTc)v7~0!d)$t4 zf{n!FaC)TE4H?D2UIyz7IM$8$Sb<^kr!HZw=|4ZsaB!64ow`E*+W!3+M6{IfwEAWD z?`Rj|FX3xWKBCAmR{pV`4tc%}JxjZJOtpM?5Yu|TK29tF_x0~?zH3~NFcdi2vgg7M zY=;jCm=!N$7MH4+y3pMO;9Ow3F=IN#?k5Tur@Pc{1p+~Y@@KR_ujIJe#Yc9KEH9z8b3Z(3e+N`7|roK zq5>`00-PyD2dxT;fKBJj)kW9feUY_HD5MzIZi%aEuogVJ^~Yr)Jh-8u#Eqqn5*8Fq zW8-X50=kcdhKOfQuGq~xoMVaxNj8Np9*Bja*d+?jTW#TrhsL0$?(sqjTe^@i*`}$U zB%m*M27%BByTn z(cOdIrAc6~Frwa1C{+AjFuB4U3O6K;@2HfR<8{ttJoNSa zVIN5s4lUYo-8DwHR>3Y07I#Cy4{-xFx+cvg2-&$p(1>(RI6*sgDj9rt^dS@2^pam< z&}f`FTbPZh7Ui&GQ9JEPsZf}^02XTYDk?-dOXHB9#Gms_e32f z{mR^wKfjT{2T^oC6ABOc83k~@FZsay5bH=8)8O~gV5LT2rNFny_l~+}cN_ktXb1%12%J*@)YmqDIvAkS$j&xaLy5;rBb4JqVhZq)RkW)_7>Qu_$h zZ~dnuw_8N)w2;F7POvSn`qfbv-o8U(GJPf;=TYrEdcq}ZUH)tMr=^FZ-BWmr4+pz# zIWgm44BNMHc{M|vR9RSF5r+28n`fGChnS~lf}7~gC*g8wb5q=do)^j;4N)i;`F)Ev z#%pGGy5`8MRcvO6-kZ^6=ZmMA5C1;)v@I_8fjI8>>n~AS4(CU2Tx`smU*IPw z_NHW&8?G>{gpii18DJ|E7R@wBUMk<35=Js+NoBCLEj)lM1mudJk+*xfdpZ0J2Tmp`v~+bsXi zzOtH_X<=8aSl7#6wDjA0VaQIgTR>D}-ggw!9tyV=+ms7`R*h%{?As){(WfQZMBF(~S10N2Bz}mvtz}e1` zMB2nd$;9;M-sL9}-_G&BrBKWfLoqRU@Bn{KT<~N1Jug4})hbVB? z1PrwBuLQHr?I#sws!}Nm>DZGp6J#qGayXM)X-|&BG<9y)GfMF*P3J*e4Zn;t#P+`k zYJ81j`Y4}Rq8yan>lJ!7Hwf>Z1X!8OBJ=AcYpo*=zb zY@L!7j#mXj2p`5J?Y#r&WjFWg?ofrlS;xm1wg;-30L8XyU#Tn(X-3E|<`+NFVd^!v zSgIx;`Bh46FZDxrtau8khpl^+E`P6aO9ppOWURgQ7rV3K(9ya9r~NTwZXSt$lutXxqM%wJp;kvZbuLK6xZP^=%lmxlURYug%3rN{!o-=6ImS zcji7AX{r9cpPR!$BCMG#qaQ?7G8-Dxdit=BCDz|6aQX zUaIWZL^y4cC!j zwpu{g-_d9&NaEuva)=liw-8&;sTeN_+b~Q@KT)XGKEanQ2}n%;v|O?>882U-1O6*w z_WbuYDVOj(XCmxA@>=_*a^2-7aIN^)#T&k7W)@!;UlQ;G+#)<)U|;z{2Xue z{J3|hI`|zN(o8&wnUd&t{~HSZ*%X{ya`RjE9r$ny5oc#mQe3lSOVC~MS;9_TVkU*v z;37-H7@VBV^JDwl{E6fe`2Vr8|CeR0q9y+y z^DRSdYvmHqRL;MYOgd?4BEtjs1P_1F-qzLEzq8nexjJ-exs`(XM)D7cSQ!@l^sboj zZ0wU36H-QeFq|};c%Nkb1c{H#)b1b-@Zg!o552K)(21;DLxr%6MI|^;&eNIMgQ^uC zX(FvKw*_QLZc6RL2@5r6*R_q-DLe(0P;&L#N>kfvF>rf z=6~wP5Zd5+R*qW3ZA47YQ!SJfPIrk3vi5=*`IIx4vQEfxpv$fKpOF( zVU)Rwdg*r#Sz&S8xs=u-t)ILDqK2tFu&$O!dC#U{3b%C~J=V%44}w(-HW2Z$p}G7k zATJ`JpEMA=?3X^UoY1i6l@AqsQ2x!K)N(`F0M_j%%Dqwf-eT_uZ~X4!(pK#3sWjfI zvgU|&PnPKdZbLM)S0DZ)6pR7=PJU@74g`M|AxHR5CNYr^rzyQm(@n;hxJjYb zMt>OWzhwajz3J6JE_(m-;;a)th1ImRPJ-K71;60G>YZ$SMY9P=L@ zRBK6*AFBCJZ(xp+to+800W}IetLT{88-+rF&ru?~i7xFKXdj7AHHd>CzoL|GIuIR` zdlj09zqmDb9Xd@aSPDnM>qtC*T1Wr@pQ2RDVrTkvJhkz(y{)s;+fQAEwzuo?i_KIf zoz-CavfI9HS3jbU3qlj-Cey<8G^z!H_$+UNCb_*fcB9@;ZZ$DNwc`N1`)7ty`*g6> zBUg}59q9&_q5dyaE+vmQ*ntbbQ=e7a>-p#URpfe0$Q)A=<<%<^u0+j{qK15=Vs^}B zs;@DX7Yuh|8%eMwvkSjmeg@(&q6BexqiU%o?I0dbREKE>fCXLz^WF#%=cC(moN?Jo zCB9Cy;aW(P0lF|n8^wM`6r>E7dcNLV+>IkMtSF9kcN%W!eqIPRNyH>p{iu_q-0=6a z!%fQM$_Hkci6=jtfL#>kMKa?-Zk_S8@Djx22qpFq#*jlr38Mfsg(rV+mnJ&!&W%Q> z^0`B5cpoHr9*1r>^n})FAb-PIr01oEA#=aM4bn0y802ed6rN2a7~kwR(iG970Euv<;azq<|B1sgzFKY=Fjel=AU-0 zG4fh5&li!bso#7NMxuAF#q6e!u2%2b-LaS5NGjLw$3SMk9C+lB%WofU#L<^3IG|gh zVze0+fN0^xK;f$WOps*-rUp~RjJ}Eu2V08|XvTcJGUGXb8NZ+tK2t;hT|)+2(zswW zuWqBK;IPq1=?@emKm=^xNLNua8pVZm?pv_ol96t~gUVx!`{J1JgwLOyk_iJu&TNS^ zy(hm2vefJBhlN0)(Z(5QwTBA=w9sr1VtI2JAx zKZn1#V?27GkymaRWE=DDDNolisA*hLAW2dmT2PJ3*@WFV&>znAdfl0ZnI3CyNoGbM z28|^J%YVA_7})1b?_`Hv`8D0!u>KoiyPi{H0-|tUK)a7t6{?3JV;3TV#b6^~sG7(3u`*GrvBm{Nr9kJ0Wv(`Ekrl zQ@}Akc88={h#};P18|Jqf5q74^k)w355|su81VmC+X8GY99&HPR}$Q?{jtCEZnU-6 z+axs!416J#Ia%mX6bt0T2lJuKKlc$4-8OM-3=Y)?bqh|F-eO81kdV9r@j)@xOo++` zCriB=oa{3*o0+-3e8kc3APf*)7c+)1Q`%?4HouYFQzo7W9e9`NNE{H+g-jfQ)D$_O zt{}DL_R5B~S#Ag#WEhkmztIXihb*NI2RzbZVz`!GV1NhQ8Frc`b`qcW*JlZNd~*qp zUv^f|rr0Q^hP7B#!h+?;r5)p&cT(z@RQB9$Ht#$i*8G!sUWsx6t3GEX9l#ki=n=Yv464+rrDVg^ApFCEJ0eb);&40=|75cA z065%v{F*Jj7!Vb2ZjfWoTkry6IPAX=WD2^?BA}J#v!vB{c&r+fxL0bw$E;HM4vv5i zL8_m)Q5NhZ zk13p8mE^QNuxifzz6hg$bD0F~*`~bzibjOLJVv)aQ%U>Kfq(@6Pj|fkfkPn!r~m$) zRjdZ-jbnoPPu|tk%#B$xNw(BkQYZp8{<=ig!lsvnmL=buL^8!jd0unOm01#v?PuaN z4a;aTNS6ZQjB0U&x+1VC>AV2tn}7uMk0T6|d>=cu^MzFwYFD6T8STd}F)H zFt!GDaeZZxjQCVE`SQ$dOJOtme)=e8Kb#Zh?Yo9sTtVYHOL@<5~TJ z{+95#hx2}t1=%sWr}ydbd1LPw5Z*ogWNjbB+%!h$|@aM@MTx3#geB|P#J9S@C=6wt_&cdX+5(nV9>6YCQp80!o!m&n|jgMKy{`{a)UI_-1XXV z#xok-h0-zQ$watAKcPd5E|XbUN|QvZSn(vvJ(w;i7W^$MgRqEt5|ij^5kOtj zm}TcqjqIVdAeOhcmf9dmMt@zjC3&Cv1=%yeVpsr^Gq}&}%tiI6QG$b7%zTC<$Lq=z z^}&W6Butyp!xzLtPsh<;mk~+&UX5$$oCRF(d?f`*Ek_|uas~@eKKW}PT2xZni3X8* zMH-`wn~}A)Zad9IGF~gGI~j%)i=7CiurfB{dUQ5E;k39Y!aHOvbPh=pd8eKHSmR2@ z!@xmsJzBvcJjOgxz985dwT9Z@@4%!od%BFBme@PbDs7T>{O7S?gftfpKSe?sN`a5b^$=EN*Pt5_l z+oI6Y+qTf1eK+TOY}b;pb0yw|i) zzXN`(@2G!_Z~w4#d!LY|eT#t;sUxboMtii!@Vfj@NUMBMeT4e&4xTC=DO_fLOsq6Ka9XevsW;IuNXq`5;a5=5%kXdCLIlkH*uLfeZN{zI0R+pxXbV+Q_oQ=#j7uf(Z zkG^*gJSg$IWl_KpM_XUA)#-=~5YqZ?*yI*Efy|Vi{`tS(3lIqDCH}oE5Fpn`-bXw@ z5YjxrAlrn?qCAiw*NEPtJn$f~>yNrwazO$1m~lY;zPSQLM@qMOa<2OrMJ|D=%1w!o zJGj}wC@`{rC{8o|sVQUyO#d+0Gb;qW^e*s1-hg;_(V6~Xbb}010)xg#W~4aL;g3*> zAMJ-c?R$r$fdYd!P=q6|2Yq+m3LCN>d55WE{q9lYuurLicy3qLs%%I5E5=X%UlYr zv&{+oUC{|n>sU6SWK%*a_*a3GdT4(xk)Sd(fnzyblII#c)#YcFV2-#Ke>=03ElO&k zKvm2@=vG`A6)#nZC|S`I=sm8OI7Z!$XiE`XOB!3zZQjK6f#rcB_;23T3b0|Yx4;F7 z9)dFN&|1m2NlOoZV*f6fYW($4cU||G@y#6k2wc`!Y{h*cDVn7H$B6R`VpJ&NV9ms1 zMrttgJEwXguB#b);CY#dyO7VIBp0y3qqb{<7I#>j-Yw#l(4FdqjoL})YyvoCYipbp zOSaIV>~MM42rT5-_**q*13p)@-fn(h7vjG`O9Xj@aHzj%-->h_9)A5N$N=B5Y$wk1 zpQHGYg%GGDRU?Tcg*551>{+rGnTQ;!PC0sMIrY*$hfB!)5s7y)Qtkj0I(VC^&Ev{Y$?|$ebODEP5 zO${R1AwafjSlrD#0%D?i!U}6i|A}PU`Vl0V@)D-4v`$#fWrm{Tw^VP=Kt*@9QQyomUDPr=(DF~p;+Qvt!$6=SB zFLEWNw;Na0u2S6a{!YR#wS|29&v`EXO=pYG)5k=bN4BhBD$?9e}$G*%4D_L zK^GMH#)@#3@kXtD!>T>7t2cwWD`}gT7Im5sUPig+ynAzDWL2-NoR82@z>O!Q1mFN? zQgIyWOoK!60lbLu53VG>lN+ubR}ft0!PQpqDNDz7zB+(8K9sOizGHj1IaLH3pXNUR zEtU0R zu1&f3vBPVv;bY{m!jfwrT1^x7;wMB$k8qfHaXvM)WpKV{eeE+|OGP3-2^B}NIU!A| zdZhxxk`$&T-FbP5I3Rf<)|mOR>lzjK*uJc{%aXv}QB6P8tVWvKdif)*#(+68tX6Nb z3BME?Ni%ICQc{CWsr8s`xofok8)xqnT?y1}>xL_~jfyL_ZKqNpkmv$ z?TVcWPwmtGwr|__<=%7N=EHm)ZS*<%m|u^3BN}<09E}aR+~-ga!6q!ct0`>RCM!1m zYxY0ow180u4AMUij6FISnCSn#oE9@OvHXvo?$UhoAQ-~>95%2jdE|B%B}A=9D3z)E zMI#GwNJh=x=Z=oX2d+m5fvF|;-3G&pveCw50j5B~tFc6BT@*g(rd;<`R+b)Se*VEJ z)8&=q!Qr&_1JCoiU_F1@qMSFC14UVk^Kf1Av1dg>_U~jABqZcyPd$=31al3K zs3SM^VuRrEx!w>Kc}T=2>zfS03TkS?h6F+uRtn0TX+2&Wt++G!XDo&d+Vj#Q+h3VT zXOuzB&|xsHeAlN%&>&k~=Qo5Ql`dh~fw){A#yaPq((mNIIJ!03d;au=BJp`G7_?{u zRrOscMo(`Vj}DPWCQ-*37g%#TpqpKnU={?(^B=Gp!h{A|wQ-{!lP zKtc~-Scj$NSZLHQK(B3S(j)M9n?enAJM|>eJ}?$ozMdy;THuFXY{!@=PLFKxn$zF> z;ni0;x}LMkoK%&QU_tSJtb8u*INz|*%UUzeEva>Bixy3{mWyJ=!sQE;UBa@VK8D9$(7-U zVWHMZdCRE?x7k#^DbopBp?O@Xk3qlQPe*5aNgb?p(i!qW@9A@(^bg;Wdk43u2-Fj^ zMbSA<#u(oFowelh@~!O2FKEk6;y6g{ph&#}i{;8IQd^DU*inR3Jsk$#fy~zhX~z$V zjWQV~Mz2ftzPctu=T}78Q_x^|_H*=0@?hR=;vm|#7|LFGRFAY?zaiykSP#O5&T-On zJ+$3c6~(V5F?Y`g+#Il=*vFUrjSAZs9O~Gv&|t%;vmc0N@L`H3QFelMt*Jtn@X={1 zK8*skYU(NTAvrj!vu=;Og|C%XC^6~TRydzV)^ZZkm+}#7n{Sm)vMu{bK%g~NE2NYQZm|qUnK>|oorTS^K}pRdOl76thL9>Z zC}y3vfgWc1R)X748FNZ4s%EmAhniocIc#*fZT@~K0amZS=YhW0jx&_JYMZSiF=U@} z$s(tQ4iomAwJ`b2NFp)4`E0$H;RsayYC=I?-+UO_E&f%_;+A3EBO2DoQ}i@ge))Y7 z_!kAsbv}I&IZ#kj=WmWk*V229Bdq|ro@^~3{i*Gp&VN}LNb*vq5>HIKSQ^w*?5Vb=sKJdS!Vp9QUf5#j%TdxWWogUIIDWq975dwF7)OW}G*rrEEa2M3E(xmE@&WDRQU<0pu2?r=BS z)O&o@Et-`w^7>ITSA#)sLnmZ{A81P7ux|_F98cU0Ft1$eiG5lFukhaaZm@Emu|6;j z1!x&c+q%7dhj<26Gq2?ke650*el4%Gp4gaFT5W4Cl)cCno5~vu+uD^NZ6qvJ! zxF+*XvJ5`G7jMD%U`hGZseGYv|0byn(Enc)y#Gds{67wkma>tnrGk;`zeek< z>S|G|cgu$D|V)0}usE46?eard_&JI;Ezo+oi zWF|pNav=L1NZ= zvJsxu`lm`kQChXaUiIDaqVrN%v=;&bwmmaN%StGHS{JjimS+k|Kau7l6y>HL6TNq$ z?pl@lmfvs6nRKi*M=lar?PZAx#1FgRru-{8K$^+vh5>@_+2uqq=1>`;DpADw?;mb1 z{urX-Ti>yI$Tjg|CMN-)HtZDsF!B07kqQ0fcbn1A5&poDWF7VB^+L6Iys)9k$e9An zze>wKKk5(7KTU|cn!MGP%gVZ~MSc;*c>AlNbZMMKrNeR$Gf(g4Do2^1iXkR{;nI)5 zO7bWgWgM^%^GuTtIjMMYIYpbm(IT|)Tmjem;RpWgY^>_d;LvnYbBZ_pKxc(r=;17` z^)45SJMqm!*27XcoZ}`?Z+E&@aGFl5E{P zi=I6Q9ZN#h*stqUhTy;ftn|x;Ti5W`b1P;?ncFD*c@=2QIW1EY`R9kykD@eJmxd@Q zIO3i`S6d7-d^>|S$>j((5=&2Qe0MpUM2#$4p_)D37nJ`gE+cybi-P|-Q!f7m=KryC zprtA!;q2_-{KM?OQmxGXV^KA!>$)sR;tCKYfTG*j=>rLjJtz<+A%kBohPXZTc)AxQF_Sb@S>wnLsP&CIkuaolOd7b9z z$m>qs_ItTTA|D0H450pIAsocRO2#*GzRR)f#+lL%%E2hQXVL3L!S^4O2vVrX!2XD_ zWVCvL6N;Xz#?{wIRJ}zQ=zep_J@Mx9+IobzVkw5N(Hzrpt7;r?K)On8&1RS*GgasIpYQ{Jo?R|MOh2ZXB{hoNl4n1STDqD%mGl1`97GTlW}ICH^g2 zBXwK7@H=GimZ9OjCf{2O1$61smN$$ng{sHKT7`}xr41nWQqA(iJJttl8}9tMxRM>1 zA?vQ%o;cMW9l)R8sq}L`phji?vDcl*aHtmX*?s-TK>bi0yuFP1{{4q*b}ucFlv4~@ zcNe0oZ>$(E@W$J_xa)^J6cV&c(w;vLC#Jq$V z#BEW3qQFwzMTKQK5oRbL>;PT0K>0DJ_%F@Wj|cDbg3t0>h)GBr#D=oepN+FR7eNb<(`#`2lkd#bbKH!$c5isi~!=iRs;~doK86vm;a_i7`Gz zc{D!jM&FOjjFsfW-}mk&BM@=DVuM0Qy^i3J&CsJ-`LdNYbXK3SA&(8=>Qw zTiSmpMSd{8DH5+YlbzSL6Ir67DJ8TKu(Ynh00}Yleq($Y8t|@GiVh==sV$@-gSuzc z+u*2t(F=&A&~ne!-tCPoujc!Qhv|FUvfR*XFLU#qEd_Vgmw#*`!4I=n{`*O`8Gf_v zpGR$mB>pj$6e~%4`G%H77pO7AyUZ|uwfQ#3hfU056bQ~qm8_+-nw&C(&>>Y^Faa3M z84)6Bpv_`46FL}>9wHUl?wHIvrX3w%fjJ}2jE$KCBkRz}9lJDc__qo3=m?NggD@Iv z#E2ONbWnc*Rn5?Qp(l@JtQ>+hl#v;ZMHzAHE8kXU3|^`@n7^pVuY(6T!d2rQRo9`^ zpdVDjDy>W&mC%V**EOXcv5ZEWMGtRQs~T!I``4_D6#I8g5&c0TM1V5VtxXNPP!Oh# zy{(SJ5^3;Y<~cclrfA#sA>;_Adh2xKJu{6;zOD`L&-t5-dI4`xcp0X8uwoAK!3kHqWOlytlcI)3YF4b*cG8KHb zD!YPSx~vwq`wLs_*7u|-s5E7jv&8Q zJ!ytNMLt#J_*Q=)X@9Xz`o|@|bcnr$KS6W;rJg>NL;N&b>UOp?wAtZqbZELJT<>YR zMw>-(2kw%vyr7r|hzbiGJowk!^jO1?&dMYyx`ojqS-TNI+EcHbVasbLk5aZHaVFT0 zqzn{Lp8+%|HXbmma-)zIn1u#Q%S^JtlV`(?6X2q2NsO0JnpE{kj!E6OtQNve_#r@v zoPL!3E4aNiIzUI8}`SmF`*k=b!9iEYEv)iD{EFap?kA`l7bLVWaqCh zKzR88no?hHY@afr1$5~jmZd;i6o3IDK8sf5;hoW+|0)Sv)uip}memK17!hWy^D@Yh zbN?*j-anD<0_80Sif`%ahDZ5GnFMTxqOyh{nqSapC3*JYyNKcbrT*BZ)5E*}>Ox_D zW?^O|3ZZT!RI3@;!ZA_32e-q}c!6o?mT_R$xym0pxMRN5Fx1AaNxf%SB!0GbXqPwZ zQ#Z?Bpk@_`^Fxy2z*}$qQTjg1_VqgH0of0v(1Qon=^w4ovsCKPc-BIu>EL{t^|+Dz z!1tiwF1;0Lrpvr)y};+R?VCDG*aD@4#OMT}&ALUQH zNi?-%0=3<%D)K2C93OVs_ z2`B?P(gDhhW=`y05lCGhaqM2@A_gb44u=1B8ZQ_QsVGXxcAGC4j^OneE$lR&IjlXj z*uCuzSt3d-dV`@Y|FmS$#mUdzEU9{xV(=l3csd6gDJ@rOaD> zP_ld7v3<4R{BX(o^vL=|$@&ac|0+}eny-Y^^fO!PY5udLoTS$Edx=Evq5`G)m6k=1 zfq^){D47rS2CDkCC52m7_k2sCrVvBGhE_)Z!ruB>O-xm(pu@jpq%uHC2479xt22?V z>eE3sserxx)W@>5e8|JQgS!0zM)n8!-?pp3@FX(1?^}JTW>=($yS2#e=SrX&xhnl3 z|A4BV@dd!CH<-GC8o!4M9HlEBqQ>evI&8acFhrW$A8hruKk(njPxhE+Z48`5rV1;KWhK)w({VJh7BN@U zSJGA{nQFiX;m0SwTSFOx8JCMTa5sCtyhq(dNvOLq+vg0HHx@GM{cJ05Z>=e=%&)G_ zudMl9SlC!o*x8893l89@xsw31F;H+)-{Q}(w$gV}SC_zY6gLx5=fKp!Sy`06P}Qdt zPTS|zs&CI+m+f_rs4AaUS5xO_ipm|pPL0l$V7|rIRIpQ9lGapdMZBr3pmXe7{I(?N zX1As%TvH0Prv+0&i&#|0($r7`cW3VYqo=N?uhRYx^1<*uHW#Pb+!X6P@HaH&D!qgo zJHn5p!cZ$rqc~?_`bus;k-m9ZiP?5*Qb#gUPWJY?#{5oGG+}6sUzO$MXdxn3VAJJv zjMX%>FvN85wM?iiCSLsh3aUu`zM%+2TaNZNHpwGf5DaWZ`5GGPYS@}ft*BS1sTHvh zXlxooQK}-ClWEb|5?^-`W_3$?txYu5K`nJ#*Uybmlq43Z&94O19UICN@&*UDD?Sj( zep7Y|$tzG)I9y(t>S8qDy|mlGPm=V`Fn)D52ha8>ubEUMjjCPYo)eokp|%+(_v{=g zZ5u!c^nf{wZa%QWA|xFupJ;vq51-@|xRjVkw#iKF9aA83a_`x8VH3lZxuL+rEk{I9 zkb2kBY{?o?8T_zi?9_~ngEgJrS%nZ1*uLI`?#I;ZE}~K*-)WeeN*$&;W?0H<0!>oJ zn1Ln;)xy7}7P|5uc^4uVy{DsX?Xormy2jE9LMFQyY^mA~)W*{}#2{jbI>g-X+=MCX zW$IbA!dYu+SLsx18Ek%luEJZnWD6C@YIq8&kBlr`kKj0C$ceuOQ6}s|cuBNte6{`) ziq@4pWx_TKbRj&H;H-A`0lf!Ob@c*+!IEiZlUw`t;@oT)d(Gpvd~KRsoBk@j!c5Qt ze)4SanDnJ9E2~#hf1bdY3DRk-?Pz~y1LID{kmipt#)Up6sDuMQAwm$zJ6|!dAhR68)?RR({qG1rP~q| z0;aB+WC5@`O8TfO9Y!vhcedtdL%w4=kPf*Eti$sUnC+cC%+S;eB&g^e)!^fta?Eyx zQZK864#l-CKwhom2t~3+V(JZW=S_Z zPr!|WL%(n6_72wj*Z@bk;Mx)o^?%RfJg6PC2d(}ZCPE%owTa%mqBY9>xnU5H31cem zo`-<3poQAm?k5r1)6_LZ@e(5lCVT*9Tjj1derh24gI@fTPDg$$L>v`g0~~%S0a50c85wohP&F# z3ZNRH*;^Q+Gb$(iej6^9@>n2Fd^;%jd?Wd%_D}T;qm|%j!*QY)GcfjJf0pOr*VWky z6LvPX*G(?E8y{e%Rj8CbaV$V>9r;4TE{fW=)e)!}^ev@L{9w2L1A;!Cg;pk$JW*Gz z^04n%iS97cVro!bj)+yAT|Tz5g5_%Rs@kfu;kOAkM*XRF^Ml#2b^bD(=v-tjZ$GtH z7z+R`2Dv3LWhd&X%t{y3ioF!f<5;zaUyl3@D$Rzf*2+F}6Mfmi{2sBksvf#irjGWo zJrc>xQ(q!uY}F?sG~jf-ahV-D zxvReB8V=N0?9Dr4G(frTP-Z&4oBwngPb^tPt#wr4U}r1h$2oI=-25g`enc%FbKY?p z+B;r%1FodZ0r2n=y-u5;3TAb}tgU!%r2X2R%}AvC_+>{NFdJ?{3C^4fBjKz@XxVj% z4<%GQC*Dut)47dt@TzeZo2W8%b?|m(ucLkz=)&Yf&6WEk54_ohLJc(#cBUFU*b6aV zNT3n#4_kN;_oQgd?mxVMv(gbYeP!-Xf)r`lfsz<&7aT=*7uv7(dKWAuqYs(Q1Qxop z7*J2nRDQvtql?Eb*7lrbO`xYE+Oh-xge|}3C+Ko#lSv!nLzGb!Mqv6!j;W(Uv1>HK z2m}S07< z=XbrWf#EHEhf6}kR^W^zCwhPPykN;!>CKkAec;9(jiFX|{ED_p@zmk>_egg2rq$-V zDKJW$l^M1>u?__HGsv?*)ul!DbCi;aV<1`u;L(`c_}Mg2xS415V68*vcOb+|t)G_^ zwD~IE6JNYo)olvE`rX(d-q4Q}V)4LSG{9vX<+IO$vetSI8EozBAy*10aRn129D~(n z9`lor_bR3?LZ)#oJ@T|}cGt%kQzHmDr`*X#O@S6Wbj-fjU1ClnG0&e7}&~xO(?g$-Om*g==%`s+rQ& z+5vy$&w8Sxz{85UB|uSuvlL%Tk$~9%I1*XFs~c|NGg9j(5(`Gz;WFG3qz0rP;|A$V z4bvHZ2jjdH4OkVlzQKZuKnKY%ehB#`%&(UdDtBS{1T+|_1wb@HrnFcJ8Y*5+($g0o zAFuPeX*0%1-u|S_sBNg6MD&QQ$k_cCw5=Ybm=ut;t~45g_!jzC{IdDRO$%@KfwG4f zh*hdchPZhsWtVxz4f)#V4)#{r>@dm)TES)r4`e#s56&jOnjU`wjE{pPQ7EID!RMJo z?Rgn3798Buq~3#nFmB<_lL!qs)?NTuxrLEDy$xw1c}0^07*z3iHy@?zoK#EY3rwvI zOGU2_($_FV=r^iXnxQnkgS%g0>ndPvk4S?)P^vLE>K_&QeK}TfF7g0;pdkt`k+}wqxpC_Di;l|)W8>Rs^Hq1CV+nWGY9o*NMS0*5U zg8vWOs-10eUz{-pV%pGeB#ntQJX;>VF`!xX=4`+c3a%}}hIO4HV$>Qx=p)+C>}U`e z-$0G{gz2*md}Dq|{1^egt+4^J#_kZGFy7XHBdk-v8RIpV3olUDr~&IL*M%-0c(wKINoM~wMLbYblgXiz*yUozHXBZ#OB;B(>efHFGmeQ zHY6p_P;dV)z#Gw1onuxXqgguM<}^`?>2uRu5jSB;a9=Wz!v4neyAq2hof6yXRD=OI zz@fnd@d@Th3iJVY>!1Fy2E49+MtTB&Lw)KO7CI)dWz9lw@q3?n24szw_I;i|Hf;kJ z)(}BcqMLEUySRvVEZoQ-9$dosKDbHQF{iI0r3q#^!GA9i+wML^(~`(OqzjCiK5SO4 zIy%HkZH2tU=nqNjItj!k>FnA3^Ci(aGLB}5uc zU|l`Bhze3>I_^m9t1(}}y=b}c25kk>yL>bDlzvAM1Z?z9bFMP1nu?R?tN~ko$3|K$ z+#f{tT>(9UKM5XA&}EO`X9PjG7mV&)lp~)?fO`kJ4TGD-{w!*QT;9r zinr*%z#wGm86rA zJh5juJ&|XiQ6ckOgf}I}k;diZOx}7LOzT87p!AkzD2iIEM7ED0yh>h$#pcMsnkBQ5 zQ{?fu9jz9@Mv$B3YFfG~Xj``5rL~#0z>=ph(!(~@@76cqKw$+J7VJZZv=2@oz+PIV zPzyudIF7b=3VSldB}4Kb-7M%3)h(O#LLT8KMriHDD|@KT1@CbxSvtV@Xjh^&il_4u zN9AU-2Cz=UDcPPmOJ#MiZE7#t)CtPb@OcjL*cd?=3dy&3l!6?jND_0QCN%`e8>D_# z>fC0>Ff`|Hvw;w_%5514$#hN>!w;EXp9I>>5OA;7ff98cc(JK^2rk?kjm%L1IyJR@ z*SC_wH?;4}vd74T;y%$@zrr?|4XBDMV9#FsSLiye7DGGqh6etmL?%Il!e;01rwyQ1 zWBM+OZ$?%{Mz>FqL}l!K0ZNW|b3m->`Q3#VSI`WQMCY$O=;T%#Ae2dBQa7`D0+=~z zK=P*-njSyFefM0A*x-uLb z0cv+sPp$nTx|e#8x)b6X?&v_8AeCvGjHPiLJYN<=#IO$zd`-Df0__NJasY z!eUh)(2zVACm*~yPT%y#dwVuMrxi+m&AX*Xgx8(e^`eu|luRB-38VOE6n0GTt|rgz zsK>Ic2FeS=wA=?)w&atnMKywXRAmX+)(Kp&$PUviYjt@)7B4M8+bpV)dC*8s=g3A9 zk$GnZ!``@FDX}+sgJ8H5@`;YioTiL#)HjW8mMm{GNK5f-v0fd~=*#eYk!+gongBwO z8+mK#wFplX{uV=VDjLJu@3x@4ffcUjbafWtBE4c4E{y7CDmKA_6hANhqN9n%=FR=ih z#9FQw1>fwxfRQV9PnhkLjtJs49n4Ao1!x?W{{*Zs6R zv3&yEEk5;Qe#~6{LLEE1D0R1h0MrTI)envCsof2yILQ|ygj_IOUzh+`2E$$_>gz%Z zN)0`2uhHEO$9fB-)q8xLE4|(44iO&ekwc{JtS++~`_H;Q5~F`WEEUjoU((2`BotR{-a-1p~Je4ZI}HLtQFaZg#vHk(ygpW$9DRVlP%bCm>5DKiM++QenK}WhxV{~6Rw=B3Qf~y!Yr9WH`M<8;zd(Io5rk%Gic+Po7}#ebLYXnH zblWz}Hf3au9y|?qLIm#upWUeez#EjmQm`jXfUk@%thDa@($aAb4;6)a<5;CxnX>_v zYp+$?8>PPmfG>it$=M|Kf!(}=7<$qO9SG93&o~3=C|Wi!Gx1lFcLZ5yfXk=dO~4(~ zuXjVh7rgeD4Pv**YL`T2rYFKxhJ#8N(&dsV75Oa@Iex7@{vX0w$(?%=bdsc@>^C{Y zfWt4A7bO}b|KlDo7;;OG)+vhFUp;q_T~QXe*bwhV1-54VwuAVFMn+*01AwzG{7L3j z80;K$M*B8gZ2Nj#?5d$<5Jo9JcE=E!I=5)h z(d$>N=(z^#_JWcF>kf{Bbnx6ig~l|K%DHzlL7~oerIGZ`ieAmNJ|JY zrR$MaS1yjGnrVqSFitZ+8_4##6v721rn>OHJ^Saw_AX%Lk+%pSFo!`%k%D<=vis$( z9{d8d>E45aWW&T8!~p5Ii9ghpmQT%v`q`LpZf|A9VQBuyrEd0*#O?FQwUqjc0hoRa zk>ia!5&8DC7xQ=OM8pp+*g%TUDIOAIvjs1(2&Y?-WoCsUSBR2#_mA5^vG6v9NC>*j z1f9~LAq$fau|T;?bp}^Acpq*8Y%L;IPm&n{ zRP+;>KYKBiYP!hcqlBd+U+MUyfawyzdS}wsciiG4q``!^X%M!z?_2eiX*jsW?CwBmYicM!SJ-VR7rs$(GCfwM*$xW5N=sV)OZ+#^*=v3em51o8` zHW*7wjVTvZYNsjcJK2zQA}5-XaAs)qmVX|M!nos}A{Q;Vy-IeRC!S&N}nnrBbx zT(V$gJ!&A@3CH$~=R-Rs&e{5jS?A~#YLDmacCkM`wQ)A}6aN&V}DASJIRe3DP-yT zKwsI_$#<-FL|>fNQY7)JGLiNlH30sF8>m~)Z$FYsZD-06pb`zqRHYOu{813Ew2xRS z{AJ0{a85E+AC$5wy**ZKe2OS+;;WrEN!}uQiYF3Aek@Vfj3#fz`q|WGkQfu37HH=Q z6|a0bc(v*PqmEI$xHEOOkoHKjJFJ*jk#3uURm0zDW#waY}f3Z9GMZ;JZh zxHW{m)b)nri`HOPtMS|1)Pny-qVf>XO1P3*H9VjWd|Hq&;qPl-Izty-d**LOeoe5U z5vI&xNVz^+QeXmcUy}MivmZ`vykP@GJClP~TM{5Xv_iSax)VvRMc9&lREo;EMe@7w z3_g^Y5JyIl2;dfT5xtFLTB>NP^UpLjB6E^`>eRhcruL%eadX|ku@6)A3W#bLJ$y5b zRNv{*UBv(i8ge~mFg?ps$=xrve#ElKGDvLBM$py$g{Ud4Q#qm&mHzE=9KxN)f4i~) zaeTW-hN0&K+oAOt9LnnrIWWC=C7spsXog0?}$!KK%BaR^cPL#FASLw ztMz+;u)mtxhc1|dtJ){tC<%6Iz&{$Q)RAHMdq(*?K>`UuY5>Nal=x9z;CpL%C)VX(x=@sD$LndAsw64Pl1U=g4!X&4sHE_*~Iuj58zRHEvnx zrZsPEu}G@+57hXjhDM?@_6DpHnUs%Q)b&QA#Qj*ZsE3)1?j_oy8BlK{tJMb0s`Uo3 zs(%b3V0F@AX*S@`1)%BD?^D`V(A1huh<9e^K;1ICJ1@QmK>lsdcz1M{o%EL(p?(VX z|6aJhB<2O8v3PmX9yGw>`khMt6zR*`?Tqb&VT0|2V1wmEz^6axkB#b-&=l=oHRy}m zy@h#;k5#LFi$^D@8tZ}0r#pC3=OW=t%x5@=Q~rve{=w^>7{O$o9`W+S{bvM|g=WNy ztb1xit@%pCi;jCvM8HH1&MgxBb}WPe@279z=$B%uN4X~m|JppYN1~}G)eiIT#wrz> zgT{TUep3f%i*}#Ewkm>8qWYjn8*OLcD%2CXy3g;zAC@F=lPskFD}>t}l|lTWE5za3 ze%>|^<+mLeUtBqwAUUXTK4c}c1d}0@zjhy@z z%E}g_r{=+jD|3{p?X%e|5!;zMWTfI2+wH6AinOte+0Fknhf^7&$i3>7tt zshLv$j_QRKv~M+pzw~u(_~3b)1E~N??23z!kL2TIFzW>mz9Zm0{OBBAJQFGiHQSpI zb|w>bnGSXe4Yn~FG5nMMa%CeTG4*m$%v2or#y3LJ9Ti4=;2E-F(n#{GIN5XvF&fWS zs$cy_N#eJB zk0eZ<=F!KnuVA=<>|i0pz4+wascxy^^EYxInMZvn0hP^mir54t$rL$MsS#93Mx&Yx zTWUPKaP&4f*jrW~38a4z$Vah;2S!$dxFq^l_v9k2?3&u)v&zRmykrI|E0Z-+6*b>} zi<%nS&d^IbZsT=z^h|Fn6WmbJGzh;#{T6)!?1Pb?*ivY8C7%Y$HS3L#M>wz9)eWP1 zB>dFY%AMe|ONucDs~>?8CsT*ojMVlw>ZFmk9A zY#)?1IP_oNid)@rey&K!lJbxw)iC}BOQIJ2-58y+2lj7`4X7O1CrWXNizsQV9BQ_N zyGW|am_!5T9uPub6RMKtnpmQxjsQIYc6G;?L3^n5zt`CyIoy<8WO1CtoS`YsJES2g z1e(-LIwD%43CWy0q)l*s1|QT6viNFOM;{tn)2rpdFO|6^Qb}{JK=5R`C#EsZXEuQv zOY(@xKf5SqC4!YVkdZXq5|?8lhyLTv?`I8~k_cIaM=dNIsL zDhRXBhnC8KYde&Wv9imEcs0CBjEF1RwsM%oV|44`60r%Rq8+i>BNAaLEf9z~qZm+^ zWh=(y^NGr@t#rSVN{pGz%7hB2ZYeG(waMJo z-CtEJy<*{t0kU}-Q_pUR9|?YvW_g$Bhf(Bs@af@Vhdh?1>anwe9N~_pWkO7nqmXkB z6DK;kxv3Q%s8xVWu(Sv0)0aZgJ<5wAw1ae1XZP2MLUM6~Gm5dlmiHyWzwV-{ebkq_ zu=Stug?$8A7m`WeBq@AYPr)ql6VaSB312&DUjxAsVc}Ggaz4|7AKY=gMyfrferC+j zV%)b~0taipX(rkfeAyfd+>s6LsK)9@;}FTBlt~HuQsl^52=iy9%|fFx6;m&$lG+!8 zx5Mu@oTWbCN31MtoMA@@d6K5>l5MT_%4gzJcbPq zd>;vY!p9l&sT~Mc%IL=9(c%^SrGJ62Y0mND6h5_Wh?}xoBJetzgF0T#Nf}1jP39j;jd3YEO*$1C zGX(!6bJeLvWoTs>+psFCHin@aeb+F}Av9@%ql^P$2i}`nz9gW&R-R6-1#Re7ZeDR4 zmplMeUMaT9L|LaTsCs*{_h}ejftXDu(6N~D8Gyp|9_Cktf2BD*^=)>)CJSz6+dQ)n zDEP!GK~1OX8pAFT{>&=z6%=Ms(a42@^+dH=e8a_{t6emILm$n;AFml^p&iH0SHIB6 zlVi&5PRt>On=3PZF{xEHr(zUXW-EB(@17ymWAdfJzYNcR9N6lANQjyM9I*DnZjj4W z&>nvakqECCsS_1Ca-W@4CS{9CpbC7_Wf@7* z6tR7^P#CoEgo14hKlkoogAjOru@RvN1bjP$P8^cfE`yd!e zH&_QEnI$qb)-n8T!kq?^MKx9R^N09xIzjEiR1UZbm zw3w|0o_CkfboWfOD3i%GUqOO!$v4AtEa5zo1J1?O+^mzq@{$*q$6I*p_{N^!px|1J z-MIb+C9eDWM7+16@%xnd;rvzV{`UQYx;y+`uc}Y0M{VVgqLf?2`#PL119$#==WS8x#~Fb@ruyRAEGLVD1p<>3JrNuE2Kt{wi&Ea z98x^UN}~4!Quu>Y7glm5lLhBlWgc2|5L)Febm#Fip8duzbUu?+a}7LcPcFXr#)I2u z=*&gbKS&$T8!>QapNVW{)zfc%Y%eG8(#XPQDG4CLAIkEMFn8Zi+H2o$Kg*J)N;pU$ ze(wMgM>Q-a2pz(Dn3z-bBh4A*1h+7URz>_U!?umDwk;E&7SA~rMRMUyU`5xW2A;SA zbD%uqi|OE38OV4Eaiz=af99AoGQDPq z%tXJ}$2{80K=vXneRtdoMzG-5`KV!*a)W@0P0L3)hsFoyU=LeEQ=IN?xgtuS(ae%; z$jCOR-D{hamqO-LD7^l%Z8MLHi1`3&E~fj>4$A4(~15pv4CP>UtX zjAYZ|4*Cv8%1bE}m;O%Uu3b8|y~aIKBuqH_UYr5W+ONi(Eg7MR+63e+0BqtGTE1)& z7HXqUTeivl=IURbEuoI{2|yU_&#t~8wD=Km%$xkQ_akDGV$H`nx8R76d=i7cYrE|9pF%b@$YlwOWBYG0 zF1dXu1yVOWn?rJae4=)b7;oCv-!D~WH2{Mf#WjDyznNw#khj}>TZ_TyL|EF}y6Y8& zT>@ZM8sP~MLHla;EB%{Zrrj*4jD}IZvtu?J!3inYMarq0+h}NQDrt6HJF74J#QLub z!r_$fu10T^QU%|ZE>%#OE>JbprvL@MQ}?8l#O@27b(>&Ae-*T+o2xHSb11RXYgEoz zEmF1vi5~&=%)E?<>8#hV)H9`)ziM}6;?w3>SjSQ3)^Y|RA6qe&5%Gjeo*lO>(USG;A9=)uMoFD1>79;>WwN5*2U_aeR z&VI_6PjuNx#?BWEW?5G|d|;o6;B1!?c-)&QdLwq9obX{c`Zjc44a52i)~jPv_P#&! z;Hgg1N;vihW6A$w?3|)IiNb6jbZpzUZTlbFwr$(Copg+jZQHiZ4*F)+)y&JCyH>qa zz1FH-`<(CW-&QAtK@hQsblAJonXD{MnkslqWnWC?#2#zp2(5tG?;%m0Muzv@_M1Q>|Pk^l2Ia((Pm$>ENhPNWB5f1_qQIikyOnahL+ zX}!OLnk&(0GiWmlzt3?g^1Ixyn{E=!NiHcu{KSVoz}V1J%-k1`Q%uYiSgU0^&d0HZ z!dpp2{foC0f&}0y|8@#(6xnxEdJ|xUD-{`X)FfYZsA$lYQ{rjEp;z*l=hx3*yZ!VO zYW1eGr<~qUg!2pISh*|8w^xnBDc&LGMFwk3K@69ebWfkejm21(kJhS#U0l-^3)IV0nTlPK!E#6vMw7>Xy)CN_#qx^7#8(bj z%kn`?WD(<##gbpTETe+go*N!Bn3YNI!x4mOwRDF$#S)uNG}W{D+!dT1El zxmvQL;bMwrv!}W(Hn}vW>!c%Kn*#rJ=M|mp-_uFa!FuAAX$~))@?_Kuq4MVsF_4jA z>FG#2Eodv=wBR3&ciO!vz_1~+T{v+qdffx)UZ@j%)ef84)u>9m37rJ%8m_~ zXNbAKMSY`nq+TqDbpFNY09zTj66uo?n?m(qKz3b%k?Zc8Hyml@q*i9i(Ty4ZkL8Rk zP2;SkNQk351sQjIJTU{CD+RXP9L7kCEqjB0bJ*P(l_Ji7o49mg(JW4YB1qD zUWyS(xhgb6xvEt#d`Rq-*mryC@8b7yV)b|8_ z4+E+$T~#1e<5fszsvBxa#8nHTsVtuPZ6ZmQoXJ$g-ZB)r3=Qw55Z$gY-Lj_4lxy&R z0#UZ5)J+G3<3de0QJZY43Jrj?z>?=4lz7JP0p4a-9NRIX?ReMMxleJqPk_)_HD;w$ z8%5GJXkb9|UN*v&EBP&jr^S2;PqIoA;&zA7-drXk!~^oQ{NQ^(sbR!t zGvFbBMGBuZfOaD-)l9KZflG&B#x;yHd@r#dF%&lIL8P zJbOA((~E-)&xATlsZHuOa=m2j2(VVM&^Qo`K-)KK-bTp?+(3N^n`LS8Fx~rG3@{D0 z(uFZC5WopexPt+s2;r~>0vv{>nq*cHzxfye){V$cXRgB0oj-m^y>Ag*-$6t08nPIc zLp3wE0^>-1#O{$O;v`PxT$s&YkeD-i9=un4d{v479T=xJ%jM`(D~|41U~+ywDovvH>)v8^A2#aYng< zSEk`VhHbAJP`h%W1p|+g7HAO4;25O0`Gc{K^5vW9wB~>d)C2+NGV23^p4Y|cvz#gD z{0NDz5ozXueIuoiIP;KFl#o5khz$F-$e(Ly38F8J1yzaaj=n)Mqqr{)IxmVB zGPx}3b=Q&|w6o`gGuuAgXT@~&9_uUlo zgr(>lCz19f4KHQbhUR7abpR(E0sY9{Jtodote^9yRm9a?Q#w#}z zHJXf6v~}ibIkPmCB8ynJc|@I?oSaF_CTgVtBZ#sDVkr$%!d252WeEaFUlI~K3Hd>w zu7Dcxj6&7mMNGCrFK3Blj!k>OkHmj08;s^nM9c2S$3Y9B)T~mc~A*CDqGj>3YC5k6GGBb!>h> z|5sm(HxtbT&LHJyRv?t8t36*EnJTAbxI^J>Y86|jhz2+V+yt|r1<~KeoH??IkuySb znfmIZF0JDbHM2_R;9OSMXqOdY<&Y)Bj_jTwiB_y9Rhf9XDq3no-Aa6;w<}40QGM+N zsBa>4xiHyGL1|oe$w3JDQXmAc6q|&Qfdf6yw^y&a!QKeCHZGczv<%baw-Um5nkuKz zmS^$+4-)X>Ey$`l>5EJVG5<9&?f&QfOPWhn7^3R1lZ@-qdTxY(o=nJ!EPo13bYs)h zlQEtQUlDu(pfSyZh!dO25C=S=nnTaQHTZ@&%Cm_+I%%cm&pL++UYLAgl62PjuB9+a zZ%>E_-Y(t4R5E#wC=Qhj+s#y+JJ z$pZY522!5Xs|kXx!AN{`sueMTzBxZN_hzB}*`pGe`gF3!Hkcd?5<&t4g_yyqPy@(H z*U36Mk+va#b-=$M4nAN7W&QC4%X$MD7k5Pq&gBW0TxeXH4My`JB8EkV6x=<}{vg&8 zf`4WC3H1_@oVz3b!?AFO8QMk3{RX;^NBjqIkWcuHb)Zl9jdlRq0pLEvsK*4?gk>TV zIfvT#;|14eOK5&k9T{uBKqwHh_U}LO85Rq5SZ#v_n5loL&M!Z$C5-=X_?NPfot?dl zp^K%xos_ME&Hs#U$Ew*Xq&!;%o-I*fPXb#E$!`9;C#Je%j8=RD&)!}mHM@bCK@ z0%WX+{!mU<9C6g!$TR;CH1mir4k2`EJY&E&F5X0xar(X?hLS&#DHy_N+MBTrWYL;f9 z`(6vKo7JkzVXfsSbc^$HrwwLmRbJI+>^^Re{d6jQ?zd^nQL4((O9<3Yl|jFH6ddq4 zP`8HYj6Bdw_uy}sbvijSgWQ?=g&Oh#Bj7sWm}%?yJdSRT_8pHtpWwZYgw&8aNoQ4YI$_Y5aJf)jH0_Mp7*>%q^Z$ zR4h1b4}zPsjLW<2yqnN&-Fcy%lcZV;Dm1{^rK%_@>kAo9=<)bgldhwX_*GDwhsPY2 zje*R?Gn4#Z#ZZTK*6yaV^)WW7wzuLdIz7``VN1O&mP z9sDGu4f#D=E&F7*>=#f{<8$MB)(<#7Bd8LV1M8d~J>gGW`g@WtMu(@=8&$zdjg=ZRqN!V8|j z{q;FM>@T1%~=<k)@44BxAf^1Z193$<6V-^;$&&$>S8KtYW%-sC-sK`vnh)Dy~6Qc)FG86s7o)mn8ppz4R`wK zI*&t_(b~#V&LtQ)dt7M%=;+DoSBzywK?J>WifB@o_U|S z*1mo8|NexLQkkDNh9@{?jJ8E5XnG3~OCBz#b<=3p*qTg!qm7>}M5~WxK)pJ)cqEJd zpzTq*YYDPP^`R-Sie2fhfp~_qwKi85v;Z;3j=T2ixV}E`CLw|Pi?gknE0(x_w3TCz1Y=b>b?qQHl^FW%f`#@i16In|I#Udzo2Eu z{beUtJ{T^3y>|8o?vEKB?u%9KXv;^|NItkW@`UE%Y+appD@86#*^1kn2-}}4w^>Ij zo#3cS00^HORP#RL8Iy<&_Vo^T=c?`Iy~}J75Js2QkQb%P^L)ikw%PFQrgqw`$Jai8+;Rs582d*O|op+vPlNem}tmM4e(3J4-R(AR^zp=nzuw zQ8!nxUQn4XY&H$s@5EB)ZejgR3uBkIr6eXjf&@gnsTwBo=wW^{cqB)GMhUQa#;Ju}C zCpe5S2SzW47ZT;$tm=X}A0Wl?uY^YVHDc;RBG2EjBKPolk(XR7#_QrMfMylI#eLCz zsb3u6oP2@(5aJh3>)#`Dd`;DSFn-}=gzQW2R*QtfwOYi+zBFt}QhGkUa7p0+50=6h z5BAsZrwXr2^5ZelH}ac7^o1djl==>4#O6+&IHVVu;?tE%BNFRd`shym075EGCWg3O zxRY%FwONg(S43qk~*ucC%|z%8PJ zWkfWL31bOPWjgjpNeQz$g{&U&bc8T>nJ|}zqAclA8LHd*h^#xhxzU~YS*E}nj{|hu zra(qLkMQ2Qz>h>N7k1hHpa#>GTBVl{5?9rHVC{Bq8?y!3t8Unzv?T z`v0pL5>EE6KQZ+GBODr=-Z<(=|L}fN{8E=|ioaVM$7`gpHPfy)EOo5H1(D0eNFAk* zMqEKktUZryh_!1;d8FEdsT3$*wPBm7QZOxm%Q*oH33E=7g*rV5_#b_s|A7AqPEM`s zYC4hX>z(A}eoSSuIG6m{@%&=vwHOuvT?;T2=rCZGWWiK)%uj6~183N_LDIyAtz)kIJum~WK!d{K7c9h zyC0HA#+lm4qyCo7{C(JCAJ1ln_5$ruG(8H|1<^QoB%RB|tAkzL_kFg3yr^@&b#XQ| zv5X(JGwse%)~-b@otpUVFoQb{$cjI0EUzJ|HkiPqWGa**F@_^xc^t|;c*2*1fmLDd zuEHdkG^H3hMqA&f^ zj9BA=>Gcj)rSHU^(uy}<70FQDAEu=EXQ(ouI=WMqRA+KvxI=&Cj2LIUh9-G(6BzYS z3RTt$bpE1ag45fD^o|Jcc9?{_1MA5kUeJe5qVN!Ot=w1u{_M;YEq*_kJLzoo9_3SI zbn-1TYLeUR&Ka$D?p~&=s2D-QwJS<}?4#6`w7_(fik0o!c)K7_E1nDVl~_Z}FZKTs`G#>0aB-6&@5sJN$`ftX zMQ0QaukNrcZnq&5O)Ol^p|ojQ!BJ+^_EQgthB>*T>;kv*7rRI<~`umr~J z7^QnS&ok(RsU^YqWD!Lz?sh$ndfhN`A;*IBxq|HWeCC)q86hFZFcz&sds~LKvZj@hL3%O!RQ5_)Fn$3#Q(8rk>>9$zafZ^Ku z?&ql!8G)Q``wO?zlB4DG18iAK93$&46n;@%xKvshw3g8-q0s@g6{d$#UiIBbv$jI* zz$j*F;7Fgp7&nmvrUWjT=3gom5o>C82_@&d?VgY@Onc12oSwKo)%Mq6a45%t4^&Hg zsn#i?3Y{W-{HEr`Qw49(%U|?HB#u@v8U#)At|lH~HYiSNQ`{rxHG7x>l4ae^{0Hki z!D{S{4ayVCe{{r+$K7>5nL%D&uTmuH(QajKzpE=A?v0ebMW9u+{!P;^-s#<6?coIQj2RWY7BtvMMccmA&bQ9x#8|e#a zmsc30f#;yq6}#qw&Ia?TnG~WsiG!=6K4_1%Sz!=1MS+v+3}!p|$~rgIBNM?;%*RI5 zG;t&1A_%8VeJ=Z=$MS0BMy*;h4iYX(D1VS%U`e4^MV>mFo|sadx+sD>{?+Auy-L&@ zuX*51a7{k%lLJ>lPc-?KUb`^1c0|tICN{fdgv;h8EsJ#HvH(r|GI0;LRrIX6b;|gX zHLnISkU#!o{k=eEd5*mmIX}2VVLtMjUK4+q*G=}YANt(v0HpK-cr@K><_(aRyCABO zoO(aQE}!lX9)936@eSaY;fB2>bK#;uI^4U!x^rYOP>vMf?-X4xtx&ndF!a|!-?A>z z?G9#fL&QlbQmDw}%A6?i94ecvpgUfA6T8xhp(S^$F=4p5@hN0abD;krXFm?K_i68e z{;Qmy8**nqiS#!5lU-Z<#f=}+x%w4(;JPc{wbj#s{*iA!3v1Q>H(NA`-XqyJ`P=-D z*dIK%vAi?A%0o!jsDv{z{9C+Jqk;6{S!w#n+;`PHM`2!O8_E2oPWDb<| z-T-eSj(M)Lmv!qkvF%K%+C7Q;252wUbRTGWt|M`C=-(tx;iusERfYP%ox1$R7QHHR z;WGHbR+f7+iF^P4t3{Fa8IS7x!MmD+|F?Fi=w^kOeVXTeGR6A!{4pvo+7N<4^|UXJ%xyQ}AQQI9yp_0b7d6mLdUF^!#FwHUZ=$hM zU$oy4Mgco+B?Rdnn|=ukgA=FCGR4=_H606jlh$so(dq4a*vGPyN;tZby8F#L3GB#>oaYM*O>9zHDp<#R1fpeGnm;!zCw2N;Gta$69)V~%0 z+gyoIktGMcGquDwD<#()wWaQzZkWxhWqHD6KNPg-JmY2d@QX5pIC4cV7%FAr1!-`d zP}!MqS*IMGEsvcCfu+>4S8UUEORG*voJ`yAVggWZ@Wgp0(m_W0Gt7Q5ye7=W`l>@J zXzn~iVF^W$mAf3ndmV)Iol9=h@mV*}v&vjo*Kgx|fm3Dj#p%AOJrI^$T6stc50@i9 z7;Xmv+ZIg$&$RoDqI_?H3N**4BN9Ox&GR}DD>9LMC5-QvAlYK`3F|I!tK`1R z*+VT=aa6e%-bqA_^9zUJk)p#sS=!1Rf}=T5|TNDSPRo6o2rg+Iq+5}RqRjcG^K6Acf!i6B_Ie8dqaInD7nz4^b5NKnoHe8 z&#stwaa$-U_YnW}Q)q%$ffI%S0+PW60%H1a+`5SU&xWF@hl;1ee_G?`YC`zn9Hafq zXS*TIPd5ss?B5dxBWIlj_Q!?B{2bBQ~%y%&;d8XrZQXkC$b?SRnAGv`=t$eU`V_kW z>Ry#h|14xFEgaS~_^@Z<+hZtXV=6TsTIESOB}?a=@kRp3%HieY7JPi|$$56F5RK9| zIwYn?mUS-kbS~pCi#wM^nRBNoSS*c>Qke5l2+6n~-mlWGN&=K^Lr5vel{-kuW#Z5uF4Anu7}sk?lu6|PE~X2fY`Lq; zzooAthTkFz-ITfFj61b!Qm$>T1CpjG4ym}&bySd&?Es-?>}099$`6@W2ja3OBTJ}F z^*M8#E+vbZT?6=}@j0!K;llixMUP*_=~eeW_RQ(=h(Q`E?%@z5o7`c$CdYj<&l4*FAlstOSr4%#0vzU2Yf zlYaK3>_eN#l}l`_$dR!wE=e(QwM4#$L2+wib9aIsqziHoa8W(qJ^L2_)Z$W|ITL13 z_AEB)m0eMsg7)mRFuU1#WTICvzpixb=IGc;((pwld+c9gGZvFo19nHq zWEDlur?OnAJY9K{a~Ha#0ky0z&x_A;I9C_ID3+c$%8x3{Z)2Z-74XWJl#|YJSq?u) zUwFWl5{(jdMlI;`RS(4V9`sguFRXIubEV|vOrW`R^+~deb0|UR>9c#C$CuEqX-Soh zty+BtA6RB(h@+2BpUQ?gQ>X-$_=`VcV3o)zmY*`r^tls}>dp3tUC@!C)KcrrW$Tjp z)~7;lN)vM1TOB9;YMXP)rT>(4&B3pbJ8yr@-yG-1-JM%;+oHe4v4Z{Z_-5$mSa9VIi*LiBpR%QLS7XLj+$-N)utU&qQng@S@^n4d-mHglVwCQihXLwZR_EHKG^>R z0jxSKRC%gS+)YO$?U>D3dCZeftjA?Zbkj1?T%g2{EP-3tBue2fC!+Hw{gHL;`8slq z1ZqvBUdE5(vqiTkPm-oAGMf!;Gi#35rxH`!g5a_*bE7K^k>@j2$F~I8n`pSQrmBq_ zK-$SN8P3wXvewrRoI3uJO*gK16()97fjMi!NmFhd_qvgLg+voQd?t0E1&NVVWQgCdAb6ZiZbmyBTPV0J_9Stnayz z{w3Xue`YI<_Uw&$pzP2da_b0jPg4~Bf|h^?JDcB&`{~8&HjFxSu;;|SDK5K?5_b!! z)bft11MYB`>}7PcXyk)GRahbtZ8Q98sKLqsfg( zH`y9MWs7y>qh@<*zZ_SL9XG--jC0?UHuH{2YI964`jf~c-i5EORK!NkIn6pxnz2&+ zxn?4s8k;P>mnbN-_h@W}X4qx?H6pH9kpLFHhYFS+<9^83xHsaah-fNQq>aQIl%7*m zQm#=Iv*{2TgX7R0gX73&DGg~2-IC%@L_1dOAw9x#2cZ6rZowZMc9z%~9**W$SDxGX3@^K~&KEhsW(*7$ou+Gd#Dl@rT}IUi*=kuiEBJSeS{}Q& z8_HBhEi*%*aYG^*KN{6$(uvwNlgyQ~s+o2Gd-&-E_GK7Yg_-r2YmgdsOwMGpY{Sm&3K6D)*0pA*h_v3hy z+P)1*F%6tbcTs*lEa!fmHgHusTM)i4ou<|thxjF$_f^I zR+^)hd}f-}%>a#+!{!}RO^OEW^rWr!$7;t+)0zctQ_Xl1QRfTxUo2U0Xsn=KK?uT- z(BX>xef@n{E_h)yXPmGcpoxJ)kO;F~ywxUzKSk~ez5-8mlTtc%cf0TqRcqz_W@eiM zHeY~~OLr#Y-fXT9F{88emqKn%AIPM~3vEr6zQINiy)={x6CvPrV$$dwq9F-!mANzc zurVN%e2M^$7TGII7^nwrQY!<4It5w;JpwYNxECqKytA9tMVWT z&1d!7y7~FrvtyoRGy)XEa^$2(W9ho2$nGa0WQCpM-oLrm5#3_rpai`PE;0?LQp;`` z#nDEqZGNuZvan<6fh{_qBPLPSkX=#6q z!JEx1*t9G=v(Bax`hziljr}(VOYSH#>n)%*F`hN+M0C-G&wa!}3QXWI=CUJ9hj>8) zaYH9g?k2dc6FkekAN@x`OI-Dh4Ne2(w5tSiMNRk=^&*#u5>N3UR36HUIOjT4mZQChiF-LzOFj@r zg8|bYJL;E!=-3gKwv;>onlJk4rrWbf1vwY*)PX7)-}i}8^lx@85wQk=9i=OnQJgj{ z>I}T4?~q{9r3DN77W>qLAT`g;1G;qn6`MH#if^Z_fP3cDZnQ5t9W^Z7mNmKsQ}!z2e z&RHU8t5yX0UxRrCnvMTUAr7&(#zwembxqC7_Qq@HPp0Yh$}D*sF7ocHXP2Tk$NQGc z+3cIed}b=AiQn~sX0#6$IQb+b^DYZiFFfD*5eDNE+0QgwpJ(6hEf&vja(378^tRn| z5X?V7!0C|!;}h$9U|Ju~AiUS{(cSL5e_9}S>2nhPpPMk+=co|x_az8Tj>`aI5T2q? zGRm~Y{>X(W&PMJXH#NYeAh{f|fZD||e?l%2RHi|;--$={rPfXz~IV#ZB0*kl1TdqQDFPk&G#O9VW zZK4N3D@Z`{xXH8^Fsv~tmy5^XFrbvy0JQxS=8XFLG`{`Qktn)7A{+cByL?X@Ykf1r zIDvKO9a``A-e%@9$c+yK2aIOE*cNT8aWM-0DA`tbO18{ZTTFhs5=YmFvD~L87RMx- zjaq%EzBZap;hr@5J-|-Q(L6io8oKsmm5tY#uD3?nflq)z-61%cu}7xg{qa>Ctj^&e z6;sIpgyo%&eY{I5|1Bhe|J%X<8zg&j5bcXUPFhg=Veq&4dhyg!a_zw`9h(GmmK9v zadvoE7=XBKV?&*-g}$@M_iLgQl5IND#9X(62X*K7>hr~TeO^_xo9pNWvG(OkOUr%r zPEWUXe!M{^Cw6=p24RM^S)EWlD>*TDkT}Yqc7{o0UW^@FX>sIR6dhzWwBwB&l5%is za3<3Ar(;sfbPuj!BcfRWHdU?dR+Oyh4k}R{Q-89z1hkI2O2HoaDW>dT1C-P zX)>v>wpPK(QQjk3Z;M)VW2K2IHLlEiEn+e$GVex40- zy@FF`LTtSm2zxf4pVCB|R5wk7s(xm~$RZP8s@0b4K2hapC^iaWW;v6vr8#A{raZi} zj>aNuV9WR+%4!?k_@a!gd}PaX4ihqx&a-XI%i6Zq}Ki| zmSq>sld=rXun}=H?KLfxZ7SfR+$B*ECz2Gq+#+KqZcf`EJeKMNb_m)MO4T5F4AG9q zS#k!E0KD=zNC!`zlxqJHX~MbvYr0TxqqwM?Y)NjjvZg%xffy{zFtM;U9y? zYxY7U?)M2xh-pY~wY&?OQ1M@p}H1|CKkDuBw z&%HCXAHI8K8_sLR8(5djaOb-%!&dbH|5Z8YwTJufDE%RCm9}v6o#@wf$KELYfe)k; zwADJQo>Z7xvO*V1xs2fkZf#29skIz{JH+KhtL>&*r>z~`qouy;>LwaYiD)H3hVdvv zwFeM_(_;Xh)Vj!9LKLXST3j$Set%tsM+(|sYX08`Og=+#qpCirz2cR0sjv_h*$?f~ zb+#2Xbv5Nm22TssZ>~NuZcfa&(&xbKsn(aOoFGGg9eE1}R`)I;znP|%7HH*Vu%=af zKyKCVr9Q#WJtm-4hs*CQ(Rw3)=1y2XqQmC*o78>~FV%O9xFVc9NqolO$l8*nHa)+) zE8OgCyYcds?>oDYjg|C%Ui0hShuddh)a)UGst>TfXa?I1Wx;@>hstpJ+M2*XI#QRh zoX!4W;u^i&QuzVRn=zU{$j8|e@87XMZRN!x@>Ort->AS})ZefK%J*#SdzWv{X#Rn{ zM{GUO2s@D~f*gck1M8qD*Ls! zm8jvz7GIhzK68vt(a?Gj1SqQ@xZau-e7qUExRBs3zf=5N5ioeZ6=+XZjgKz<_dM<- ztoA(Lh#Cq5d5wrsF(kHdjxyUxsJle_?&YTrOvUZX=L;}BuzRF37uF<5peHuCsJ}B; zOZNzETWk)dQT_WA<=>5A`6mE$He zxB10cw4r}btH^0?pRh8&iP`X2S~IT>33HM$J}b;8BJym8Sym9=^Sp-;mqldrcQt3z zWs6v}DbTJ+a44H;5C?jcX(FToSiLgIdJtzt@F=0+a5IYw@U?G=3w zn~(=@US$cJFAA$im4Homg<$;P)QC=CL8n6xN+PX=$17$iLY4kn%y+V%OOcbX4Fzt&rrWPBo zDK(AQQnZL{6^|^A3?;?sbYj9JR7N50DCvB_A~m?2>8hY(Vi=ZStj1~|i~VlH`snSt zp=*T`pCzA;jU~6@ZD=T?Hze?q|er~GRn9RDOaR`E=e%)3= zfsS&XQ%9UoB+VwLg@=HnTbzXC*s-S)Han}IEbd@Kpa&r_>VWtJIPzPPuFFv=kH?yU z1I0u?R-qJWtmhsWX|RKN@XNru{HunXd_l*&0To}FyB0GAw|U`_LVX-F5WUd+ne7!r z%56_OW~|4gQs$HvkY1KrmrBcaU^crlj}ExAtENWfBzMW>E(AK9q8E4%vcJkK#w}pw zX-S;$)UwpB=+usv;2b-?&HW@b#>I$K^px6s?Xym$6|-V?9d_GdlB!yE&21wQW%& zj!?(sQd(P(Owr&ytlCW^9oC9kC@;1bM*ppyCt+qyi$|Bt6M~pkpj90LZ|2Y`bjYG4 zg>WwnZE>ZIBOA~jyFH`KUQ0Wq)gp2yDVwpF;IyeZ+q>duxD>a|#@{HSP$x$*{JtNB z)Gp~)p~sPMqn9>)av9@^6+7qMG=HYN9XsS|*Oqrnz#9G%lE!!iwJz4-l|SNcvAxRw zBR=(!QPwhTS5@>jG|!0_8_%s(DR%$#k0KNss0^IjY*?{2+G{o=zS?q5Q#7*g|bHy$H zn*4S8S#?mJqp#xq))|;^1A>u7 znuh8fU?Ytq$0rhU2m&C;P9Mq4<$}bH z3Vs##TiMk=4{G8^oAH2@lBdmI;hk)li%gekzQT4}%@h!fQEy3{(LG(Io^^*8{MG{D z|8>lzu|5C{8sq6tXuX{z=#~p|sC6WGL!8YbT8|u=xlMs};5_Zn_J(AU$Q= z3#rAoBBEeObpLs964)e)v0lDlj2AF*sK5ra0jNI&{wsk(D z56Z!tHV`-?>H31=g`Ib=0iRIt(f~&X6hEl=&bBLr6UJu1V$p}9VC&LZ{uzQ6l(8mX zVdC{-YJ>|~pN%||ffyZ|4{rxJV}>$LlNgS4`nou@X$7HA6V$;i-&L|{hwEuXu|mrq za|UXInZYf7`UP?7ZcU8lg!=0aR!-I8qFpH5$6IF3($3*|kPkon>QguaTnfl!^;@6`U6^Z5pdd{Cx9RgD^PtY?jATZQDJpyT}gN^s(<0Kdtti6BRt&b=d-h=Al#9$Q#cENboQ1b$F)>BoCY*!zz03Z%`b1M&)?kj8N)n&tuhGJ@(=E zQ?K2{X(75m%^+{LWb^zDX`%lCwe#cM24s}C8W)@&6*Z*w ze4re4*@4nKvMUN-C(oFGCbg+*->D8*Q8u21qNJ+?_HY8y{3^;N>*G<0H`L-ov$`E# z6z}TX>lnL6tUX|xYYHE(cwmqO%n-G$$ExhS)Rc3E z3Ti%0f^)x7p;fBg0!}dSb*K}XiC|6wbBzKPRE98eb!piFt-g}(#;Ehg*?>tsjNy_WntuVsh`C^jfOP1Algrf@4YJF1su2Td6pACLfi`(fVcS%lw< z#6P-@32fZ3>P|)E_E4U`(WB#A@naX$HdtRA-U=KlBakY$Ivm`f@M@>}cZeHiQ`fXf zU(h4FhiMFBML8ky!a@L4hD`|yI%lz5%$=oEUQ|um6IW@>99GTlZlLDxl%B;&?`>5= z_Zn;$cke7}8%_yckXm^sSUL@heJzftwKt3XEtaIUwaRZox&0(9VjvhAv9Da}&)E`%v2?s+}DfR`2(Zjth$w5VIt3?@NqgYSwgq z1ZYxz(rzqWsH7qgrt4q7c&W^P|8T2w$>BrOboUM@Oj)X5fx-o%kTD#9O3dLt?x2iP zpg3eInwUS9Ey^GpP6A#7Q19V9q@yfSQ@;-8iSGioe5aFSqCJ7h_%;Zu&+8n$_);;) z`B?z3(J8Oi`eCn&DZk-%{-D?ch6svun(YGPN%F*wOsdU}*UoU_VwXe)@Ul`xc|Q4D zM_d;Agfz1mBjfxucvXw{VVEt~#+FsHmW>a2X&+pbPOM4bUXx)HLr{ZDMc?Q=MkFoY zU0@5vS%H3Poi7$vwe^cXf_fE)U#yvb|mi<>8kZ7*wp?@f)l8*Wl67kTz=9>$*F z^$fCBjj{4ZNf)cws`elZF990#kgZhhG39W=3{16V<}UW-hhi;f^$jwMi?y08B+$<1 z(-GZavJ1Dzr}UiacfRp#=?p?X40t-fxR&XbHmT!fItzk&Mf=CXNwZ7)%hufnO!Ax{ zYoD>>feV85TExqTLPz?Ze=g9wp4>eQV*C1^+8{)#sT8!EQrjm#?2d-OX*ZH%SXnD-RU?8f<(lbR1XbA#>f zB8AU6faYJ{wXDpDs#7*7c# z7?xe7;~|}kmns0gb9|BWLk0iK`>6o(1p@3k|7d(gNCQ=)+H_p-HAFS1MW(gMsHKfg z2lfFzytQ{0ZmBoT1oQ_#oVr#J6dxw568FZr;AAd^Poz$<63qoNFkcjuiQuCy^fmHO zg8l(xPYg>pC!{M!{5uWeZ|frXb;I4Dp&cXq15S6A%z%1j58ZjVr%MubqHd`#;Hd&w zzH*d)CKQ;OMaKE!8M_cUcZPD4>jjoCbMstydKi68#Aex#`%#lswXrmcBR?`KYeH7f z1m-z0dppa#Fuf5y%R~cG&J(@kOIB0T*=L#9o~L$-DJjzyb*g2)KJW}vo0-Geq+O(9 zSU2s(F9Vx)GVA<4=l*x5TjsiSAd;Gs)rAiK(TUb&T;hsXT#YNqmdHPG?Mn$PYehqY zx5Z%3mA^}wFXhLc-!40t-zootv3H8DtWnm6JGO1xwr$(CZFJDFZQC82E4Gb}ZKwb2 zgR#%IZ{GiIjXBokoK;U%J+Mhh1I<^6`#oN;KYin@-hEK4kHz7ms2 zBY7b2xoIdzDQdd zc4$s{$$U`Y5>x;hJ8t6F8L7JfL_Jr0vww~Tcnm;hSoy0NB^D!#Y14{hE7MYoRdkwl?FX8U4`pd_@ zaK*rOkl=%{lvXxf%9bV5u13`1xGmH58%dBzN-%RB>K3yS&|r^Gi!xP3>y^glizcCe zd$l?~ZHK*7pzW+^Y|ox5I}i7xIqJIF6w^jcr};z!STrv!?{cnHd)RX2@p!CR%NYx> zcub_(@;P_bt9#Re{VAP9->vXQEsQ z6xebKp>lmrJmh86uDw*w8mv*It>!8ypk!m4ViS80s+3G7*#zQKq|LYP&LdRK3J7Lb zyB5FV2}LZPYnro2*6P>gmbO-{14ht@!0%M&R<8UyB@!J?Lot*>v(Tz`xAlEq$hGNfM{W zZg!PMM|7}Oc<}w%f#gX4fIVqmmatLpGI7|>wNLe--B8PSCs6PVs$5ghd?UxKNeYl72bzN7t9;IVjv`rhe z34CPqMw^I6LzXKP>Y}*Bh{_f7X8<74$f<}OCR_|d4rsw=p)+=EcU!t+>nc&AX09eZ ztU`wx4LzO_7$+Iprzx1vVLev-=+O zrLZ8LfM0;CEuTmb&nBzA>mYT+7D6!lH`(u36~6E2&*8G4w2n-gaBk{8U7C{bCF#kf}YSW2m_)KOnH~%u~iq@o55X|=*HAs z5qF?d9?1lZU$$@(*U1`tNKFfOD zmkKo&s@P81cm}Lc$$JEY2@HgueqIYd2CKN<{0KN;0eB;R;=IG=UH3QfiTZX0dLanJ zlyAIvK260;4mn_+5oMyi!Vg8{InF9j8WU9;P699noyGvy1*l;NZ=PN@AS~N@+4*q1 z$yoUX%)pOB#3RDS4JjJ^ehf1=XSE-Ze}1lD(wn~4QYE`phNIdfj5nl~!=ESMi)+R` zF^+SOFC_7A4jL^Z?MJ&s!_PcDgZ~Bk_m%Zu!bX1O`r&|Y_HPF2KhqxnB}+1L{x3zf zqJzW#N*mK&HBdBA0lgxGA|v4;gujG!*5|Q}87(n3I)1a-R|GBx;;2P)TH4AoVxcas z`|UjYHDu}8Rvoi0E#QAP@RbFqUUsuMG%|5Q9Xsx9@?3Av_)YjZ++7C*=>LT9Yb!RQ zo38Yn4`=g?9A2Q#-FwnPpQ-T7-N4Z7D&HrwH!%N~P_ErCX84?Xd-q8W-J!xWYr{jc zt17`$VfY=J+c9+*!uC~hSOU9ab>2*iU;Q>B%)Z4{Csjesx3nOfjxY7l1kmFjo!hH9 zxTR~5BY{p%4=%MN&tXBfGO-|LtMU24NS`gb}W=YtS@~*2fi~S8=hrq!B zH5_wxMS~z{`K-w<477ok>!u&gBQF1{icw@XhE{Hn{as7%bX02t z6G~-3pgsRuG}&3qTN)YcJXTVepGhgG_1M-nQ;|#N&CQXsB%@9<-Xmp_n#zxPz9oZ0 zTy>mSX4&%$YQrgD+|7o^E>puR9j+l;Jm{?@+w)>QNmteg)pr{PnC{g3<)r^j+My*zFrF@Wzy85#l*hG`T z5!MQ9qEZ(#h@xJ>Fw@VwDwiZE=>oBqOd@FEqNywF6*b)~ttazHX_u1+tZK^`SnG0twCh{Z0$j7T8>9<$|nVl6N+F|bMGKV_| zsj5MdVua)qgd}{rIga?A2GJeSzpB$mENZ{klru6f^A{^#Cf&0ZD@rHb!xt+QC*4)g zem_sSw=P-6LFp#t3agjbJr4n}vUk1&ZQ4&2;pWWSr@Omva&BuqQp{1mZ@cLF; zR@07()Xxu%5AbGc-8Ri9N(82;tD_&zjYz+f-59`(I0+^`7vX=vm`R*?EWYC?)Eu^e zt<2QIxap7V>wSk%YPi+Bg%fMW1r(Ufn9)Y$0fgTV2{f_SMf@KjI8Cg&D7Bz)T@Bf! z)K!9(#%PsHp^}!wsxjc z+;E!KGnVXe>{4T;AW{t)KfsnRC#~rlGv(9~8m{82&7<5Xnm#7)HpH{sz7S3)r1Y+WHg2i!jsl!>Q#2XwWM&}3@Z{#&^0GA4(S@Z$Z2G&`N!_GtI;Nv zGfLLQvmQAwKiX;K8h-=R4A2@R9I|MA4rxurts zJg#%OhP?EvV#n(C>#6#NZhdlK^I}W_(7`n3km`C3!53d9lYu&C4au*si^uVxy#{h; zn`zp3Y>VP}in`g?ZK$Jr!lkR#6xSzSP|MwgfOrRiycM%_Oo?Z) zITT(O6*VZ{vUf}gd!!Xw;Lb+j&NfY-1jfLpLl<3_k#r~~vvV63{46>7PVz>Fc(Af? zZHlpHM-vwi)DYXdXqcNq?xAZo-|=3FSa=NeaGp(xnmgVz6oP# z>Ao3b8tJ|%V=L*tIb$5@zA8hlp4|g~HkgQaBKA68^kH`ZFvPVZHy|I3VfY`v#^N$Q zLdK$eZ;>Z@aRC$W2>JORNpr7}D!ecBwL~7HOi+c}C z3gjN2D>WCVu&GofLy@XuuS5?}>1i>7ib}r@VHQ)$*u%01Eu^Np;jriw z)N~k&U_20wV9n8lmU+5J)6j5(n2#SuR@AF2ySAnHCEa5z24^h5CK(ozF{@RamIi*Q zqoXpEP}OQHF)bD9(yN_l=};MD3Fy@?e& z6Q=%|yI6zP+8pDNH&vS(C&$b7G{&*4k*v>b&rHpc`=p{e8<&^=Q-(h=ilTB1V0mT9 zz94MpAv$)>NZ7=@C)%%wl%(bv_Dwe7ti%qjY?%})UWIo-CqP1!eNupdG@}t4-=r5| zJ0HKWh9tYEofFb%WGXoAV6Lm8&&#k_10HVM+E+MF@tW40+;>g^W&tGrRRODSp)b*V z2$$^}yA*7R!W~C@~ee1pxL={G96G=_tpH za+jy-SB*k?G?tqiyWWz@>)K)z`D|MJ_>(B@gifXEzJF@8eRRo0Y?q7PiQE4sm>(v^ zZj*7;L?V5i6Er8Ivom@_f^QSkR$=ekXRB#~{Y$e-*?rmS>pz03b$XiK$Q5B?L zFbz&9BVUR_IBrQ(>}}4=bzKc8MqMY%Tg5)42J&t(fFL}oQJ?~bcSt{Se%>Q&7F@@- zzMjjN&8KT%i#c?TmGhp@0MJ|#%=;6?0ei)?_ZJTZ#~N@|kQ>R?YFZ_y&D4ZTriJ5j zv8Lx~YGNgsH3{{7PfuhWvZfzSCMIC&Zo7^w0NDgR|BMO9HWUcz# zB6mThy^cNdc#YBaDcjy0NdcK?og#mZ;Nwk0j9ZKCL_HQp9wSy`HY(U$FN1Qt(IHM* zJ|X>-dqFxIAP|V9-u=IP#Uo#U2m+E{gb4o1uPfE*5d1;lqH*I5C~#TO`EarUYwa1% zbDSn{SI-1mmNx0rwnCm=k3t|mSOCF?M~8ppn&Xdtz2Fr4up;p-7Sn8)g+razZ#!9pKSPF>v*2SV48Q;8`nQJ zlhy_IsYQ)q_FeEUaaPXWl8|Sw>oVBBQ+N|tH5+2uanXJUqRC_uF?*t|M{x%~jV zF@A~0BvO<9l?DO9JW&W;1OcI~b~U5P?w)7`HuT)xZN4al>-f%d&J$>XV=nhTq^pL| zqFW(_w|JXRi<^(w*>F3{4~+j8C8#Xm?bLmn`A~l&g?}>hk#IJ$vomrQb~CXtbN%ma zV2Y}q3yK=1zkJgec@{_wT@^i8b78zK^2!Xfl@LFzqU}#)TE!3T#06KTHCOjm`Nxix zuOA~g45S?0fmo15vG5wEBLsUf9@Cs(AZI>}8+7u6vSYH_F4MWsubjtz9)CSQCaxv( zLl{^u!Yc~%jUdgz!6TWI|J=c$rGle5j1TKzWp>xhZSyd9(Qs@pFh)zET~FMW!vahx zCm6|u0H*2F`<(KlH$l3&s!r0wR$&PxF1cIQYujXVjvsyRsX}?3RskkDRY42Cr#HTw z4Rj1 zy8b~zTnn`@;59_S=~tfg$#(1ZgO%X92kfP}V!}FFTjVrH?lH;!(wzzhlMKwJtugP) zv;m)3(d2x4QGo|$T?35lyOmrcPJsu6`um(e5wKz}60=RfEx4xlcmcHZj$M%=xOIDO zv2lz5rZ{LcUmYi*#bEXV`hAmF1;>b@$O+s$;_EQHs~NR9dUjAV@YyXg z>u-H<-axty=tIPV6D=+4)PL zelS=u9j`yWL&Zc^@Cls=BFC;syjl@V8cPly3iwO(Pl)WcMeg9iN@m5*h!%O2xY+`d zb1B?2{NtJD`AnyP8{8R@gXSM*blY(T;U($=pi)b28JZjsv@zDCPm!Kdp<4^6@hBr= zKw9%NK##`3hxyEg6}@j!L{5#bMPSpCBF1DPY7-V&^rGYYoyS>~iA=QE7V)RCsh|{a zOzD^UrAW4hU8Mb#&v)Y!mYX3)yLI1bJnJ_N24T2+sVHhy}LeL z;rZjoL<{-#9}`0T9WLrR(2pNV-^T!&e>epEhZj$%vYf((AZm8=K{_G@sI)-7;Dkgu zO8ymJxw2X@wQ`^c;@J}1xnc5Zf*s-q1w0{I!IR?SCV|@R^7g2xbK*qTRu0FxSJT(? z-)DmI)xk0?)Ow{pSavX5sB-94`h5^tJT^QxJRWX$EY{=EE0?g) zZu_4F``N2PX%dBGxT|<)G~D4|Sl50q9}_@>_7eylsd9^4t+igWdj*G25Pav{zk6C2 zrpa^W{KD>s?>|Okb$4K}*jW}EZe9Rj*P?VB(UQqK9(){cllhs=Dq))%9VtQ-Iuslr z_yny&ud^r-&$SRye2QBpr^0j;0^uE<01dp0Orx z=M$#Gg21{M6+?{jN%Nz*K+q=7S6Ob5&>qn?{k8p?@qTRws+;Qo&cU{4T7A#IVu`6{az) z_<~foKu`oN2X+Sj?L&y(J48d3QAAB@O%^~iw&F=L<|SqQn5TF}+MO&_CE|_cz;dz~ zuisx;oK~{NJeT=3DzW%o8>#TAPJ>)rWR+zmCzRxT4ma!qGn_(XY^)@h5F7yOIN*#2vcy9>NkV) zdy#G9*I+C$)D{6}f$o`woKa+~+LZ}Y-EDgWN8n2{>e_#GTi9-~(b?QQ^pAlkUD&iw z?+j|UPdOdR+Jw8Dz16*CpPFSkXp`rhAjE2C1NWNV_yhathCj`~(4E)MX#1xSx@Ii1 z{giDg77=){<-#y%V=q>L6C-Ba?j2&ocGZ6Cw{Tv$yvJAKd+MI$R2gZHy&A7i(mSk1 z4E>ZMfs_0&)WE6k^Dhp}U|Flykyfy#Kq48rnwv}wj~s&6Bkbp&FVFWQM1t4J#)=l! zF_P4H7B@k$Dx7lrbvh^la70NU-6tOl;wu{5>PO(7A*sg zKI5!9HR=s)TBxUXB^ny#p`r6BOIb7}G3OIiILlKw9H|=WGWW2jy=;14SL}76(6y&8 z*k)k`BCOt3(I>|^cv0ny(RlJ66t39Ul*F378XWFW^<-iDf3rlun^=T?^Buo-nT+m7 zCy2apb2eG|TLA1q4?AQuUEBp#GA@}@jKO{OXF-4(@|F750q>5{VLPzSPJ#xAg6$>ih^_nDYlfM-mD4NnadGG zVKv-5gQYuOW|V!N{edYzUlbYoV^+js9pMeXxYfiIYwgbo{;J3?1!#hO+l`#q?7$Dm z2#C3eh-NDviWBIR(bzvM^C+Vp3G^R9wnRz3!MS+_aYrydidVu3*FvdRtqU`IyvRy# z;Hacy+V6^0K9Y2Ye?=Q_1T(wCCtmw4W|1vLVobeRIzDh>RZCh1y(5cM?)cv-@2I>G zPB8?eY#IN;0xmWh*#7lJ%Dd?ekb?dAVGaM|2k$==ZCM8+Q#0p(eV3$~ zD*uDtaJ`o$cilG=vKqi^-#00h^l=~UZ>^w-BE${CVGZj(puQE z;B%`V;XOrN;ZSZaqEc6>KRaYM0ejg~s=5`CXw8f(k6uTqk>aa1NArr@ewq@o_^Mwd zHA+Y$G)xAB2K9d177~6_A0kn&Fu-{SYriq)rV{&--GL- z+N0~5V%%0KKMiZp^w{tId5*k2>=SgmJ_|qe{vs$0L%>Yh`AvUU*#pL#m3Yw{pm#v(3W?`M6zU~wov zij}HxxbftbdnvS_qiwF!l~pjzQ@BG{+hbuwqJKqI>N7EHJo<#4wVGG5g>8*xu#se^ z_ZFtg?PEYrwPUs@;;ZXpHZvj$WZ$T9edqEN!+#oj zrDynd|4Kb3Aq*PK?c*s2bjm#3J0|dSTmcQ{w?dZX-w>kkogtKq6#LCCY@5qM_!|N5 z>fVi>b$Ppm8=Y+@oj1gfCoExIK{nO_SX;5$Z-^8;A=K)|U@03(T}G4Egs{@52zfEc zdYq>XaZ z@dg$qegwEW`hCabCn&-U(WrcbuME&5284@8Cp(0X(Ql64SQi!>LAMgWc>Dr$Z-~yC zPF>Bx{9q?e48$$jeP9MpVPlS*TN%@*k5Z9(f+#t}a8voe%AK@YRCXjjODC@pdqUIO zq4vOqFDO=$^!Z~c-V^ri^1t3~SA|{aTZ1wE$VEQiBm7t?!Ziq=_Q>}`CCQN*2(?yk zAdH_pO=u?n)Z@Ng_4YOq32++!B%$}rCp1M44wXX(w_}V6*G3|jz;zr#ATKfD(sJz2 zf|-*g?g*xXMK{I4Z)V&?PN#KzF<2`nz;8B@(0f@11~Nv!YKpJ#XWd?oWac^>+9rLO zW5U66nIi#XN^UwHXaj~-*fzgpt8)^eRi z$EO`axkbBhnw^J(O-iDzF-$&q*2c7vl1*)U7igUsFY=t+I*hrZe}4SCJ3Y7YG|lBP zb80nbc0~w{2S}O;eGd@3dveXtPIyD5H^$%i`ajM%|Ej(=;pe{gPA7*a~Sg`w47R^hgy{OjLaZxJjkYZdy|qQYMKO4(Gk6*Ldg2 z%HXMh$0Bu**TN$2*}?OJqlK@vJy~)=eIu`WM5*@O} zNt}KvgxpHH8Cx`gaTL1;k8y<378S~QWu!Dfp*uQEbii-$&Kk=Ljhxz6pWO$I{&Itb zK_E#<&iD%$ga3F?gr9eRurh=V>Kqwg<|TM&#@_LJ z)gRa_%wI0s+3A3tx;Movs&Xm;+u-FRVsbLa=CIwu4wqxZno>*RA5cf!ju0f2R;4O zSfqlboOIJPUG}hb=~{JIl}_(v$;&6&!J;kIn-0%>Fk%|gS?pe2wKDhUR$34GmiWf} zb*)96Se07F*Qm9ai+2MJ$^be33ww5W)-f}_980EB?L&Z{*PIjWce^Ocie<*bB4@a_;C0wgOo>bFR~I6A@W6?6A^Ssc5C#j;V>RMGfg`2m(Fs}DvpBB*HNbw85v@Tmk04LMf+eayjpbPNkj;` zGm48aB_Rg)HyW%ay7rm zi)E5DKp3OyO)=u+f`JpzZy=~|v9{;;Al~=n*cFCSB_O`$cy}CN@YX?5C8O)q6~?bl zcA-Bx=T>QNhl?_>j?y?>vqfR^X|$Y(8?v*xdJ1Wc3AyUMG`>vN;j079kJ@6dVycu0 z0R1q+B@XUoY>V^2tOV;}bq@s3E}M|(jFt*wm(j$fLlLZcKlNEfwh5sph?0!Ao@xLG zQ}2Qo92fDQ;xFV8&(t_2Z$VuLVU@7FLOR;6VW&c=g67D|pZTDcmM^Apm5*}Yg(F#V ze9EVqj#`dVbcx-c4ETR>A(XyJ&HA@}-O)ETWd4WBBxmO0Vr20x2XwYGa&`S*G#I0* zqky7>_yw=GT0#p9781;%n!lolc*DK)PA4FIv4{O|o0+POKtQ-u0V(`^{X@}$- zlSV3#Zlf?BkD!lsaWWWSH6W1mq})#k0mwh>Mf}1-B0_3{-MSq;bGE&mniscqx+ME) z!>-3?cp54$cb&b!8XXNs^b`1y%{ zbKw*eG@G{7rMS{)pt=pQk~5>T+Q>{$S4_X%RKo;&($#+lr>-ugM9Ry`4UeKTOE1gP zY&1M_o;GR6q*3ixM0@cb7z>RM4-gYGr`Au-24KIC;{NP1rf4a|!r~iqeB|wPq)M5O zVphM&4nk^Dt5)I~&~8L$sqD3A^V5z_H_8mDT6vVEyavl)E$xrGDa`E91}j$!90#%< zR&70C+o1N7VPJm9WndpPZ3?FzBfnX#HA54w)TU2Mx%)lfRL8y~&5puqXWdT~w)eLg zPQ*gH_3Rx?;hw|(3jJD4uKc&76Hy?bZkAno!D zzD9A@Wl=Rq2C32=dykaHK*6kUVcvyCJ#Egjl~G)vMo6(}VP`Ui2zFr`E+3BMVSaVZ zCzIF5%okfKcFt;%AB3+5gpuGqmYp8gpq~I6Xp;!U{srsuB>(Z}H4d)C$=$;G6B5c7 zNt-Wyf50#If!B{s5G`C0@=GG_w#4Zmzh6W|o*`VVh`b@F$oxjsi_>+w^6ys^9q#ai zouPiNowf1hgO;6fx$(Q`u}sz=-Zp_fc&)q6VDPhlH|TtcI$&5wm0XdhIv=2mPeH!^ zgXSft7&n#i-NRwOd-y-)X2?01n%Vx>?(1Ju)c-JGRb?E$b2Gkb0n^3PoNoAj!}57h zZWoFoGV{XO!e{A2yS&)PbH#!zZX?s6z4a7o)D1%8kpz9gVrYoU?D~PC$Uo-;@{(+5~x zSnP?LWUubGa9yOx?`i2rHC>DFl4>;f?}3ucma7?Ci4O{JEN+Bw_=hBz@y9e%3dTKY zXPMYo@MUBtr)VenBju-uikN^BP;W$GUKHPVr?+Tcd(=)DM*V!a>rg7 zuSnE4WeA!c3VRcUvsm&a&t{eO<`-e7L*lE$@c=9C>njXo(bgM*WD_GQn1XqWSc6ulFuYXa3MpR+;2`tl(3NDKs`FO=wm+p~#A>Y--p%#3fL30~Pw?Lr{A{j?J z;=U;DCFSdkF^;xup;6-7ss5}N zk>?L2R3Ass5~zR`$V+rC|T3GmY?d8>)J%lmDU%#9*Qs|LX}|&;vREjZSVqO&UNA~cmoD- z_pLKexRqYpBx6#?^{7Tg7B}@(L$yf9TYA|h4Qazlz1KEv9|?9+59+sH4{KHkdD-qb zWi_k)4lB{&)w>|c?8A3!4ZKDE0C?Tl$eG@C#OpZiFAr4{c$MCKoKUaFS zq!Y+BE!T#1DVBC4jvairvHC^^@ zn-~wJ&x8cqGHLDEPx|7F)?7KINjao-wiTaDSu8=(I8x$wo6+us08QHBeZtc|M zS>(%FRt+REbIWRcAFMo2H~fGMvnyZ>|G*}8chrMav$)VLd35S5Gk#k60cev`b zn923?1+v;vn$8O8RO+?51(o8-V9}wpY_M+udnNN44nq)%fvKvZn(bp2MiGxv+VEgz zQ4XN`67t`EqJ!;3IvhQ3`P^GyuSdV0GaSEu_5%K9-{-izPgcd@1wru}_22RNuP>r;YQucn*1E0Ll zR!|75PTcsvm2R=15Z08!zX=g7MfeA_U%%jN90UEbca0OHsOaIHZz(b2q&Q6h?Vh>= zMm$mk4TI4$ccUnqpSV7sUQpjOh~SViQeL{f@{sSAEQ6f8_oju@6J00yQW;Vwa<=aWWFoo{?@M#{07 zp=!)Tww5qDv=9Opzv|eE3{xha-0vveH&COeLA^p5qeRwI#FQ*AzR#mQY6`!CCWSQF z*-VqLIaiKoZqeqX!6`L6B56yy-bSXKpAE`BHL79QoFfS1z`e@h)icIg~S-XrS4#YpcL`cD&{= z|Igl&CvSrKJd&|m-&zxBRmV2Q8CDxJZ@RfNFsl%Cu~8&xeeF+5@^!kJ1W(c}@^5)= zUV8@}@KEfKqNd=IAUQJLxRNk^1}`sELZV zHiMUv9vBXNsapyKD~(-OhHnUX>sxe*Vy)(C8s!Tie~4_pXw>qiu*JVku7~- z`cDC|lFF=p)A$xw*Y!my7OU?+(;ao!=KVpY=E%$D0?9G0iEO8x#x2A9tBJ-84up3r z%X(%&fFl)WoeGw1ziXJIWbJ;TiUN21w-{L|j>HT?nmcL~M;fcbl{CjF;9+>{4_DBq zQttcma({W|t|{!d<0RTDxd{&{)Xc;Sc#o94yoathWH<0MB@5Pg8>o({@3%7T1`lgz z7>2ngoM7yQ$)9+yjM+adZ{h{apK4Eo**^vYj5hB+*T^A&WQYUHs^ zXk>Vmc6X7hF)n(dUTp-&sXdx84D7`s!u(CxR&`%w&N0!?Q)}e<#s@2)kHAbfv^-kC ziS_ehCGR#(ON&~I4U1#H4j5bEro))vi~IoXBZt16t3EV~H2edwnSZ5tbu}9FMO6fm zW%>d0H}#eP{-Ia5YkZiA8q|>}zb@O-`P>Pf;tI6_gZk*H;>Us?vTP$Ew7I=jTfAvM z_38<1nwtz{xj+yuLw@ZAi{)rvwb#>24`!LZ!>g1$`h_nuEMh2})@UGhlLll;BH_dU zZM ziF6VE;BOv_qxn17-g1UD+*S0m)i(aso&t-eWkMZsX&RB74OUkVN#x4W7j5sC5|Z0Q zQ%QtHL0)`$chMBp$Q?hs!yYOPtO}A&7%J0!)&$w`@P|27r9WpuYr>!unyXBH(YX~B zqi#lz+eGMgMs^6T3*MZ3LB>zN&8(@q5yVxJaUn}dlg3XBjZKrE(k#d+4H;1tcSiA> znPW^xcd@`nGe~FyO6T}AS1q{VY*>D3gt7%LobWGgPdD+M$xO3`_DEu3GqSb4Ius)rDpaBXw|w~DwNt_UFdgz!_?OwNedPEd$Nf9Nl0+GiDB1EoO^)_JD9K_zT3&YsyhvXF$UO^=ZJ$G5JN$t7mS( z%l@#^=D3@^+PlYUP{9ZNIGcH#@jkqhr6Cc}=J0f>>uuMJ`xj^p<6`{SU28+7V0$X) zN?yAyX>3q4HU?6#FSLA!SvQ2<8Ujc)KkMy5UwPw!Rn5j*po)zzdMPuv!FsE1<$?YC zNp2+@-}qAI_Mxgq(iIS_G8ZT$LVvWE>dtXa@Gcs;;vSn^pK8D#;5wa6dp^ip#z~ZV zRPTAv>QZ)5QG|$G3$4AAl>7#1Wp3c2 zEfd>XlVb-h_3YISgbey!x}M|u*t(4B)i64T0{&VQoBh2!bZL7c9%DQ8w*zDPwVRr< z>sj<7ZBy|W**OcdSS9y)d^IyF9O?WQrSNttDlhm9wrl-Q!M4WF@6R4FG^@4Cm zw221!cZQDyL&AK&rD(@nvpo|06IQ1yyr$1{`;6;~-WXG55tZyE9#tIGWDT)u!dKp94=@-DXXsb2&$Uw?u_f_vwp)_S(JtG!Z+}`nroq^;E z&l*)0{q&8j6B{ibxk@A&8i5rI)tcIKHTHg+lY4|tTr}dY{R9hl^zNMyzNE@d2sOjS zkF=CU&Q4V6dR|S+j01KzEW0YgA#VNwAXNIAG!s@{gP!nL@v*fin{R%NKUB^ahDZK1`lZZ}wJQfQV| zKk)$jG=4ar1MJB5Zalc(Iz0d8pLk|nY>aFE0Z$u2Np@17=gPB(9gq(^5QN#Zd%|^N z8ge^p5iCSO*b_E6leL3WFmXeV(n=^veVTpsxXrjj-SlRX*-*;i9cNJs%}87FcJN0^ zU3$y-!U!=}A`4JJddw~$etJbvJ9 z=)jC!A7&0}uE@2fR*Yqb8cg+@2e6niBX9mxY14PO;}UZVobTOU-zJUC04vj4xT{XP z&zk|P#nnl(S8=yS|BWf;X-&4?K5BfXv^`jj4^5wOUpWBRtJF?2o+^cSIK{bb=}Lrt zGa*a%Wy9xYBU9f@?)?F-1{@@Vw-gukNv`71OZoJab!t(NC+bJD1b@ZZc3kglbTBY2 zMy4>jnF$a>!?^dFBzocpHlWY?8!yeXv_ml;@MGgY1M4#IPB6Bq8L8Z2IzPtsh5rMJ>-uyQL zL{e3ai*Wj*JaWyHj$@!8jf2Ji{?>dspw|B@I99K#x-fDIntC;{p3X>O00qh(PR^4& zH`CMHcx4Fx=bX<>c(750%RsMVKwnYMj@$v`Su1At_IJ()aSGK~Iz+O@so#e$E9B3o zhKEiIDeAEKR&R$w%j7#&TrsFYa|_gGKY6yikO1m^LDDa)eFAp@+?-#8mmyNppA&Th zl(GgaC-(P&1rP47vLv#ZZ2|1)Ni$nkylCwg>`|uLO~^K=M+2tGGWz+H7~}PFc*m4e z3zi{#Drq0Bj^<*=9WCru#*W8n)21!7nkdOe?Ep5)G)ieyz9{JG-EO;D0*S|+&H<0!!~;MqUl&qW@>`*k->@Z zKnQJUbTpQgQsG5fgz>jxZ{Wr7S?>bbu7M{_j%P_vkfo7fp$@P6iU;+o%R9KWw90sz z>ms|t-y?NZi}yYQpXBDMLVxGZAwXM^6cM1$mqh!Au!+@GhT0ZRyphSm^*Yf^=l~9a z*$<=b4MpZ!zN6g^Z~lV}*;FxhS^52vP<)R~|Ma3L8acaKnb`iH(1RGY|ISmjPm~kZ z+@23sE-zn&hQhS-vnf!ORE`D@CK42)p*I4NNs^OA4~so`0r>#COuLK8fG2PjpU2`k zc$vZqNIu}|3Y$yuccnv7xfW8M!m&>Zz-TXeSOG?1^iW=HxO&Yot7Wz#0skEKw~APVb{f)Aulx zp_@sO^t%kJb}+gMX;nN-HHC*BkE;dxQ|HaAMs!b(TxA+ED!>H;!A9nHubaZB z>qdk5=;m@wwpOV^X+(_cwVLKO3Nt!ZMdor&%EEPrRpOydpaZ9Tmx57fY%UZnwrX%L z;l>{eVOE+fz}pSCYCr~EU2;?I$-e>KU7GAxd`#@y#vDbeRNOlBR%#QY7>^;j49flR z-J%-)>4gpNSKsZ=8cN^@G&5K5&$am3M>l7Vf)Ma5+2KxoUqgBiY#=% z$uc$C)~5XfF(a!xk*$56wMN-Xy0lu|DSC5Dk`A;(l25Yi`O5LSzc-3*VFjLQz zgXU7z1T-P1P za`}KyNq@n}a8K|}RGVyDEZO$dVc0GNIH&73pPvj6Zuddf?ELYF;{EBl5h?-IdoaKO zx#PO$0TtJN!@2hhMgmHq?S{0*^6e>08nm9xsc*Tpgq(b}K@@!c+mF>sa+?g5q?3>j z+Y1WmHg^C8sq9AFx9p}t5%Wz8)IapzRl!J`Tp-^R;k2_3Q8yqW)|K@RhgbC{n}%VH zBGNJtb${m5P2-cw)(J!75#Qu!=Fj5xf?7$u0t?8O*uDGQ(faqPdY#7WtgZtV${rN` zm)xSHW@pgh3H0l{lWGyWKPcTBe>Udu|0310Hg&upcG^C(-5qDXQh7c2{GEzpz3(gw z=UogxHa)4(lS%lM=B`zul=_Qd;){0TYY5{B1O7YUmA-`oFJgHPki#qTizUxEBjI|K zzfSl#R$_3kW2?I^w#vr2x7M;Pui6HHX^x1OwGwXVZVT#}xG~mv5!m-x_y~&Qy+A5{o421W6Ns(6Tfe+9H*E_WwuO zJ4RRDW!uA5vCR|Pwr$(CZB}eMm84?Ztk||~v*P5<^LF39-Tk3&|G%H{J7esz_gZt! zHP>9b-rsgbXD(w12*Fku({HCm>hHk-QO~N`f$hBf>(O1 z8_&^9#fVFoj?g7zKq#nky$-co)0`-il?DVCD3qy?+Du8$If@nQoF-eeN+pk5=SL$L zm{iG8%3T*|(8SB_I@Ggq8YIrjnB2!G5+{1Jl6#<6>eZ?^S}C<|lVrJ)wO43r(FQ!$ zX<8PLk@lau3qTH(9Wr)L>+YU+CqxmD#-Ap?fo&!sI8v=VQ=t}nx{3-?ZW02yRV6+4 zr8(ZsakO*$td1P;nA{Z^>A8(^&0f)R9Hbk1Tt)*0vmdBdOQyYG7u5q#(NY=wwof6r zI)K`lzb;)dA(KKtz_xv7lqppVBDz5XwdetuYcx-DlaWfhsB*vcTWo8P`3 z7u1bBc(u@NmeDFBZIzl&(VtwJhXHe?8zp;!wI4g);fNpG9UTd}Dn)U-*vyo3D>#fn zpW2GzE4dtEyf&3-5ld+CWsiBuO?F3$V`1?3`VWjjV=!NT8LSbWQzhYhNFEPRA^kUdZ8e8R>pi zFGyclGDAlzL4A3NSSa_##JDU(6y4%aU`vJlIfw}Wz97n~ZhJ2BGz*)ce@g8Zn2}4gD?38%Gp$%QUFtuh z?)+G=6n2MO%dK1K45~jPS-_g&E?g0_$9My#+93}JvquJU&h!0Rmq`9lCRXYd4%YG` z{E`f=k*!j%NQv);Brm=nSRC>I7pP+x@&p$}cU})TJHC3GB$rW+?}k!=?S=~^3AJRD z@@gKngFJSYw#8QvSJCpg_DP@eq@9?ttwg*C=@qr%cy^F4f6S$F8_JU>OW|1<)<-_P;k;Ph zXETM>H=VxAxL9CBxWpTO)}uTIvcTKrqfKLx4uu~<1piBAZ9qZk8Bl4lGnn2qI4 z#oQe?(AW2TN3OTmY_^6Fwp@^M94-{qm7`*j8{znvK?RH@52-+?CycQ8KHyG_32h zwT!W~l2Qy=cd`Rkvk%Gx8PIW~^0M0fBK7@@PP4o0#eC5~#ixR3^hJIe28ppRgS%i% z2!{os%oMzbvY2mB!0sw{17}9sM?et+DwBp9CL+ynVqWfS?D8g8!CeNJaS5p!SZ6ncLnPM#8R`-ai;)MPtQ zbv*KpQ&jDcRn#Az^d$1|ZxP+|m<2!9%ERJm?7Vl>_fA35ls)9km^^cRQtpl&c0|xR zh3X=VlMPeN101Nlf6=1Zgo$JhWN;qTqVgU~Xgvxj1>hBG=1}Pku?cUshkHIdyUhzc zn*t}%I$*|~Mx>Li`;;3v$F|%R32&S?GtgG;DQkDd@Cu(3ij8fFP45Go>7Kx!1UHV$ zX`)$un@9mS9n@8c-tXaCfOnaJQ!i;kk2^2Ji--VErD@f9r3&I-sa|MOU zYj^Sj8_`8V_KDLu(@PU`o7&LixS!$ODXH;ZdV$->bshqEpSQ2B6+Q!6CoxmSbI^>#m6Ph6Oae%%MA5R#MHpCt>6;&H@=Ns>Fe`s$Q?k}Dy zsJF0ySQPK^X`Kw_Ruyi&>v57kC+(0uk0BbfD3N^mov$7nn){bi0ea;)BwFHb!`+GJYONi;>8L7Z6? zhHkLH#0slheTqW)4WN%M{7-aq<%-@`xzD>zudBGCV}`&er^v2aDF8P&0){C3Euhxe zn7WVFjCM=7Dg1n%*fCwmLXeeGagWR%i)g66>0rX#-0B?^lJI|uV3-6eM-q#GE)%&9B zYtUs*C5=$$=iBDM|izfqRKw|`Ks+G!!`X+RGe=41Q>B={-J0rW$6PaQrK5faVcQ(`JLF~me zQGj4=k|thdLX=8Z9x?G(Jhhi(^eHu~pv*=!3->(Lo-@-o9a-WTZVQs|4+*F0;}ZNW zd|$>&uwOH2dBuI#@gU39u(tjdr7lkm_ndE%(m|hR?dMX6nN`eVM&)!ap|dP5iUHnen3j-1|Utc=D|x7i$!0 zorC(cEA;JKDwVlsjC!7`BFK)gG0cJQQ&gYrZ*5bZsSTO7!HXQY;&~=Q(;HBJEAF-! z;iIlL&=ZClE3MHUlHN+uP>tqx95I>W&Tuz$OlN|8$b!3 zBO1c~!AN-UzTSb*QA9>aT}(_1xrhJP>L!9UU&!-of@%H#oM8I50H`i+;B5Z)DOZ)P zuPIlQ4_hZUHjSpjBw9&ie#>CvwF}GmlKapk2mmZ7>^(U5c7pY)%j|@#>sdietj|3> zf}XigjUCLS^DGe4!-n7BXSe5Nk)TZ<24kYrW$WY5SD&Lxo}-WF$2*;VeM12ezR9v_ z2U>yMERabf`X6o#N!?y8zqSprEl{BtDPdrs8S)g@OTy|=I;!))@gNw`hDdVxPFj`Qpez$FxPzUb+TYc6l-m*n?;O{!^~j9S|d>ti}w%JS9K2-d<_)+Ho0&T8-^NZ0wm7GgnD#qgrTaIM0s~ru>sj@wqh`_KyCJ#m_ zDOVrPf{oc{>6o2!D=6m=Qv$JUmfV z)XSTiKXf-A&TDNlZl0l~6Awzik$+>Pm8d)K*wp!cE4Br9AH0TJ4r`6BQctlnWKBtC zWw5X&D7veqvDYD_(218D(~2u}`8ijp7TMnMM%AXruW=k{M|3lk(f?83QTu2e&6E{M z!RY(SW9XRi@pGA6UW6z&UjN=7L$V-J6!}!xIzi5c(5xVXJ>|d**FgA)Yufim>D}hc zki3M(S=i99mH!|g@1O)x^18sIl0l`=u9B4wb@KZ18cVilO_@31RiE#w_;U{Wp1PpG zuGztxbo4XG;`k?h=JD6Y#yK#*bRV*ecodjC3pR{L=k%`poB!s{3 zj1fwI1lDdC+Tt)yNfyzHAw-cVVR^}olgc)!GkOa;#yvd{MaB~7QsN*Z#3sj-BU~lN zOvOF@lluNIrs70=U~cJ)$mjjixc+B;_Fv!f-(GQ{@|x@#KLQUH*$QzQ(j|(g426qy zghzRqvN$;sl43a_0l`a)OUm|eBav6+w$M|oswF=V6c)Qsmnjh}cueHvxMlkQyD7J1msgcI=0kPw2VpI+zS;X9D>7A#}UygV=VM zj%!$g7mWLE_Xf{S7>(F7i2FO|W5da{d+*0jle{NIFiFL5KUw5nCZ4m!vJAYR!T1gLZ}>4qZ6=J-q8 zwnhiUK7zQ11sSj<2#%D`;1nGhE~so~%Nry`#L(<~CS?YtJSZ>x$yhW|$O1*REgOc` zgh8IS)jEe9LKhfoebZuNhyX?Ib2l^uG107}Fs z6N3PDg7}Itu6s^swA4oLOZ03GPha{Yzd&Qx_EX?6l~vB*1+9LDZEE{OCF9K`L&^B} zibUAJDubgBzD*#Q>@j;Vh*OX^o&q7q;#o+(xMNsD_%7eShWon8H15kUoD1|Ng=YJI zz`FuQ&K9l)&USyFj7yH6k_2Wz2=$w3(yC0}Ray=Nnew{ELxG}!61*XfTFI4JA(e8a zz9{#&{_ag~;fe}+Q!{Y@ovznKpBOvU?1sGyR17JLbdNeInTyXfs`ote6d=Y+UT}nr zcbEai2)&2}7b0b&CQ`)~kI7YAx3G6Lk>yqhQYSlmV_!5)M&v5fOEl(DbiF>T8k+x0 z;?KzsV+NA&^f=0U$rK8kGvMGep6pC&3mHx_wx#CHBWc=7&f_XyYc;Rskk4Zju=6^; zyH4w}j^_+x7qjcLE+5OM%xxYQREL9yhWD^8m*7g(DlP1`A{P`lm+y!Gc1b&5F zJWXJ8;zG%qreDLe)`IkSBrE!REWdlPZpzrSyE%&N_Zw0jWB7XYw(aE2T(@Y#3s_i= z_Omw9-Llgk)6?0W->dc9@b`!T0#SRB-!{8hbQwFej}D}CQ#_s}2cX6l@M+lGKPT`* zZdmBHt{thu>@=3f#%$6$o?{|dP*?Cp^-G6qDe?LZ)>Rbb9pnbwC?k+i+G}kk;uw(v zTFXsG$|^Ih3NR$MnDElV^E4*O7+o9XC#S?AjubV@tlCY2RO;oMR>T5Q+Laq5 zQyu}sCKY*&rfOwKvPD!2-o3=j?W%@-WmOuD!nqB)($;Y(_KI#MbIO&dbtY#A8w89@&ElSxy@YDx8_GG8p z^S*HMY?vF4^}E+4kVFjLrgWlb63wWSy}Vkcyhkj}%>W~g<-XoleuIo~teL&fSg8=A zjbBl5Zbrgx%Mol|REZfZsS}WE*Jm;=D-Y_pg^P32T6$PTO{FSJa`|nGR%(piHhT9U zINooIAh}S6>Wja>aQq!Whsq_NTIL*eHi>{lhWV%ilkAQ}G_oL-(Ue@RjCFa^IXhjt zu>nWgInyKOTtQ2+t(ZhRZw>Y3F=M5A86grj)5)#MSQEkMfIR6!7v5Q55!SRCv){aQ> z*;$JVcFtX@@2fe|M=fhbo}Xuc^T;xuTb5VUyC^>d42$fZIQelEUzD=NrMf|jqGdTi zwtfG*Sm`rViRz##v&UnwmO$Vtn-22mV`;wuXMRGsSD7vPK>C}Wl1L&WompjcA@)Y9 zGtIOLV#&hQJcv!cw~})UzL-|E30nix(BSu~)<2vqma?&6WIlgd1#AU8j30EaVEU1#Lr*H zFk`=y^9-Eiga#?yv%=za0vo+BiMP!M$+2a`J-8!B_|`#wDqV-J!W9RP5hNf<{QiJW zBJ1@AGYj?zL+~N?!YCPX@&mtewZFPqpW5Lu&<)yh(8I5PK>}`Ti{2!im%%2I@o(gc zrO&$qrh0SBAzF6MR`E$jVM|(*0f~x2fA;a7CUD%YrOz1xHNZs+=aSzu>zp^`#9hBi zH*=d{x(|&hl}1SRu^?h@1ht{veTDQ96>jYe{vZ=QMmaeo!`=v*_TYC)L+6M6u51_p z`(kULPkT%Bc58HK4ILOlwR-o6cbPkMSbe1z37&`C%-P`{v9teD=+|q1LfXa=5mV`oh!p+%G(0H zZGn6Lhu-D`FXecj^tjzI`WpghLg)h|FKXsdm_mYM5V!%X+Gv+%W>n3-QGrHo_uy^EA{8@;1<#L7uBCgtZjSrNh3w3A5rZ)qnpA7aQDWF90GbjgW6j_W>MRiugb@RM@9H!ivmi{CtDLd3 zpHn`eS~$m083DSSugCUX-u5ylPM`%Ua}u!Odgs}<#b@624R zDT^@Q{H2fyalpS;r)oK4_TzOqN9=dH-Sk^} z!lA*_!V`Z0}tSx*zUvzDdy+1!*`SA;3Mq`sQqz+Idd3c1P zXPPXzyJe-irFZs>d1;LA9YU`6zH(6O$EQNoH$R_%ceERA3js?3Az!GdxoSzt9Pqj& z;X$mIy!I4b-2XHcTjgRjADwn>_SEqTHJ9=nRcZg@kRQ?Q-hS9R>e4n=SIh~NH&~Zk zwN4nR&bq1VgyLZ{;4SL1Zhx4;&ml1!az1*9uijL9RvM#hoA`6xm4g1@u9n~P{YPKS zM8?s`uT_^``4FHjRIyvWh+AnChWHU^lJW^&#OZQhDX4v+0}#uVFC5UQ3T&2G>aS`{ z!sH1^Rn#|8XXVPa;_EoF9x;%A+Ii9Rktprl%hNVDt!u}Ja00}~0P z&fBL0?1F4Xp57ArN{YLk8&1_?xr=x?yB;;m8Yu9~f+@z;73j5OErz-(cD)2h?b8p< zvw%Jf0Y`EXcF!SNvY9|0K#<*i@~4KV^I;S`gLn=7s&2&GIh%dMX2tx4r**VfGVe?u zBE;PINN*&CmhW^3LU&=yl-F&T4pE7A5y{2VxVyQMX;?uN=m#BAA#;r^+R5)M(eHAz zCJq%*E#lQbCB9i4b4xVLd883~(iR;NagOYP{ea%q3vpF){~8AD*Aa~1{$^I$3Jg&` zFE&c~n5*H@3IDz{EO_lb_<}C3hmchR7uVFl%cxogzb7A0%BK1jqMHe(V3It1m-g_C z%lM*J@jLeX@oBbBoIgdF`K9~kYv{=^Lk8;P#~&*I z8dI>eg)N@Z)+u4N+~?DjUa0x8ZP-i&0-9(&zj+a~C$G*hwmck+rH~y%84m`ZKBeR# zi8vVx_Scd$R#%S@ay3J0)pwG`8u`EsPoRH& z&HI-Znx9|M6X=V``7e?EKVI`cb2-XdN^|@uA5Ah6SippWh$0HY$H7PfA_qnOC8!_` z!wap;wfUrw=>~C$ZxFqO@2kOFs(SP)E~XFavZ%qJ-eX$ z64(5~kCK8qok7VvaD-5s#_m;V2(pK*WLymhBacH&MpQx&YX<^_%yj|Dh4kPFo5XJm z`V6VDi#SN3Z#P+wpBa;%F;frW>i#7*sC!!NGBIC?N^@`sYgOnrK3Q$-BPlP4N$%};2-4q(vA=tsSf~iC*6n-7!hOc4z*&g{47Ov zY-=x@kez)Ag%Wb%+_6tA*5S&zCIsn64!KqU60#Z_B`s04y-^aQts$(h`<~#OY19$@(7tsOp714A7fc}p>g3a8Xy`)V2`t$t#kKXp2rED z1GoNoB*83889HyEy`-?_EW~ZXY(tZL8_KuPgv-fYo%y(f(CKmTh?y=#kqA-OC?QOl zULA!gJooHDzz@t0O9>zubCZC33My%x(;&QT;j zX#~A6#k3?MvCL{4aCqoA8^_qymY^;xhT=)xQw_=OtUz0>)|aHkQVl^TO?hlZD2%Ib z+Q+Ve6-yXNND8QWe-$NbQV$m_`i@p4L5ho)cC43hG?Eb-1eLH?`-EQer=QjP!`1?M zqn76Bte}cU+^@t`I@1+yMA(p>VTV36(O|k+(D^rlX%% z+FgC#pANUMBI{pT_&_Yw<(ATBEmm7K1B1p0mWs9Inp%k(Jt)-k;izrbL}Ak`_5Idy z8*4;KJ3Z(|A@awGot{W$XdecI^Bufl>bO?C3s}QXe-k-UN=3Xk8_Y5O!j-}4QW^DQ zx9F-w($-PoB=X)qhnh()#!czpujg(Bw|nH_^T@rrMiFmC()rIJ`YyBC#O%4sMFLvU zhkQ3+);qDDibgqn4Dmprh_4RkFy7nkZcp`dB}*eePr zO{00l#PhBGI<<6f>cqKzFRQK$v0SvK_A4T=_1uDq^v1j9aUsz~ktP)gn#lYJrhW(a zr|-0UNSAWlBteEkOdk$;kXTktMHoX){SKy9=&?Ae&tE&GKCr1LAabZ>M&&1AO(6R_ zb+$@04b%Ka43#ZIkSe9?-$ z0f$r-ZrLH`mDu^rjK-7E1{>S#tB25|M3IzNcR$Mq9#o!u!wVxv<^DJR{)J%6O)1C5 zzV3+H*M0fVR$%`?uqw6|4lX8gj$cUjZ`XzE!ETB7YYUtXm@h3D8W@}`e$U8c_rPTL z#BjH1VtT5E;n1*t;Z9<*dP+%7Vp?hyp0;9AdaA8Vlz5FP1`%+ildmKtJTMh7JUlQR zFdk8$uCGFyuc3gUqiC70h^2y~Wv#ENtw4+~Xq>FX1l0(2={)?z7&W!b1Kq7`rLi$R ziC`dE($3EuwXg4{rK|N0>q`{X_f*lAQj41y>%*AJgMh(914Ddk<+rQ(F5!wV2Sq*# zRq))<;NslOL~j{hXKkXt3ZXjk?cW~K^O3n-?bqR8d>szcfA^474Xj;El)kX0$=}W< zI*tJ@fFD7`4Dq|s9zzYi*Eh>bacb7wS_c!d8e@}@8bC)zF!;6n;J|1}@Z8%t@s-)f zZ@wzFv~DO^SO1!0TZ$@z_Y)y;nYJdllOI5jmxUelW4wz#^!MS zzGxHb7A}BVht#(_8@Z7r^=#8*ETHFS&E0FpFj641Pd#FcvzAG_-4UYp`^^efh<%E8 z%0RJHzrVn@JrIIBoS<*I#R$>GWdD0T{t6}Tud`#(UqHJS>DxD!|Lz3-|E&BkedbE_ zvoG6m#Lvox)deFRl;X@qm-#sGaBC{nvm!WR3;x<<)%jRv#Z5U8-4#g_iDcCQ3G>+i z52aD8SwX|l0Dmy^ZdLoag2G@lNe=H2z8}DP&tRs9Rm4;gKihbou(!O99Q>G^uEy7S zJdb`?ulwU*-Jr8w3MmehV6hVGKp2ikqsZQ#I-pu)4{gZPXoQ4P!*k$f>kDLu20$C6 z(W2ZGKt9;iBN&9^V#|xJi z4S*4ckCQY#n>v9q?moDVC5H~nbsU?PGON%2XV~6Pxfh3Rh9^1-oYiV@?Ou&zQ6&?2!9(F)|H*VUu ze1ExWW2ZBIhetuxf&e}dctv=ULV8U@f)TbQ<*7tQvF4@PC&^zRwU=`rN6r5WrW zM>dK{4!*uPLS{wd(YOeIo5{tk$Xptf%4-7^{`Z zLoZ%lZSP}7nu*SW6~;-#NU*QMIOZX&<3(qUV!n$e$jt57@VK9q3TN6y$C%t5@|WpD z$<5!C0cXDBecQ!1I!?OusOQThk4c>4y1SWi*x?QqR+JI%v*5crHWJ7%t5*zcIzQUEt}pb*hcxAx`Emdz@X(!2Vtl0QNU ztAL%`+aaS3!0od|J!0XGMQ6Sb1Pqit4tv1{V$9M<$yqKB2nB_TG5p#AXV2RSZTYoB zSfrvodrkDFJ|M@Obgcx-*C$0uYxM-`YV}0oTexcit9ES#`@1J9L?fwG-3sSux$1Z` zETSCX8_7XATr{NKt|;}43cGY&7IM~-yTj5^wSy05@r1Ls41elE1(354V@PMd1<2y( z?!v;_?LGoN{F|9OqWNyG$zZRp|M2bUoRWnyAq7MxlTQ#ONmJYci}UF`5x&~auD6xM!up>p^fM1`wfik>8tctvm?6-*LAuqiK_<%Dm#pH5^|L7% zVO0`TX>YPY^v^e;_xgY21%K}tF#q;U48dyj;B14tRfGub>}tKq^gudoPA{9LqAT1vsu;R?WvF^z_1ccgW*Y5DN|4R1kZd z;p@~fl&MCXVB`}IC>oL+?+dWoBa1Yp2haif;i1rE_o#p*dm2uV$p7(%l0#-A~ z30_}O2{A&GG&_Px!dl9m?6vSK2|5twQqv8T^sG8AkkK58!kWALtYOx3ndRX zq^jXPdoO$^0P$V}?9wnnXYBL2z^qwn&E;Ab zYy&SjOt7ryQcdMB+h>=_m@`ZHVJKUj3_Uy-lckQ!pJ`*dz@Q>bbU<=1%J^L8vxx zk%WyVOy(-Ilb@ZW*+`kpInrR4mF|Vqs1lU~C!>+_2S~qlPi*yrXOE3O4Fn;tzS4JvQ-sAY4`e^>l1Ay+|DLXo{3a>M}9h3Wo8u)2aIaSu9D;= zuYay+$XxD)saYO?meHY4OwBx`Uc(R_{{)xSDRk7Jff7-p$W7It3cx0K#|-ah-^DCHnrBEhDtufFQ+p#;iZ)JDwmP- z4?_j5)_~~|nGi)Ftheg6gTI(=in2#>kpWu&oMiYyT|16d9_-b3-#U|41JU=%0C*p!aEwqJTnW9i!1N_(|4WQnL6rtz>{CFgH zj_lw6O-BOaxY_0NMLitB|6i^#Hh+1>IME5o2)cZ!<^M-Q*Qk2-mxkoiran`q3A#X> zyeFDFB97FiuU_9>9I{$cGfpfQG?-*1i9e&?IkM6YC1)EN4}!81j_Ex@b5+3;uf&q7pmA>xxhk z_oA4L3s9+r+4kfZ$olH%q$jT##|p#*;5;xvL0#NKBosue0}kj-?kOO4s1wah?y17? z35@s$oq#${E<_pI>2ju^%%%4uHxxR5k;!4s_~xfEd*-KS3$m_mVevTnAKd5Jn%;7t zZIO2;Zq6vtgYVh^0Y>?~ZYhYy0N56SlqW&C#e2_PKPmXlQR%rl<>)ffjTi0HEZeg5 zxgHAA>EIyLpY`8wnj|3Vb~cknOvY(|7K123m)sx__WBXzH>}d!?95F#RFta29>z~t z$K83&037wvHjwPPx)R)SO8KAL{5|?USZ8LAjW*_X@&wqHZ}igS(o4OBL_&@L@1Q)XZI6zz(pENQ z5sQlv=M+3X8ccnWn@|_dD#k;J*2Bh3IzPPg+rCO+Rm5u->O5Fh~px%Qx)qYphJD*_H-BR|cnxR@15$L8- zcbx&O^Z875t;OK*hK5<40WI}%L!3ldcdY@g7JPjX4n9}oXk1DB*Kg=IRS_&vn;}o* z=bGtLi&wxS{5pA>|0X}o>SmF|e@kHXIK zpd%^CmgE?biS>GBv_RXxDkENtLkNOxdfgI#$}R1?yAsh)J47 zedc%;UnHrRHYtTtIg}A9%{Asw)ZKR)rkwuZEjD&!FesonhkdLJKG^~Vx}0*(VZ5+- zLqWBb$jU~ekDZr+EW>$KylpJ13E~yc{3c$q%NA@3^&5s+)xoZD&}CA5D!P$Q9@r=Wifk{LHPN^rd* zJTR`YJT3^UA;q?DW0M{3S!M@C4LW~9}y(6kXyop{KiMv$mDvp^rvYUEzB zu^>J6BC0ug7gk&KSb4 z)yLlcH5$W(bqvvH?`V*80}SDZGfo;t@1y`CuWH+m?g`psYn zjvuuLfUM*?VmM$PK?)S8GtL$GDRFW(t&g653pC~Zfi4UbJ^G15yc=!*)d22DpBe*5 z=>#<*zFI}<9Ml{jy#nQ1rSqje^SW8&4|hx(XS2wK5@nPYZ$TvYW+-7NLFTi<&Pk`V8^)}Q|CnOC=nYmFaVQ0Eps~+-x~h>n z_)s4uef>lpT|mwdMJt2bZ#{8@8zgoo|Bk5ttkVr8WseA1wR`(uK8v6lCq9fs@T2g) zy4de&b6-l>nvBOC$P1gys#5p6@|IwM6AbK@K$8~O2iU)s>MXn7$|+w0kHjxc_(?huM6W^lGLM*$wg%2P3g&@#2bkG;wK5lW5^j(_Us+ zrhHYHIYpTe`&s(P1Vx2gtuke$i4M)=2FF6;%EAP@62+Jw6BQX-3@m3Nk~7JKZ17n| zT}BopCrP9lZqin5rW5onf;*^SZa?etWYR5F3j0YX@090QO7qfG7WPm2qa6pPRW>Z2 z_HElD%24GHdP*0QfPG9XM&dFCy&%AC+|{R1~5LX@us@a=#+Bl zkQCFbea6Z=Wo$w`?5PNLRu*Kuh1-=rA2sOX&Gs^sdlS=Uh>EaOqQem7)<^MrLA*6| zglp8SXvWIcQ-2ZN|ep_nR6RtxtCCpNF4M>rNc3S z?u(%CZ$~!_o5XYWVe~x}B9_BN8XbV`glg@zhsmIbL=leLUpX3{WokMMDYMhd1PM#; z!J!_5dX=eQ9W|v?qJI-}jwF~(_%UH?o7-qeYf0)d(^xlc%4WkU2DHAy&pIjtJZ{-K8F*FiUjD zj>?8cYNsm3HGfh#;jV57xJdMH?At*wi$2=5*r{TtF6qX6KxM5Im2$o28p_HuM9!~x z;I~}bd?d?s_n~lA=$6}BB+z~EHqvlmrr(6xWSz#FOEG@3j{RHm|ewUx(Ta*8$_1BYkQS!o#yEGDrgtTVfYrx ziRB4AR-4=Pn<=bLe8WQQU(Fuf6hkpSt7a z(WSZqya+>&Jz@Q9?VU@Oe1b0ZehQP`q~~+;r(Fxbxh#Au#mz0wb;DDd$ZAX^-Ab=S zC+=KE+_WH? zJ=KJ_tAo`DrVpQC8wgj2W7m<>bJQ@oh1CF^t;Y+%X7AsY;tt2%1be@|a5DAXdVXMo2*W25>PcpGHuPsx+h`elm2+nzH-cC) z0l<#6{K&NRUX3Wh${9gGOe8Ssk5<6EXz9(I+Q4u!`ne;_i98XtnfpgIUYe-}^Vi8&!}uZXoA3RWzcC`M9niA79?r$X~Nln{L;c`|faQ^5h6i;D)` z(S3v^N~*L=Yo2d%6;;eJhf`Rt6M?P-&5G#AEC2zf>YTc74SH{N6Y1GxDP@`ZD6<6Z z@mc+6?m?RY<{wzF5k4$r7Q(s;1=4Co`jeGaR~ZjN-+F>`x5>C&fDjWwpDlFm^=K3|FgV4m%9^J1}{8IMn(wIL_GmTCjd|)hmWIl4!Cb3e= zA{CQ5AOP(QqhgPRhWhfshe?e|cLO!sQJM~Pvh~j0mLf(0L3AW4)d!*ou}A)8OenLP z*K|amHLqQYRD1jl{U{nJE8`PPrH8nvrMVdp3Eq^uO;|$uUR^|eOMOiv|2~ia<1-{5 zO;Xwv-60AB6Ofa0_pu}gn`|b~j0M_Fbd1vT{;2~JdPa8*P!pfqU!-lQGo81EYQ5*D z%Uqqk7$NU#9{LTt8Duyov}u_-t4xEI6|eLW*mxvvk?8w5HhVrMGCFtifJag+cw9gh zgappk<^ZJ&$SFEo4|X&6J?!p?JlqI9q}4@lWJngREM6^pP}ZGqPOzohEdB$WQA&IS zFJfnpMNQ5f63HfbO^x@QE#M79aqK0jGd5+vnHJfi%mx=v!N!Z{Evy-fA2d7PbRAEJ z{4-bfCs9pEF5V9!7>T3Op9mpK1fkx7mIDLc+An*Te7Q30c*!ms_WrsO;Zn;%^!Qcz zT-dwoy0w1Lm*K`Tp~1a!jKfbcn(2%TMMcgr!uGO2a#_%t=grw<6|Dlqk| zmRQ4cgktk4!iUqyq0hr6a?zI*6ZRYZ3nkD|MvdzjIv zZECwO!%jpT65h>0t*OV>Y&N7@`$w{#+>2s8V#oB4v8R@;Lwo0CWJ zrS&=?$6-WK1|#p%R|5mx%9}|W&KpVi5rhad*gt^{+?jGabTT^)SDt7Xlv3>+$LZScHvi5KhW}W9DH4fRa{xp-$ z+Krl4l~tz$Bz>NlE~7cg7!8kGMwfc|D~yz<-n57Tr0zbUxxKg`O2s#UKJq$1wD}K% z-O7haMxC+xiH8)jp8&rmrCr#ad7h9H?jN^+M~HA%)s`zQ)<<;K95h`zbT;Cc(j9D3 z=7NIOpfLbiZNYX^2$#533)KV<^~|@=ncJAH6Zi5oEe+QWbXc%Xy%TW{9y}QS4!a=F z1I)pD!7ELX8E0-T1OkN<%a-LM?>53&@hQbAguB+|l0-X?A88R-WwDqqFQMOIrlnRv z6)3MA=o9X_SD+g_`9GzSycfms0x`ufFm}8!-~&c+6SfdmaHDaF{`3vw655XA33B** zi_(YOuu4X76X7v+;eWJdb-7z=LVj^GwOPI*Jj3^z;-830NQV&N@ZzJ$C>Mg^mqdVP z6xKzm6_L}c1l_UkN+`(U&FSn6uyI?L^fHsd?15tPM}qiJp?_{_gqXeZ^2X9X^8W;h zgWHUbd@5P;NM4|f+G}0t(r$3M0!V!SP0=VugV*o>byL56-PHfAX#A&}Ds5u$cSU2e z(%;<1W!o=iU3(NMfKUZMH+1a>+Slh7)0ip5XZzRIX0sPbq}I-9L!Q*UZ=%uhh~o{J zZ@{1OqnOq}A(e?<>75R}%?>lyKHeTKzM z(=e2}zChIL<*}t`lS61;Z?susWwSo<>O{o2UR9Z@)tpGQ?$k1zvnRwH3gDV8l~}52;%riQJRL++(Qg;EXgp2Nu8_2g_dv$ZGkig0jxv<&qgMn> z8VL&lh=B6R!XwwBL!6bl=j}n&RxEyGuvaPtfxuj)Z8On!m_K(mjx<#|e%zi{sn)dobB$N9erv46 zIj(TYl@_J@B396=Q6%hjt;>0lchLG_Xb;-JZ@kC&PAlQ>TZjN3ElZG{Sv}Vk^W!iS zns{h9qxco#WJUY%8zI>r#L?hCh^D#wP}Z__>8itKs9I29*9vNm^mf%&8oN=xId&uP2b)bKd^T+*tW!9rEwd+dMFvG_M=K zG=CG_W*}b>dVXu{wZ)^)mVL)w^%}l8gS=VfRbk@Q<*oxMurh62_DH|1tKB zjhR5}wKLJgcw^hPGqG*kwr$(C?M!Uj*2K1xo6~#Rp7ulA|M2W*@3r zoz2bYVeI|&@`>oio zXjly0k!mM9`i%~ag@+9no6?ql+T9BP**&cTt%U>i8xp3mfeKXo~UJ8#EcRIzB?U0;gQNf88*tD!<>q-P#qHaF(g+ba9g6@b| z5gCPihcD!+(5r`}MkeVt6YF&E1ik$!xY9`yf^tz!qHyY$-}|ooF4mxq@jj-wNvsa2 zgzA(l$|&QgwYSiTg!{x_#rl0}3fhdd!f5|JJx1T_@c%@ps456Zed|BW4FA({6cjHd14IuWTyk54 z2jrcr%_Wfkclp~a^-k@8|D12zN1EBO|xh4^_XE3X7@;(IyDqkCR_+2xI?6}?aYix)v z%HF5r_cy>huRrb__O$plA;$+j#9b!HZ-nn`V=BLO;%D^9-=twVC5upi4zgZa(-#Q{ zZy`oNH&O36K?gx^jgcx$H~wW!__YSQ_pff$T{ysdT;x|J^x3WqY~!K@K?hC$LE+WG zwF$$ej-abRAS*h!L~?Vr)|9W6q3i-mOwpV=Ri|_W>?s!cc1aVB(OOCdNF*+J|TK5%$#I zioWoX=lmeSM@73vaj7UU#Z8S}ROJsvp|C;@!6}0Uv(HKwaf<1D3NjvCtILJNja%NG zW+B<KKS#FWX8)01+vAa#8pZDwd zmyJq_ULxr{+JzZ+GHmSNcfN5j+`a1Y0C4Z7fvWf#16o*cGL^ohYN_v`XGl0BiYIs4KDQcsF$)L&L16qL~R;qac@{olPEZ`~>w#a$s zzFCmx1S=uC!l1!BAJB)=RPVuf2hjJhLXqG;N;@{!E?}4Qa+M;KkLIJXVz90c&F2dh*x5Q@KclW-!8>NJ95gfpGmW=`}LNx(NFAAvXjAi%3Ii{7-zzCx+PK zZXgj;wfr=8z$E(&q}B6^Ugr~qkVyKRAQNVoCwdKo*wgZB36vxGScX<&cDG7Mk(K!~ zCDhVJ#*kTpl*lBBMTs-YYrk9LQoZU)dX5DVYfl7O0+jR;7Zw&mE7kQFSE(k1tv+r< zYqSMy3c(mHWVfxWk(C2f{0j`|Fo=9E9#=PLHff*?5~vZ8#`OOt^oj2nX+?pg<4L-z|(}_eJ*6@GB7Ta!cgZbF$3`!vB=@ zU)ezAw#)reh8m9IpP{Jd2wG&E9*`4|!#0H@aOI_J6+4M4!O*`+WvL~e6Vb#(S{g~W z=Tp4)MrMhbRM|0aJ#3UAy^@}AxB5xNop8(L3>Oz0+(Ku{b4L~Ew^35!;N*wXu7=s% zy}xG5Ki1<inxJ|Z> zxq-N}rcg1Fwn$k1!G@fd=Wr14NHzm=b*Pj@2p;U$5x*Uh@H22G3_TeQ#xBR&6y{qOXS=2Mw?bVUnN z9fv`oBs9T6(7vp6yb7N>+@)mE!%s;ab%wHw^C(i;u0M8cGH7I;YsX|#-9cr{S%qa) zC@TDY%yC`bg-BH$=0NMOb+-BScJj*1H8BGj%6j+3^ubP6xx^~Y(jWyHfW{2GOF3iq z_%ULI4oYm+7-`tHcMkxJv)p~VmIP6)5FzpKt|#P(iiNrOZ1Rul2FJ+0sR%jlo5p)8|r@6a$mchC*0-IKD*asbtUFc zp zKxWa{b-#SUo3BzY5|pN6A5p6QIyzv4rz_ltag*an8BUCDDLgZE1st-RtAKVGDSsMD zGL?X?{~lmWVjWzYe$+tu__3j@r4hD8JU`y2*VdW6&vE9!h8qZ{##SC=&{~vj(THVG zPy>q?bSBs$Io$RwMuZaKyEsg%s>Wo+e3?9cMkqZm#SALjEZThyMo1No<1dBt6VKxx z?`If0u6b13?)8?=7l?oK#Ca5&B(T9{K}kzYjc~zojeP!2(Kdoty^eH`y`woa!~ENBx7ECy&pLd`N=Rzb;4JP&=bz=O3>>L*FtULFfuZH z%tz6Ar3#k)!#SiJPuR92N|F_8gtA8!wn|u_V$=lH$ZDle<1<$qoY>6oD=311G}S|@r8z=U1VSR!Neem2;8 z_Wj_hNdG19RA+KKbfz=;Ho3~^ zIH$?aDZ-+dBGC*q?Z>t=DS6M0CL&6?Jfbxc{q}%u`Cfw5T1`U@7L`0=y7{O|;WrHa zQi*Hj$94FIf#K?^>`&}p!GD5SG;1_OceA_)nGJFH7c*O5@4}$l&eemaxQ-6CPhRkE z%yo=pik(nt>i?vj1fFK~jc}0u7G}ioT1>$m()1JMo4x70BG`SS16*6f0(qWudojc`CM*!scB6(KN6bPV#$DepgAo>Hd|e43ZKh zM3+BFNcMZT$n%Kp)n_489<1W#iT=5@450A?FvwWZ1Q~G+QrQH0j87CL(yVsyGO0MF zEDu(0J>>k8Gato*aHe=xz$(Ue3!83OQ_agy?JNBZ*Vn0?Pf)v~ic%$Orso&rT5$Vu z9l~_T6-zkiEsy)VyMS+!Fn#C9A7H0y+@Oce15A+0-px!WC6qq_n;lO0R>HdbgrF|m z+P2F-19m+No)9qZtWtP8qoyzGaRYH0+x4lg6?dMH>D<%TUHs{n_pcCbE0C2h&~Ouf z&mjqGKX?*4Q>5%$wDnD>F^aWOjE4`xxZP|k;q64g82=T!7Hgf{(=>JzN!7-B z>L;1cxz_nleD)82!DR31Bg;3w?)twoG(uLkj&A>s(4rKyWWJqB-1Do>66CVH2y(pd zmUZgAN&NPzM-~I$9T0Mj38@TT9(ID zCi~OnCa#H2SHM05&OvPN2K-zqs~xFG9VnuU)CQwnj$Z4mriHT3{Coar4+bya20ntS6!fB|z@xPrP2Hpr@3+ zI)zqAtb}Y`qe=lK7jZ_HtX~1P4E;GOE4R-!z)KHT)B?{-18j+xeQC;JHeuYONkX?| z*`NgFS1iuV&ozZ;)cNmc5U=QcnnoL*0gBFnQNUf7qxYKN*8>>-jy+fi@w-&$`lmX zwD?*W5^H#BHMT8fTS;jcV!FJl7W#l5^nx+Q1R)tm^h38C7WB!X=d%HYE(!XHw3DD~ zQS)P_QncCrUVCQk7Iag)l{eJOhn{CddXfMD<6+qWj5_JK=LvWl18t^NT>^v5 zY-VhY0R{eaY(gm4SPu80L`8#$=$*kn+wNu$(=LKdqI1~@YfN1R69FM3ll881zOtz5 z5NY9Fdwpu>h$Y6659+N>@A^B^kV)Yl$PMCu&fq^-!gUTMzRPc(hy43fnfib9xY*b_ zn$hw(I{sVv`al1Z<;Sh(W#PG5ZwMhSDVe1D+wTursa<;O!6Eoi;`rOaPxIR;k62p6 zaqFcJKf{D55tQ_Me_hLkwuNaaRS^>f7IAiEI~X5MMEZPu-XI!b?I^(@ca+Aj%C@8^ zrLHI%OT08oou{ra>oKO<6M3N*LPu$%!M!{;jsMD<=5%<%5Aenp)*%w;bfKXE!41164{Ez4eb&KITE`l@7kyUrUbIFvYYLr-DLl(^ zv!_$=9FxUA8tv#M{(}<(jP7z9$3!l7BTF$VrP@!kq;MvwiC(0QMntm4gh_iMzlvPc z_d(@#b7Dc%-m5lJ>s=xpjis(S5D)sx7Yl&+e76F~zk>&grqERAr92I&1PWEnI_-T?Wl6Qb_~Im;_gQEE$DHEvY@VZ_=f1Dt1e)p)tBw>gHA`3BUbQ+^dR$ zdeM@?N${Wu6?pru;fs~=3ftQNflBO!nPu9B%|@` zOsQ&rnWUE97A=ic%`%6{c41Z$DCldkgUpiK3M;b>yHIUrY&{pxwo?RYcG+;QtZS|+ zaE8|cLRcjdF_L+=uUg5xh!0fHkoAoP(VfG;5{#B}aQ(ks-I63kMC*Of841nA20cV% z?-jBV8hR~V1P2!?!DdTiPQbt>@K^b}(W`iDrq)ZL7A;Gu$Nyf2u95Vh0|SDr*gK55 z5~!^?FWsiu`p;f+fo$9i_-L5r>a50TuIw*lSc5YWfhJ%lXk417I0!N4&HK%tFik7{ zfIT=2)SL5~?^!#iitsQ0FpMR)6|e$hJii40ayq}%m6|<>b(nnkpz3*=HP#}Js)?00 zz#tC}ibHen4~2CNh|sEtW2KIB;jm&~cNJK({%$m7Y^pME*IeCaaZ2W&uPHibhg6bK zS$d9MGYj*6j6j4o)V)m!+5n4U=IG<+KAy1)^JYoVWs|;2oq*uY?otT9XBVizx?prK z{_Z~wKgS)|66iXvwd*^Ym{YLVKhKJp#77J_vSUEv40`!V#S(a6>;5AGP7jI=(cA^) z$W%lhO0?DaR8uLqMyz5wM(VFl&)|&bt>SKNE6u(**&|F> z6jHwumGD@dZ;|M$kY>cdSM+D9P}mVzqUigT9b@C+Z!F)c@6Zpl~aMhoFUp3UvoTXNC8s! zo47_D4M1wi#I>=t30V$Pokvrh4L+Zr&p~*%WPPDuBBpObXm5I0fj9Ab zWivCFOBTVo@gF^Sos8v~d4-8Q7O3fK3-{^j%^WbDkLGn*^`RJLc4vweS*FzCS&H=u zOkinjHdO9!3r(R-2fIBAs1B#nmQP#i1quq?=SmCZv+_Z{jbd{+%x)29$uE!gf9Y5i zXm1lSiiPO&4PM5f-yE{COsFATsJ-{x7E&I|Wd^9I;OFHUG?yhsYUIB=|Aa;M3&R@M z?}~`cGBZ;sownwrY1cbSb1|18A$88%A zY1)w|F{p4CCfE6gx{fT^m&Ely4HsC?ZgL+gZ5fC;u!o zE9yIT3)*&*FWtbVXDW$i5>9`p(ht)_y2U7H_(_w&)pw~FAf z2gpDbE39kN`h|^=`8UYu_avW7DJ5Mv>^3 zj7+`LtqjQTA!UF(Zr(P_8O{eWCq=&(m+dt$o^t8K+*X!th zUd=NF&dc8KAw=AVJ>38L`1y@=$Zq_7hs}ShhX3a;(tjQ2e+Y;FsZ3E+Q}|Y<@R<3{ z$v2M`=leq;Ar~l>4(LHHDa?RLK&V=WBq0s#SOF;`)+YP902(LD{+M^h<7H>9B;*>! z9h8A!gPL3IbxX+)DCjurf23x@s}Z{MO{o=^qZ$*7dPsW+Hq25sY08)Cl}R2QfpF?T zpV}S~9Sg3r(3f4}(NHr&-JUcO9I45nEU7J9-H0yU?nNpJ{Iou!XyIB$Ui@3#tuf0% zj>|}pCnlq4e3$8-tG5bp3>z~YrN9Ik?Ff>>UP&Hd)y#l1*;%OPgPvFoxYQ`&U`|QZ zN3BbHh4d0sbQN?pVq^>Rf`|_vay*sJ``wPq7F;+rK`^^e!w;KuWZAD2zB}LqJ5sh~s!%XT&m^JQ-s2+%mH-7_*o~q*pymcXVB@7}#cW?hs zXNsfC4I^}l7jvfB;{u6@Le)C}+R%aT2~0Q-d3y#x^g|aq zN0sHX_D^Jx&aDx|w18)rFw84&0IpXk56F^=HDCJ@hU`=;K^B-eVnUT38O>c+MZ@HmE0x_kGk? z8Rioo+`q-AZZm~n{UmQ*AoE-2eILZGnqB$=(tm|2WzsA6$hjij z^h$Wb_{ryS+g)xp#?IdF@3$}{IQcdPFfQMz_QPJ7U^uEPEw;M72&x`{p*(L2U5?Ha zpr-x-!k^=$+_v9F)Pwuz?Y1i|^tL)$87GvXPlKOtrX2Z-A!3!ORo)FPSwi+S>$;r= z;a=EC!UBHD=^b*QddY43&>@S`*6H%+ld8^Wlw8c_Exr{z^uHN?aK3(~Ub9{SF`+_cuL{bTo2`MEHAg^xe z<3XTAC5cg@qqdpC_T`3sC-%HHn_`O19<_n*kuC-!KU(fw(q61Gm0^%vWREWPiGR-Q zjci^oA9hn>feyQWVeK*AhSWevZOy#97I3i)l^J8Jx6+RXC_0%2!n(ced0u#DCJ?UhrOcfUGs{+kLBgmQ8!{Cj4IkiNrq|97DKPrRZkCHe1=MO4q)(DL7{ zk5wuf4(ozQJY$n~drV>L{H+4xgJPmeYy7k{pavNWgVMBOwD4q>g-r#KRA!EPndmq# ze00G5&~RS+LAZmq$`i0|VA+Ry7~V)R zIRgO)y0pL4Vehf7u^N$8Etf5+kL|~|zwOZbkeZfj)*?o*^N($7`)r40+~cy?hwd9n zIgRPljAM`!O%|L@q21Y&F+HM_EfrOvZb^NWYsoRq8qHIay%dbBFyq%Yf-dil&n@!FU=a(IJG%x<_r}D)^F8%PGjVm)Jq3A(YG^s**U=# zAlQ0YFTqxBM!TDuoh5dp@7V#-KyBK~m3EVgJ7(m)TtFR`ZAce* zQjKo}EYd3)gChMNe$$-@mUq?rxUiPv7uNO>?Gu$6UAwpxwrufzaIL7tG6KWMQO&&~ z;GcS5#zL?owd#Ax-V+U&j?;i!p>-3QdCyCC$V?WF$DnBhhe# zdaxPNJ8-VtvAI89gSf==hn%j~vy~e(AGUFEqW@-?q!W|u?;iz4DT>Ja zG?^f1djo31Yru<=s}r1nWl>|IA`jz2YMa;5)*r+wDZJgPmB~V_rZ>FvL)LzG-|+0M zCoa}8H{@AMwhrYB7N{t)a;FL&3_M#@^+6rbl^OmvS$?!n;B-Q3$Gq!1mK}Iq#t zFoPhrOJTZdd+ZFD-V?fJ3g$!}%j~R! zyc!CA!8#`#D=GqD*`#sH>H51>U$Vm-&YlzXCI34e~{TN_4M&@gAHL1`Fm)E-4{7}%sw z>C##_V&+b<)Bh-O7|i4mg{zyLo!ugbWYSD8;_XU(;Xtr3eDlHR{r!mqkyb-pagq=r zRK*}awg9O}1L0xNnK5ReRtn7t?loI_8dx_O%|T{?&QhZsa^&!$=3R1kJLF!IHg)8X zRBoM0M0U?pyjF8Dp*3rLAl_uo!7A`8IcbJ}48lsR1zEE1C@Z7vL=wAdnwQ#Cc*U-X ziovc=;IFsZB*WOm)+5Y9(Tsw7!=R5$c*=efUt#SG2M(0`6 zULlh?5#D(n5!)sLaR}d|88u!r>9jc9X5Mb>JeWTHJWO3rxB@Locz;`bP0wJ4nmffX zl|*~;IGy`Zn36r%jkU8~vdy1o0SRjWA2dV_t2gh5HTgGJ>TkV-Wi;EL4+nwLqDF-5 zsOR(Jit_mfuDGbR-8{R7OCmHR><&7~t7z}=G0YAkXpTOa?=;eP{{qrRZ!8GNb&-D! zUEz)e%Jz;1DE&P}XhF*5GPQs9xCPfbmJI(F$_|2+bk%{=u0di3Y@SJl*KD%nr*0e$ z?KaIky2JvWfy@Psgac09g}2!8yzK1l(C%E)3@dl%BJ0T7PniD8)bW;(f?pJ;`m?Rd zYo`~6e=R1MmX4&iVK0oOCRNTzEbNW>#*c?wK}J2qCzns#COL;%g(c9LZNN;C^U52s zFUE*5LUb3MU9vXGPcOi|&ivp%%8Yt{pK==%b+In>>vIznOvD4J_p~h79;l@-Gz<q$K489Lqay!NAc{ex#u+i8CI_j$-+{ zJcXKIJ17SlMi=3!5Svxnj(zbX@Mg@Z%w0a%x&MlI-G=v>7;X1nHN|98&3c8Z#CDCQ zWHkRhGPxqqTuUG$h{FK2QvpjGig3w?x2GL?mF5jESQFN*MCguT3i1vQIW>dffV&}* zZ~|G1o1gPxK4#^i)9x|2SfFnVI|hk4|J%B6;<2*l4%+|tC{+#OfNi=1nTA0+sS`iQ z;P2pnkdM}gaJ9oAO;;PC>MS9OM)iw&GFyt>S&iMjh=%Xem2mjZRjF17{ybp9d*arz zWu*Y-9A9Cd=yP%El{pe}YhVA0yW?ppxbyArTeQ{JMbp#?kTxpFk)S>)d!3+wz6S=t zU@R)ryM=t1j)rU+e9S;{^&*!EVog$N58=`Mx~KOc#Ob@$e6A?sUAZu#`q0u{-hlpyo83-4pLl*vS7l?+U zHEVNJZ6M+34P-!io!(JVuRv@T6O~92ZxYzsF%+3cec|nL%NV-%qzp`>9*yS~yOp z@%NiFqiKY(=-oJXjI184@Mjy(4P)pmP&w5+yRi<+P%l_CGv`)dEY)nN3T;Aqkj@4` z`|VR}c+~Y$F2y?g1Z_f{dg(q3(v3)ajA(P&)x!XD{G#VDd_O4OVj3hTgKi%o&W1Tj zJij}1agWMF#w)F~Z zMJuM?*R2nXHIuq0|f|}qh7Kqnu|DVx2p%UuCXAq zN4kPp3Xc{KMLIW#qAMM+BjR$N03M|A3buv zY>RQ=g7f*>5D>r|W=30KtPS)E1`ZYoc7YawPL587)yTyVJ{`+|VB-Al3_f{gK;!6S zyY=5K^WBvJn}ah#f;x_SM;NIC%v2M~=#rq(AOLA_|%D)m;rdGmEy4(I5PTvCBxN{~#!kkrh`tr?bK(C0iwhU~13GwX{h_Jk_Wn zDm~1it*fJZhCR?h?^F|2v42&<*BU#i;#VI(S$0+6Rq-*t*RV8kOpr8tzdEl1ai{SL z`8?5Y=dl?k{IB~Azfj=l>ARG}2J3&5sQ=qOQ~2)hv(gik`KO<`2@OhB;phPiU~dx- zCCFqRNR~SYFKSRX2N^2Fn*v$712t<7jv597L6WE6QhhPBW_{Ldy}7jHtkkUZy3(%> zEMMYK^QXz9yT$qHX{}15y~@MU=;-~4L@+Xc`{;e*i|rrs^xrk(4K`d}kkC85wV;oE zh{neuGODJ}g&;Zgz6d;%8HCW@@hT#2u4B-{czVGcIMKaiHNtMpLlyMe*hk1P!e}jh z^S1o{)1tQVDJ8DYRB$D3&scCdExy=YJu5nfVmf=f=*f=3DmsUYD$n<7INAHV6%3w} zKovV@#?N4$2_ZH&*H*z^BEeT<*WB9PI>ESf5x8U5gy`N>{dWuOYl&*ZpYk!l~B z!8+IP66oH<{WZkTQJ~&X-3dES4DWtIU$c^LsKl;eV%f2~GRn`49hQFGJvwd=kZ?6) z*Q}K9*q?eqYS-z|Uw>b87~V7dNYVCxOI~x-e2zmcZ)JP2bG0C7_X(}`r&YnuChht;u$t5u4iEhH+nH=d1<+y8!b4a(Usm*SfNowF1 z83f=U&WxdBEf0Rb(IvvNh&Z=UFzC%#T>Rwa0toTq@=F6}4SeiA8~d1kKk0e3Iiv)L z5~cf(P(U0`vGO_^8rT7w7Y|Qwz@6nTvQc0QsjMr@xVNxF9dVzoGwT>9%3dI)d~^?Q z1?Ftgvh>(;3ZfT;l3CJ_(1Hb%aXG_-(gu>nN`OmG*#PdRwxRO5ww4kfA)RTyn`NqrrV^jHf@)bB~*eNJA5cLi=KD& zwO=1O0Id(AM4mK6&JHm?ot@7oeo{Q13l23h&z;^w;6#{ce0@;wz=t$#PPKETLQ0Nm zl6!B2r?hiHSJ-oL%>s(!j}P)R=)o|%2L!qWdZoN$?Aie2(vtITBu8(Ox7A3 zBE+THD?m<@JX55L{s+PG1a7hzuc`!LN|m1>*&xUt2dDaP?|44|L$s&@sdAtQas!AS z6ilxh=+|?&&F;ldSJ~bQv!HR;QlQ79HT@WoUW;pWh!jfI$zRN>6+4jHS^=7ZTsRmF z<|^L}^i|4B!tfP>H>&bX}hk)S4wpetFyOE#Q@^wQD+z|O-xPJ8>@e+>%{y7ETfp8 zNp3GDf)X8Tl4eSF9#m;})j>1rgnE@VOLp8hcwNXT;%lXPoi|E%ND3X}n(_m2{gvOh zGSD5M<}C+dL2-fuAeA0q`R|tK8>F4Pe?hc_Zt#`T!NUc2WGG!q5^YrPz#2OM!*SZB z01;l3A*94AcKd6g#nx)@A$!FCHDkpq@fAVdi0Zt@3Gl*~)*_)-p+p;S8Yr3KpN_Hy zecFkFr`+U(7wg)$_o^;gWsWLaKgpe@wckye&t)m+{`8Zj0FIYMZ2=^L zLDIxZwr+-(bNBL%<)q#EvLit}3oOLh2}Qj=1%XEC;b9autQ0z5p1e~zA?p9RCIFz- zm3VGd2D=P<2+beNt{8sk2XqaCnjgCd16RTo6D&ToyO+v=#Yex zIePyg*0MD=xm$=FL|I-qB5mJJ&3_9OPF~DA^!A{vD zU;^w%z|EbHHtpiX^30&hG1%3!XzQoIjw2?Xb};s=y_9_q;Hn@MptN_Ux{MiAf+TPF zjqz{=C;0l5a95;ZsI`m}{)nLi78?pCVCZ{kv>Y9PaOHlWY zIT>MWoLfMO%njvXbVxdV@-RH-mGPd&BWxe)z|m+c-p~hVS96TWk?7mF%aTh2hb#!q zWh;@&A32}|e^84H-qIC~jTaRo!-2FItArIcu(PY|Q~^_Nn+WGfebiME?Wl;u^0ij= ztj-8q824`OuAu}F=#9NL7cX{IaY8JuNv{_tKVWh?H``d=HC5+1uWoa%cCIsWkw=hs zwtkAwH}D|M&4F$&#NGeSQ&vc=H&kpz)f&sb;r)u0JaKIPbtWDc^Gme&_s9WW!P5PV zo8d#UsN$lU-R_P}z-#N$JBuw1_Hp=09K(7N`JQ<$+N&O|msW-zjUYZ4xZRpj?~e-` z@%5{MxHY65p9SHtv~*z6;E#EBJOQ^`C$L4Ew%TfEc!k z^j;VCh+IxOcG!=Ag&l&D_N?qSVqUBo#A;dDr>L+=8tB?{Nv^3NAlKD7A}iChghsLw-EBOU(k+&n}pDcv#JwzN^=T zhFlA&pUtkS!^md4utP(XJ>~(Eex3a71Wv?o52QU`Q#vOrmT(V_bOvuyox@ppqWndt0V(HNsHi*lN94-ZkEmUvbsMz(9OH3x6=?uBYN=e+Bh z+7BCm?B48Q5Keoduh6JUH|GJiH68d>>U3nGL2ay~T?x4l#<6p}@ULqe*BWURC}H0 zwg&CStKq`E0v@OzV-$00+G$g_ALIwH013j$CqVqukBy1)N;E$j<%;W5j*_Z-_!W=< z;t5@l^vvcpqGJje#goQGV!k8{Q@{D-1Q6;)UPznF!mZ>yDk@2Bx8>^rFTynHIK@X` z+nVZg`Fg@_pSm3n=ItD=l;U@zK3Hg+pmGpRLVwoLoq%intX_Wo9vS?<2RfWdeDOQ| zwmH%>)e@Qt&p%ulB^J3w5j!-&aefX5fo|m3m-BNUtZe+{N)J4BocP6{%OD>GZ-tjm z`oQ};wog-_%{QqULC$!5-3efx;buj~3O-|}if`NcpA?fa4- ziMxX`D4J}>%w}-6)YLeTqJjZ zSNyNpKoD8u3_FZW2U8#!LFUqQyOo942j?FQgF$rP|^KPB6*)6m8WO{ z!SBNE&`)ek_%r_Rx=70N$rSIvwFxNqPAh${&vT-lfoi*0A!iLcOcNL(P5vz1Zjh}) zz%9kkx7=ho)%%{WNH^Nk{459t&b2TCrbMckql5*@vB?*K?QzY>CM4R}eaj`sURHm$ z`UHYvVF-1NqBBg>nELV(2@{X$nKE){Q?A*LEDuZ4S-Eb^=d$~+<*8;ZVvX{|mYD0I$X#HM$R{oQ(KaUTXLV zA6f3HJ^Z^OD8Uq!( z_yR>tY~hwXT_pZWg`cAxS|gQX%_i&Ouzc11soN!LD#W5yV6zdboP6TUq1q>>5c*4a zdN6y$p+W(IOrZ&Q>==Ty4$7Aa@k&$dTy`1#qI^Z1?_d9t)Bg_?{b#|daqb&MpMTRr zeE<8$=6^saSv`9PBYPr#8yia_J!=I=Jp+q>s#@f}RlVQH+91YCUs80e-7L>WzCxGC zxlx~wfJj172(nyo#nHATN0Pk)z$Zn25Y0bX9zoGqA?nS#+dGGCp!QX%%g_7A%D1sAIzeL8nRcn;{;HTKx%iB z*lSsB&3LW+hjO&+Ie^My;Ak~3UwP}?JUFdLEljon`Jre8y_`WVq|Gu+QqYcmVZ+vG zJs^YoKZKZyQ&mq@=I(>{>E6(m=uWg856AFhM-T~X8voh6a1B66|Q*;XQcGGU;(|H9~O;* zV0w^FoN?})RY&t&4em=0@&N_sGslrDpVaOLnxiSck>DAgO~46vT$Q{s>GX)kC&UWs zam+4-xlgZ-o+nPflVsE`2~|4O#52YbCn+8I&ZouLAI~E+;r&I!V`fcUmr4H=fwLpc zu65$e{ZUZXsROB5SE(ki1n_PV^jEv#X9s|8yidMJR^B&lFa1LQOlm6Rx$qqN!cgm8 z;;A5Vs7`KoAN6S#m5S(gXQ*|{a;XnH|E~=x{}>n2^`zyo_EsNab>hMJ9V5(=A!vE`cJUVNw*0j9w&kId z{W?t;(;EhcaGMJZm%I!19kBKb%`>(a0t`3)S`Us0YL^fiC*F20z~15rDIg|!&ygLB zj%*jY2A5_Kz6MvXuK~bw*h>ZVAqN&i|Ln?+Gfc|$OvE#&^LuiK(a5w95t`?$_vpGX zu*CJo4K8`-MBXzGXt>BgD0}i{_3*ZBMi!m6xg=@wbjrYY{V-~ zz!m*7&(%kd0LOc*$#06`n41K9u817*=d{2akJ_Jb49}qBA4cTfO5sPY9~N+8FEA1> zRe{?{dr$8la5!_{8&%bEDMlH2Kz-@#Xf_5YGq4GdYvpL{i8$5W_<@zODgb z?>@?|FY#*3Z0|w^sjqoj^(M#inl-9LkOdb*QJF2>)6~Sv6Ks~Zh%6GCudOFUy8S=O z-YL4WC|nlq4tH$Zwr$(CZFZcUq+{E*ZQHh;j@?1$&l%_5@!xYE?l^aiu^-pVuDRBl zRkOaT+T9h~L&UH1`M3ndMPN|^smK)*m~|v#%n0dy1M5C%Qb~#(h?_~=FmicYE5+5a zviKCv%mH#fPXSqBJ$;~?7_b%^Y0 zhTKxba9K2CElp^HM18SfkT+u~X`YTS2t-Y3(FlBZOX(Lg8TOo;oP(N5hJBgoUGnhJ z0+o1P!rb3^I%+2kShlT9)($libgUFn=u6}@yzPo25$%PB%-OuOwM-^X_nNe(a=Jsh z>DVE-Dlbj0IEEP%I8tSChDk(CbzaBNWJ3ade3_A`XpmI&$h5ocHs`Q_$yzsMO%27U zKjMk#~WWq+W@syb{liOXs z!}1<1uS&2GeGcxhQSdAT#y8RC*jQ2$}=LxgF-N@MV)^RjE z+(%()MF$FsC)4skV6?%b`R9G)j3%=54_)rQB;hU``_ z@9HL9%{1`UmoYV~jJWDIYHX;~IK08tqtJ8)dFXzIbhw>wplk%eKd6o2}rJYk#k?&QR zt)QJyi?-YFn5koNW%T>uBCg#cH#A4#KTfnEnGS9U^J9^q6JV+7 zE}3>g*QOvz1SPn%8Wmx8vu|6Q&nN!=rIKP{Tm@q$##cVnO}$zMu}!a>K$+^qa7~h{ z&`>qb7?*#++A>szW@+V+s`rY$us*SxcVw-kJwk+=5)#$JguvUfZ+Z!uP7Ng|j;fbX z7B`H_q=vj`%A}_{(WW&O=M@@f#5 z)6wuLknO~1L;Ei;ocf!xPP`GFo~J zjWOfGHsujK9}#hT%QM0zUYQANg8OGPopZq&uD{*^1@8rl-@z1IB!vNbzaW>)(nn zH)~fInu@&DZ=LJj%CvYb7Y&u{V`TGq8i{%zU~$$S@4-Ti8(LP2Q(;MWqqPaoGuH!e z80PvjQTQ}DZsQ~BvZ23Fel>GG5wnaH;2C|b^s(=rq^R2nJ2Y~(v&;V+I6+`-jrOGI zSg6NQYs`pe$fBY%n>n|vQ6=C0R*P_e<>mwlU&@jnU))_m{M%Jcs43I+Mc5Oh&-Z8< z(l)*5v!n^@+0r}XS)kh@utHx8C$%nn+v#r zy=R$6j-(DGT~3fE>SLWW}5B*R}p>as#^x73<63zSn}v? zf5dQ){>XyWg_XX@0(D%?4q5VpC+-mRIrmf#&uEn&!N)B)sS5$#-XZ&F#dH z&!ny4fvrMa3U8DF8f)_QgSt8!OC;_5hYV+QgOKX{-u^zVInwDmXxbpRTI@=A(R8(q zp_zh-{3qfG6s&O%*%w?19Qcl8Z?I=#wN!}J&xIPqbMvls@rwL;sY6%eKd!t1&WWFd z*3jYh{W`V<;Gzcw^$X+)as_I^nu?NcHu9c5@v1FqNwNys25#<)D9RPAh9FtmYJ^*?qtCtNo<}#LV3NoS7Ru&@;}Sv%>L1Go!$q29~6z z8ZSxAO_R~gT6|*?(d6(D_Ww#r>9GN2rs*K>um;TFSvzJ5>bp0@wq}e$w}U4u$15}# z*E}(clQo_Ti|(m6h`@q^Z;_6%Y^_agrpoEZwRtCp1&}bl0QB~Wk(pN`jg6MpwXm?p zjV>EgENjB~roI%hw#`TFm+OQ<6jyCp@h%7Vx?58ONbsM77{>`xYv6kT;GP}l0)hHErWp=n)I>H zmP3I0k%XX>J{YPAD>DdbBGO>QU9jK;cpwi0po(@uO3Snf689sgl_pl2h9mmQ^=Au| zt!s_PlgVTS^(vyUE$||NqAn)6Rv-ofUnj-{D|YjpaaOc*B~ZokN+bjga{rL@X-Fuw z%y}7?hvSIXD7DZ7ef&mZL?-5DLM`SmtMhT1If_@6N(t{VhqiKewYde~GhP7#d4P}YNf0mAI6)?4F}S5BZM!WamPOCB$}5OBg}b0!B2z7JMg;;fdckYiXg;{U zV)6PZXj=mC3zLnK&_W2&$WIo(7+-q->w(^1d>+EMZ}XWt>5m_r|5G;lA5_%J-a^E| z-rUOKe-R8WC|8_Ox35G(cPM%?Z0_>G5>pvsp+G`6?W8J15FsRX`k#bkV^Vu$b%aC= z=!|uU!;g})L){DSj+ssEKBP{_lT1=H(gmb;SM1$4EZsNnHJhwfUsLn}WbKG$&&fVn z>tCk^52v$JUxN%j$BDUt^0x;n^q$c6op~U+7bUd{Ft=Dp*S~MIkoYMEPQ_lGko<&! zxv2YWNctZA3jGQmDi0y{uUM~I7$3MFyzg(|NPbE{1LXZwu~#%CKQ*8M%Koa@D;$zv z;@t;&;^(I9(7>9@uNq^+nhx(6Ptr6aVvzbU+~TmI36W5@v>J zskgtkF};_l&!6$rfw6!C^WC5MG1YsocW)BJM=anA9Z{DtP?GYJaI#KC6mrm&X@Wr| zSbhaC6kQOoO)r^Oi9@|Mh#k(>9c2ik@>q<&72(V0Nzk$0*Mh$l!{hBpagFTM3WK{g zo54qXZT88J^aA7A3*-D6@EepEAMq~lH$nobkK~XDF+Td;@87|&Ohc%@z;MxT%L4R) z+o_-7mgMNuvNJ=2`2hlGQ?DxJ<9nzA1w3ZhJ=?2U=%Fh$8Q5&1+J#CeP@mL4|}fB?9E*)A&(v(w-?~ zmr^Wgk?z7oG=kHmkf{#<12d+E+?aPRl|l2Wp|lUPKo#OQ#AgFo@n9(Sb5rh&4EPe^ zz$gJ}=g)FQTIu^XB~o5|nK&U>p_I~v^xpy(y<>>JiS>Q3shO~d6e3S?({h%7k|ke_ z2MEIB;_ozRW$8^18%@d5$IQ1do+N_C+XN7&bOG@gP|aalxzeM-a@_aI0UfN>k>MmT zbna=5wsVo35p^6nfOxBZnn1&>MGBRFeJ1IuK}ke=%kp^yU{wC~#2AszWct+QfF8$k z=9|PxXLq5yZAEIW;)~9FG@l0urRC9*CDXjJvss0Sjw*&^H0VfS`4yRDDlVBTxm4l?^4V6imIUO+ zGzD`rITKqGI&*`PbQ-h~Uag6hh=`I*T8ng05$*O83K=$HiQ5)5BO;3D9A2&hqrUlP z2-dRj_E=d1#fW=TTI5qyKw-7HU*QE!@>7rl9;B4h>2xwpQd20TLQ8^6x6q%>zL9P$ zdNVCVLR?!Wtc(z;!P34ffYqI}RZoFxC1Az{ygDye;tUrzL(CCOn#=hTsnf9H9DF%d zmwG07DT%j~+5&6vvV`)6X)b-Q^h*G&Rqsx)T$A1k)y0j1MWv%MVkWCB!NMIDyOgbU zNYEKu<5paqs_~ep)Sf7mEs)!qBYh=)0?hr6NISm2QbYp@SXD8mT`ddRG_>E z4)f3)fy|JE)|`h_FM80ZAWzjGe^yezQW-LSeQb&fW>#FVI6u!)d-gOfuCbg~Ux*QF z;oGh}uR&ncioA+fjA?Y8w5RpT$i_+D54o?0YVfC-C`*6t>Ar0?>kW|jtFY|tJ~SNl z1Us8LqbeikHo-F+b37bl!%_Qrq(FDRi)=cxGI<#Uyz?O0jj!|wiTp-SQf`t;ORa{I ztG0kzjQ+$EhpC|=1-;w$Szl~2#d!pFrfI(byr_L;Y=f7pKeMz@?}_@dO^kClRD;IK zZF79nT8iAp0kh`unnZSn1p|uXv|ZL=4tA$ZXSN@jsN64P$o9P= z2wv%5?V)yoD6Xk?%sfV=>n_M2KR)t+e!OJ+;ILcSn;Do=x4yTZ$nwUD15{m-<9aqD zmd<+SCyI?W-*x9M~O(e@-C1K2lFL)c-h06isxzuVA zu8xgtQG{yXh1HK)R%iSDlTF!JcsM+Pj(sU1O6p$JCwPTjwQdXUWbHesKTVKF?h?QV z0x_tjt>ewaM55mff(Swh;`dN)vjU)?_#p^N2O zaGQSnp(i4j?3DmnZgI)_R8k3W@c6j;22JuP8Q|uWxEV`f74-|K+XII~f+}v6I>^K| zfwhvi$n}Ghv@8CoepOE!O=CvsaE-|NBQ(e*cNM_c!%Q;Ikm+YSLaN zCW<^_Bm7fv-MG4dRYZJC7a_@4(h6ksc%Qu%FcbUmm5#XNI-u(UuO*(+y|di%dbR=8 z)UvBz$r5Tulzj89tT^;Ac(oG?nKmRH_msl$wv( zjzejwAHO=8W@xgxVJklhQp@HpaWFXzOj*3O9L~7%cdBXaILCwyndAsP(}E(Dx>j2k zbSq+v9kt|vcpjF1vl+9l!INHGWk?m0qRmRcb(gyhdTn_HU8(;=dk&MFw1H)6Wk{=1 zg~zt1d3u`#7OjNoPb2YtKE3W~nN7sdxPQH>e0CFb` zwF`hV+IvGMHB?%km*P`%;;6|=D*qf4RIjyJ`aMmO%cu*qi?m4a>dT95Ri_&?zV8Y@ z(z(8je@-?G&XD<2xG^=Rf{lPN7<`qhn{k7FZQa;r!;67yZ5Ddm9bhHU)y_dy2!y@E zkWs(!*4AmeW3$GoujzF!kE^TH)3J+rx|F2`9}_P>y;65-6#na6Rr{~}(PG)f_r-w# zcjHyiFcWU)sX9_^-zXC{V3V-Euv@EEMypv>4LL$~{8#c#c#Fi@2%dv1y+JBBoefuV z`o0w&#UIN*H#Tr9A|6I|aY(E5BWR4*%YaUG9As@iBy40`&6$l77CK(Lo@vb&36aJZ z`gfDhuJlt|Wv5@(+|#sg7wotWz2-JrZ3}dN>vWgt!XmeS9qAR@7VH=%1Fg&$8n+ty zf<0W6T|&~!DLC>+I&$2SKSQNA&p4etp4|8Q4KB{&D$bTC!F}_GVb;~aN-HcMqVilE zDS?F4+A~LMTxm_6uX{gu!O;ZE27X+E;#oiX;{D+6le#ScM+fv61&Rfw(mHbVJ2dvu z2lY;XydZuoqiYhs+R)yvB7eBUe7J%6cY|M(z2eZ`vIq6fgE&yUX42lm2lcLl+>pNF zp||Dkd1&wHeJ8~QdZ2vJp?f0q?^*}GAb;4Qzix&f@a*Zqz4G+;Pk6n#*DWN!sM#r$f-4 zL8iq%IE)x%DW<-}9TALJsgRQ^-EbIOM2uAdVwu1`)^m+;Sg8vZ_j`u`T#RdJCr!G0 zTlTnXs*Yqywmnli`quV%)0sQjqOZIMLUWK#fx7Dp`6ynF-zc>0T^ESXwjP7XF7%d1 zI_OMl|Mm|s8ba+rdz!rl=(GA5N%g!{us7Y%;mx$+&GccOv|*m~;m)+-&i3KYtpmQT zgYG4Fmd;MzPd%EtSr=EV=ft_sTA|v}?b#mnJ-=ByPr`0!&`HMtM#$~Wa=yN090CO7 zei2beODuSlle$2@29V$^ADqGEaRi(r5z%X{P$T)e;EjFm{#%RvGND7VjCiwKr;O~S zw+mMO#1l14y-+6pp0Eujem|TTq{BNi&VI;enxLt6i;V1h}rGb|o zHGNqBxOP5xC#5{LLtRAQeoJ|;VEUuY)b?fOgw;5m%Js#N;E~{&F!mQ-klYdvlSFp% zEj5m99boB$3z(Ej=`$AG6!IRFx8(Q6_K(WJw~p^W!ZL{DNu870!k7GhCTp`=;Fn># zD&m(50JO5Sb0G9i|=0 zW(a89^|H|2+sxQP{fcu$={OtX{UI?%zw&F0d*#=-`w9WcrpJKSTL_%XE7){@o#Oy+ zmS&!wH(rbK8QDUPnk4-o8G1=-%D87?F4Mc#f`7VXO%(ztmFA0RU3vInH&*kC#ygVN!2QpL({v~4p3ao36>BEbBP6U4aAL-ctafF8V zSg8#7b}c`B+wlJf&gK7@KK}om%h9U;t0urf=8tk72r)RAm=%UAT2~$+F-E;My)vtk zzUIbagZVl8Cf(BRz_(a?uZW_JEO$FUL|~THsD}eW>XyiII(5mhJC&Zkz3bnT+ZVaH z2FOQ|MoeX*9@6}6>oFvSc3_YA!bm>^M0^SHBpezf#5ZCFj(QRsRe&!N0q<1LScG{K z8EN*pf(1JB*0DuM|0-=Rs)|gWE+yHW|J_0rq0E%Nxz)2Xa!VJI%21bIhQ>}`Vs2gN zD!b?e7oo#YYc%|04Jwn>3|IzXvJ5%$pR}=?~;Eay-wR&@=rjJ7|CB^ z>cKqpJE^3tyF`oEp_bFzg7%v6N}*^us=X4LrWh58G4kfzygY586)s{Dk^B&vVG}M` zG}K!RY+8&>i?)=@%;Y2zR!Eq_i{Ijg(bL4K!_KC@Nzb*;E#(^X*gHo;oZ!UNHD6~0 z?NKrQhgK}R3-BY|j=SbJZi_IO=LunN4j(#vqQxn=!y zN4^(Gf&UX&7nw|H0gkyg%b7MRnPQ!%I)lnCt(}0v3+V~(J_kSA*_bkH{TCiJaZ6i% zdp6$omMweC*L^|0rNA$_i7Cg^0-hA^U4NxaLlafZ4r2^CsL(T%8?e1Xu||-)xi(H7 zxrj!IY(0>|k>^BQLb~uDA5F8=qlVCx10+BVtm=M>B&PgFjeU&{Nd(HrIs`SzCT&ab zN&rBh(5&RqlyuJsSJw_i|uKZrnjW^WrOtT0A1 ztX}mTUgbLcOhBAA4u?|P)66RSok0haatzN2HR@82;~p^RCWD?q>htUHC4fb+C6evaG(!nm_rFc;+WFdNW)uv)f)@p1#4MB)Dn6O=y0CVu5aw`))GT*$`uo@PWR=hG*VC zsdejC>ND3ti!?0VfspYoBibui|0sa1_e%qV{ixZvv!m}Q_)Ga$@J$ZOv2@$*FX7$< zhVMBftJiemsq|kli0Vxu{mZ30TsLtm`d!00nQX{$!*%6(H)+nCM=W{gm4&0A z9AnDk3c7iWEwr5JKNB9jo!_Z*Mtaz2LymW`D^VezzqKTd)(4Pf8`w}9seN?heM3Gj ztCqZV+OBi?@n=^>LYHc{H+*H-%OSZxBSUkFQ&CDO@{CZR(hN28Xh9;MNzswu?chbf}+&@@-_@4QObD|VJ3eq0i4d}9%x@|r|V z%tcj@Xodd@pz!*DN5(gRjNk7?uK%m@_kRE=YvgQU_TN!VFi^l2LLHuM>#W*av8Jkq zE^Dq1p>xN7GZtPfIxZ$<)~7&Z!p&zyB7S=v>V73HCeO}NVP_f_j(l8^EPFOUNKD2q^jLZ7Ce7V87gfg3r_s_8Xxg7N3*IO zKPslfnvq~IQAT8PZO{bjhvkA6UK3@E-Gx8FAT4HQXXTmD)iZNPO>cf;h}H>v&gEaw zn#1jQ3(Rl&T^_8l=29243cs^g9nAWS#m_%cKu)ZnuAPtUM@bTj5L;04qcHD5%2jMG z-c|f#)!2&>S3XQzfF~7BEk`Y)F@b*{z1dVP^plI+1@TgNmp@>>DDT{Eu4qe2tFQtP zX^$W05oUPJmLlJvzQ~I=aQ0oS%~AIz`7!*eHQETJPAH3WyoEpYQvCDMqyqU`3Sm-U zdXYaxMgl<R3Tk(AU*JM)HI69N_)X-%%&X>1Vhjl zhHN3sv9W)joepC$bL{u!Ug;~)KAqKd^ z{>@{w@(Lp1Ne)HGjX#-D{`R>)zY8jCpk*RiGx*rgpp*#UV&1 z1OI&?2C+Sp=$?Ud{;-V;pXXqfs%~h$=u($bSX|v&t(9?|Tjqx57wlIHmUmp~gPy@z z>z}iq^OgAJ_usY`J9g8BXWyAb4_H5b2>eg~+5hzE{KvEOov-&_!zwhPzFU-${%NE< zntI{!xF3l+$x4ER6R%Syu?Gw&9j4_OQ_0(AaS8_0@~uO6Q1gL@2~))_1nbWwHVK{w z3hQVK*TWW(&5<iN!nQg3x#{$ooMV9DBDTk;Xl+R0xZ2a_iLcg<^Y8k$FpnYj(>StibXL z8%&}3?F98r`O81L_fT~R1KTrJX`p;-M&a#56I{!At2Sa_GqidKck-_UCHplc$bkpR z6rZDKaLFV64PRx~;sR3kGp?L~>B$6K!0Dj$H62CdwLQpylPSo6`87GnfaWziXcv0y zb*^Vglbj0|OQr&(6xP)F@Sh|*a<<}UqBVWR$tO5n{G*1G9kOLK0+I-IgO`mZW5Q%5 zS0EglJGt_Dkw5dztZ6gQe+52a0iEDtn=39{yh+wxf<9ro0oOqf#{3}xIDF?wT6_|& zbv0SU=BA9IX`mn&;#L+nZSI_5FQlnv5*+d&>RCoCc)5Tvu@%h4mXoIX03vfBqD>!< zKMNVok{UybqEX2dc;e}=ELU!2hjW8;R${aIwN{I}G{Ryz`bWMM48OwJt?89)=g{dB-*)FJG2Pq8ZWTT|jf~6Kc zd32FO#>tVbTG8a=E-Y$Q_}g|m^2K1NnAK*FT~Fpj$#$#sEA_k?Qa5TY8;+sYF+H6L zjUX0Fk?QIigBn+BbR8x&*70f!E6a&3EVxxEgz-Y^eT{P)luqEpq<(?LipH=?;hd`B zPKxrbGl@vZD3X$wLIpiSF4DhEI2cw0GiL#7yA=(jQP-;ggQ-K>{)#;0jc)l|#F?O+mdfAD~}JuNeR6 zoKW9JVguETd+Vf(Fd|Ul=g0b_ zdfohiZw+SL}3(KnKh^KqJ?;JQjDQg=;w)smFs1pIS_PilTat`ngmBLJ3WPn z@Jpi*vyH*|?0-^q3`s?3QVoyO+9qq#4P!e+c(ETxa^;g#Mc*GQ*AV1$s%4Q5YwMB> zbC>YSR$HiaAGO^wEk|dbgIA@np2AZVNJK13{$L(Z@bE)-S@tp=f{_2PDGONXz0{@` z=AfA!!Pe0CA6wiIi+80R#}oS_E7%fqrBtZOm!k0}YubRM|AdBCHNTu#Eob1<&B4_& z?}L8DOX}o0eS3T9@DE+ogNVtJboZX;MLJVzGnLGzLh*aKlahI=lsA8wJPrzojZJsG zOKBNbxd9EVmg=#Yzonz6>&x8jv!N%98(8yE(@aib4taUWXfsrIDb#`u#$qmfqnnN+ zf{?EPWUJ7Kd1LC?B0{#e*K~b_O9SU&((}694`5TB5=yp zT~1!svj#o|+XmAmrF^9&%)geu`{p~Y&datRi`P2mZ9uLiSxm$7cb(;mr36mlh*<+GWLt_y`t2D56hpgr) zyLC!sas7#8EkNlKWEqULe?SgRFio3xz;3Jb!o*te+l8AGb4ZTA>V)%>#l2%N2^=3#C8R(|}2Q{UE^aKqIRcWAsSR2v@!PpBaM)4(B)9H81`rJ>BPbU2k`3)bm z&ni-PpkE@|{3){ee5Gr6QFbxPbp_c{pn61+&SlVGatp<&nL~5qI6T z7?=oP!|yxqDby4_l6HPQBEEbvSr&XzYU_~E^bM>DAvSTPqW$ecD48CibGS zPIABBoj6_LA=q1+*%ZI|g?s9@GsQ<}8boS0a8XLLZ$(7c;}2TEiJto(G&0^;^Z_we z92xgkwo8{y?=5v@x6u89kX{?P(dUIbC*X_YPU@}Cu83z~Upw3>8q-wz=H(x601lm@ zYf0ctLx6L7c_SS_(~E?qAs4*=!F4CgFzqiNs$ zp<;_zn3xts9jPunpxdZWd1yK7gI@aU0fe1=y9IfsbklOtM1j7C@u($a{d4fFSlaKW z*ZOKp`j2cu1E^12vWD{HASB{z#!uJ8%uXuOmqTG_>Ghw?n{t8M4JN(By3(h5vpcHv zr?ta>WK}f&Jf$zJ{K+g}y~!DncEAweps(PFhUg9c(ixDg*-nztl@IG8(`6NGzO5Pr zBxEx{yDd%)lfg2=CnK77H3Nl4Hl^46FhvSQ;XM=%6G(bS8J%%(dnA~?lUBvWeHYi9 zOw~KMU%xnIn{lM5PMcb*T0%VP+pI2i<5)lbTe?8a;LAeTH#Ir@78L%+d{o8G=({fa zzo`ld+tS~v!syrGh5d&5vr(?PHlp=PfS$IH7a2ewAmqMi8f<4*SzWp2%P?=Iv5jsj zq=+!*@`$^f&QDkoiR(U-t~GPR;b@+te@&2Y1oc1!#$;zOnCy-DI7rLK4kZ%cP4^uiJlViiROdH%|&6UzBuNLm(9I0H>!hqG}y=XE<=0_5e zp>te7PYs#STC5WfXOFjPw`1=(i$-_Oes(A(VegrfsU}@bJ>L8`jAlK13K&i)@>)77 z3h0JCw>Kp(VKOmBXF_qBVygOxq{oBVoLRXbh(TX_7;3o4vi^HvMGpoDSCei>gT;3)WY^0`uivh(1iVgJDq~DKQ_^jO zQHoKF(ax|ilo%~@m$~Pm@%V5QQ7Y7!w9+Rv`&7d26d@;c8Q3+5Nf7J3~= zcl%{lh6PC(s2;{Bo3kJ+PrVj^Aj8k!8LSH`8G~P=7{NUn1j1e!b#z5w~XNpVbFu96G!)tMOLFD2;@Jl@OO-t2eAivs-S&7YU#kK3)>OoXWS&ik1x8` zMP+p0y}pRK=GO&_>n4kKMnCg3wDQ-~ET0&EbwPf)=LvGqLGw5L37`?l!FEQQg~IEw zNek_R@zyT%sL6hEAo_^r$Mx@t&FY<#*vXxFQF@JdR~ei%l1sF{AL@){%M?)R8ksmj zKz;eFc5qw|dd2EQjE$d#tLPc*7%X6M{`cPsdk@r+e?gM`_+hB_;|JgW!z%bzAgqkt zT+Ku*%}i|mw|ZEu1Nl8dv#{$+bIvzD+d``o00P852x3Ybk^+;O5epDZi82EXB_*`Q z!i_qTWDa~3cBV?zl?y~Aoc3s+!~-xE#p^=rdf#;KlBLSrggBV*@}I9KM7O`c4u5T@ zXaC1#r;r)u-(!McRFvgwLqh)+n2ay;6@JT*?q^9t9{mt6`(;PcAnp@&O8`_bePb-i zCH4tj$lWA-35oWT>TOu4J?D`0i#+lG?CP8&Jbt%SrTr_K%QfpDh#&(=CW{~xsvkm> zC8SG78!wP#UWg#pLK}ymljLeBqE@C~nHrS-%RWwzb|eX3j!1(>m4JdB7fQsW8!v9? zhA}_{AgQ-aB90!Z2op{%Vgi`hnI^E#Nb{$TkjVBegwOpvufuJS%OI5r(;2^0u2-Xu zmuAukHA_UAn2)1sP|cTAv0Gp*NB*NQS`s5jCNZI$9Q|5UST)x-KgK1VvcmnTa7g@6 z?i1fh#5T3+A!egiR*cUuEngRxPeCW7RV@;WSSpZ=M6(Jf&d!shpk9#DY*39)p;DHN zPoYt!v9?huVl26eXcCTBr&fkkrl47%7Q0X_T8=v(BYH;_i!j1YEe0#u2H4CM zmQpWhi)mXV$|uT8yupfbqbxQe&Zrl;DBkOeaU(1~pjq*iU{EfEL_Eq&=@&_2n0SX1 z>qVT`qMkF0b>KGksu%4VzUhd);g$4i6bY;q(U1o1JDJ6}CcCn|nS&09XSznaR?BtB zckGbcC9qE}ptJ5lBy}jI*f+%EJ%au?HwWsNzEN6V3cVJ}y(PL<(tfT(?0mt9f1QrC z!-4*(#f0)#DXJb@4_%M~UIBOz-H9KGFNN2l9eD=u03O6!A&wja_`qL?*J7_c1HOP4 z65fDY!U27t@3#`~3HW)M`v?GO{a^x)BIO8rBJWcHOU=%)07(47#TN4_vs(Q$vos4Z zXW1BN=VW5uTJicyMH*=5Y+~MeDLZ|Pev1%4KhaNi#67=lO28My9f{W;`?-KG;a9|c z5}-fHf38_Xez8~BeHS1DVvp!6^u7(y0kKEy75=9N+&LtW;M+m@ie)75g9Lzj!jOoF z=^C9LXCYokxQ9G|3PuwIM+7M(HYPSEGA2<+f=bAV2#pkhm<1R_3?s)kTJ(iisPYBaGWjm7s}lwuQP|W37}5a4X{?kD|J41fwiFwPs*kHJP_x zj>(ltfnd6$MoZtnnSpL-oK`rJ*UidC5y{m+ai_!8ze_IXtt17aZke9*X*m+4xp_KT z$gyJPereScTZz^(?%~aii*5K~v7)zQCl90CP{fU{F6&cE#&^e1WrMPJ^|Z3)4vPlz zqkn@d=gnF=6iQvhByR-;b_L=?jud|6yZaKPDgbHOl}p-5Ha5(J?kj-#ndbInTMgwiO_#`QU@1_g4xr*9cd=u~;N$`+4{ z@Lh8F-2KdLl%KOCcELjvw=&6U- zcy=q0f7;!lS}1!)!A)W)dylN9V|(I;hDmH1vnOt-)$j($@h!%fUMu9r`5oX+fI>3R zVd2e;2(f-b^Fg^k9d)&3VGMz`0w0STC*SveR6*Uk!JX%_{*-qKB!G*OHvJF`kAl@a ziu=G91{qu84(+<>8x+Uac%+M>WL~VqaqdMbc)K4F>s@gzG3U7N32OVP-|GgD=_wjg z9tDLiXJ8G1ITh3_ruK)Y0deO+y!ER19Q!NFigf$V*GLo*_fo#H94e^D$p15OGkEV{ zIiD+EQpbW*e7s4>oCtO{!;u#LtDkTwoSG5L`j_MO#qsPCAb5A07e)81Ao zZB=g))6nRnuH%M{JUJlRM6$) zgJ;V4-9HcC8Ep8R=IZ?#QOK+>Lzt+L&VqU%dRvYrEp+0^+QHOwV|wh8#$>IJ?>d`-}X%SP(%)Evl_XM+OOHxKVz=|5!> z#V?DHs&9zCn#Hj{$0rp3usm|5%c*N|WfC_+C(D^Fs=mSdYM3S4c1*+=E}FR)O;nuS zQS(IL!I_{45bNV#%O;I_K~6A1Uwv*@FMKOn)O@Kqr3()~*O)YSqZxyzfpq{IejRL< zBNA$!6nunD7s*&oT6RT3M_kZADiLg%HbOFCJfto0d$&v;Vjud-N4U2VX@Vkzu}ci< zN^>^mN;NG!(Ap_u$0Q>g4UY<2_=gHx`b_vrqPh6Ci4!9PAHWm94?SRB@YvAQi!_50 z!OdM<0Zs%|W^O;W5h8ioBHGeJ(M;~_$(*(=!(MS6q(!lKmW2~EX6kZoLsDYcCkj5f zdG64xMbk{CZX5+s-jt%;mg?y2;SpRq2K&|XV3}JNLmG(eD7>FKy!7@nQMy%+v&07u zddxO`LijA|xJu2;Zf#B)x^sCc7|z1==VM-WwW1Y;^_YxA1Ov8K;4zIFwrDP^$zLE* zR)^Y3|L2a{4qBx9@T5**J?79>(gf9_syp+;UJ33+)SzgwidsuV|BSWt&~1Y3cjMUt ziS}w!N-I=p(nF0xdMNZ>TQjcvf+J;6iBO-IR_cVj5o0VdD>cjSK(IgR>)7tpWF`yQ zcOJF+_%YK1!}LbCwIs;VuY)wg;W2DRb-Z0c5+)j~JM&>C89$sv!fE)tnv3hGI;e32 zn^{6fs?^rGFSD?3^zjv3NjsX!tM;429Z6>%xa!n}hSjTwmd0c0PObqIkQXe#mn>se z!%HlayF3>54gQw3HHcdkJHeef2*ouB(yr(P0&pRM1cE5-Ad$ zBz9#-xT?%8oGwRRbVTYwGVe_ZffB{Y2Su7ULADQB0idF3wzR_V$PpAu zL3lDI*`K(kmt7^bjUW_TIzBNoi@6uCkQqxGfN+iB08o??V$;t0Wa3gbIeU0UeVwaq zYnGn=L{6x)AQ`#vPd?bSQy*eKmQe z3v>4A)SU@>#SN8C1#o`^me{tht`GsXpqph4Hil58v2zk?9U0!H?$r}DgYyiM8Wl)3 zc%3=fH4So(gaLAhEuYhE2s*DNr|RqI?!nR)Mu2JYwBS9lv`9vT{xHSZJqZ9IE8&!c zrD)%FEWM!S?>c}H(*P8Jf;bCUhiZf+3^3vnrV+*w#>~ev0vCoH7zb23zH|EgCh$?k z4jcawc@a(B8UBg%Rsr5H@o&gJWD?g;ob^GAqJXUd1QSX(CUC!YSsL}x$iouclmg*g z68ZP-4I%YAi+y=)V{h3d`_}AN#4QJ~8nB6&0N6xwC%hCr6I%90RYYERE`$E8Oz&qlHa7OZT_N#nTo=!i=(S^Nr z05$M&?&o#CTj1Mw_bcx0N`WsA<@Z*Ha@<)g&-BgTi7ilTYv-#@OzOCQm%}iViGG6- z(vaxFrdwbGJtzJtr$ktdpyqbN2h;S~s@f(Owof2rF6LE`k7lmS|6dExNg?`hBiAdC zMhmvHd33c&^<(a*jH{bU;xo7|dQPdSxcjIDwn2g&sk4&*#VPVyhWZ{woYZ>NxH}q~ zeb=9Z@LOw6OyI5j2KJTqXfSbM0td|GWNr56^rCk;S4SD=A4kI<5xK!{a6~r-E8H!d zwwvLv12IDretxTXA-m0jP9n5hJN4@Cj1I5z4kD@Npqc@qdU-8akdhylhUc&n>Uqv> z6T-IXkZMbU3VMFh}zjkpOpx@DTaGjS8~1xZb?aSwv~R9thxcVitYTku@7dK>fN1DD`EBUH(d>#Vk2gI{vy0Xt&K# zyBgdTg7(FNq^w$5`rYe+hH!O=(^~IlMya0Nhu%%ryoc|1zA%F=Z)o<(oN`iZA1kc^ zc-xy!lY9f-S<8$P(9{A{3SJ*>XojEse$?) z=Z~O*Cp$#=z`{zMY+;X{cUYH``)50;U-?{25rYBvSFF?zj=}wN^Qg|20JI(h4f3xO zZc;6DZR8l zqSRa$fI~os-+)C~wtzJXQ)p&|&Af`DM{p~VS9RN0$6Pr?SO6Q0heg9Jd->EJWEl6f zst877UdV?N7jtTP_PlzeqtP=Ge?u{IBQ`NFS*2$}SwM1ta&rqIu}g}gt(nFZzbXmc z&-@KBTs3>}9j%Z~!Kb6qMAK|jevp`~S>xQ%aY(Zm0_P}tf1kVZ`I?Xi_kkP{@^r<6rL8V6VZy3FtZPSQFD;xyYfUUqnlNht>Ufhj;$}f z_uW}6G8oy@f%&xElptCq)*o3@`TKA9!|l70>(~Fs+B*e#5{22m-DP*#w(&39wr$(C zZQHhO+qUiMs_Npc6B9G%%skz5<3?s=WadM@?47yymwT=CgE#D_)-iOaTa?wm3lF`= zk>V+hj@4rde}YD@6e-1;+vz#FP`@V*YEAUn4zP6t?AEWbsd5?AM?7-!X!O6}V9=?w zHGOFfkB6I})7mOBrbMz*WyHDF4QNigRS#6Jbj;quOqcf~#45dt72y`%A>QAB*s_J- zA(s5<@ick=`x_|Q*?CZ?iaSiv;JFb}WM^JIWQ#2FVsQf34Jr3;++U7dC?PRFCP2y zvTUTgl?xFt?#E1SA7bNtbus4m?#E2$XRg?pkgR7GiAoq83n-?D6BBoCp0HysY59)# z4;S_AxxK%$P+`5uU2IZV1K8JK+QP?9yY!>-kose6z=rrs} z%L7+-_Vk>*1NRE)P@3-7n*i{qWF8%04h`5l+`k9;Oc (ywQW?;G=M7yWD(=#vxp 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%0D1J?*ozCvL* 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 Ug96*wq}j? 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%0D}4i(_db5KJ8S0GceLK(lhw|V1g!^jil!1 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

    w0;p2ordU?$pENP6nv&RIJNe^Svk0KP1n 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 0) { + url = args[0]; + } + EchoClient echoClient = new EchoClient(url); + echoClient.callWebService(); + } +} \ No newline at end of file diff --git a/samples/echo/pom.xml b/samples/echo/pom.xml new file mode 100644 index 00000000..31943c94 --- /dev/null +++ b/samples/echo/pom.xml @@ -0,0 +1,18 @@ + + + spring-ws-samples + org.springframework.ws + 1.0-m3-SNAPSHOT + + 4.0.0 + echo + war + Spring WS Echo Sample + + + + org.springframework.ws + spring-ws-core + + + \ No newline at end of file diff --git a/samples/echo/readme.txt b/samples/echo/readme.txt new file mode 100644 index 00000000..34ed668d --- /dev/null +++ b/samples/echo/readme.txt @@ -0,0 +1,13 @@ +===================================================== +== Spring Web Service Echo sample application == +===================================================== + + +1. INTRODUCTION + +This sample shows a bare-bones echoing service. Incoming messages are handled via DOM, and a simple 'business logic' +service is used to obtain the result. + +2. INSTALLATION + +Simply run "mvn package" and deploy the war file generated in target \ No newline at end of file diff --git a/samples/echo/src/etc/test-resources/log4j.properties b/samples/echo/src/etc/test-resources/log4j.properties new file mode 100644 index 00000000..c6d11b4d --- /dev/null +++ b/samples/echo/src/etc/test-resources/log4j.properties @@ -0,0 +1,16 @@ +log4j.rootCategory=WARN, stdout, logfile + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n + +log4j.appender.logfile=org.apache.log4j.RollingFileAppender +log4j.appender.logfile.File=${@PROJECT_NAME@.root}/@PROJECT_NAME@.log +log4j.appender.logfile.MaxFileSize=512KB + +# Keep three backup files +log4j.appender.logfile.MaxBackupIndex=3 +log4j.appender.logfile.layout=org.apache.log4j.PatternLayout + +#Pattern to output : date priority [category] - line_separator +log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - <%m>%n diff --git a/samples/echo/src/main/java/org/springframework/ws/samples/echo/service/EchoService.java b/samples/echo/src/main/java/org/springframework/ws/samples/echo/service/EchoService.java new file mode 100644 index 00000000..602adee3 --- /dev/null +++ b/samples/echo/src/main/java/org/springframework/ws/samples/echo/service/EchoService.java @@ -0,0 +1,33 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.echo.service; + +/** + * Defines the "business logic" of the web service. + * + * @author Ingo Siebert + * @author Arjen Poutsma + */ +public interface EchoService { + + /** + * Returns the given string. + * + * @return s + */ + String echo(String s); +} diff --git a/samples/echo/src/main/java/org/springframework/ws/samples/echo/service/impl/EchoServiceImpl.java b/samples/echo/src/main/java/org/springframework/ws/samples/echo/service/impl/EchoServiceImpl.java new file mode 100755 index 00000000..3f106550 --- /dev/null +++ b/samples/echo/src/main/java/org/springframework/ws/samples/echo/service/impl/EchoServiceImpl.java @@ -0,0 +1,32 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.echo.service.impl; + +import org.springframework.ws.samples.echo.service.EchoService; + +/** + * Default implementation of EchoService. + * + * @author Ingo Siebert + * @author Arjen Poutsma + */ +public class EchoServiceImpl implements EchoService { + + public String echo(String s) { + return s; + } +} diff --git a/samples/echo/src/main/java/org/springframework/ws/samples/echo/ws/EchoEndpoint.java b/samples/echo/src/main/java/org/springframework/ws/samples/echo/ws/EchoEndpoint.java new file mode 100755 index 00000000..2f045f46 --- /dev/null +++ b/samples/echo/src/main/java/org/springframework/ws/samples/echo/ws/EchoEndpoint.java @@ -0,0 +1,89 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.echo.ws; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.w3c.dom.Text; + +import org.springframework.util.Assert; +import org.springframework.ws.endpoint.AbstractDomPayloadEndpoint; +import org.springframework.ws.samples.echo.service.EchoService; + +/** + * Simple echoing Web service endpoint. Uses a EchoService to create a response string. + * + * @author Ingo Siebert + * @author Arjen Poutsma + */ +public class EchoEndpoint extends AbstractDomPayloadEndpoint { + + /** + * Namespace of both request and response. + */ + public static final String NAMESPACE_URI = "http://www.springframework.org/spring-ws/samples/echo"; + + /** + * The local name of the expected request. + */ + public static final String ECHO_REQUEST_LOCAL_NAME = "echoRequest"; + + /** + * The local name of the created response. + */ + public static final String ECHO_RESPONSE_LOCAL_NAME = "echoResponse"; + + private EchoService echoService; + + /** + * Sets the "business service" to delegate to. + */ + public void setEchoService(EchoService echoService) { + this.echoService = echoService; + } + + /** + * Reads the given requestElement, and sends a the response back. + * + * @param requestElement the contents of the SOAP message as DOM elements + * @param document a DOM document to be used for constructing Nodes + * @return the response element + */ + protected Element invokeInternal(Element requestElement, Document document) throws Exception { + Assert.isTrue(NAMESPACE_URI.equals(requestElement.getNamespaceURI()), "Invalid namespace"); + Assert.isTrue(ECHO_REQUEST_LOCAL_NAME.equals(requestElement.getLocalName()), "Invalid local name"); + NodeList children = requestElement.getChildNodes(); + Text requestText = null; + for (int i = 0; i < children.getLength(); i++) { + if (children.item(i).getNodeType() == Node.TEXT_NODE) { + requestText = (Text) children.item(i); + break; + } + } + if (requestText == null) { + throw new IllegalArgumentException("Could not find request text node"); + } + + String echo = echoService.echo(requestText.getNodeValue()); + Element responseElement = document.createElementNS(NAMESPACE_URI, ECHO_RESPONSE_LOCAL_NAME); + Text responseText = document.createTextNode(echo); + responseElement.appendChild(responseText); + return responseElement; + } +} diff --git a/samples/echo/src/main/webapp/WEB-INF/applicationContext.xml b/samples/echo/src/main/webapp/WEB-INF/applicationContext.xml new file mode 100755 index 00000000..53eca912 --- /dev/null +++ b/samples/echo/src/main/webapp/WEB-INF/applicationContext.xml @@ -0,0 +1,56 @@ + + + + + + + The MessageDispatcher is responsible for routing messages to endpoints. + + + + + + + This endpoint mapping uses the qualified name of the payload (body contents) to determine the endpoint for + an incoming message. Every message is passed to the default endpoint. Additionally, messages are logged + using the logging interceptor. + + + + + + + + + + + + This interceptor validates both incoming and outgoing message contents according to the 'echo.xsd' XML + Schema file. + + + + + + + + This interceptor logs the message payload. + + + + + This endpoint handles echo requests. + + + + + + + + + + + + + + diff --git a/samples/echo/src/main/webapp/WEB-INF/log4j.properties b/samples/echo/src/main/webapp/WEB-INF/log4j.properties new file mode 100644 index 00000000..0f73a758 --- /dev/null +++ b/samples/echo/src/main/webapp/WEB-INF/log4j.properties @@ -0,0 +1,7 @@ +log4j.rootLogger=WARN, stdout +log4j.logger.org.springframework.ws=DEBUG +log4j.logger.org.springframework.xml=DEBUG + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n \ No newline at end of file diff --git a/samples/echo/src/main/webapp/WEB-INF/springws-servlet.xml b/samples/echo/src/main/webapp/WEB-INF/springws-servlet.xml new file mode 100755 index 00000000..021e9115 --- /dev/null +++ b/samples/echo/src/main/webapp/WEB-INF/springws-servlet.xml @@ -0,0 +1,32 @@ + + + + + This handler adapter makes sure that Spring's DispatcherServlet supports MessageEndpoint instances as + handlers. It uses a SAAJ to construct SoapMessageContexts (and SoapMessages). + + + + + + + + This handler adapter adds support for WsdlDefinitions to Spring's DispatcherServlet. It transforms location + attributes in the original WSDL to reflect the URL of the incoming HTTP request. + + + + + + All incoming request are mapped to the messageDispatcher defined in applicationContext-ws.xml + + + + messageDispatcher + echoWsdl + + + + \ No newline at end of file diff --git a/samples/echo/src/main/webapp/WEB-INF/web.xml b/samples/echo/src/main/webapp/WEB-INF/web.xml new file mode 100755 index 00000000..151aab11 --- /dev/null +++ b/samples/echo/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,57 @@ + + + + + + + "Echo" WebService + Returns a given string(only A-Z and a-z chars allowed). See echo.xsd file. + + + + log4jConfigLocation + /WEB-INF/log4j.properties + + + + + org.springframework.web.util.Log4jConfigListener + + + + + org.springframework.web.context.ContextLoaderListener + + + + + springws + org.springframework.web.servlet.DispatcherServlet + + + + + springws + /services + + + + springws + *.wsdl + + + + xsd + text/xml + + + \ No newline at end of file diff --git a/samples/echo/src/main/webapp/echo.wsdl b/samples/echo/src/main/webapp/echo.wsdl new file mode 100644 index 00000000..c893406b --- /dev/null +++ b/samples/echo/src/main/webapp/echo.wsdl @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/echo/src/main/webapp/echo.xsd b/samples/echo/src/main/webapp/echo.xsd new file mode 100755 index 00000000..1fac4c16 --- /dev/null +++ b/samples/echo/src/main/webapp/echo.xsd @@ -0,0 +1,15 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/echo/src/main/webapp/index.html b/samples/echo/src/main/webapp/index.html new file mode 100755 index 00000000..e1fb4f6f --- /dev/null +++ b/samples/echo/src/main/webapp/index.html @@ -0,0 +1,14 @@ + + + + + + + Spring WS test page + + +

    Spring-WS Echo

    +If you see this page, the WAR deployment was successful. + + + diff --git a/samples/echo/src/test/java/org/springframework/ws/samples/echo/ws/EchoEndpointTest.java b/samples/echo/src/test/java/org/springframework/ws/samples/echo/ws/EchoEndpointTest.java new file mode 100644 index 00000000..a8e0b99e --- /dev/null +++ b/samples/echo/src/test/java/org/springframework/ws/samples/echo/ws/EchoEndpointTest.java @@ -0,0 +1,71 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.echo.ws; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.easymock.MockControl; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Text; + +import org.springframework.ws.samples.echo.service.EchoService; + +public class EchoEndpointTest extends XMLTestCase { + + private EchoEndpoint endpoint; + + private Document requestDocument; + + private Document responseDocument; + + private MockControl control; + + private EchoService mock; + + protected void setUp() throws Exception { + endpoint = new EchoEndpoint(); + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + documentBuilderFactory.setNamespaceAware(true); + DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); + requestDocument = documentBuilder.newDocument(); + responseDocument = documentBuilder.newDocument(); + control = MockControl.createControl(EchoService.class); + mock = (EchoService) control.getMock(); + endpoint.setEchoService(mock); + } + + public void testInvokeInternal() throws Exception { + Element echoRequest = + requestDocument.createElementNS(EchoEndpoint.NAMESPACE_URI, EchoEndpoint.ECHO_REQUEST_LOCAL_NAME); + String content = "ABC"; + Text requestText = requestDocument.createTextNode(content); + echoRequest.appendChild(requestText); + String result = "DEF"; + control.expectAndReturn(mock.echo(content), result); + control.replay(); + Element echoResponse = endpoint.invokeInternal(echoRequest, responseDocument); + assertEquals("Invalid namespace", EchoEndpoint.NAMESPACE_URI, echoResponse.getNamespaceURI()); + assertEquals("Invalid namespace", EchoEndpoint.ECHO_RESPONSE_LOCAL_NAME, echoResponse.getLocalName()); + Text responseText = (Text) echoResponse.getChildNodes().item(0); + assertEquals("Invalid content", result, responseText.getNodeValue()); + control.verify(); + } + +} \ No newline at end of file diff --git a/samples/pom.xml b/samples/pom.xml new file mode 100644 index 00000000..73bcfa92 --- /dev/null +++ b/samples/pom.xml @@ -0,0 +1,72 @@ + + + + spring-ws + org.springframework.ws + 1.0-m3-SNAPSHOT + + 4.0.0 + spring-ws-samples + pom + Spring WS Samples + + echo + airline + + + + mortbay-repo + mortbay-repo + http://www.mortbay.org/maven2/release + + + + + + org.mortbay.jetty + maven-jetty-plugin + 6.0.0rc0 + + 3 + + + + org.apache.maven.plugins + maven-war-plugin + + ${pom.artifactId} + + + + + + + + log4j + log4j + runtime + + + + javax.xml.soap + saaj-api + runtime + + + javax.mail + mail + runtime + + + javax.activation + activation + runtime + + + com.sun.xml.messaging.saaj + saaj-impl + runtime + + + diff --git a/samples/readme.txt b/samples/readme.txt new file mode 100644 index 00000000..a050ca7c --- /dev/null +++ b/samples/readme.txt @@ -0,0 +1,10 @@ +SPRING WEB SERVICES + +Sample table of contents +--------------------------------------------------- +* airline - A complete airline sample that shows both Web Service and O/X Mapping functionality in a complete application + +* echo - A simple sample that shows a bare-bones Echo service + +Both of these samples can be run by using the Jetty Web container. Simply issue the "mvn jetty:run" command in one of +the sample directories. Alternatively, you can build deployable war archives using "mvn package". \ No newline at end of file diff --git a/security/pom.xml b/security/pom.xml new file mode 100644 index 00000000..a4384d40 --- /dev/null +++ b/security/pom.xml @@ -0,0 +1,59 @@ + + + spring-ws + org.springframework.ws + 1.0-m3-SNAPSHOT + + 4.0.0 + spring-ws-security + jar + Spring WS Security + Spring-WS WS-Security implementation + + + + org.springframework.ws + spring-ws-core + + + + org.springframework + spring-context + + + org.springframework + spring-mock + + + org.springframework + spring-jdbc + + + + com.sun.xml.messaging.saaj + saaj-impl + + + + com.sun.xml.wss + xws-security + + + com.sun.org.apache.xml.security + xmlsec + + + org.acegisecurity + acegi-security + + + + javax.xml.soap + saaj-api + + + javax.mail + mail + + + \ No newline at end of file diff --git a/security/src/etc/test-resources/log4j.properties b/security/src/etc/test-resources/log4j.properties new file mode 100644 index 00000000..92e896c8 --- /dev/null +++ b/security/src/etc/test-resources/log4j.properties @@ -0,0 +1,6 @@ +log4j.rootCategory=INFO, stdout +log4j.logger.org.springframework.ws=DEBUG + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n \ No newline at end of file diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/callback/jaas/jaas.config b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/callback/jaas/jaas.config new file mode 100644 index 00000000..31b98de3 --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/callback/jaas/jaas.config @@ -0,0 +1,6 @@ +PlainText { + org.springframework.ws.soap.security.xwss.callback.jaas.PlainTextLoginModule Required; +}; +Certificate { + org.springframework.ws.soap.security.xwss.callback.jaas.CertificateLoginModule Required; +}; diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/decrypt-config.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/decrypt-config.xml new file mode 100644 index 00000000..0cb4b648 --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/decrypt-config.xml @@ -0,0 +1,3 @@ + + + diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/empty-soap.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/empty-soap.xml new file mode 100644 index 00000000..18e3966d --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/empty-soap.xml @@ -0,0 +1,5 @@ + + + QQQ + + diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/encrypt-alias-config.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/encrypt-alias-config.xml new file mode 100644 index 00000000..d8164108 --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/encrypt-alias-config.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/encrypt-config.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/encrypt-config.xml new file mode 100644 index 00000000..691d4929 --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/encrypt-config.xml @@ -0,0 +1,3 @@ + + + diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/encrypted-soap.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/encrypted-soap.xml new file mode 100644 index 00000000..14c25a4f --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/encrypted-soap.xml @@ -0,0 +1,22 @@ + + +MIICXDCCAcUCBER/bZ8wDQYJKoZIhvcNAQEEBQAwdTELMAkGA1UEBhMCTkwxEDAOBgNVBAgTB1Vu +a25vd24xEjAQBgNVBAcTCUFtc3RlcmRhbTEUMBIGA1UEChMLSW50ZXJmYWNlMjExEjAQBgNVBAsT +CVNwcmluZy1XUzEWMBQGA1UEAxMNQXJqZW4gUG91dHNtYTAeFw0wNjA2MDEyMjQzNDNaFw0wNjA4 +MzAyMjQzNDNaMHUxCzAJBgNVBAYTAk5MMRAwDgYDVQQIEwdVbmtub3duMRIwEAYDVQQHEwlBbXN0 +ZXJkYW0xFDASBgNVBAoTC0ludGVyZmFjZTIxMRIwEAYDVQQLEwlTcHJpbmctV1MxFjAUBgNVBAMT +DUFyamVuIFBvdXRzbWEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOVGA4N3bkrJhTUq/6ol +S85RAueC4QpSKlc7Ppg84f/TQZkMpAEKx/NGZq/SlqUqjYS9OSu+2xVTju/svAYcIarVvxlUfIfL +Ua4l/6ETS/bJCxZFiKiHhSjAQ9+CZOjMn4z0IzXMzM+9yqpDlJd1cRilbIVZ4GEsutWR74DoBRYB +AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAEi9JV6Rdq9gYO9l1FjegS78SHTbKBp614fU2V9op0ArB +1iUiBjteBfELIpjIbd36lkdwsgHmK8lusNRYiwAFptkQffQPJq4F4xCv5wVLkhr1qkY9vgmCjevJ +VQK9W6ggUMHEtwiWCnLuPcUe8k3hnCmqNv5CtcKv4QduvrHPrR8= + + + +EaldhRqsjjckrksnrNlmwbco1MmG/cIe5U21zs8e1fOtx2yvLEP//ZeEDyiZb6qQJ/nlbs5XQriv +oHnI8BrXnWFADJijWQm3WSNxoSvUn3NOOjTj+qjlM0YG3CW2/19ZZLrj0XRiKJyCZXj0fYM+xODr +PY70j2YZcIAaH3dtLAs=pOPYwI954LnKSTn1iHJthTlli3m8grr+AfElSNY3mJus0CtKb+Hr+/yThIA7hkqXGYGYx3ReoKcK +J+auHXeC2llvcs8kMTZTRLxZl7/qLwWuWX0dBAmBpwXaJy0RXhx5kNr0CWDl0g6Qm4p1VRlnHWNc +YXwt4x70RthlVlX6RczAdcthlLZdXqpEjqKQ11zQ9aXFTPFL+1H8gSvSflTOOUg95fPFPZCR + \ No newline at end of file diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/requireSignature-config.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/requireSignature-config.xml new file mode 100644 index 00000000..96a0390f --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/requireSignature-config.xml @@ -0,0 +1,3 @@ + + + diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/requireUsernameToken-digest-config.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/requireUsernameToken-digest-config.xml new file mode 100644 index 00000000..b6d644b4 --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/requireUsernameToken-digest-config.xml @@ -0,0 +1,3 @@ + + + diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/requireUsernameToken-plainText-config.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/requireUsernameToken-plainText-config.xml new file mode 100644 index 00000000..b8309e5a --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/requireUsernameToken-plainText-config.xml @@ -0,0 +1,3 @@ + + + diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/sign-alias-config.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/sign-alias-config.xml new file mode 100644 index 00000000..50181e96 --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/sign-alias-config.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/sign-config.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/sign-config.xml new file mode 100644 index 00000000..fabbc108 --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/sign-config.xml @@ -0,0 +1,3 @@ + + + diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/signed-soap.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/signed-soap.xml new file mode 100644 index 00000000..a51d40b6 --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/signed-soap.xml @@ -0,0 +1,20 @@ + + +MIICXDCCAcUCBER/bZ8wDQYJKoZIhvcNAQEEBQAwdTELMAkGA1UEBhMCTkwxEDAOBgNVBAgTB1Vu +a25vd24xEjAQBgNVBAcTCUFtc3RlcmRhbTEUMBIGA1UEChMLSW50ZXJmYWNlMjExEjAQBgNVBAsT +CVNwcmluZy1XUzEWMBQGA1UEAxMNQXJqZW4gUG91dHNtYTAeFw0wNjA2MDEyMjQzNDNaFw0wNjA4 +MzAyMjQzNDNaMHUxCzAJBgNVBAYTAk5MMRAwDgYDVQQIEwdVbmtub3duMRIwEAYDVQQHEwlBbXN0 +ZXJkYW0xFDASBgNVBAoTC0ludGVyZmFjZTIxMRIwEAYDVQQLEwlTcHJpbmctV1MxFjAUBgNVBAMT +DUFyamVuIFBvdXRzbWEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOVGA4N3bkrJhTUq/6ol +S85RAueC4QpSKlc7Ppg84f/TQZkMpAEKx/NGZq/SlqUqjYS9OSu+2xVTju/svAYcIarVvxlUfIfL +Ua4l/6ETS/bJCxZFiKiHhSjAQ9+CZOjMn4z0IzXMzM+9yqpDlJd1cRilbIVZ4GEsutWR74DoBRYB +AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAEi9JV6Rdq9gYO9l1FjegS78SHTbKBp614fU2V9op0ArB +1iUiBjteBfELIpjIbd36lkdwsgHmK8lusNRYiwAFptkQffQPJq4F4xCv5wVLkhr1qkY9vgmCjevJ +VQK9W6ggUMHEtwiWCnLuPcUe8k3hnCmqNv5CtcKv4QduvrHPrR8=/ewlu0ecAQ2DsEJqDcM4AT6oWPE=ihZA0zibv/mSMKWb0lc6sXJmA+Tp12ku26mhh2/2QlScm6/eKBopUcskEOlLNVL5LLhvTBa+fNVw +XVAQKnYyKY2hG5Bsqc+1/Ec6eoN7H9dCbBbwDOdU/H7qV9NFJprLu98tUtPTbBT4IRtnNV5NWKYT +odKKjip/W0n1Hz/ym9I= + + + QQQ + + \ No newline at end of file diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/test-keystore.jks b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/test-keystore.jks new file mode 100644 index 0000000000000000000000000000000000000000..61f861a05a26ace5c0104c4341e9a90d0a751e84 GIT binary patch literal 1376 zcmezO_TO6u1_mY|W&~r_#GK5;Vjz!u;t~5NK$%?zO-$Pi_}I9#*%(x3I8oqj1qYr#3*Rq<>_Fg)Y@)8Vd|^?`dp>Ak1o%g#ChuA)5}5IOU`;}=-5_H zFj|y8>F1myzRmL-dpm_WZU_EMp23=1@WJMnvE28JkB3@L?VWpzt;Ij)188Q9v9?3ud#bn=<~W)u!Vm{(X5<~?AnIKH$4=%{;kTD2ye~%$QtCmu&Vmo zn>B~7pW}P;ref{WTe_AvY=o7UbTVIB@lWK*xy3VAeZBcy&+65oFAALnJ2RLn%l7=} zT-4%SKgVp^>r+nsmErp3D<=m}uf33yX7RFJ^mt(igZtL)!QW2YxbnC*;`_}14|g1W z&VQcaf78U{%hxKul(-Pe`Q-7g^zIkyLzNC#ujx4_J}+wiS&L%n7gHC%*yrgQH!s86 zOQ-6(2Lc*k+L?lCP*sB53=7`E%T&JKtF zMcY2?&M}|#df)9Hf7YpiVH1AN+&nXDM#r)01N)D+^Lqc23YUpw4|#p&ko|+k=|`?5 z?6}0x^=t9w4_3jCmDUxk|2O|=VA%8YNc#m3wM0uDi#QhM2PJ)ZXP~aXI4wAzH|yvt zizzE^+Wus|{oZXy0He3SVPTEc6JE;5Fz>A`o%-OTQqg!}AKBY)y{;#Uokw zVphH1*2iB6#vT^TC)74%VXR?sJpWr-2P z#!bgcx2_3(#&%e8sYh7!?6tN&zT2DTs7diH<-a#`)6c*9Z{GBGl`Y-zVc`wKhb6P6 zPN{Qv#`-15tq%Q@Hvj$V9rrKkiQm7hU^ZpZP5Dcobl4&`Ypj@G07=jhdZq@Jz=WIt zOvo_?O^ipGSX}CJ=Ns^{acZ@Bw0-AgWMpAwFeo+THsEAq4rO5zX7ckf6aXf9AcsSk zJv1*nFTXs`P{=?4B*HGt>6lwwl3J9Km}@9vAOsTQ66W^I0}7=jCZ`%1!c=k#a|Ra_ zW#*;ph6fvp8Hj*XG7IxM7Gyt2bklT8+#cH8atU98yTLuF*ldzd7W%E)%w3m)%#o^)AOc>TtQml)^;;&9{#`V zIFn}yBiHfIZfWZ;ON%i!<|kz9^fXIdgvRsa4KXrk55*~b!4KG;57@3$E z85q%`j~VDLA$`yAC9$h-NLb%26*FJpy=fI)tq;GNh2PS=z;*DNsuG)Z9P3AJ zr5Pu3@BW(RUa*PrnfA%N4Ob$%8CaLy6sY~eueOf$vB3K0tlpEPzOHh!-N)I~`}$-k z)86P63IPX?Z0DH9RrJpGsN5&thjTPnnf-IxdT9Ma_Pl)?&##r=r?i^6LHA2tSz!Iq8 zqCpeWSs*rBz|6$R#Kg#8z{|#|)#lOmotKf3g_Xe|#E{#7lZ`o)g-w{r)6Y=YKoG>? z5atTb&rQ`0E&-Zv$Ya0-666wQ4i5E$@wkPVy~2YHMGS;Ma?HZqLHYS5&W;L31_q`E za^k!|(!|inz|_dX$UI7%*AT=7N`bjFvbAwOvhNsK8JHV;84MabnHn1z&e=!HB$x^u z$bInTu65*b_h;o!0c)pxn&G_a@+YS_lY*AU<^)BhBiH|C`#6i;Tvb%J=dkXZxsEpf zRBJvOZ}=>|{gQb-%y%SZxG+*UfR;N&=A8dn?00z*uek420{#PfRH{g&_l zdUW#HpZ)mSo1U2T;ITmsNLrbt)S$QltAd3QOTuUqf=$5m!2_~gn1$7VnUV27a(Dt$ z3o|evRSmYJ$!h$4@&3kn=76@NXPW;e8QOgJo}VT-^TxER@78zvUcGdF|Bv;rPf3fb zZ`Ndg{*ImPZnX2$qAOR|FP$Q0XyuWfYscg)da6?4WaDLx-?wIQioadCS!|n|i+eBp=N7ERsYEFfG_UaVW3np_G>^}5M9 znW=dtn2G;8FyVg&;uvV+XGHT3Z2}QF@f#Z%fD*rf86+=&xd#47S{A}@OeK=MOy%W zym)rlKJ^yMW>5dr6&<%9D4yl^W?(*($Rira%gJ=N^Xl`7%2Qshxxu5Q|EMKGDmbxr YhV}WkXBRKJ))}^YTgvs!c%Jwu05Bo?Bme*a literal 0 HcmV?d00001 diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameToken-digest-config.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameToken-digest-config.xml new file mode 100644 index 00000000..85090738 --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameToken-digest-config.xml @@ -0,0 +1,3 @@ + + + diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameToken-plainText-config.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameToken-plainText-config.xml new file mode 100644 index 00000000..0ce02dfc --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameToken-plainText-config.xml @@ -0,0 +1,3 @@ + + + diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameTokenDigest-soap.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameTokenDigest-soap.xml new file mode 100644 index 00000000..98d82b7a --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameTokenDigest-soap.xml @@ -0,0 +1,6 @@ + + +BertkwNstEaiFOrI7B31j7GuETYvdgk=9mdsYDCrjjYRur0rxzYt2oD72006-06-01T23:48:42Z + QQQ + + diff --git a/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameTokenPlainText-soap.xml b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameTokenPlainText-soap.xml new file mode 100644 index 00000000..7c228e00 --- /dev/null +++ b/security/src/etc/test-resources/org/springframework/ws/soap/security/xwss/usernameTokenPlainText-soap.xml @@ -0,0 +1,19 @@ + + + + + Bert + Ernie + + + + + QQQ + + \ No newline at end of file diff --git a/security/src/main/java/org/springframework/ws/soap/security/AbstractWsSecurityInterceptor.java b/security/src/main/java/org/springframework/ws/soap/security/AbstractWsSecurityInterceptor.java new file mode 100644 index 00000000..7df2ddb4 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/AbstractWsSecurityInterceptor.java @@ -0,0 +1,136 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security; + +import java.util.Locale; +import javax.xml.namespace.QName; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.util.Assert; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.soap.SoapEndpointInterceptor; +import org.springframework.ws.soap.SoapHeaderElement; +import org.springframework.ws.soap.SoapBody; +import org.springframework.ws.soap.context.SoapMessageContext; + +/** + * Interceptor base class for interceptors that handle WS-Security. + *

    + * Subclasses of this base class can be configured to validate incoming and secure outgoing messages. By default, both + * are on. + * + * @author Arjen Poutsma + */ +public abstract class AbstractWsSecurityInterceptor implements SoapEndpointInterceptor { + + /** + * Logger available to subclasses. + */ + private final Log logger = LogFactory.getLog(getClass()); + + private boolean validateRequest = true; + + private boolean secureResponse = true; + + private static final QName WS_SECURITY_NAME = + new QName("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "Security"); + + /** + * Indicates whether outgoing responsed are to be secured. Defaults to true. + */ + public void setSecureResponse(boolean secureResponse) { + this.secureResponse = secureResponse; + } + + /** + * Indicates whether incoming request are to be validated. Defaults to true. + */ + public void setValidateRequest(boolean validateRequest) { + this.validateRequest = validateRequest; + } + + public final boolean handleRequest(MessageContext messageContext, Object endpoint) throws Exception { + if (validateRequest) { + Assert.isTrue(messageContext instanceof SoapMessageContext, + "WsSecurityInterceptor requires a SoapMessageContext"); + SoapMessageContext soapMessageContext = (SoapMessageContext) messageContext; + try { + validateRequest(soapMessageContext); + return true; + } + catch (WsSecurityValidationException ex) { + if (logger.isWarnEnabled()) { + logger.warn("Could not validate request: " + ex.getMessage()); + } + SoapBody response = soapMessageContext.getSoapResponse().getSoapBody(); + response.addClientOrSenderFault(ex.getMessage(), Locale.ENGLISH); + return false; + } + } + else { + return true; + } + } + + public final boolean handleResponse(MessageContext messageContext, Object endpoint) throws Exception { + if (secureResponse) { + Assert.isTrue(messageContext instanceof SoapMessageContext, + "WsSecurityInterceptor requires a SoapMessageContext"); + SoapMessageContext soapMessageContext = (SoapMessageContext) messageContext; + try { + secureResponse(soapMessageContext); + return true; + } + catch (WsSecuritySecurementException ex) { + if (logger.isErrorEnabled()) { + logger.error("Could not secure response: " + ex.getMessage(), ex); + } + return false; + } + } + else { + return true; + } + } + + public boolean handleFault(MessageContext messageContext, Object endpoint) throws Exception { + return true; + } + + /** + * Abstract template method. Subclasses are required to validate the request contained in the given + * SoapMessageContext, and replace the original request with the validated version. + * + * @param messageContext the soap message context + * @throws WsSecurityValidationException in case of validation errors + */ + protected abstract void validateRequest(SoapMessageContext messageContext) throws WsSecurityValidationException; + + /** + * Abstract template method. Subclasses are required to secure the response contained in the given + * SoapMessageContext, and replace the original response with the secured version. + * + * @param messageContext the soap message context + * @throws WsSecuritySecurementException in case of securement errors + */ + protected abstract void secureResponse(SoapMessageContext messageContext) throws WsSecuritySecurementException; + + public boolean understands(SoapHeaderElement headerElement) { + return WS_SECURITY_NAME.equals(headerElement.getName()); + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/WsSecurityException.java b/security/src/main/java/org/springframework/ws/soap/security/WsSecurityException.java new file mode 100644 index 00000000..02ffb34d --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/WsSecurityException.java @@ -0,0 +1,36 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security; + +import org.springframework.ws.WebServiceException; + +/** + * Exception indicating that something went wrong during WS-Security executions. Has specific subclasses for securement + * and validation. + * + * @author Arjen Poutsma + */ +public abstract class WsSecurityException extends WebServiceException { + + public WsSecurityException(String msg) { + super(msg); + } + + public WsSecurityException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/WsSecuritySecurementException.java b/security/src/main/java/org/springframework/ws/soap/security/WsSecuritySecurementException.java new file mode 100644 index 00000000..0dfb1ca5 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/WsSecuritySecurementException.java @@ -0,0 +1,36 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security; + +/** + * Exception indicating that something went wrong during the securement of a message. + *

    + * This is a checked exception since we want it to be caught, logged and handled rather than cause the application to + * fail. Failure to secure a message is usually not a fatal problem. + * + * @author Arjen Poutsma + */ +public abstract class WsSecuritySecurementException extends WsSecurityException { + + public WsSecuritySecurementException(String msg) { + super(msg); + } + + public WsSecuritySecurementException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/WsSecurityValidationException.java b/security/src/main/java/org/springframework/ws/soap/security/WsSecurityValidationException.java new file mode 100644 index 00000000..c41e2e85 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/WsSecurityValidationException.java @@ -0,0 +1,36 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security; + +/** + * Exception indicating that something went wrong during the validation of a message. + *

    + * This is a checked exception since we want it to be caught, logged and handled rather than cause the application to + * fail. Failure to validate a message is usually not a fatal problem. + * + * @author Arjen Poutsma + */ +public abstract class WsSecurityValidationException extends WsSecurityException { + + public WsSecurityValidationException(String msg) { + super(msg); + } + + public WsSecurityValidationException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/package.html b/security/src/main/java/org/springframework/ws/soap/security/package.html new file mode 100644 index 00000000..fc5c3c41 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/package.html @@ -0,0 +1,5 @@ + + +Provided WS-Security implementation classes. Contains the AbstractWsSecurityInterceptor and exceptions. + + \ No newline at end of file diff --git a/security/src/main/java/org/springframework/ws/soap/security/support/KeyStoreFactoryBean.java b/security/src/main/java/org/springframework/ws/soap/security/support/KeyStoreFactoryBean.java new file mode 100644 index 00000000..b1f4e4fd --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/support/KeyStoreFactoryBean.java @@ -0,0 +1,131 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.support; + +import java.io.IOException; +import java.io.InputStream; +import java.security.GeneralSecurityException; +import java.security.KeyStore; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import org.springframework.beans.factory.FactoryBean; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.core.io.Resource; +import org.springframework.util.StringUtils; + +/** + * Spring factory bean for a java.security.KeyStore. + *

    + * To load an existing key store, you must set the location property. If this property is not set, a new, + * empty key store is created, which is most likely not what you want. + * + * @author Arjen Poutsma + * @see #setLocation(org.springframework.core.io.Resource) + */ +public class KeyStoreFactoryBean implements FactoryBean, InitializingBean { + + private static final Log logger = LogFactory.getLog(KeyStoreFactoryBean.class); + + private KeyStore keyStore; + + private String type; + + private String provider; + + private Resource location; + + private char[] password; + + /** + * Sets the location of the key store to use. If this is not set, a new, empty key store will be used. + * + * @see KeyStore#load(java.io.InputStream, char[]) + */ + public void setLocation(Resource location) { + this.location = location; + } + + /** + * Sets the password to use for integrity checking. If this property is not set, then integrity checking is not + * performed. + */ + public void setPassword(String password) { + if (password != null) { + this.password = password.toCharArray(); + } + } + + /** + * Sets the provider of the key store to use. If this is not set, the default is used. + */ + public void setProvider(String provider) { + this.provider = provider; + } + + /** + * Sets the type of the KeyStore to use. If this is not set, the default is used. + * + * @see KeyStore#getDefaultType() + */ + public void setType(String type) { + this.type = type; + } + + public Object getObject() throws Exception { + return keyStore; + } + + public Class getObjectType() { + return KeyStore.class; + } + + public boolean isSingleton() { + return true; + } + + public final void afterPropertiesSet() throws GeneralSecurityException, IOException { + if (StringUtils.hasLength(provider) && StringUtils.hasLength(type)) { + keyStore = KeyStore.getInstance(type, provider); + } + else if (StringUtils.hasLength(type)) { + keyStore = KeyStore.getInstance(type); + } + else { + keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); + } + InputStream is = null; + try { + if (location != null && location.exists()) { + is = location.getInputStream(); + if (logger.isInfoEnabled()) { + logger.info("Loading key store from " + location); + } + } + else if (logger.isWarnEnabled()) { + logger.warn("Creating empty key store"); + } + keyStore.load(is, password); + } + finally { + if (is != null) { + is.close(); + } + } + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/support/package.html b/security/src/main/java/org/springframework/ws/soap/security/support/package.html new file mode 100644 index 00000000..c39e401f --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/support/package.html @@ -0,0 +1,5 @@ + + +Contains support classes for handling WS-Security messages. + + \ No newline at end of file diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/XwsSecurityInterceptor.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/XwsSecurityInterceptor.java new file mode 100644 index 00000000..719410db --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/XwsSecurityInterceptor.java @@ -0,0 +1,172 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss; + +import java.io.InputStream; + +import javax.security.auth.callback.CallbackHandler; +import javax.xml.soap.SOAPMessage; + +import com.sun.xml.wss.ProcessingContext; +import com.sun.xml.wss.XWSSProcessor; +import com.sun.xml.wss.XWSSProcessorFactory; +import com.sun.xml.wss.XWSSecurityException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.core.io.Resource; +import org.springframework.util.Assert; +import org.springframework.ws.soap.context.SoapMessageContext; +import org.springframework.ws.soap.saaj.SaajSoapMessageContext; +import org.springframework.ws.soap.security.AbstractWsSecurityInterceptor; +import org.springframework.ws.soap.security.xwss.callback.CallbackHandlerChain; + +/** + * WS-Security endpoint interceptor that is based on Sun's XML and Web Services Security package (XWSS). This + * WS-Security implementation is part of the Java Web Services Developer Pack (Java WSDP). + *

    + * This interceptor needs a CallbackHandler to operate. This handler is used to retrieve certificates, + * private keys, validate user credentials, etc. Refer to the XWSS Javadoc to learn more about the specific + * Callbacks fired by XWSS. You can also set multiple handlers, each of which will be used in turn. + *

    + * Note that this interceptor depends on SAAJ, and thus requires SaajSoapMessages to operate. This + * means that you must use a SaajSoapMessageContextFactory to create the SOAP messages. + * + * @author Arjen Poutsma + * @see #setCallbackHandler(javax.security.auth.callback.CallbackHandler) + * @see #setPolicyConfiguration(org.springframework.core.io.Resource) + * @see com.sun.xml.wss.impl.callback.XWSSCallback + * @see org.springframework.ws.soap.saaj.SaajSoapMessageContextFactory + * @see XWSS + */ +public class XwsSecurityInterceptor extends AbstractWsSecurityInterceptor implements InitializingBean { + + private static final Log logger = LogFactory.getLog(XwsSecurityInterceptor.class); + + private XWSSProcessor processor; + + private CallbackHandler callbackHandler; + + private Resource policyConfiguration; + + /** + * Sets the handler to resolve XWSS callbacks. Setting either this propery, or callbackHandlers, is + * required. + * + * @see com.sun.xml.wss.impl.callback.XWSSCallback + * @see #setCallbackHandlers(javax.security.auth.callback.CallbackHandler[]) + */ + public void setCallbackHandler(CallbackHandler callbackHandler) { + this.callbackHandler = callbackHandler; + } + + /** + * Sets the handlers to resolve XWSS callbacks. Setting either this propery, or callbackHandlers, is + * required. + * + * @see com.sun.xml.wss.impl.callback.XWSSCallback + * @see #setCallbackHandler(javax.security.auth.callback.CallbackHandler) + */ + public void setCallbackHandlers(CallbackHandler[] callbackHandler) { + this.callbackHandler = new CallbackHandlerChain(callbackHandler); + } + + /** + * Sets the policy configuration to use for XWSS. Required. + */ + public void setPolicyConfiguration(Resource policyConfiguration) { + this.policyConfiguration = policyConfiguration; + } + + public void afterPropertiesSet() throws Exception { + Assert.notNull(policyConfiguration, "policyConfiguration is required"); + Assert.isTrue(policyConfiguration.exists(), "policyConfiguration [" + policyConfiguration + "] does not exist"); + Assert.notNull(callbackHandler, "callbackHandler is required"); + XWSSProcessorFactory processorFactory = XWSSProcessorFactory.newInstance(); + InputStream is = null; + try { + if (logger.isInfoEnabled()) { + logger.info("Loading policy configuration from from '" + policyConfiguration.getFilename() + "'"); + } + is = policyConfiguration.getInputStream(); + processor = processorFactory.createProcessorForSecurityConfiguration(is, callbackHandler); + } + finally { + if (is != null) { + is.close(); + } + } + } + + protected void secureResponse(SoapMessageContext soapMessageContext) throws XwsSecuritySecurementException { + Assert.isTrue(soapMessageContext instanceof SaajSoapMessageContext, + "XwsSecurityInterceptor requires a SaajSoapMessageContext. " + + "Use a SaajSoapMessageContextFactory to create the SOAP messages."); + SaajSoapMessageContext saajMessageContext = (SaajSoapMessageContext) soapMessageContext; + SOAPMessage securedMessage = secureMessage(saajMessageContext.getSaajResponse()); + saajMessageContext.setSaajResponse(securedMessage); + } + + protected void validateRequest(SoapMessageContext soapMessageContext) throws XwsSecurityValidationException { + Assert.isTrue(soapMessageContext instanceof SaajSoapMessageContext, + "XwsSecurityInterceptor requires a SaajSoapMessageContext" + + "Use a SaajSoapMessageContextFactory to create the SOAP messages."); + SaajSoapMessageContext saajMessageContext = (SaajSoapMessageContext) soapMessageContext; + SOAPMessage validatedMessage = validateMessage(saajMessageContext.getSaajRequest()); + saajMessageContext.setSaajRequest(validatedMessage); + } + + /** + * Secures the given SAAJ message in accordance with the defined security policy and returns the secured result. + * + * @param message the message to be secured + * @return the secured message + * @throws XwsSecuritySecurementException in case of errors + */ + protected SOAPMessage secureMessage(SOAPMessage message) throws XwsSecuritySecurementException { + try { + ProcessingContext context = processor.createProcessingContext(message); + return processor.secureOutboundMessage(context); + } + catch (XWSSecurityException ex) { + throw new XwsSecuritySecurementException(ex.getMessage(), ex); + } + } + + /** + * Validates the given SAAJ message in accordance with the defined security policy and returns the validated + * result. + * + * @param message the message to be validated + * @return the validated message + * @throws XwsSecurityValidationException in case of errors + */ + protected SOAPMessage validateMessage(SOAPMessage message) throws XwsSecurityValidationException { + try { + ProcessingContext context = processor.createProcessingContext(message); + return processor.verifyInboundMessage(context); + } + catch (XWSSecurityException ex) { + throw new XwsSecurityValidationException(ex.getMessage(), ex); + } + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/XwsSecuritySecurementException.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/XwsSecuritySecurementException.java new file mode 100644 index 00000000..3813c8e8 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/XwsSecuritySecurementException.java @@ -0,0 +1,30 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss; + +import org.springframework.ws.soap.security.WsSecuritySecurementException; + +public class XwsSecuritySecurementException extends WsSecuritySecurementException { + + public XwsSecuritySecurementException(String msg) { + super(msg); + } + + public XwsSecuritySecurementException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/XwsSecurityValidationException.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/XwsSecurityValidationException.java new file mode 100644 index 00000000..409b5946 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/XwsSecurityValidationException.java @@ -0,0 +1,30 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss; + +import org.springframework.ws.soap.security.WsSecurityValidationException; + +public class XwsSecurityValidationException extends WsSecurityValidationException { + + public XwsSecurityValidationException(String msg) { + super(msg); + } + + public XwsSecurityValidationException(String msg, Throwable ex) { + super(msg, ex); + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/AbstractCallbackHandler.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/AbstractCallbackHandler.java new file mode 100644 index 00000000..c787fea1 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/AbstractCallbackHandler.java @@ -0,0 +1,59 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback; + +import java.io.IOException; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.CallbackHandler; +import javax.security.auth.callback.UnsupportedCallbackException; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * Abstract implementation of a CallbackHandler. + * + * @author Arjen Poutsma + */ +public abstract class AbstractCallbackHandler implements CallbackHandler { + + /** + * Logger available to subclasses. + */ + protected final Log logger = LogFactory.getLog(getClass()); + + protected AbstractCallbackHandler() { + } + + /** + * Iterates over the given callbacks, and calls handleInternal for each of them. + * + * @param callbacks the callbacks + * @see #handleInternal(javax.security.auth.callback.Callback) + */ + public final void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { + for (int i = 0; i < callbacks.length; i++) { + handleInternal(callbacks[i]); + } + } + + /** + * Template method that should be implemented by subclasses. + */ + protected abstract void handleInternal(Callback callback) throws IOException, UnsupportedCallbackException; +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/CallbackHandlerChain.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/CallbackHandlerChain.java new file mode 100644 index 00000000..931b63a5 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/CallbackHandlerChain.java @@ -0,0 +1,175 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback; + +import java.io.IOException; +import java.security.cert.X509Certificate; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.CallbackHandler; +import javax.security.auth.callback.UnsupportedCallbackException; + +import com.sun.xml.wss.impl.callback.CertificateValidationCallback; +import com.sun.xml.wss.impl.callback.PasswordValidationCallback; +import com.sun.xml.wss.impl.callback.TimestampValidationCallback; + +/** + * Represents a chain of CallbackHandlers. For each callback, each of the handlers is called in term. If a + * handler throws a UnsupportedCallbackException, the next handler is tried. + * + * @author Arjen Poutsma + */ +public class CallbackHandlerChain extends AbstractCallbackHandler { + + private CallbackHandler[] callbackHandlers; + + public CallbackHandlerChain(CallbackHandler[] callbackHandlers) { + this.callbackHandlers = callbackHandlers; + } + + public void setCallbackHandlers(CallbackHandler[] callbackHandlers) { + this.callbackHandlers = callbackHandlers; + } + + protected void handleInternal(Callback callback) throws IOException, UnsupportedCallbackException { + if (callback instanceof CertificateValidationCallback) { + handleCertificateValidationCallback((CertificateValidationCallback) callback); + } + else if (callback instanceof PasswordValidationCallback) { + handlePasswordValidationCallback((PasswordValidationCallback) callback); + } + else if (callback instanceof TimestampValidationCallback) { + handleTimestampValidationCallback((TimestampValidationCallback) callback); + } + else { + boolean allUnsupported = true; + for (int i = 0; i < callbackHandlers.length; i++) { + CallbackHandler callbackHandler = callbackHandlers[i]; + try { + callbackHandler.handle(new Callback[]{callback}); + allUnsupported = false; + } + catch (UnsupportedCallbackException ex) { + // if an UnsupportedCallbackException occurs, go to the next handler + } + } + if (allUnsupported) { + throw new UnsupportedCallbackException(callback); + } + } + } + + private void handleCertificateValidationCallback(CertificateValidationCallback callback) { + callback.setValidator(new CertificateValidatorChain(callback)); + } + + private void handlePasswordValidationCallback(PasswordValidationCallback callback) { + callback.setValidator(new PasswordValidatorChain(callback)); + } + + private void handleTimestampValidationCallback(TimestampValidationCallback callback) { + callback.setValidator(new TimestampValidatorChain(callback)); + } + + private class TimestampValidatorChain implements TimestampValidationCallback.TimestampValidator { + + private TimestampValidationCallback callback; + + private TimestampValidatorChain(TimestampValidationCallback callback) { + this.callback = callback; + } + + public void validate(TimestampValidationCallback.Request request) + throws TimestampValidationCallback.TimestampValidationException { + for (int i = 0; i < callbackHandlers.length; i++) { + CallbackHandler callbackHandler = callbackHandlers[i]; + try { + callbackHandler.handle(new Callback[]{callback}); + callback.getResult(); + } + catch (IOException e) { + throw new TimestampValidationCallback.TimestampValidationException(e); + } + catch (UnsupportedCallbackException e) { + // ignore + } + } + } + } + + private class PasswordValidatorChain implements PasswordValidationCallback.PasswordValidator { + + private PasswordValidationCallback callback; + + private PasswordValidatorChain(PasswordValidationCallback callback) { + this.callback = callback; + } + + public boolean validate(PasswordValidationCallback.Request request) + throws PasswordValidationCallback.PasswordValidationException { + boolean allUnsupported = true; + for (int i = 0; i < callbackHandlers.length; i++) { + CallbackHandler callbackHandler = callbackHandlers[i]; + try { + callbackHandler.handle(new Callback[]{callback}); + allUnsupported = false; + if (!callback.getResult()) { + return false; + } + } + catch (IOException e) { + throw new PasswordValidationCallback.PasswordValidationException(e); + } + catch (UnsupportedCallbackException e) { + // ignore + } + } + return !allUnsupported; + } + } + + private class CertificateValidatorChain implements CertificateValidationCallback.CertificateValidator { + + private CertificateValidationCallback callback; + + private CertificateValidatorChain(CertificateValidationCallback callback) { + this.callback = callback; + } + + public boolean validate(X509Certificate certificate) + throws CertificateValidationCallback.CertificateValidationException { + boolean allUnsupported = true; + for (int i = 0; i < callbackHandlers.length; i++) { + CallbackHandler callbackHandler = callbackHandlers[i]; + try { + callbackHandler.handle(new Callback[]{callback}); + allUnsupported = false; + if (!callback.getResult()) { + return false; + } + } + catch (IOException e) { + throw new CertificateValidationCallback.CertificateValidationException(e); + } + catch (UnsupportedCallbackException e) { + // ignore + } + } + return !allUnsupported; + } + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/CryptographyCallbackHandler.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/CryptographyCallbackHandler.java new file mode 100644 index 00000000..b9abbead --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/CryptographyCallbackHandler.java @@ -0,0 +1,492 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback; + +import java.io.IOException; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.UnsupportedCallbackException; + +import com.sun.xml.wss.impl.callback.CertificateValidationCallback; +import com.sun.xml.wss.impl.callback.DecryptionKeyCallback; +import com.sun.xml.wss.impl.callback.EncryptionKeyCallback; +import com.sun.xml.wss.impl.callback.SignatureKeyCallback; +import com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback; + +/** + * Default callback handler that handles cryptographic callback. This handler determines the exact callback passed, and + * calls a template method for it. By default, all template methods throw an UnsupportedCallbackException, + * so you only need to override those you need. + * + * @author Arjen Poutsma + */ +public class CryptographyCallbackHandler extends AbstractCallbackHandler { + + protected final void handleInternal(Callback callback) throws IOException, UnsupportedCallbackException { + if (callback instanceof CertificateValidationCallback) { + handleCertificateValidationCallback((CertificateValidationCallback) callback); + } + else if (callback instanceof DecryptionKeyCallback) { + handleDecryptionKeyCallback((DecryptionKeyCallback) callback); + } + else if (callback instanceof EncryptionKeyCallback) { + handleEncryptionKeyCallback((EncryptionKeyCallback) callback); + } + else if (callback instanceof SignatureKeyCallback) { + handleSignatureKeyCallback((SignatureKeyCallback) callback); + } + else if (callback instanceof SignatureVerificationKeyCallback) { + handleSignatureVerificationKeyCallback((SignatureVerificationKeyCallback) callback); + } + else { + throw new UnsupportedCallbackException(callback); + } + + } + + // + // Certificate validation + // + + /** + * Template method that handles CertificateValidationCallbacks. Called from + * handleInternal(). Default implementation throws an UnsupportedCallbackException. + */ + protected void handleCertificateValidationCallback(CertificateValidationCallback callback) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + // + // Decryption + // + + /** + * Method that handles DecryptionKeyCallbacks. Called from handleInternal(). Default + * implementation delegates to specific handling methods. + * + * @see #handlePrivateKeyRequest(com.sun.xml.wss.impl.callback.DecryptionKeyCallback, + * com.sun.xml.wss.impl.callback.DecryptionKeyCallback.PrivateKeyRequest) + * @see #handleSymmetricKeyRequest(com.sun.xml.wss.impl.callback.DecryptionKeyCallback, + * com.sun.xml.wss.impl.callback.DecryptionKeyCallback.SymmetricKeyRequest) + */ + protected final void handleDecryptionKeyCallback(DecryptionKeyCallback callback) + throws IOException, UnsupportedCallbackException { + if (callback.getRequest() instanceof DecryptionKeyCallback.PrivateKeyRequest) { + handlePrivateKeyRequest(callback, (DecryptionKeyCallback.PrivateKeyRequest) callback.getRequest()); + } + else if (callback.getRequest() instanceof DecryptionKeyCallback.SymmetricKeyRequest) { + handleSymmetricKeyRequest(callback, (DecryptionKeyCallback.SymmetricKeyRequest) callback.getRequest()); + } + else { + throw new UnsupportedCallbackException(callback); + } + } + + /** + * Method that handles DecryptionKeyCallbacks with PrivateKeyRequest . Called from + * handleDecryptionKeyCallback(). Default implementation delegates to specific handling methods. + * + * @see #handlePublicKeyBasedPrivKeyCertRequest(com.sun.xml.wss.impl.callback.SignatureKeyCallback, + * com.sun.xml.wss.impl.callback.SignatureKeyCallback.PublicKeyBasedPrivKeyCertRequest) + * @see #handleX509CertificateBasedRequest(com.sun.xml.wss.impl.callback.DecryptionKeyCallback, + * com.sun.xml.wss.impl.callback.DecryptionKeyCallback.X509CertificateBasedRequest) + * @see #handleX509IssuerSerialBasedRequest(com.sun.xml.wss.impl.callback.DecryptionKeyCallback, + * com.sun.xml.wss.impl.callback.DecryptionKeyCallback.X509IssuerSerialBasedRequest) + * @see #handleX509SubjectKeyIdentifierBasedRequest(com.sun.xml.wss.impl.callback.DecryptionKeyCallback, + * com.sun.xml.wss.impl.callback.DecryptionKeyCallback.X509SubjectKeyIdentifierBasedRequest) + */ + protected final void handlePrivateKeyRequest(DecryptionKeyCallback callback, + DecryptionKeyCallback.PrivateKeyRequest request) + throws IOException, UnsupportedCallbackException { + if (request instanceof DecryptionKeyCallback.PublicKeyBasedPrivKeyRequest) { + handlePublicKeyBasedPrivKeyRequest(callback, (DecryptionKeyCallback.PublicKeyBasedPrivKeyRequest) request); + } + else if (request instanceof DecryptionKeyCallback.X509CertificateBasedRequest) { + handleX509CertificateBasedRequest(callback, (DecryptionKeyCallback.X509CertificateBasedRequest) request); + } + else if (request instanceof DecryptionKeyCallback.X509IssuerSerialBasedRequest) { + handleX509IssuerSerialBasedRequest(callback, (DecryptionKeyCallback.X509IssuerSerialBasedRequest) request); + } + else if (request instanceof DecryptionKeyCallback.X509SubjectKeyIdentifierBasedRequest) { + handleX509SubjectKeyIdentifierBasedRequest(callback, + (DecryptionKeyCallback.X509SubjectKeyIdentifierBasedRequest) request); + } + else { + throw new UnsupportedCallbackException(callback); + } + } + + /** + * Template method that handles DecryptionKeyCallbacks with PublicKeyBasedPrivKeyRequests. + * Called from handlePrivateKeyRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handlePublicKeyBasedPrivKeyRequest(DecryptionKeyCallback callback, + DecryptionKeyCallback.PublicKeyBasedPrivKeyRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + /** + * Template method that handles DecryptionKeyCallbacks with X509CertificateBasedRequests. + * Called from handlePrivateKeyRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handleX509CertificateBasedRequest(DecryptionKeyCallback callback, + DecryptionKeyCallback.X509CertificateBasedRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + /** + * Template method that handles DecryptionKeyCallbacks with X509IssuerSerialBasedRequests. + * Called from handlePrivateKeyRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handleX509IssuerSerialBasedRequest(DecryptionKeyCallback callback, + DecryptionKeyCallback.X509IssuerSerialBasedRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + /** + * Template method that handles DecryptionKeyCallbacks with X509SubjectKeyIdentifierBasedRequests. + * Called from handlePrivateKeyRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handleX509SubjectKeyIdentifierBasedRequest(DecryptionKeyCallback callback, + DecryptionKeyCallback.X509SubjectKeyIdentifierBasedRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + /** + * Method that handles DecryptionKeyCallbacks with SymmetricKeyRequest . Called from + * handleDecryptionKeyCallback(). Default implementation delegates to specific handling methods. + * + * @see #handleAliasSymmetricKeyRequest(com.sun.xml.wss.impl.callback.DecryptionKeyCallback, + * com.sun.xml.wss.impl.callback.DecryptionKeyCallback.AliasSymmetricKeyRequest) + */ + protected final void handleSymmetricKeyRequest(DecryptionKeyCallback callback, + DecryptionKeyCallback.SymmetricKeyRequest request) + throws IOException, UnsupportedCallbackException { + if (request instanceof DecryptionKeyCallback.AliasSymmetricKeyRequest) { + DecryptionKeyCallback.AliasSymmetricKeyRequest aliasSymmetricKeyRequest = + (DecryptionKeyCallback.AliasSymmetricKeyRequest) request; + handleAliasSymmetricKeyRequest(callback, aliasSymmetricKeyRequest); + } + else { + throw new UnsupportedCallbackException(callback); + } + } + + /** + * Template method that handles DecryptionKeyCallbacks with AliasSymmetricKeyRequests. + * Called from handleSymmetricKeyRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handleAliasSymmetricKeyRequest(DecryptionKeyCallback callback, + DecryptionKeyCallback.AliasSymmetricKeyRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + // + // Encryption + // + + /** + * Method that handles EncryptionKeyCallbacks. Called from handleInternal(). Default + * implementation delegates to specific handling methods. + * + * @see #handleSymmetricKeyRequest(com.sun.xml.wss.impl.callback.EncryptionKeyCallback, + * com.sun.xml.wss.impl.callback.EncryptionKeyCallback.SymmetricKeyRequest) + * @see #handleX509CertificateRequest(com.sun.xml.wss.impl.callback.EncryptionKeyCallback, + * com.sun.xml.wss.impl.callback.EncryptionKeyCallback.X509CertificateRequest) + */ + protected final void handleEncryptionKeyCallback(EncryptionKeyCallback callback) + throws IOException, UnsupportedCallbackException { + if (callback.getRequest() instanceof EncryptionKeyCallback.SymmetricKeyRequest) { + handleSymmetricKeyRequest(callback, (EncryptionKeyCallback.SymmetricKeyRequest) callback.getRequest()); + } + else if (callback.getRequest() instanceof EncryptionKeyCallback.X509CertificateRequest) { + handleX509CertificateRequest(callback, + (EncryptionKeyCallback.X509CertificateRequest) callback.getRequest()); + } + else { + throw new UnsupportedCallbackException(callback); + + } + } + + /** + * Method that handles EncryptionKeyCallbacks with SymmetricKeyRequest . Called from + * handleEncryptionKeyCallback(). Default implementation delegates to specific handling methods. + * + * @see #handleAliasSymmetricKeyRequest(com.sun.xml.wss.impl.callback.EncryptionKeyCallback, + * com.sun.xml.wss.impl.callback.EncryptionKeyCallback.AliasSymmetricKeyRequest) + */ + protected final void handleSymmetricKeyRequest(EncryptionKeyCallback callback, + EncryptionKeyCallback.SymmetricKeyRequest request) + throws IOException, UnsupportedCallbackException { + if (request instanceof EncryptionKeyCallback.AliasSymmetricKeyRequest) { + handleAliasSymmetricKeyRequest(callback, (EncryptionKeyCallback.AliasSymmetricKeyRequest) request); + } + } + + /** + * Template method that handles EncryptionKeyCallbacks with AliasSymmetricKeyRequests. + * Called from handleSymmetricKeyRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handleAliasSymmetricKeyRequest(EncryptionKeyCallback callback, + EncryptionKeyCallback.AliasSymmetricKeyRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + /** + * Method that handles EncryptionKeyCallbacks with X509CertificateRequest . Called from + * handleEncryptionKeyCallback(). Default implementation delegates to specific handling methods. + * + * @see #handleAliasX509CertificateRequest(com.sun.xml.wss.impl.callback.EncryptionKeyCallback, + * com.sun.xml.wss.impl.callback.EncryptionKeyCallback.AliasX509CertificateRequest) + * @see #handleDefaultX509CertificateRequest(com.sun.xml.wss.impl.callback.EncryptionKeyCallback, + * com.sun.xml.wss.impl.callback.EncryptionKeyCallback.DefaultX509CertificateRequest) + * @see #handlePublicKeyBasedRequest(com.sun.xml.wss.impl.callback.EncryptionKeyCallback, + * com.sun.xml.wss.impl.callback.EncryptionKeyCallback.PublicKeyBasedRequest) + */ + protected final void handleX509CertificateRequest(EncryptionKeyCallback callback, + EncryptionKeyCallback.X509CertificateRequest request) + throws IOException, UnsupportedCallbackException { + if (request instanceof EncryptionKeyCallback.AliasX509CertificateRequest) { + handleAliasX509CertificateRequest(callback, (EncryptionKeyCallback.AliasX509CertificateRequest) request); + } + else if (request instanceof EncryptionKeyCallback.DefaultX509CertificateRequest) { + handleDefaultX509CertificateRequest(callback, + (EncryptionKeyCallback.DefaultX509CertificateRequest) request); + } + else if (request instanceof EncryptionKeyCallback.PublicKeyBasedRequest) { + handlePublicKeyBasedRequest(callback, (EncryptionKeyCallback.PublicKeyBasedRequest) request); + } + else { + throw new UnsupportedCallbackException(callback); + } + } + + /** + * Template method that handles EncryptionKeyCallbacks with AliasX509CertificateRequests. + * Called from handleX509CertificateRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handleAliasX509CertificateRequest(EncryptionKeyCallback callback, + EncryptionKeyCallback.AliasX509CertificateRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + /** + * Template method that handles EncryptionKeyCallbacks with DefaultX509CertificateRequests. + * Called from handleX509CertificateRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handleDefaultX509CertificateRequest(EncryptionKeyCallback callback, + EncryptionKeyCallback.DefaultX509CertificateRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + /** + * Template method that handles EncryptionKeyCallbacks with PublicKeyBasedRequests. Called + * from handleX509CertificateRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handlePublicKeyBasedRequest(EncryptionKeyCallback callback, + EncryptionKeyCallback.PublicKeyBasedRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + // + // Signing + // + + /** + * Method that handles SignatureKeyCallbacks. Called from handleInternal(). Default + * implementation delegates to specific handling methods. + * + * @see #handlePrivKeyCertRequest(com.sun.xml.wss.impl.callback.SignatureKeyCallback, + * com.sun.xml.wss.impl.callback.SignatureKeyCallback.PrivKeyCertRequest) + */ + protected final void handleSignatureKeyCallback(SignatureKeyCallback callback) + throws IOException, UnsupportedCallbackException { + if (callback.getRequest() instanceof SignatureKeyCallback.PrivKeyCertRequest) { + handlePrivKeyCertRequest(callback, (SignatureKeyCallback.PrivKeyCertRequest) callback.getRequest()); + } + else { + throw new UnsupportedCallbackException(callback); + } + } + + /** + * Method that handles SignatureKeyCallbacks with PrivKeyCertRequests. Called from + * handleSignatureKeyCallback(). Default implementation delegates to specific handling methods. + * + * @see #handleDefaultPrivKeyCertRequest(com.sun.xml.wss.impl.callback.SignatureKeyCallback, + * com.sun.xml.wss.impl.callback.SignatureKeyCallback.DefaultPrivKeyCertRequest) + * @see #handleAliasPrivKeyCertRequest(com.sun.xml.wss.impl.callback.SignatureKeyCallback, + * com.sun.xml.wss.impl.callback.SignatureKeyCallback.AliasPrivKeyCertRequest) + * @see #handlePublicKeyBasedPrivKeyCertRequest(com.sun.xml.wss.impl.callback.SignatureKeyCallback, + * com.sun.xml.wss.impl.callback.SignatureKeyCallback.PublicKeyBasedPrivKeyCertRequest) + */ + protected final void handlePrivKeyCertRequest(SignatureKeyCallback cb, + SignatureKeyCallback.PrivKeyCertRequest request) + throws IOException, UnsupportedCallbackException { + if (request instanceof SignatureKeyCallback.DefaultPrivKeyCertRequest) { + handleDefaultPrivKeyCertRequest(cb, (SignatureKeyCallback.DefaultPrivKeyCertRequest) request); + } + else if (cb.getRequest() instanceof SignatureKeyCallback.AliasPrivKeyCertRequest) { + handleAliasPrivKeyCertRequest(cb, (SignatureKeyCallback.AliasPrivKeyCertRequest) request); + } + else if (cb.getRequest() instanceof SignatureKeyCallback.PublicKeyBasedPrivKeyCertRequest) { + handlePublicKeyBasedPrivKeyCertRequest(cb, (SignatureKeyCallback.PublicKeyBasedPrivKeyCertRequest) request); + } + else { + throw new UnsupportedCallbackException(cb); + } + } + + /** + * Template method that handles SignatureKeyCallbacks with DefaultPrivKeyCertRequests. + * Called from handlePrivKeyCertRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handleDefaultPrivKeyCertRequest(SignatureKeyCallback callback, + SignatureKeyCallback.DefaultPrivKeyCertRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + /** + * Template method that handles SignatureKeyCallbacks with AliasPrivKeyCertRequests. + * Called from handlePrivKeyCertRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handleAliasPrivKeyCertRequest(SignatureKeyCallback callback, + SignatureKeyCallback.AliasPrivKeyCertRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + /** + * Template method that handles SignatureKeyCallbacks with PublicKeyBasedPrivKeyCertRequests. + * Called from handlePrivKeyCertRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handlePublicKeyBasedPrivKeyCertRequest(SignatureKeyCallback callback, + SignatureKeyCallback.PublicKeyBasedPrivKeyCertRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + // + // Signature verification + // + + /** + * Method that handles SignatureVerificationKeyCallbacks. Called from handleInternal(). + * Default implementation delegates to specific handling methods. + * + * @see #handleX509CertificateRequest(com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback, + * com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback.X509CertificateRequest) + */ + protected final void handleSignatureVerificationKeyCallback(SignatureVerificationKeyCallback callback) + throws UnsupportedCallbackException, IOException { + if (callback.getRequest() instanceof SignatureVerificationKeyCallback.X509CertificateRequest) { + handleX509CertificateRequest(callback, + (SignatureVerificationKeyCallback.X509CertificateRequest) callback.getRequest()); + } + else { + throw new UnsupportedCallbackException(callback); + } + } + + /** + * Method that handles SignatureVerificationKeyCallbacks with X509CertificateRequests. + * Called from handleSignatureVerificationKeyCallback(). Default implementation delegates to specific + * handling methods. + * + * @see #handlePublicKeyBasedRequest(com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback, + * com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback.PublicKeyBasedRequest) + * @see #handleX509IssuerSerialBasedRequest(com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback, + * com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback.X509IssuerSerialBasedRequest) + * @see #handleX509SubjectKeyIdentifierBasedRequest(com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback, + * com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback.X509SubjectKeyIdentifierBasedRequest) + */ + protected final void handleX509CertificateRequest(SignatureVerificationKeyCallback callback, + SignatureVerificationKeyCallback.X509CertificateRequest request) + throws UnsupportedCallbackException, IOException { + if (request instanceof SignatureVerificationKeyCallback.PublicKeyBasedRequest) { + handlePublicKeyBasedRequest(callback, (SignatureVerificationKeyCallback.PublicKeyBasedRequest) request); + } + else if (request instanceof SignatureVerificationKeyCallback.X509IssuerSerialBasedRequest) { + handleX509IssuerSerialBasedRequest(callback, + (SignatureVerificationKeyCallback.X509IssuerSerialBasedRequest) request); + } + else if (request instanceof SignatureVerificationKeyCallback.X509SubjectKeyIdentifierBasedRequest) { + handleX509SubjectKeyIdentifierBasedRequest(callback, + (SignatureVerificationKeyCallback.X509SubjectKeyIdentifierBasedRequest) request); + } + else { + throw new UnsupportedCallbackException(callback); + } + } + + /** + * Template method that handles SignatureKeyCallbacks with PublicKeyBasedPrivKeyCertRequests. + * Called from handlePrivKeyCertRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handleX509SubjectKeyIdentifierBasedRequest(SignatureVerificationKeyCallback callback, + SignatureVerificationKeyCallback.X509SubjectKeyIdentifierBasedRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + /** + * Template method that handles SignatureKeyCallbacks with X509IssuerSerialBasedRequests. + * Called from handlePrivKeyCertRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handleX509IssuerSerialBasedRequest(SignatureVerificationKeyCallback callback, + SignatureVerificationKeyCallback.X509IssuerSerialBasedRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } + + /** + * Template method that handles SignatureKeyCallbacks with PublicKeyBasedRequests. Called + * from handlePrivKeyCertRequest(). Default implementation throws an + * UnsupportedCallbackException. + */ + protected void handlePublicKeyBasedRequest(SignatureVerificationKeyCallback callback, + SignatureVerificationKeyCallback.PublicKeyBasedRequest request) + throws IOException, UnsupportedCallbackException { + throw new UnsupportedCallbackException(callback); + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/DefaultTimestampValidator.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/DefaultTimestampValidator.java new file mode 100644 index 00000000..d1e196b6 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/DefaultTimestampValidator.java @@ -0,0 +1,131 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; + +import com.sun.xml.wss.impl.callback.TimestampValidationCallback; + +/** + * A default implementation of a TimestampValidationCallback.TimestampValidator. Based on a version found + * in the JWSDP samples. + * + * @author Arjen Poutsma + */ +public class DefaultTimestampValidator implements TimestampValidationCallback.TimestampValidator { + + public void validate(TimestampValidationCallback.Request request) + throws TimestampValidationCallback.TimestampValidationException { + if (request instanceof TimestampValidationCallback.UTCTimestampRequest) { + TimestampValidationCallback.UTCTimestampRequest utcRequest = + ((TimestampValidationCallback.UTCTimestampRequest) request); + Date created = parseDate(utcRequest.getCreated()); + Date expired = parseDate(utcRequest.getExpired()); + + validateCreationTime(created, utcRequest.getMaxClockSkew(), utcRequest.getTimestampFreshnessLimit()); + + if (expired != null) { + validateExpirationTime(expired, utcRequest.getMaxClockSkew()); + } + } + else { + throw new TimestampValidationCallback.TimestampValidationException("Unsupport request: [" + request + "]"); + } + } + + private Date getFreshnessAndSkewAdjustedDate(long maxClockSkew, long timestampFreshnessLimit) { + Calendar c = new GregorianCalendar(); + long offset = c.get(Calendar.ZONE_OFFSET); + if (c.getTimeZone().inDaylightTime(c.getTime())) { + offset += c.getTimeZone().getDSTSavings(); + } + long beforeTime = c.getTimeInMillis(); + long currentTime = beforeTime - offset; + + long adjustedTime = currentTime - maxClockSkew - timestampFreshnessLimit; + c.setTimeInMillis(adjustedTime); + + return c.getTime(); + } + + private Date getGMTDateWithSkewAdjusted(Calendar calendar, long maxClockSkew, boolean addSkew) { + long offset = calendar.get(Calendar.ZONE_OFFSET); + if (calendar.getTimeZone().inDaylightTime(calendar.getTime())) { + offset += calendar.getTimeZone().getDSTSavings(); + } + long beforeTime = calendar.getTimeInMillis(); + long currentTime = beforeTime - offset; + + if (addSkew) { + currentTime = currentTime + maxClockSkew; + } + else { + currentTime = currentTime - maxClockSkew; + } + + calendar.setTimeInMillis(currentTime); + return calendar.getTime(); + } + + private Date parseDate(String date) throws TimestampValidationCallback.TimestampValidationException { + SimpleDateFormat calendarFormatter1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); + SimpleDateFormat calendarFormatter2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.'sss'Z'"); + + try { + try { + return calendarFormatter1.parse(date); + } + catch (ParseException ignored) { + return calendarFormatter2.parse(date); + } + } + catch (ParseException ex) { + throw new TimestampValidationCallback.TimestampValidationException("Could not parse request date: " + date, + ex); + } + } + + private void validateCreationTime(Date created, long maxClockSkew, long timestampFreshnessLimit) + throws TimestampValidationCallback.TimestampValidationException { + Date current = getFreshnessAndSkewAdjustedDate(maxClockSkew, timestampFreshnessLimit); + + if (created.before(current)) { + throw new TimestampValidationCallback.TimestampValidationException( + "The creation time is older than currenttime - timestamp-freshness-limit - max-clock-skew"); + } + + Date currentTime = getGMTDateWithSkewAdjusted(new GregorianCalendar(), maxClockSkew, true); + if (currentTime.before(created)) { + throw new TimestampValidationCallback.TimestampValidationException( + "The creation time is ahead of the current time."); + } + } + + private void validateExpirationTime(Date expires, long maxClockSkew) + throws TimestampValidationCallback.TimestampValidationException { + Date currentTime = getGMTDateWithSkewAdjusted(new GregorianCalendar(), maxClockSkew, false); + if (expires.before(currentTime)) { + throw new TimestampValidationCallback.TimestampValidationException( + "The current time is ahead of the expiration time in Timestamp"); + } + } + +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/KeyStoreCallbackHandler.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/KeyStoreCallbackHandler.java new file mode 100644 index 00000000..7105382c --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/KeyStoreCallbackHandler.java @@ -0,0 +1,772 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback; + +import java.io.File; +import java.io.IOException; +import java.math.BigInteger; +import java.security.GeneralSecurityException; +import java.security.InvalidAlgorithmParameterException; +import java.security.KeyStore; +import java.security.PrivateKey; +import java.security.PublicKey; +import java.security.cert.CertPathBuilder; +import java.security.cert.CertPathBuilderException; +import java.security.cert.Certificate; +import java.security.cert.CertificateExpiredException; +import java.security.cert.CertificateNotYetValidException; +import java.security.cert.PKIXBuilderParameters; +import java.security.cert.X509CertSelector; +import java.security.cert.X509Certificate; +import java.util.Arrays; +import java.util.Enumeration; + +import javax.crypto.SecretKey; + +import com.sun.org.apache.xml.internal.security.utils.RFC2253Parser; +import com.sun.xml.wss.impl.callback.CertificateValidationCallback; +import com.sun.xml.wss.impl.callback.DecryptionKeyCallback; +import com.sun.xml.wss.impl.callback.EncryptionKeyCallback; +import com.sun.xml.wss.impl.callback.SignatureKeyCallback; +import com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.core.io.FileSystemResource; +import org.springframework.core.io.Resource; +import org.springframework.util.StringUtils; +import org.springframework.ws.soap.security.support.KeyStoreFactoryBean; + +/** + * Callback handler that uses Java Security KeyStores to handle cryptographic callbacks. Allows for + * specific key stores to be set for various cryptographic operations. + *

    + * This handler requires one or more key stores to be set. You can configure them in your application context by using a + * KeyStoreFactoryBean. The exact stores to be set depends on the cryptographic operations that are to be + * performed by this handler. The table underneath show the key store to be used for each operation: + * + * + * + * + * + *
    Cryptographic operation Key store used
    Certificate validation first keyStore, then trustStore
    Decryption based on private key keyStore
    Decryption based on symmetric + * key symmetricStore
    Encryption based on certificatetrustStore
    Encryption based on symmetric keysymmetricStore
    Signing keyStore
    Signature verification trustStore
    + *

    + *

    Default key stores

    If the symmetricStore is not set, it will default to the + * keyStore. If the key or trust store is not set, this handler will use the standard Java mechanism to + * load or create it. See {@link #loadDefaultKeyStore()} and {@link #loadDefaultTrustStore()}. + *

    + *

    Examples

    For instance, if you want to use the KeyStoreCallbackHandler to validate incoming + * certificates or signatures, you would use a trust store, like so: + *
    + * <bean id="keyStoreHandler" class="org.springframework.ws.soap.security.xwss.callback.KeyStoreCallbackHandler">
    + *     <property name="trustStore" ref="trustStore"/>
    + * </bean>
    + * 

    + * <bean id="trustStore" class="org.springframework.ws.soap.security.support.KeyStoreFactoryBean"> + * <property name="location" value="classpath:truststore.jks"/> + * <property name="password" value="changeit"/> + * </bean> + *

    + * If you want to use it to decrypt incoming certificates or sign outgoing messages, you would use a key store, like + * so: + *
    + * <bean id="keyStoreHandler" class="org.springframework.ws.soap.security.xwss.callback.KeyStoreCallbackHandler">
    + *     <property name="keyStore" ref="keyStore"/>
    + *     <property name="privateKeyPassword" value="changeit"/>
    + * </bean>
    + * 

    + * <bean id="keyStore" class="org.springframework.ws.soap.security.support.KeyStoreFactoryBean"> + * <property name="location" value="classpath:keystore.jks"/> + * <property name="password" value="changeit"/> + * </bean> + *

    + *

    + *

    Handled callbacks

    This class handles CertificateValidationCallbacks, + * DecryptionKeyCallbacks, EncryptionKeyCallbacks, SignatureKeyCallbacks, and + * SignatureVerificationKeyCallbacks. It throws an UnsupportedCallbackException for others. + * + * @author Arjen Poutsma + * @see KeyStore + * @see org.springframework.ws.soap.security.support.KeyStoreFactoryBean + * @see CertificateValidationCallback + * @see DecryptionKeyCallback + * @see EncryptionKeyCallback + * @see SignatureKeyCallback + * @see SignatureVerificationKeyCallback + * @see The + * standard Java trust store mechanism + */ +public class KeyStoreCallbackHandler extends CryptographyCallbackHandler implements InitializingBean { + + private static final String X_509_CERTIFICATE_TYPE = "X.509"; + + private static final String SUBJECT_KEY_IDENTIFIER_OID = "2.5.29.14"; + + private KeyStore keyStore; + + private KeyStore symmetricStore; + + private KeyStore trustStore; + + private String defaultAlias; + + private char[] privateKeyPassword; + + private char[] symmetricKeyPassword; + + private static X509Certificate getCertificate(String alias, KeyStore store) throws IOException { + try { + return (X509Certificate) store.getCertificate(alias); + } + catch (GeneralSecurityException e) { + throw new IOException(e.getMessage()); + } + } + + private static X509Certificate getCertificate(PublicKey pk, KeyStore store) throws IOException { + try { + Enumeration aliases = store.aliases(); + while (aliases.hasMoreElements()) { + String alias = (String) aliases.nextElement(); + Certificate cert = store.getCertificate(alias); + if (cert == null || !X_509_CERTIFICATE_TYPE.equals(cert.getType())) { + continue; + } + X509Certificate x509Cert = (X509Certificate) cert; + if (x509Cert.getPublicKey().equals(pk)) { + return x509Cert; + } + } + } + catch (GeneralSecurityException e) { + throw new IOException(e.getMessage()); + } + return null; + } + + /** + * Sets the key store alias for the default certificate and private key. + */ + public void setDefaultAlias(String defaultAlias) { + this.defaultAlias = defaultAlias; + } + + /** + * Sets the default key store. This property is required for decription based on private keys, and signing. If this + * property is not set, a default key store is loaded. + * + * @see org.springframework.ws.soap.security.support.KeyStoreFactoryBean + * @see #loadDefaultTrustStore() + */ + public void setKeyStore(KeyStore keyStore) { + this.keyStore = keyStore; + } + + /** + * Sets the password used to retrieve private keys from the keystore. This property is required for decription based + * on private keys, and signing. + */ + public void setPrivateKeyPassword(String privateKeyPassword) { + if (privateKeyPassword != null) { + this.privateKeyPassword = privateKeyPassword.toCharArray(); + } + } + + /** + * Sets the password used to retrieve keys from the symmetric keystore. If this property is not set, it default to + * the private key password. + * + * @see #setPrivateKeyPassword(String) + */ + public void setSymmetricKeyPassword(String symmetricKeyPassword) { + if (symmetricKeyPassword != null) { + this.symmetricKeyPassword = symmetricKeyPassword.toCharArray(); + } + } + + /** + * Sets the key store used for encryption and decryption using symmetric keys. If this property is not set, it + * defaults to the keyStore property. + * + * @see org.springframework.ws.soap.security.support.KeyStoreFactoryBean + * @see #setKeyStore(java.security.KeyStore) + */ + public void setSymmetricStore(KeyStore symmetricStore) { + this.symmetricStore = symmetricStore; + } + + /** + * Sets the key store used for signature verifications and encryptions. If this property is not set, a default key + * store will be loaded. + * + * @see org.springframework.ws.soap.security.support.KeyStoreFactoryBean + * @see #loadDefaultTrustStore() + */ + public void setTrustStore(KeyStore trustStore) { + this.trustStore = trustStore; + } + + public void afterPropertiesSet() throws Exception { + if (keyStore == null) { + loadDefaultKeyStore(); + } + if (trustStore == null) { + loadDefaultTrustStore(); + } + if (symmetricStore == null) { + symmetricStore = keyStore; + } + if (symmetricKeyPassword == null) { + symmetricKeyPassword = privateKeyPassword; + } + } + + protected final void handleAliasPrivKeyCertRequest(SignatureKeyCallback callback, + SignatureKeyCallback.AliasPrivKeyCertRequest request) + throws IOException { + PrivateKey privateKey = getPrivateKey(request.getAlias()); + X509Certificate certificate = getCertificate(request.getAlias()); + request.setPrivateKey(privateKey); + request.setX509Certificate(certificate); + } + + protected final void handleAliasSymmetricKeyRequest(DecryptionKeyCallback callback, + DecryptionKeyCallback.AliasSymmetricKeyRequest request) + throws IOException { + SecretKey secretKey = getSymmetricKey(request.getAlias()); + request.setSymmetricKey(secretKey); + } + + // + // Encryption + // + + protected final void handleAliasSymmetricKeyRequest(EncryptionKeyCallback callback, + EncryptionKeyCallback.AliasSymmetricKeyRequest request) + throws IOException { + SecretKey secretKey = getSymmetricKey(request.getAlias()); + request.setSymmetricKey(secretKey); + } + + protected final void handleAliasX509CertificateRequest(EncryptionKeyCallback callback, + EncryptionKeyCallback.AliasX509CertificateRequest request) + throws IOException { + X509Certificate certificate = getCertificateFromTrustStore(request.getAlias()); + request.setX509Certificate(certificate); + } + + // + // Certificate validation + // + + protected final void handleCertificateValidationCallback(CertificateValidationCallback callback) { + callback.setValidator(new KeyStoreCertificateValidator()); + } + + // + // Signing + // + + protected final void handleDefaultPrivKeyCertRequest(SignatureKeyCallback callback, + SignatureKeyCallback.DefaultPrivKeyCertRequest request) + throws IOException { + PrivateKey privateKey = getPrivateKey(defaultAlias); + X509Certificate certificate = getCertificate(defaultAlias); + request.setPrivateKey(privateKey); + request.setX509Certificate(certificate); + } + + protected final void handleDefaultX509CertificateRequest(EncryptionKeyCallback callback, + EncryptionKeyCallback.DefaultX509CertificateRequest request) + throws IOException { + X509Certificate certificate = getCertificateFromTrustStore(defaultAlias); + request.setX509Certificate(certificate); + } + + protected final void handlePublicKeyBasedPrivKeyCertRequest(SignatureKeyCallback callback, + SignatureKeyCallback.PublicKeyBasedPrivKeyCertRequest request) + throws IOException { + PrivateKey privateKey = getPrivateKey(request.getPublicKey()); + X509Certificate certificate = getCertificate(request.getPublicKey()); + request.setPrivateKey(privateKey); + request.setX509Certificate(certificate); + } + + // + // Decryption + // + protected final void handlePublicKeyBasedPrivKeyRequest(DecryptionKeyCallback callback, + DecryptionKeyCallback.PublicKeyBasedPrivKeyRequest request) + throws IOException { + PrivateKey key = getPrivateKey(request.getPublicKey()); + request.setPrivateKey(key); + } + + protected final void handlePublicKeyBasedRequest(EncryptionKeyCallback callback, + EncryptionKeyCallback.PublicKeyBasedRequest request) + throws IOException { + X509Certificate certificate = getCertificateFromTrustStore(request.getPublicKey()); + request.setX509Certificate(certificate); + } + + protected final void handlePublicKeyBasedRequest(SignatureVerificationKeyCallback callback, + SignatureVerificationKeyCallback.PublicKeyBasedRequest request) + throws IOException { + X509Certificate certificate = getCertificateFromTrustStore(request.getPublicKey()); + request.setX509Certificate(certificate); + } + + protected final void handleX509CertificateBasedRequest(DecryptionKeyCallback callback, + DecryptionKeyCallback.X509CertificateBasedRequest request) + throws IOException { + PrivateKey privKey = getPrivateKey(request.getX509Certificate()); + request.setPrivateKey(privKey); + } + + protected final void handleX509IssuerSerialBasedRequest(DecryptionKeyCallback callback, + DecryptionKeyCallback.X509IssuerSerialBasedRequest request) + throws IOException { + PrivateKey key = getPrivateKey(request.getIssuerName(), request.getSerialNumber()); + request.setPrivateKey(key); + } + + protected final void handleX509IssuerSerialBasedRequest(SignatureVerificationKeyCallback callback, + SignatureVerificationKeyCallback.X509IssuerSerialBasedRequest request) + throws IOException { + X509Certificate certificate = getCertificateFromTrustStore(request.getIssuerName(), request.getSerialNumber()); + request.setX509Certificate(certificate); + } + + protected final void handleX509SubjectKeyIdentifierBasedRequest(DecryptionKeyCallback callback, + DecryptionKeyCallback.X509SubjectKeyIdentifierBasedRequest request) + throws IOException { + PrivateKey key = getPrivateKey(request.getSubjectKeyIdentifier()); + request.setPrivateKey(key); + } + + // + // Signature verification + // + + protected final void handleX509SubjectKeyIdentifierBasedRequest(SignatureVerificationKeyCallback callback, + SignatureVerificationKeyCallback.X509SubjectKeyIdentifierBasedRequest request) + throws IOException { + X509Certificate certificate = getCertificateFromTrustStore(request.getSubjectKeyIdentifier()); + request.setX509Certificate(certificate); + } + + // Certificate methods + + protected X509Certificate getCertificate(String alias) throws IOException { + return getCertificate(alias, keyStore); + } + + protected X509Certificate getCertificate(PublicKey pk) throws IOException { + return getCertificate(pk, keyStore); + } + + protected X509Certificate getCertificateFromTrustStore(String alias) throws IOException { + return getCertificate(alias, trustStore); + } + + protected X509Certificate getCertificateFromTrustStore(byte[] subjectKeyIdentifier) throws IOException { + try { + Enumeration aliases = trustStore.aliases(); + while (aliases.hasMoreElements()) { + String alias = (String) aliases.nextElement(); + Certificate cert = trustStore.getCertificate(alias); + if (cert == null || !X_509_CERTIFICATE_TYPE.equals(cert.getType())) { + continue; + } + X509Certificate x509Cert = (X509Certificate) cert; + byte[] keyId = getSubjectKeyIdentifier(x509Cert); + if (keyId == null) { + // Cert does not contain a key identifier + continue; + } + if (Arrays.equals(subjectKeyIdentifier, keyId)) { + return x509Cert; + } + } + } + catch (GeneralSecurityException e) { + throw new IOException(e.getMessage()); + } + return null; + } + + protected X509Certificate getCertificateFromTrustStore(PublicKey pk) throws IOException { + return getCertificate(pk, trustStore); + } + + protected X509Certificate getCertificateFromTrustStore(String issuerName, BigInteger serialNumber) + throws IOException { + try { + Enumeration aliases = trustStore.aliases(); + while (aliases.hasMoreElements()) { + String alias = (String) aliases.nextElement(); + Certificate cert = trustStore.getCertificate(alias); + if (cert == null || !X_509_CERTIFICATE_TYPE.equals(cert.getType())) { + continue; + } + X509Certificate x509Cert = (X509Certificate) cert; + String thisIssuerName = RFC2253Parser.normalize(x509Cert.getIssuerDN().getName()); + BigInteger thisSerialNumber = x509Cert.getSerialNumber(); + if (thisIssuerName.equals(issuerName) && thisSerialNumber.equals(serialNumber)) { + return x509Cert; + } + } + } + catch (GeneralSecurityException e) { + throw new IOException(e.getMessage()); + } + return null; + } + + // Private Key methods + + protected PrivateKey getPrivateKey(String alias) throws IOException { + try { + return (PrivateKey) keyStore.getKey(alias, privateKeyPassword); + } + catch (GeneralSecurityException e) { + throw new IOException(e.getMessage()); + } + } + + protected PrivateKey getPrivateKey(PublicKey publicKey) throws IOException { + try { + Enumeration aliases = keyStore.aliases(); + while (aliases.hasMoreElements()) { + String alias = (String) aliases.nextElement(); + if (keyStore.isKeyEntry(alias)) { + // Just returning the first one here + return (PrivateKey) keyStore.getKey(alias, privateKeyPassword); + } + } + } + catch (GeneralSecurityException e) { + throw new IOException(e.getMessage()); + } + return null; + } + + protected PrivateKey getPrivateKey(X509Certificate certificate) throws IOException { + try { + Enumeration aliases = keyStore.aliases(); + while (aliases.hasMoreElements()) { + String alias = (String) aliases.nextElement(); + if (!keyStore.isKeyEntry(alias)) { + continue; + } + Certificate cert = keyStore.getCertificate(alias); + if (cert != null && cert.equals(certificate)) { + return (PrivateKey) keyStore.getKey(alias, privateKeyPassword); + } + } + } + catch (GeneralSecurityException e) { + throw new IOException(e.getMessage()); + } + return null; + } + + protected PrivateKey getPrivateKey(byte[] keyIdentifier) throws IOException { + try { + Enumeration aliases = keyStore.aliases(); + while (aliases.hasMoreElements()) { + String alias = (String) aliases.nextElement(); + if (!keyStore.isKeyEntry(alias)) { + continue; + } + Certificate cert = keyStore.getCertificate(alias); + if (cert == null || !"X.509".equals(cert.getType())) { + continue; + } + X509Certificate x509Cert = (X509Certificate) cert; + byte[] keyId = getSubjectKeyIdentifier(x509Cert); + if (keyId == null) { + // Cert does not contain a key identifier + continue; + } + if (Arrays.equals(keyIdentifier, keyId)) { + return (PrivateKey) keyStore.getKey(alias, privateKeyPassword); + } + } + } + catch (GeneralSecurityException e) { + throw new IOException(e.getMessage()); + } + return null; + } + + protected PrivateKey getPrivateKey(String issuerName, BigInteger serialNumber) throws IOException { + try { + Enumeration aliases = keyStore.aliases(); + while (aliases.hasMoreElements()) { + String alias = (String) aliases.nextElement(); + if (!keyStore.isKeyEntry(alias)) { + continue; + } + Certificate cert = keyStore.getCertificate(alias); + if (cert == null || !"X.509".equals(cert.getType())) { + continue; + } + X509Certificate x509Cert = (X509Certificate) cert; + String thisIssuerName = RFC2253Parser.normalize(x509Cert.getIssuerDN().getName()); + BigInteger thisSerialNumber = x509Cert.getSerialNumber(); + if (thisIssuerName.equals(issuerName) && thisSerialNumber.equals(serialNumber)) { + return (PrivateKey) keyStore.getKey(alias, privateKeyPassword); + } + } + } + catch (GeneralSecurityException e) { + throw new IOException(e.getMessage()); + } + return null; + } + + // Utility methods + + protected final byte[] getSubjectKeyIdentifier(X509Certificate cert) { + byte[] subjectKeyIdentifier = cert.getExtensionValue(SUBJECT_KEY_IDENTIFIER_OID); + if (subjectKeyIdentifier == null) { + return null; + } + byte[] dest = new byte[subjectKeyIdentifier.length - 4]; + System.arraycopy(subjectKeyIdentifier, 4, dest, 0, subjectKeyIdentifier.length - 4); + return dest; + } + + // + // Symmetric key methods + // + + protected SecretKey getSymmetricKey(String alias) throws IOException { + try { + return (SecretKey) symmetricStore.getKey(alias, symmetricKeyPassword); + } + catch (GeneralSecurityException e) { + throw new IOException(e.getMessage()); + } + } + + /** + * Loads the key store indicated by system properties. This method tries to load a key store by consulting the + * following system properties:javax.net.ssl.keyStore, javax.net.ssl.keyStorePassword, and + * javax.net.ssl.keyStoreType. + *

    + * If these properties specify a file with an appropriate password, the factory uses this file for the key store. If + * that file does not exist, then a default, empty keystore is created. + *

    + * This behavior corresponds to the standard J2SDK behavior for SSL key stores. + * + * @see The + * standard J2SDK SSL key store mechanism + */ + protected void loadDefaultKeyStore() { + Resource location = null; + String type = null; + String password = null; + String locationProperty = System.getProperty("javax.net.ssl.keyStore"); + if (StringUtils.hasLength(locationProperty)) { + File f = new File(locationProperty); + if (f.exists() && f.isFile() && f.canRead()) { + location = new FileSystemResource(f); + } + String passwordProperty = System.getProperty("javax.net.ssl.keyStorePassword"); + if (StringUtils.hasLength(passwordProperty)) { + password = passwordProperty; + } + type = System.getProperty("javax.net.ssl.trustStore"); + } + // use the factory bean here, easier to setup + KeyStoreFactoryBean factoryBean = new KeyStoreFactoryBean(); + factoryBean.setLocation(location); + factoryBean.setPassword(password); + factoryBean.setType(type); + try { + factoryBean.afterPropertiesSet(); + this.trustStore = (KeyStore) factoryBean.getObject(); + if (logger.isDebugEnabled()) { + logger.debug("Loaded default key store"); + } + } + catch (Exception ex) { + logger.warn("Could not open default key store", ex); + } + } + + /** + * Loads a default trust store. This method uses the following algorithm:

    1. If the system property + * javax.net.ssl.trustStore is defined, its value is loaded. If the + * javax.net.ssl.trustStorePassword system property is also defined, its value is used as a password. + * If the javax.net.ssl.trustStoreType system property is defined, its value is used as a key store + * type. + *

      + * If javax.net.ssl.trustStore is defined but the specified file does not exist, then a default, empty + * trust store is created.

    2. If the javax.net.ssl.trustStore system property was not + * specified, but if the file $JAVA_HOME/lib/security/jssecacerts exists, that file is used.
    3. + * Otherwise,
    4. If the file $JAVA_HOME/lib/security/cacerts exists, that file is used.
    + *

    + * This behavior corresponds to the standard J2SDK behavior for SSL trust stores. + * + * @see The + * standard J2SDK SSL trust store mechanism + */ + protected void loadDefaultTrustStore() { + Resource location = null; + String type = null; + String password = null; + String locationProperty = System.getProperty("javax.net.ssl.trustStore"); + if (StringUtils.hasLength(locationProperty)) { + File f = new File(locationProperty); + if (f.exists() && f.isFile() && f.canRead()) { + location = new FileSystemResource(f); + } + String passwordProperty = System.getProperty("javax.net.ssl.trustStorePassword"); + if (StringUtils.hasLength(passwordProperty)) { + password = passwordProperty; + } + type = System.getProperty("javax.net.ssl.trustStoreType"); + } + else { + String javaHome = System.getProperty("java.home"); + location = new FileSystemResource(javaHome + "/lib/security/jssecacerts"); + if (!location.exists()) { + location = new FileSystemResource(javaHome + "/lib/security/cacerts"); + } + } + // use the factory bean here, easier to setup + KeyStoreFactoryBean factoryBean = new KeyStoreFactoryBean(); + factoryBean.setLocation(location); + factoryBean.setPassword(password); + factoryBean.setType(type); + try { + factoryBean.afterPropertiesSet(); + this.trustStore = (KeyStore) factoryBean.getObject(); + if (logger.isDebugEnabled()) { + logger.debug("Loaded default trust store"); + } + } + catch (Exception ex) { + logger.warn("Could not open default trust store", ex); + } + } + + // + // Inner classes + // + + private class KeyStoreCertificateValidator implements CertificateValidationCallback.CertificateValidator { + + public boolean validate(X509Certificate certificate) + throws CertificateValidationCallback.CertificateValidationException { + if (isOwnedCert(certificate)) { + if (logger.isDebugEnabled()) { + logger.debug("Certificate with DN [" + certificate.getSubjectX500Principal().getName() + + "] is in private keystore"); + } + return true; + } + else if (trustStore == null) { + return false; + } + + try { + certificate.checkValidity(); + } + catch (CertificateExpiredException e) { + if (logger.isDebugEnabled()) { + logger.debug("Certificate with DN [" + certificate.getSubjectX500Principal().getName() + + "] has expired"); + } + return false; + } + catch (CertificateNotYetValidException e) { + if (logger.isDebugEnabled()) { + logger.debug("Certificate with DN [" + certificate.getSubjectX500Principal().getName() + + "] is not yet valid"); + } + return false; + } + + X509CertSelector certSelector = new X509CertSelector(); + certSelector.setCertificate(certificate); + + PKIXBuilderParameters parameters; + CertPathBuilder builder; + try { + parameters = new PKIXBuilderParameters(trustStore, certSelector); + parameters.setRevocationEnabled(false); + builder = CertPathBuilder.getInstance("PKIX"); + } + catch (GeneralSecurityException ex) { + throw new CertificateValidationCallback.CertificateValidationException( + "Could not create PKIX CertPathBuilder", ex); + } + + try { + builder.build(parameters); + } + catch (CertPathBuilderException e) { + if (logger.isDebugEnabled()) { + logger.debug("Certification path of certificate with DN [" + + certificate.getSubjectX500Principal().getName() + "] could not be validated"); + } + return false; + } + catch (InvalidAlgorithmParameterException e) { + if (logger.isDebugEnabled()) { + logger.debug("Algorithm of certificate with DN [" + + certificate.getSubjectX500Principal().getName() + "] could not be validated"); + } + return false; + } + if (logger.isDebugEnabled()) { + logger.debug("Certificate with DN [" + certificate.getSubjectX500Principal().getName() + "] validated"); + } + return true; + } + + private boolean isOwnedCert(X509Certificate cert) + throws CertificateValidationCallback.CertificateValidationException { + if (keyStore == null) { + return false; + } + try { + Enumeration aliases = keyStore.aliases(); + while (aliases.hasMoreElements()) { + String alias = (String) aliases.nextElement(); + if (keyStore.isKeyEntry(alias)) { + X509Certificate x509Cert = (X509Certificate) keyStore.getCertificate(alias); + if (x509Cert != null) { + if (x509Cert.equals(cert)) { + return true; + } + } + } + } + return false; + } + catch (GeneralSecurityException e) { + throw new CertificateValidationCallback.CertificateValidationException( + "Could not determine whether certificate is contained in main key store", e); + } + } + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/MockValidationCallbackHandler.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/MockValidationCallbackHandler.java new file mode 100644 index 00000000..b2241a03 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/MockValidationCallbackHandler.java @@ -0,0 +1,83 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback; + +import java.io.IOException; +import java.security.cert.X509Certificate; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.UnsupportedCallbackException; + +import com.sun.xml.wss.impl.callback.CertificateValidationCallback; +import com.sun.xml.wss.impl.callback.PasswordValidationCallback; + +/** + * Mock implementation of of callback handler that accepts all password and certificate validation callbacks. + *

    + * If the valid property is set to true (the default), this handler simply accepts and + * validates every password or certificate validation callback that is passed to it. + *

    + * This class handles CertificateValidationCallbacks and PasswordValidationCallbacks, and + * throws an UnsupportedCallbackException for others + * + * @author Arjen Poutsma + */ +public class MockValidationCallbackHandler extends AbstractCallbackHandler { + + private boolean isValid = true; + + public MockValidationCallbackHandler() { + } + + public MockValidationCallbackHandler(boolean valid) { + isValid = valid; + } + + protected void handleInternal(Callback callback) throws IOException, UnsupportedCallbackException { + if (callback instanceof CertificateValidationCallback) { + CertificateValidationCallback validationCallback = (CertificateValidationCallback) callback; + validationCallback.setValidator(new MockCertificateValidator()); + } + else if (callback instanceof PasswordValidationCallback) { + PasswordValidationCallback validationCallback = (PasswordValidationCallback) callback; + validationCallback.setValidator(new MockPasswordValidator()); + } + else { + throw new UnsupportedCallbackException(callback); + } + } + + public void setValid(boolean valid) { + isValid = valid; + } + + private class MockCertificateValidator implements CertificateValidationCallback.CertificateValidator { + + public boolean validate(X509Certificate certificate) + throws CertificateValidationCallback.CertificateValidationException { + return isValid; + } + } + + private class MockPasswordValidator implements PasswordValidationCallback.PasswordValidator { + + public boolean validate(PasswordValidationCallback.Request request) + throws PasswordValidationCallback.PasswordValidationException { + return isValid; + } + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/SimplePasswordValidationCallbackHandler.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/SimplePasswordValidationCallbackHandler.java new file mode 100644 index 00000000..74d9fb9c --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/SimplePasswordValidationCallbackHandler.java @@ -0,0 +1,100 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback; + +import java.io.IOException; +import java.util.Iterator; +import java.util.Map; +import java.util.Properties; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.UnsupportedCallbackException; + +import com.sun.xml.wss.impl.callback.PasswordValidationCallback; +import com.sun.xml.wss.impl.callback.TimestampValidationCallback; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.util.Assert; + +/** + * Simple callback handler that validates passwords agains a in-memory Properties object. Password + * validation is done on a case-sensitive basis. + *

    + * This class only handles PasswordValidationCallbacks, and throws an + * UnsupportedCallbackException for others + * + * @author Arjen Poutsma + * @see #setUsers(java.util.Properties) + */ +public class SimplePasswordValidationCallbackHandler extends AbstractCallbackHandler implements InitializingBean { + + private Properties users = new Properties(); + + /** + * Sets the users to validate against. Property names are usernames, property values are passwords. + */ + public void setUsers(Properties users) { + this.users = users; + } + + public void afterPropertiesSet() throws Exception { + Assert.notNull(users, "users is required"); + } + + protected void handleInternal(Callback callback) throws IOException, UnsupportedCallbackException { + if (callback instanceof PasswordValidationCallback) { + PasswordValidationCallback passwordCallback = (PasswordValidationCallback) callback; + if (passwordCallback.getRequest() instanceof PasswordValidationCallback.PlainTextPasswordRequest) { + passwordCallback.setValidator(new SimplePlainTextPasswordValidator()); + } + else if (passwordCallback.getRequest() instanceof PasswordValidationCallback.DigestPasswordRequest) { + PasswordValidationCallback.DigestPasswordRequest digestPasswordRequest = + (PasswordValidationCallback.DigestPasswordRequest) passwordCallback.getRequest(); + String password = users.getProperty(digestPasswordRequest.getUsername()); + digestPasswordRequest.setPassword(password); + passwordCallback.setValidator(new PasswordValidationCallback.DigestPasswordValidator()); + } + passwordCallback.setValidator(new SimplePlainTextPasswordValidator()); + } + else if (callback instanceof TimestampValidationCallback) { + TimestampValidationCallback timestampCallback = (TimestampValidationCallback) callback; + timestampCallback.setValidator(new DefaultTimestampValidator()); + } + else { + throw new UnsupportedCallbackException(callback); + } + } + + public void setUsersMap(Map users) { + for (Iterator iterator = users.keySet().iterator(); iterator.hasNext();) { + String username = (String) iterator.next(); + String password = (String) users.get(username); + this.users.setProperty(username, password); + } + } + + private class SimplePlainTextPasswordValidator implements PasswordValidationCallback.PasswordValidator { + + public boolean validate(PasswordValidationCallback.Request request) + throws PasswordValidationCallback.PasswordValidationException { + PasswordValidationCallback.PlainTextPasswordRequest plainTextPasswordRequest = + (PasswordValidationCallback.PlainTextPasswordRequest) request; + String password = users.getProperty(plainTextPasswordRequest.getUsername()); + return password != null && password.equals(plainTextPasswordRequest.getPassword()); + } + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/SimpleUsernamePasswordCallbackHandler.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/SimpleUsernamePasswordCallbackHandler.java new file mode 100644 index 00000000..64263a3e --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/SimpleUsernamePasswordCallbackHandler.java @@ -0,0 +1,72 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback; + +import java.io.IOException; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.UnsupportedCallbackException; + +import com.sun.xml.wss.impl.callback.PasswordCallback; +import com.sun.xml.wss.impl.callback.UsernameCallback; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.util.Assert; + +/** + * Simple callback handler that supplies a username and password to a username token at runtime. + *

    + * This class handles UsernameCallbacks and PasswordCallbacks, and throws an + * UnsupportedCallbackException for others + * + * @author Arjen Poutsma + * @see #setUsername(String) + * @see #setPassword(String) + */ +public class SimpleUsernamePasswordCallbackHandler extends AbstractCallbackHandler implements InitializingBean { + + private String username; + + private String password; + + public void setPassword(String password) { + this.password = password; + } + + public void setUsername(String username) { + this.username = username; + } + + public void afterPropertiesSet() throws Exception { + Assert.hasLength(username, "username must be set"); + Assert.hasLength(password, "password must be set"); + } + + protected void handleInternal(Callback callback) throws IOException, UnsupportedCallbackException { + if (callback instanceof UsernameCallback) { + UsernameCallback usernameCallback = (UsernameCallback) callback; + usernameCallback.setUsername(username); + } + else if (callback instanceof PasswordCallback) { + PasswordCallback passwordCallback = (PasswordCallback) callback; + passwordCallback.setPassword(password); + } + else { + throw new UnsupportedCallbackException(callback); + } + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiCertificateValidationCallbackHandler.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiCertificateValidationCallbackHandler.java new file mode 100644 index 00000000..be6ef2fa --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiCertificateValidationCallbackHandler.java @@ -0,0 +1,115 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback.acegi; + +import java.io.IOException; +import java.security.cert.X509Certificate; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.UnsupportedCallbackException; + +import com.sun.xml.wss.impl.callback.CertificateValidationCallback; +import org.acegisecurity.Authentication; +import org.acegisecurity.AuthenticationException; +import org.acegisecurity.AuthenticationManager; +import org.acegisecurity.context.SecurityContextHolder; +import org.acegisecurity.providers.x509.X509AuthenticationToken; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.security.xwss.callback.AbstractCallbackHandler; + +/** + * Callback handler that validates a certificate using an Acegi AuthenticationManager. Logic based on + * Acegi's X509ProcessingFilter. + *

    + * An Acegi X509AuthenticationToken is created with the certificate as the credentials. + *

    + * The configured authentication manager is expected to supply a provider which can handle this token (usually an + * instance of X509AuthenticationProvider).

    + *

    + * This class only handles CertificateValidationCallbacks, and throws an + * UnsupportedCallbackException for others. + * + * @author Arjen Poutsma + * @see X509AuthenticationToken + * @see org.acegisecurity.providers.x509.X509AuthenticationProvider + * @see org.acegisecurity.ui.x509.X509ProcessingFilter + * @see CertificateValidationCallback + */ +public class AcegiCertificateValidationCallbackHandler extends AbstractCallbackHandler { + + private AuthenticationManager authenticationManager; + + private boolean ignoreFailure = false; + + /** + * Sets the Acegi authentication manager. Required. + */ + public void setAuthenticationManager(AuthenticationManager authenticationManager) { + this.authenticationManager = authenticationManager; + } + + public void setIgnoreFailure(boolean ignoreFailure) { + this.ignoreFailure = ignoreFailure; + } + + public void afterPropertiesSet() throws Exception { + Assert.notNull(authenticationManager, "authenticationManager is required"); + } + + /** + * Handles CertificateValidationCallbacks, and throws an UnsupportedCallbackException for + * others + * + * @throws UnsupportedCallbackException when the callback is not supported + */ + protected void handleInternal(Callback callback) throws IOException, UnsupportedCallbackException { + if (callback instanceof CertificateValidationCallback) { + ((CertificateValidationCallback) callback).setValidator(new AcegiCertificateValidator()); + } + else { + throw new UnsupportedCallbackException(callback); + } + } + + private class AcegiCertificateValidator implements CertificateValidationCallback.CertificateValidator { + + public boolean validate(X509Certificate certificate) + throws CertificateValidationCallback.CertificateValidationException { + boolean result; + try { + Authentication authResult = + authenticationManager.authenticate(new X509AuthenticationToken(certificate)); + if (logger.isDebugEnabled()) { + logger.debug("Authentication request for certificate with DN [" + + certificate.getSubjectX500Principal().getName() + "] successful"); + } + SecurityContextHolder.getContext().setAuthentication(authResult); + return true; + } + catch (AuthenticationException failed) { + if (logger.isDebugEnabled()) { + logger.debug("Authentication request for certificate with DN [" + + certificate.getSubjectX500Principal().getName() + "] failed: " + failed.toString()); + } + SecurityContextHolder.getContext().setAuthentication(null); + result = ignoreFailure; + } + return result; + } + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiDigestPasswordValidationCallbackHandler.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiDigestPasswordValidationCallbackHandler.java new file mode 100644 index 00000000..163623ae --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiDigestPasswordValidationCallbackHandler.java @@ -0,0 +1,152 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback.acegi; + +import java.io.IOException; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.UnsupportedCallbackException; + +import com.sun.xml.wss.impl.callback.PasswordValidationCallback; +import com.sun.xml.wss.impl.callback.TimestampValidationCallback; +import org.acegisecurity.context.SecurityContextHolder; +import org.acegisecurity.providers.UsernamePasswordAuthenticationToken; +import org.acegisecurity.providers.dao.UserCache; +import org.acegisecurity.providers.dao.cache.NullUserCache; +import org.acegisecurity.userdetails.UserDetails; +import org.acegisecurity.userdetails.UserDetailsService; +import org.acegisecurity.userdetails.UsernameNotFoundException; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.security.xwss.callback.AbstractCallbackHandler; +import org.springframework.ws.soap.security.xwss.callback.DefaultTimestampValidator; + +/** + * Callback handler that validates a password digest using an Acegi UserDetailsService. Logic based on + * Acegi's DigestProcessingFilter. + *

    + * An Acegi UserDetailService is used to load UserDetails from. The digest of the password + * contained in this details object is then compared with the digest in the message. + *

    + * This class only handles PasswordValidationCallbacks that contain a DigestPasswordRequest, + * and throws an UnsupportedCallbackException for others. + * + * @author Arjen Poutsma + * @see UserDetailsService + * @see PasswordValidationCallback + * @see com.sun.xml.wss.impl.callback.PasswordValidationCallback.DigestPasswordRequest + * @see org.acegisecurity.ui.digestauth.DigestProcessingFilter + */ +public class AcegiDigestPasswordValidationCallbackHandler extends AbstractCallbackHandler { + + private UserCache userCache = new NullUserCache(); + + private UserDetailsService userDetailsService; + + /** + * Sets the users cache. Not required, but can benefit performance. + */ + public void setUserCache(UserCache userCache) { + this.userCache = userCache; + } + + /** + * Sets the Acegi user details service. Required. + */ + public void setUserDetailsService(UserDetailsService userDetailsService) { + this.userDetailsService = userDetailsService; + } + + public void afterPropertiesSet() throws Exception { + Assert.notNull(userDetailsService, "userDetailsService is required"); + } + + /** + * Handles PasswordValidationCallbacks that contain a DigestPasswordRequest, and throws an + * UnsupportedCallbackException for others + * + * @throws UnsupportedCallbackException when the callback is not supported + */ + protected void handleInternal(Callback callback) throws IOException, UnsupportedCallbackException { + if (callback instanceof PasswordValidationCallback) { + PasswordValidationCallback passwordCallback = ((PasswordValidationCallback) callback); + if (passwordCallback.getRequest() instanceof PasswordValidationCallback.DigestPasswordRequest) { + PasswordValidationCallback.DigestPasswordRequest request = + (PasswordValidationCallback.DigestPasswordRequest) passwordCallback.getRequest(); + String username = request.getUsername(); + UserDetails user = loadUserDetails(username); + if (user != null) { + request.setPassword(user.getPassword()); + } + AcegiDigestPasswordValidator validator = new AcegiDigestPasswordValidator(user); + passwordCallback.setValidator(validator); + return; + } + } + else if (callback instanceof TimestampValidationCallback) { + TimestampValidationCallback timestampCallback = (TimestampValidationCallback) callback; + timestampCallback.setValidator(new DefaultTimestampValidator()); + + } + throw new UnsupportedCallbackException(callback); + } + + private UserDetails loadUserDetails(String username) { + UserDetails user = userCache.getUserFromCache(username); + + if (user == null) { + try { + user = userDetailsService.loadUserByUsername(username); + } + catch (UsernameNotFoundException notFound) { + if (logger.isDebugEnabled()) { + logger.debug("Username '" + username + "' not found"); + } + return null; + } + userCache.putUserInCache(user); + } + return user; + } + + private class AcegiDigestPasswordValidator extends PasswordValidationCallback.DigestPasswordValidator { + + private UserDetails user; + + private AcegiDigestPasswordValidator(UserDetails user) { + this.user = user; + } + + public boolean validate(PasswordValidationCallback.Request request) + throws PasswordValidationCallback.PasswordValidationException { + if (super.validate(request)) { + UsernamePasswordAuthenticationToken authRequest = + new UsernamePasswordAuthenticationToken(user, user.getPassword()); + if (logger.isDebugEnabled()) { + logger.debug("Authentication success: " + authRequest.toString()); + } + + SecurityContextHolder.getContext().setAuthentication(authRequest); + return true; + } + else { + return false; + } + } + } + +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiPlainTextPasswordValidationCallbackHandler.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiPlainTextPasswordValidationCallbackHandler.java new file mode 100644 index 00000000..aa0d41ff --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiPlainTextPasswordValidationCallbackHandler.java @@ -0,0 +1,115 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback.acegi; + +import java.io.IOException; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.UnsupportedCallbackException; + +import com.sun.xml.wss.impl.callback.PasswordValidationCallback; +import org.acegisecurity.Authentication; +import org.acegisecurity.AuthenticationException; +import org.acegisecurity.AuthenticationManager; +import org.acegisecurity.context.SecurityContextHolder; +import org.acegisecurity.providers.UsernamePasswordAuthenticationToken; + +import org.springframework.util.Assert; +import org.springframework.ws.soap.security.xwss.callback.AbstractCallbackHandler; + +/** + * Callback handler that validates a certificate uses an Acegi AuthenticationManager. Logic based on + * Acegi's BasicProcessingFilter. + *

    + * This handler requires an Acegi AuthenticationManager to operate. It can be set using the + * authenticationManager property. An Acegi UsernamePasswordAuthenticationToken is created + * with the username as principal and password as credentials. + *

    + * This class only handles PasswordValidationCallbacks that contain a + * PlainTextPasswordRequest, and throws an UnsupportedCallbackException for others. + * + * @author Arjen Poutsma + * @see UsernamePasswordAuthenticationToken + * @see PasswordValidationCallback + * @see com.sun.xml.wss.impl.callback.PasswordValidationCallback.PlainTextPasswordRequest + * @see org.acegisecurity.ui.basicauth.BasicProcessingFilter + */ +public class AcegiPlainTextPasswordValidationCallbackHandler extends AbstractCallbackHandler { + + private AuthenticationManager authenticationManager; + + private boolean ignoreFailure = false; + + /** + * Sets the Acegi authentication manager. Required. + */ + public void setAuthenticationManager(AuthenticationManager authenticationManager) { + this.authenticationManager = authenticationManager; + } + + public void setIgnoreFailure(boolean ignoreFailure) { + this.ignoreFailure = ignoreFailure; + } + + public void afterPropertiesSet() throws Exception { + Assert.notNull(authenticationManager, "authenticationManager is required"); + } + + /** + * Handles PasswordValidationCallbacks that contain a PlainTextPasswordRequest, and throws + * an UnsupportedCallbackException for others. + * + * @throws UnsupportedCallbackException when the callback is not supported + */ + protected void handleInternal(Callback callback) throws IOException, UnsupportedCallbackException { + if (callback instanceof PasswordValidationCallback) { + PasswordValidationCallback validationCallback = (PasswordValidationCallback) callback; + if (validationCallback.getRequest() instanceof PasswordValidationCallback.PlainTextPasswordRequest) { + validationCallback.setValidator(new AcegiPlainTextPasswordValidator()); + return; + } + } + throw new UnsupportedCallbackException(callback); + } + + private class AcegiPlainTextPasswordValidator implements PasswordValidationCallback.PasswordValidator { + + public boolean validate(PasswordValidationCallback.Request request) + throws PasswordValidationCallback.PasswordValidationException { + PasswordValidationCallback.PlainTextPasswordRequest plainTextRequest = + (PasswordValidationCallback.PlainTextPasswordRequest) request; + try { + Authentication authResult = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken( + plainTextRequest.getUsername(), plainTextRequest.getPassword())); + if (logger.isDebugEnabled()) { + logger.debug("Authentication success: " + authResult.toString()); + } + SecurityContextHolder.getContext().setAuthentication(authResult); + return true; + } + catch (AuthenticationException failed) { + if (logger.isDebugEnabled()) { + logger.debug("Authentication request for user '" + plainTextRequest.getUsername() + "' failed: " + + failed.toString()); + } + SecurityContextHolder.getContext().setAuthentication(null); + return ignoreFailure; + } + } + } + +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/package.html b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/package.html new file mode 100644 index 00000000..10c499c8 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/acegi/package.html @@ -0,0 +1,6 @@ + + +Contains CallbackHandler implementations for XWSS that use the Acegi + Security System for Spring. + + \ No newline at end of file diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/AbstractJaasValidationCallbackHandler.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/AbstractJaasValidationCallbackHandler.java new file mode 100644 index 00000000..c6fa32cd --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/AbstractJaasValidationCallbackHandler.java @@ -0,0 +1,53 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback.jaas; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.util.Assert; +import org.springframework.ws.soap.security.xwss.callback.AbstractCallbackHandler; + +/** + * Abstract base class for integrating with JAAS. Provides a login context name property. + * + * @author Arjen Poutsma + */ +public abstract class AbstractJaasValidationCallbackHandler extends AbstractCallbackHandler + implements InitializingBean { + + private String loginContextName; + + protected AbstractJaasValidationCallbackHandler() { + } + + /** + * Returns the login context name. + */ + public String getLoginContextName() { + return loginContextName; + } + + /** + * Sets the login context name. + */ + public void setLoginContextName(String loginContextName) { + this.loginContextName = loginContextName; + } + + public void afterPropertiesSet() throws Exception { + Assert.notNull(loginContextName, "loginContextName is required"); + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasCertificateValidationCallbackHandler.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasCertificateValidationCallbackHandler.java new file mode 100644 index 00000000..118a200d --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasCertificateValidationCallbackHandler.java @@ -0,0 +1,101 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback.jaas; + +import java.security.cert.X509Certificate; + +import javax.security.auth.Subject; +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.UnsupportedCallbackException; +import javax.security.auth.login.LoginContext; +import javax.security.auth.login.LoginException; + +import com.sun.xml.wss.impl.callback.CertificateValidationCallback; + +/** + * Provides basic support for integrating with JAAS and certificates. Requires the loginContextName to be + * set.Requires a LoginContext which handles X500Principals. + *

    + * This class only handles CertificateValidationCallbacks, and throws an + * UnsupportedCallbackException for others. + * + * @author Arjen Poutsma + * @see javax.security.auth.x500.X500Principal + * @see #setLoginContextName(String) + */ +public class JaasCertificateValidationCallbackHandler extends AbstractJaasValidationCallbackHandler { + + /** + * Handles CertificateValidationCallbacks, and throws an UnsupportedCallbackException for + * others + * + * @throws UnsupportedCallbackException when the callback is not supported + */ + protected final void handleInternal(Callback callback) throws UnsupportedCallbackException { + if (callback instanceof CertificateValidationCallback) { + ((CertificateValidationCallback) callback).setValidator(new JaasCertificateValidator()); + } + else { + throw new UnsupportedCallbackException(callback); + } + } + + private class JaasCertificateValidator implements CertificateValidationCallback.CertificateValidator { + + public boolean validate(X509Certificate certificate) + throws CertificateValidationCallback.CertificateValidationException { + LoginContext loginContext = null; + Subject subject = new Subject(); + subject.getPrincipals().add(certificate.getSubjectX500Principal()); + try { + loginContext = new LoginContext(getLoginContextName(), subject); + } + catch (LoginException ex) { + throw new CertificateValidationCallback.CertificateValidationException(ex); + } + catch (SecurityException ex) { + throw new CertificateValidationCallback.CertificateValidationException(ex); + } + + try { + loginContext.login(); + Subject subj = loginContext.getSubject(); + if (!subj.getPrincipals().isEmpty()) { + if (logger.isDebugEnabled()) { + logger.debug("Authentication request for certificate with DN [" + + certificate.getSubjectX500Principal().getName() + "] successful"); + } + return true; + } + else { + if (logger.isDebugEnabled()) { + logger.debug("Authentication request for certificate with DN [" + + certificate.getSubjectX500Principal().getName() + "] failed"); + } + return false; + } + } + catch (LoginException ex) { + if (logger.isDebugEnabled()) { + logger.debug("Authentication request for certificate with DN [" + + certificate.getSubjectX500Principal().getName() + "] failed"); + } + return false; + } + } + } +} diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasPlainTextPasswordValidationCallbackHandler.java b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasPlainTextPasswordValidationCallbackHandler.java new file mode 100644 index 00000000..63583042 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasPlainTextPasswordValidationCallbackHandler.java @@ -0,0 +1,123 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback.jaas; + +import javax.security.auth.Subject; +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.NameCallback; +import javax.security.auth.callback.PasswordCallback; +import javax.security.auth.callback.UnsupportedCallbackException; +import javax.security.auth.login.LoginContext; +import javax.security.auth.login.LoginException; + +import com.sun.xml.wss.impl.callback.PasswordValidationCallback; + +import org.springframework.ws.soap.security.xwss.callback.AbstractCallbackHandler; + +/** + * Provides basic support for integrating with JAAS and plain text passwords. + *

    + * This class only handles PasswordValidationCallbacks that contain a + * PlainTextPasswordRequest, and throws an UnsupportedCallbackException for others. + * + * @author Arjen Poutsma + * @see #getLoginContextName() + */ +public class JaasPlainTextPasswordValidationCallbackHandler extends AbstractJaasValidationCallbackHandler { + + protected JaasPlainTextPasswordValidationCallbackHandler() { + } + + /** + * Handles PasswordValidationCallbacks that contain a PlainTextPasswordRequest, and throws + * an UnsupportedCallbackException for others. + * + * @throws UnsupportedCallbackException when the callback is not supported + */ + protected final void handleInternal(Callback callback) throws UnsupportedCallbackException { + if (callback instanceof PasswordValidationCallback) { + PasswordValidationCallback validationCallback = (PasswordValidationCallback) callback; + if (validationCallback.getRequest() instanceof PasswordValidationCallback.PlainTextPasswordRequest) { + validationCallback.setValidator(new JaasPlainTextPasswordValidator()); + return; + } + } + throw new UnsupportedCallbackException(callback); + } + + private class JaasPlainTextPasswordValidator implements PasswordValidationCallback.PasswordValidator { + + public boolean validate(PasswordValidationCallback.Request request) + throws PasswordValidationCallback.PasswordValidationException { + PasswordValidationCallback.PlainTextPasswordRequest plainTextRequest = + (PasswordValidationCallback.PlainTextPasswordRequest) request; + + final String username = plainTextRequest.getUsername(); + final String password = plainTextRequest.getPassword(); + + LoginContext loginContext = null; + try { + loginContext = new LoginContext(getLoginContextName(), new AbstractCallbackHandler() { + + protected void handleInternal(Callback callback) throws UnsupportedCallbackException { + if (callback instanceof NameCallback) { + ((NameCallback) callback).setName(username); + } + else if (callback instanceof PasswordCallback) { + ((PasswordCallback) callback).setPassword(password.toCharArray()); + } + else { + throw new UnsupportedCallbackException(callback); + } + } + }); + } + catch (LoginException ex) { + throw new PasswordValidationCallback.PasswordValidationException(ex); + } + catch (SecurityException ex) { + throw new PasswordValidationCallback.PasswordValidationException(ex); + } + + try { + loginContext.login(); + Subject subject = loginContext.getSubject(); + if (!subject.getPrincipals().isEmpty()) { + if (logger.isDebugEnabled()) { + logger.debug("Authentication request for user '" + username + "' successful"); + } + return true; + } + else { + if (logger.isDebugEnabled()) { + logger.debug("Authentication request for user '" + username + "' failed"); + } + return false; + } + } + catch (LoginException ex) { + if (logger.isDebugEnabled()) { + logger.debug("Authentication request for user '" + username + "' failed"); + } + return false; + } + } + + + } +} + diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/package.html b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/package.html new file mode 100644 index 00000000..adb5dfe6 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/jaas/package.html @@ -0,0 +1,6 @@ + + +Contains CallbackHandler implementations for XWSS that use the Java Authentication and Authorization Service (JAAS). + + \ No newline at end of file diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/package.html b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/package.html new file mode 100644 index 00000000..c0983d39 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/callback/package.html @@ -0,0 +1,5 @@ + + +Contains CallbackHandler implementations for XWSS. + + \ No newline at end of file diff --git a/security/src/main/java/org/springframework/ws/soap/security/xwss/package.html b/security/src/main/java/org/springframework/ws/soap/security/xwss/package.html new file mode 100644 index 00000000..b5b057f4 --- /dev/null +++ b/security/src/main/java/org/springframework/ws/soap/security/xwss/package.html @@ -0,0 +1,6 @@ + + +Contains classes for using the XML and WebServices Security WS-Security +implementation within Spring-WS. + + \ No newline at end of file diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/XwsSecurityInterceptorTest.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/XwsSecurityInterceptorTest.java new file mode 100644 index 00000000..40faba67 --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/XwsSecurityInterceptorTest.java @@ -0,0 +1,101 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Collections; +import java.util.Iterator; +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPMessage; + +import junit.framework.TestCase; +import org.springframework.ws.soap.saaj.SaajSoapMessageContext; +import org.springframework.ws.transport.TransportRequest; +import org.springframework.ws.transport.TransportException; + +public class XwsSecurityInterceptorTest extends TestCase { + + private MessageFactory messageFactory; + + protected void setUp() throws Exception { + messageFactory = MessageFactory.newInstance(); + } + + public void testhandleRequest() throws Exception { + final SOAPMessage request = messageFactory.createMessage(); + final SOAPMessage validatedRequest = messageFactory.createMessage(); + XwsSecurityInterceptor interceptor = new XwsSecurityInterceptor() { + protected SOAPMessage secureMessage(SOAPMessage message) throws XwsSecuritySecurementException { + fail("secure not expected"); + return null; + } + + protected SOAPMessage validateMessage(SOAPMessage message) throws XwsSecurityValidationException { + assertEquals("Invalid message", request, message); + return validatedRequest; + } + + }; + SaajSoapMessageContext context = + new SaajSoapMessageContext(request, new DummyTransportRequest(), messageFactory); + interceptor.handleRequest(context, null); + assertEquals("Invalid request", validatedRequest, context.getSaajRequest()); + } + + public void testhandleResponse() throws Exception { + final SOAPMessage response = messageFactory.createMessage(); + final SOAPMessage securedResponse = messageFactory.createMessage(); + XwsSecurityInterceptor interceptor = new XwsSecurityInterceptor() { + protected SOAPMessage secureMessage(SOAPMessage message) throws XwsSecuritySecurementException { + assertEquals("Invalid message", response, message); + return securedResponse; + } + + protected SOAPMessage validateMessage(SOAPMessage message) throws XwsSecurityValidationException { + fail("validate not expected"); + return null; + } + + }; + SOAPMessage request = messageFactory.createMessage(); + SaajSoapMessageContext context = + new SaajSoapMessageContext(request, new DummyTransportRequest(), messageFactory); + context.setSaajResponse(response); + interceptor.handleResponse(context, null); + assertEquals("Invalid response", securedResponse, context.getSaajResponse()); + } + + private static class DummyTransportRequest implements TransportRequest { + + public Iterator getHeaderNames() { + return Collections.EMPTY_LIST.iterator(); + } + + public Iterator getHeaders(String name) { + return Collections.EMPTY_LIST.iterator(); + } + + public String getUrl() throws TransportException { + return null; + } + + public InputStream getInputStream() throws IOException { + return null; + } + } +} \ No newline at end of file diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorEncryptTest.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorEncryptTest.java new file mode 100644 index 00000000..12475244 --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorEncryptTest.java @@ -0,0 +1,127 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.CallbackHandler; +import javax.xml.soap.SOAPMessage; + +import com.sun.xml.wss.impl.callback.DecryptionKeyCallback; +import com.sun.xml.wss.impl.callback.EncryptionKeyCallback; + +import org.springframework.core.io.ClassPathResource; +import org.springframework.ws.soap.security.xwss.callback.AbstractCallbackHandler; + +public class XwssMessageInterceptorEncryptTest extends XwssMessageInterceptorKeyStoreTestCase { + + public void testEncryptDefaultCertificate() throws Exception { + interceptor.setPolicyConfiguration(new ClassPathResource("encrypt-config.xml", getClass())); + CallbackHandler handler = new AbstractCallbackHandler() { + + protected void handleInternal(Callback callback) { + if (callback instanceof EncryptionKeyCallback) { + EncryptionKeyCallback keyCallback = (EncryptionKeyCallback) callback; + if (keyCallback.getRequest() instanceof EncryptionKeyCallback.AliasX509CertificateRequest) { + EncryptionKeyCallback.AliasX509CertificateRequest request = + (EncryptionKeyCallback.AliasX509CertificateRequest) keyCallback.getRequest(); + assertEquals("Invalid alias", "", request.getAlias()); + request.setX509Certificate(certificate); + } + else { + fail("Unexpected request"); + } + } + else { + fail("Unexpected callback"); + } + } + }; + interceptor.setCallbackHandler(handler); + interceptor.afterPropertiesSet(); + SOAPMessage message = loadSaajMessage("empty-soap.xml"); + SOAPMessage result = interceptor.secureMessage(message); + assertNotNull("No result returned", result); + assertXpathExists("BinarySecurityToken does not exist", + "SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security/wsse:BinarySecurityToken", result); + assertXpathExists("Signature does not exist", + "/SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security/xenc:EncryptedKey", result); + } + + public void testEncryptAlias() throws Exception { + interceptor.setPolicyConfiguration(new ClassPathResource("encrypt-alias-config.xml", getClass())); + CallbackHandler handler = new AbstractCallbackHandler() { + + protected void handleInternal(Callback callback) { + if (callback instanceof EncryptionKeyCallback) { + EncryptionKeyCallback keyCallback = (EncryptionKeyCallback) callback; + if (keyCallback.getRequest() instanceof EncryptionKeyCallback.AliasX509CertificateRequest) { + EncryptionKeyCallback.AliasX509CertificateRequest request = + (EncryptionKeyCallback.AliasX509CertificateRequest) keyCallback.getRequest(); + assertEquals("Invalid alias", "alias", request.getAlias()); + request.setX509Certificate(certificate); + } + else { + fail("Unexpected request"); + } + } + else { + fail("Unexpected callback"); + } + } + }; + interceptor.setCallbackHandler(handler); + interceptor.afterPropertiesSet(); + SOAPMessage message = loadSaajMessage("empty-soap.xml"); + SOAPMessage result = interceptor.secureMessage(message); + assertNotNull("No result returned", result); + assertXpathExists("BinarySecurityToken does not exist", + "SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security/wsse:BinarySecurityToken", result); + assertXpathExists("Signature does not exist", + "/SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security/xenc:EncryptedKey", result); + } + + public void testDecrypt() throws Exception { + interceptor.setPolicyConfiguration(new ClassPathResource("decrypt-config.xml", getClass())); + CallbackHandler handler = new AbstractCallbackHandler() { + + protected void handleInternal(Callback callback) { + if (callback instanceof DecryptionKeyCallback) { + DecryptionKeyCallback keyCallback = (DecryptionKeyCallback) callback; + if (keyCallback.getRequest() instanceof DecryptionKeyCallback.X509CertificateBasedRequest) { + DecryptionKeyCallback.X509CertificateBasedRequest request = + (DecryptionKeyCallback.X509CertificateBasedRequest) keyCallback.getRequest(); + assertEquals("Invalid certificate", certificate, request.getX509Certificate()); + request.setPrivateKey(privateKey); + } + else { + fail("Unexpected request"); + } + } + else { + fail("Unexpected callback"); + } + } + }; + interceptor.setCallbackHandler(handler); + interceptor.afterPropertiesSet(); + SOAPMessage message = loadSaajMessage("encrypted-soap.xml"); + SOAPMessage result = interceptor.validateMessage(message); + assertNotNull("No result returned", result); + assertXpathNotExists("Security Header not removed", "/SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security", result); + } + +} diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorKeyStoreTestCase.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorKeyStoreTestCase.java new file mode 100644 index 00000000..bf1660c6 --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorKeyStoreTestCase.java @@ -0,0 +1,47 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss; + +import java.io.InputStream; +import java.security.KeyStore; +import java.security.PrivateKey; +import java.security.cert.X509Certificate; + +public abstract class XwssMessageInterceptorKeyStoreTestCase extends XwssMessageInterceptorTestCase { + + protected X509Certificate certificate; + + protected PrivateKey privateKey; + + protected void onSetup() throws Exception { + KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); + InputStream is = null; + try { + is = getClass().getResourceAsStream("test-keystore.jks"); + keyStore.load(is, "password".toCharArray()); + } + finally { + if (is != null) { + is.close(); + } + } + certificate = (X509Certificate) keyStore.getCertificate("alias"); + privateKey = (PrivateKey) keyStore.getKey("alias", "password".toCharArray()); + + } + +} diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorSignTest.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorSignTest.java new file mode 100644 index 00000000..b3002a84 --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorSignTest.java @@ -0,0 +1,127 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss; + +import java.security.cert.X509Certificate; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.CallbackHandler; +import javax.xml.soap.SOAPMessage; + +import com.sun.xml.wss.impl.callback.CertificateValidationCallback; +import com.sun.xml.wss.impl.callback.SignatureKeyCallback; + +import org.springframework.core.io.ClassPathResource; +import org.springframework.ws.soap.security.xwss.callback.AbstractCallbackHandler; + +public class XwssMessageInterceptorSignTest extends XwssMessageInterceptorKeyStoreTestCase { + + public void testSignDefaultCertificate() throws Exception { + interceptor.setPolicyConfiguration(new ClassPathResource("sign-config.xml", getClass())); + CallbackHandler handler = new AbstractCallbackHandler() { + + protected void handleInternal(Callback callback) { + if (callback instanceof SignatureKeyCallback) { + SignatureKeyCallback keyCallback = (SignatureKeyCallback) callback; + if (keyCallback.getRequest() instanceof SignatureKeyCallback.DefaultPrivKeyCertRequest) { + SignatureKeyCallback.DefaultPrivKeyCertRequest request = + (SignatureKeyCallback.DefaultPrivKeyCertRequest) keyCallback.getRequest(); + request.setX509Certificate(certificate); + request.setPrivateKey(privateKey); + } + else { + fail("Unexpected request"); + } + } + else { + fail("Unexpected callback"); + } + } + }; + interceptor.setCallbackHandler(handler); + interceptor.afterPropertiesSet(); + SOAPMessage message = loadSaajMessage("empty-soap.xml"); + SOAPMessage result = interceptor.secureMessage(message); + assertNotNull("No result returned", result); + assertXpathExists("BinarySecurityToken does not exist", + "SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security/wsse:BinarySecurityToken", result); + assertXpathExists("Signature does not exist", "/SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security/ds:Signature", + result); + } + + public void testSignAlias() throws Exception { + interceptor.setPolicyConfiguration(new ClassPathResource("sign-alias-config.xml", getClass())); + CallbackHandler handler = new AbstractCallbackHandler() { + + protected void handleInternal(Callback callback) { + if (callback instanceof SignatureKeyCallback) { + SignatureKeyCallback keyCallback = (SignatureKeyCallback) callback; + if (keyCallback.getRequest() instanceof SignatureKeyCallback.AliasPrivKeyCertRequest) { + SignatureKeyCallback.AliasPrivKeyCertRequest request = + (SignatureKeyCallback.AliasPrivKeyCertRequest) keyCallback.getRequest(); + assertEquals("Invalid alias", "alias", request.getAlias()); + request.setX509Certificate(certificate); + request.setPrivateKey(privateKey); + } + else { + fail("Unexpected request"); + } + } + else { + fail("Unexpected callback"); + } + } + }; + interceptor.setCallbackHandler(handler); + interceptor.afterPropertiesSet(); + SOAPMessage message = loadSaajMessage("empty-soap.xml"); + SOAPMessage result = interceptor.secureMessage(message); + assertNotNull("No result returned", result); + assertXpathExists("BinarySecurityToken does not exist", + "SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security/wsse:BinarySecurityToken", result); + assertXpathExists("Signature does not exist", "/SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security/ds:Signature", + result); + } + + public void testValidateCertificate() throws Exception { + interceptor.setPolicyConfiguration(new ClassPathResource("requireSignature-config.xml", getClass())); + CallbackHandler handler = new AbstractCallbackHandler() { + + protected void handleInternal(Callback callback) { + if (callback instanceof CertificateValidationCallback) { + CertificateValidationCallback validationCallback = (CertificateValidationCallback) callback; + validationCallback.setValidator(new CertificateValidationCallback.CertificateValidator() { + public boolean validate(X509Certificate passedCertificate) { + assertEquals("Invalid certificate", certificate, passedCertificate); + return true; + } + }); + } + else { + fail("Unexpected callback"); + } + } + }; + interceptor.setCallbackHandler(handler); + interceptor.afterPropertiesSet(); + SOAPMessage message = loadSaajMessage("signed-soap.xml"); + SOAPMessage result = interceptor.validateMessage(message); + assertNotNull("No result returned", result); + assertXpathNotExists("Security Header not removed", "/SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security", result); + } + +} diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorTestCase.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorTestCase.java new file mode 100644 index 00000000..87199b43 --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorTestCase.java @@ -0,0 +1,97 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss; + +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; + +import javax.xml.soap.MessageFactory; +import javax.xml.soap.MimeHeaders; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPMessage; + +import junit.framework.TestCase; +import org.w3c.dom.Document; +import org.w3c.dom.Node; + +import org.springframework.xml.xpath.XPathExpression; +import org.springframework.xml.xpath.XPathExpressionFactory; + +public abstract class XwssMessageInterceptorTestCase extends TestCase { + + protected XwsSecurityInterceptor interceptor; + + private MessageFactory messageFactory; + + private Map namespaces; + + protected final void setUp() throws Exception { + interceptor = new XwsSecurityInterceptor(); + messageFactory = MessageFactory.newInstance(); + namespaces = new HashMap(); + namespaces.put("SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/"); + namespaces.put("wsse", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"); + namespaces.put("ds", "http://www.w3.org/2000/09/xmldsig#"); + namespaces.put("xenc", "http://www.w3.org/2001/04/xmlenc#"); + onSetup(); + } + + protected void assertXpathEvaluatesTo(String message, + String expectedValue, + String xpathExpression, + SOAPMessage soapMessage) { + XPathExpression expression = XPathExpressionFactory.createXPathExpression(xpathExpression, namespaces); + Document document = soapMessage.getSOAPPart(); + String actualValue = expression.evaluateAsString(document); + assertEquals(message, expectedValue, actualValue); + } + + protected void assertXpathExists(String message, String xpathExpression, SOAPMessage soapMessage) { + XPathExpression expression = XPathExpressionFactory.createXPathExpression(xpathExpression, namespaces); + Document document = soapMessage.getSOAPPart(); + Node node = expression.evaluateAsNode(document); + assertNotNull(message, node); + } + + protected void assertXpathNotExists(String message, String xpathExpression, SOAPMessage soapMessage) { + XPathExpression expression = XPathExpressionFactory.createXPathExpression(xpathExpression, namespaces); + Document document = soapMessage.getSOAPPart(); + Node node = expression.evaluateAsNode(document); + assertNull(message, node); + } + + protected SOAPMessage loadSaajMessage(String fileName) throws SOAPException, IOException { + MimeHeaders mimeHeaders = new MimeHeaders(); + mimeHeaders.addHeader("Content-Type", "text/xml"); + InputStream is = null; + try { + is = getClass().getResourceAsStream(fileName); + assertNotNull("Could not load SAAJ message with name [" + fileName + "]", is); + return messageFactory.createMessage(mimeHeaders, is); + } + finally { + if (is != null) { + is.close(); + } + } + } + + protected void onSetup() throws Exception { + } +} diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorUsernameTokenTest.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorUsernameTokenTest.java new file mode 100644 index 00000000..ac2d1ccd --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/XwssMessageInterceptorUsernameTokenTest.java @@ -0,0 +1,170 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.CallbackHandler; +import javax.xml.soap.SOAPMessage; + +import com.sun.xml.wss.impl.callback.PasswordCallback; +import com.sun.xml.wss.impl.callback.PasswordValidationCallback; +import com.sun.xml.wss.impl.callback.TimestampValidationCallback; +import com.sun.xml.wss.impl.callback.UsernameCallback; +import org.springframework.core.io.ClassPathResource; +import org.springframework.ws.soap.security.xwss.callback.AbstractCallbackHandler; + +public class XwssMessageInterceptorUsernameTokenTest extends XwssMessageInterceptorTestCase { + + public void testAddUsernameTokenDigest() throws Exception { + interceptor.setPolicyConfiguration(new ClassPathResource("usernameToken-digest-config.xml", getClass())); + CallbackHandler handler = new AbstractCallbackHandler() { + + protected void handleInternal(Callback callback) { + if (callback instanceof UsernameCallback) { + ((UsernameCallback) callback).setUsername("Bert"); + } + else if (callback instanceof PasswordCallback) { + PasswordCallback passwordCallback = (PasswordCallback) callback; + passwordCallback.setPassword("Ernie"); + } + else { + fail("Unexpected callback"); + } + } + }; + interceptor.setCallbackHandler(handler); + interceptor.afterPropertiesSet(); + SOAPMessage message = loadSaajMessage("empty-soap.xml"); + SOAPMessage result = interceptor.secureMessage(message); + assertNotNull("No result returned", result); + assertXpathEvaluatesTo("Invalid Username", + "Bert", + "/SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security/wsse:UsernameToken/wsse:Username/text()", + result); + assertXpathExists("Password does not exist", + "/SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security/wsse:UsernameToken/wsse:Password[@Type='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest']", + result); + } + + public void testAddUsernameTokenPlainText() throws Exception { + interceptor.setPolicyConfiguration(new ClassPathResource("usernameToken-plainText-config.xml", getClass())); + CallbackHandler handler = new AbstractCallbackHandler() { + + protected void handleInternal(Callback callback) { + if (callback instanceof UsernameCallback) { + ((UsernameCallback) callback).setUsername("Bert"); + } + else if (callback instanceof PasswordCallback) { + PasswordCallback passwordCallback = (PasswordCallback) callback; + passwordCallback.setPassword("Ernie"); + } + else { + fail("Unexpected callback"); + } + } + }; + interceptor.setCallbackHandler(handler); + interceptor.afterPropertiesSet(); + SOAPMessage message = loadSaajMessage("empty-soap.xml"); + SOAPMessage result = interceptor.secureMessage(message); + assertNotNull("No result returned", result); + assertXpathEvaluatesTo("Invalid Username", + "Bert", + "/SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security/wsse:UsernameToken/wsse:Username/text()", + result); + assertXpathEvaluatesTo("Invalid Password", + "Ernie", + "/SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security/wsse:UsernameToken/wsse:Password[@Type='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText']/text()", + result); + } + + public void testValidateUsernameTokenPlainText() throws Exception { + interceptor + .setPolicyConfiguration(new ClassPathResource("requireUsernameToken-plainText-config.xml", getClass())); + CallbackHandler handler = new AbstractCallbackHandler() { + + protected void handleInternal(Callback callback) { + if (callback instanceof PasswordValidationCallback) { + PasswordValidationCallback validationCallback = (PasswordValidationCallback) callback; + validationCallback.setValidator(new PasswordValidationCallback.PasswordValidator() { + public boolean validate(PasswordValidationCallback.Request request) { + if (request instanceof PasswordValidationCallback.PlainTextPasswordRequest) { + PasswordValidationCallback.PlainTextPasswordRequest passwordRequest = + (PasswordValidationCallback.PlainTextPasswordRequest) request; + assertEquals("Invalid username", "Bert", passwordRequest.getUsername()); + assertEquals("Invalid password", "Ernie", passwordRequest.getPassword()); + return true; + } + else { + fail("Unexpected request"); + return false; + } + } + }); + } + else { + fail("Unexpected callback"); + } + } + }; + interceptor.setCallbackHandler(handler); + interceptor.afterPropertiesSet(); + SOAPMessage message = loadSaajMessage("usernameTokenPlainText-soap.xml"); + SOAPMessage result = interceptor.validateMessage(message); + assertNotNull("No result returned", result); + assertXpathNotExists("Security Header not removed", "/SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security", result); + } + + public void testValidateUsernameTokenDigest() throws Exception { + interceptor.setPolicyConfiguration(new ClassPathResource("requireUsernameToken-digest-config.xml", getClass())); + CallbackHandler handler = new AbstractCallbackHandler() { + + protected void handleInternal(Callback callback) { + if (callback instanceof PasswordValidationCallback) { + PasswordValidationCallback validationCallback = (PasswordValidationCallback) callback; + if (validationCallback.getRequest() instanceof PasswordValidationCallback.DigestPasswordRequest) { + PasswordValidationCallback.DigestPasswordRequest passwordRequest = + (PasswordValidationCallback.DigestPasswordRequest) validationCallback.getRequest(); + assertEquals("Invalid username", "Bert", passwordRequest.getUsername()); + passwordRequest.setPassword("Ernie"); + validationCallback.setValidator(new PasswordValidationCallback.DigestPasswordValidator()); + } + else { + fail("Unexpected request"); + } + } + else if (callback instanceof TimestampValidationCallback) { + TimestampValidationCallback validationCallback = (TimestampValidationCallback) callback; + validationCallback.setValidator(new TimestampValidationCallback.TimestampValidator() { + public void validate(TimestampValidationCallback.Request request) { + } + }); + } + else { + fail("Unexpected callback"); + } + } + }; + interceptor.setCallbackHandler(handler); + interceptor.afterPropertiesSet(); + SOAPMessage message = loadSaajMessage("usernameTokenDigest-soap.xml"); + SOAPMessage result = interceptor.validateMessage(message); + assertNotNull("No result returned", result); + assertXpathNotExists("Security Header not removed", "/SOAP-ENV:Envelope/SOAP-ENV:Header/wsse:Security", result); + } + +} \ No newline at end of file diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/CallbackHandlerChainTest.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/CallbackHandlerChainTest.java new file mode 100644 index 00000000..13d40537 --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/CallbackHandlerChainTest.java @@ -0,0 +1,64 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.CallbackHandler; +import javax.security.auth.callback.UnsupportedCallbackException; + +import junit.framework.TestCase; + +public class CallbackHandlerChainTest extends TestCase { + + private CallbackHandler supported = new CallbackHandler() { + public void handle(Callback[] callbacks) { + } + }; + + private CallbackHandler unsupported = new CallbackHandler() { + public void handle(Callback[] callbacks) throws UnsupportedCallbackException { + throw new UnsupportedCallbackException(callbacks[0]); + } + }; + + private Callback callback = new Callback() { + }; + + protected void setUp() throws Exception { + } + + public void testSupported() throws Exception { + CallbackHandlerChain chain = new CallbackHandlerChain(new CallbackHandler[]{supported}); + chain.handle(new Callback[]{callback}); + } + + public void testUnsupportedNormal() throws Exception { + CallbackHandlerChain chain = new CallbackHandlerChain(new CallbackHandler[]{unsupported, supported}); + chain.handle(new Callback[]{callback}); + } + + public void testUnsupported() throws Exception { + CallbackHandlerChain chain = new CallbackHandlerChain(new CallbackHandler[]{unsupported}); + try { + chain.handle(new Callback[]{callback}); + fail("Expected UnsupportedCallbackException"); + } + catch (UnsupportedCallbackException ex) { + // expected behavior + } + } +} \ No newline at end of file diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/KeyStoreCallbackHandlerTest.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/KeyStoreCallbackHandlerTest.java new file mode 100644 index 00000000..baef0e78 --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/KeyStoreCallbackHandlerTest.java @@ -0,0 +1,34 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback; + +import junit.framework.TestCase; + +public class KeyStoreCallbackHandlerTest extends TestCase { + + private KeyStoreCallbackHandler handler; + + protected void setUp() throws Exception { + handler = new KeyStoreCallbackHandler(); + } + + public void testLoadDefaultTrustStore() throws Exception { + System.setProperty("javax.net.ssl.trustStore", + "/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/"); + handler.loadDefaultTrustStore(); + } +} \ No newline at end of file diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/SimplePasswordValidationCallbackHandlerTest.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/SimplePasswordValidationCallbackHandlerTest.java new file mode 100644 index 00000000..ab195eb4 --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/SimplePasswordValidationCallbackHandlerTest.java @@ -0,0 +1,89 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback; + +import java.util.Properties; + +import com.sun.xml.wss.impl.callback.PasswordValidationCallback; +import junit.framework.TestCase; + +public class SimplePasswordValidationCallbackHandlerTest extends TestCase { + + private SimplePasswordValidationCallbackHandler handler; + + protected void setUp() throws Exception { + handler = new SimplePasswordValidationCallbackHandler(); + Properties users = new Properties(); + users.setProperty("Bert", "Ernie"); + handler.setUsers(users); + } + + public void testPlainTextPasswordValid() throws Exception { + PasswordValidationCallback.PlainTextPasswordRequest request = + new PasswordValidationCallback.PlainTextPasswordRequest("Bert", "Ernie"); + PasswordValidationCallback callback = new PasswordValidationCallback(request); + handler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertTrue("Not authenticated", authenticated); + } + + public void testPlainTextPasswordInvalid() throws Exception { + PasswordValidationCallback.PlainTextPasswordRequest request = + new PasswordValidationCallback.PlainTextPasswordRequest("Bert", "Big bird"); + PasswordValidationCallback callback = new PasswordValidationCallback(request); + handler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertFalse("Authenticated", authenticated); + } + + public void testPlainTextPasswordNoSuchUser() throws Exception { + PasswordValidationCallback.PlainTextPasswordRequest request = + new PasswordValidationCallback.PlainTextPasswordRequest("Big bird", "Bert"); + PasswordValidationCallback callback = new PasswordValidationCallback(request); + handler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertFalse("Authenticated", authenticated); + } + + public void testDigestPasswordValid() throws Exception { + String username = "Bert"; + String nonce = "9mdsYDCrjjYRur0rxzYt2oD7"; + String passwordDigest = "kwNstEaiFOrI7B31j7GuETYvdgk="; + String creationTime = "2006-06-01T23:48:42Z"; + PasswordValidationCallback.DigestPasswordRequest request = + new PasswordValidationCallback.DigestPasswordRequest(username, passwordDigest, nonce, creationTime); + PasswordValidationCallback callback = new PasswordValidationCallback(request); + handler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertFalse("Authenticated", authenticated); + + } + + public void testDigestPasswordInvalid() throws Exception { + String username = "Bert"; + String nonce = "9mdsYDCrjjYRur0rxzYt2oD7"; + String passwordDigest = "kwNstEaiFOrI7B31j7GuETYvdgk"; + String creationTime = "2006-06-01T23:48:42Z"; + PasswordValidationCallback.DigestPasswordRequest request = + new PasswordValidationCallback.DigestPasswordRequest(username, passwordDigest, nonce, creationTime); + PasswordValidationCallback callback = new PasswordValidationCallback(request); + handler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertFalse("Authenticated", authenticated); + + } +} \ No newline at end of file diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/SimpleUsernamePasswordCallbackHandlerTest.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/SimpleUsernamePasswordCallbackHandlerTest.java new file mode 100644 index 00000000..0cc1041c --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/SimpleUsernamePasswordCallbackHandlerTest.java @@ -0,0 +1,44 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback; + +import com.sun.xml.wss.impl.callback.PasswordCallback; +import com.sun.xml.wss.impl.callback.UsernameCallback; +import junit.framework.TestCase; + +public class SimpleUsernamePasswordCallbackHandlerTest extends TestCase { + + private SimpleUsernamePasswordCallbackHandler handler; + + protected void setUp() throws Exception { + handler = new SimpleUsernamePasswordCallbackHandler(); + handler.setUsername("Bert"); + handler.setPassword("Ernie"); + } + + public void testUsernameCallback() throws Exception { + UsernameCallback usernameCallback = new UsernameCallback(); + handler.handleInternal(usernameCallback); + assertEquals("Invalid username", "Bert", usernameCallback.getUsername()); + } + + public void testPasswordCallback() throws Exception { + PasswordCallback passwordCallback = new PasswordCallback(); + handler.handleInternal(passwordCallback); + assertEquals("Invalid username", "Ernie", passwordCallback.getPassword()); + } +} \ No newline at end of file diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiCertificateValidationCallbackHandlerTest.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiCertificateValidationCallbackHandlerTest.java new file mode 100644 index 00000000..e8076e84 --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiCertificateValidationCallbackHandlerTest.java @@ -0,0 +1,88 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback.acegi; + +import java.io.InputStream; +import java.security.KeyStore; +import java.security.cert.X509Certificate; + +import com.sun.xml.wss.impl.callback.CertificateValidationCallback; +import junit.framework.TestCase; +import org.acegisecurity.AuthenticationManager; +import org.acegisecurity.BadCredentialsException; +import org.acegisecurity.GrantedAuthority; +import org.acegisecurity.providers.TestingAuthenticationToken; +import org.acegisecurity.providers.x509.X509AuthenticationToken; +import org.easymock.MockControl; + +import org.springframework.core.io.ClassPathResource; + +public class AcegiCertificateValidationCallbackHandlerTest extends TestCase { + + private AcegiCertificateValidationCallbackHandler callbackHandler; + + private MockControl control; + + private AuthenticationManager mock; + + private X509Certificate certificate; + + private CertificateValidationCallback callback; + + protected void setUp() throws Exception { + callbackHandler = new AcegiCertificateValidationCallbackHandler(); + control = MockControl.createControl(AuthenticationManager.class); + mock = (AuthenticationManager) control.getMock(); + callbackHandler.setAuthenticationManager(mock); + KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); + InputStream is = null; + try { + is = new ClassPathResource("/org/springframework/ws/soap/security/xwss/test-keystore.jks").getInputStream(); + keyStore.load(is, "password".toCharArray()); + } + finally { + if (is != null) { + is.close(); + } + } + certificate = (X509Certificate) keyStore.getCertificate("alias"); + callback = new CertificateValidationCallback(certificate); + } + + public void testValidateCertificateValid() throws Exception { + mock.authenticate(new X509AuthenticationToken(certificate)); + control.setMatcher(MockControl.ALWAYS_MATCHER); + control.setReturnValue(new TestingAuthenticationToken(certificate, null, new GrantedAuthority[0])); + control.replay(); + callbackHandler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertTrue("Not authenticated", authenticated); + control.verify(); + } + + public void testValidateCertificateInvalid() throws Exception { + mock.authenticate(new X509AuthenticationToken(certificate)); + control.setMatcher(MockControl.ALWAYS_MATCHER); + control.setThrowable(new BadCredentialsException("")); + control.replay(); + callbackHandler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertFalse("Authenticated", authenticated); + control.verify(); + } + +} \ No newline at end of file diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiDigestPasswordValidationCallbackHandlerTest.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiDigestPasswordValidationCallbackHandlerTest.java new file mode 100644 index 00000000..0742a944 --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiDigestPasswordValidationCallbackHandlerTest.java @@ -0,0 +1,84 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback.acegi; + +import com.sun.xml.wss.impl.callback.PasswordValidationCallback; +import junit.framework.TestCase; +import org.acegisecurity.GrantedAuthority; +import org.acegisecurity.userdetails.User; +import org.acegisecurity.userdetails.UserDetailsService; +import org.acegisecurity.userdetails.UsernameNotFoundException; +import org.easymock.MockControl; + +public class AcegiDigestPasswordValidationCallbackHandlerTest extends TestCase { + + private AcegiDigestPasswordValidationCallbackHandler callbackHandler; + + private MockControl control; + + private UserDetailsService mock; + + private String username; + + private String password; + + private PasswordValidationCallback callback; + + protected void setUp() throws Exception { + callbackHandler = new AcegiDigestPasswordValidationCallbackHandler(); + control = MockControl.createControl(UserDetailsService.class); + mock = (UserDetailsService) control.getMock(); + callbackHandler.setUserDetailsService(mock); + username = "Bert"; + password = "Ernie"; + String nonce = "9mdsYDCrjjYRur0rxzYt2oD7"; + String passwordDigest = "kwNstEaiFOrI7B31j7GuETYvdgk="; + String creationTime = "2006-06-01T23:48:42Z"; + PasswordValidationCallback.DigestPasswordRequest request = + new PasswordValidationCallback.DigestPasswordRequest(username, passwordDigest, nonce, creationTime); + callback = new PasswordValidationCallback(request); + } + + public void testAuthenticateUserDigestUserNotFound() throws Exception { + control.expectAndThrow(mock.loadUserByUsername(username), new UsernameNotFoundException(username)); + control.replay(); + callbackHandler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertFalse("Authenticated", authenticated); + control.verify(); + } + + public void testAuthenticateUserDigestValid() throws Exception { + User user = new User(username, password, true, true, true, true, new GrantedAuthority[0]); + control.expectAndReturn(mock.loadUserByUsername(username), user); + control.replay(); + callbackHandler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertTrue("Not authenticated", authenticated); + control.verify(); + } + + public void testAuthenticateUserDigestValidInvalid() throws Exception { + User user = new User(username, "Big bird", true, true, true, true, new GrantedAuthority[0]); + control.expectAndReturn(mock.loadUserByUsername(username), user); + control.replay(); + callbackHandler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertFalse("Authenticated", authenticated); + control.verify(); + } +} \ No newline at end of file diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiPlainTextPasswordValidationCallbackHandlerTest.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiPlainTextPasswordValidationCallbackHandlerTest.java new file mode 100644 index 00000000..353dcd44 --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/acegi/AcegiPlainTextPasswordValidationCallbackHandlerTest.java @@ -0,0 +1,76 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback.acegi; + +import com.sun.xml.wss.impl.callback.PasswordValidationCallback; +import junit.framework.TestCase; +import org.acegisecurity.Authentication; +import org.acegisecurity.AuthenticationManager; +import org.acegisecurity.BadCredentialsException; +import org.acegisecurity.GrantedAuthority; +import org.acegisecurity.providers.TestingAuthenticationToken; +import org.acegisecurity.providers.UsernamePasswordAuthenticationToken; +import org.easymock.MockControl; + +public class AcegiPlainTextPasswordValidationCallbackHandlerTest extends TestCase { + + private AcegiPlainTextPasswordValidationCallbackHandler callbackHandler; + + private MockControl control; + + private AuthenticationManager mock; + + private PasswordValidationCallback callback; + + private String username; + + private String password; + + protected void setUp() throws Exception { + callbackHandler = new AcegiPlainTextPasswordValidationCallbackHandler(); + control = MockControl.createControl(AuthenticationManager.class); + mock = (AuthenticationManager) control.getMock(); + callbackHandler.setAuthenticationManager(mock); + username = "Bert"; + password = "Ernie"; + PasswordValidationCallback.PlainTextPasswordRequest request = + new PasswordValidationCallback.PlainTextPasswordRequest(username, password); + callback = new PasswordValidationCallback(request); + } + + public void testAuthenticateUserPlainTextValid() throws Exception { + Authentication authResult = new TestingAuthenticationToken(username, password, new GrantedAuthority[0]); + control.expectAndReturn(mock.authenticate(new UsernamePasswordAuthenticationToken(username, password)), + authResult); + control.replay(); + callbackHandler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertTrue("Not authenticated", authenticated); + control.verify(); + } + + public void testAuthenticateUserPlainTextInvalid() throws Exception { + control.expectAndThrow(mock.authenticate(new UsernamePasswordAuthenticationToken(username, password)), + new BadCredentialsException("")); + control.replay(); + callbackHandler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertFalse("Authenticated", authenticated); + control.verify(); + } + +} \ No newline at end of file diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/CertificateLoginModule.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/CertificateLoginModule.java new file mode 100644 index 00000000..9ab46094 --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/CertificateLoginModule.java @@ -0,0 +1,80 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback.jaas; + +import java.security.Principal; +import java.util.Iterator; + +import javax.security.auth.Subject; +import javax.security.auth.callback.CallbackHandler; +import javax.security.auth.login.LoginException; +import javax.security.auth.spi.LoginModule; +import javax.security.auth.x500.X500Principal; + +public class CertificateLoginModule implements LoginModule { + + private Subject subject; + + private boolean loginSuccessful = false; + + public boolean abort() { + return true; + } + + public boolean commit() { + if (!loginSuccessful) { + subject.getPrincipals().clear(); + subject.getPrivateCredentials().clear(); + return false; + } + return true; + } + + public void initialize(Subject subject, + CallbackHandler callbackHandler, + java.util.Map sharedState, + java.util.Map options) { + this.subject = subject; + } + + public boolean login() throws LoginException { + if (subject == null) { + return false; + } + + String name = getName(subject); + + loginSuccessful = "CN=Arjen Poutsma,OU=Spring-WS,O=Interface21,L=Amsterdam,ST=Unknown,C=NL".equals(name); + return loginSuccessful; + } + + public boolean logout() { + subject.getPrincipals().clear(); + subject.getPrivateCredentials().clear(); + return true; + } + + private String getName(Subject subject) { + for (Iterator iterator = subject.getPrincipals().iterator(); iterator.hasNext();) { + Principal principal = (Principal) iterator.next(); + if (principal instanceof X500Principal) { + return ((X500Principal) principal).getName(); + } + } + return null; + } +} diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasCertificateValidationCallbackHandlerTest.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasCertificateValidationCallbackHandlerTest.java new file mode 100644 index 00000000..acc308f5 --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasCertificateValidationCallbackHandlerTest.java @@ -0,0 +1,59 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback.jaas; + +import java.io.InputStream; +import java.security.KeyStore; +import java.security.cert.X509Certificate; + +import com.sun.xml.wss.impl.callback.CertificateValidationCallback; +import junit.framework.TestCase; + +import org.springframework.core.io.ClassPathResource; + +public class JaasCertificateValidationCallbackHandlerTest extends TestCase { + + private JaasCertificateValidationCallbackHandler callbackHandler; + + private CertificateValidationCallback callback; + + protected void setUp() throws Exception { + System.setProperty("java.security.auth.login.config", getClass().getResource("jaas.config").toString()); + callbackHandler = new JaasCertificateValidationCallbackHandler(); + callbackHandler.setLoginContextName("Certificate"); + KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); + InputStream is = null; + try { + is = new ClassPathResource("/org/springframework/ws/soap/security/xwss/test-keystore.jks").getInputStream(); + keyStore.load(is, "password".toCharArray()); + } + finally { + if (is != null) { + is.close(); + } + } + X509Certificate certificate = (X509Certificate) keyStore.getCertificate("alias"); + callback = new CertificateValidationCallback(certificate); + } + + public void testValidateCertificateValid() throws Exception { + callbackHandler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertTrue("Not authenticated", authenticated); + } + +} diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasPlainTextPasswordValidationCallbackHandlerTest.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasPlainTextPasswordValidationCallbackHandlerTest.java new file mode 100644 index 00000000..c3da562f --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/JaasPlainTextPasswordValidationCallbackHandlerTest.java @@ -0,0 +1,50 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback.jaas; + +import com.sun.xml.wss.impl.callback.PasswordValidationCallback; +import junit.framework.TestCase; + +public class JaasPlainTextPasswordValidationCallbackHandlerTest extends TestCase { + + private JaasPlainTextPasswordValidationCallbackHandler callbackHandler; + + protected void setUp() throws Exception { + System.setProperty("java.security.auth.login.config", getClass().getResource("jaas.config").toString()); + callbackHandler = new JaasPlainTextPasswordValidationCallbackHandler(); + callbackHandler.setLoginContextName("PlainText"); + } + + public void testAuthenticateUserPlainTextValid() throws Exception { + PasswordValidationCallback.PlainTextPasswordRequest request = + new PasswordValidationCallback.PlainTextPasswordRequest("Bert", "Ernie"); + PasswordValidationCallback callback = new PasswordValidationCallback(request); + callbackHandler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertTrue("Not authenticated", authenticated); + } + + public void testAuthenticateUserPlainTextInvalid() throws Exception { + PasswordValidationCallback.PlainTextPasswordRequest request = + new PasswordValidationCallback.PlainTextPasswordRequest("Bert", "Big bird"); + PasswordValidationCallback callback = new PasswordValidationCallback(request); + callbackHandler.handleInternal(callback); + boolean authenticated = callback.getResult(); + assertFalse("Authenticated", authenticated); + } + +} \ No newline at end of file diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/PlainTextLoginModule.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/PlainTextLoginModule.java new file mode 100644 index 00000000..ce112bbc --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/PlainTextLoginModule.java @@ -0,0 +1,134 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback.jaas; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import javax.security.auth.Subject; +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.CallbackHandler; +import javax.security.auth.callback.NameCallback; +import javax.security.auth.callback.PasswordCallback; +import javax.security.auth.login.LoginException; +import javax.security.auth.spi.LoginModule; + +public class PlainTextLoginModule implements LoginModule { + + private Subject subject; + + private CallbackHandler callbackHandler; + + private boolean success; + + private List principals = new ArrayList(); + + public boolean abort() { + success = false; + logout(); + return true; + } + + public boolean commit() throws LoginException { + if (success) { + if (subject.isReadOnly()) { + throw new LoginException("Subject is read-only"); + } + try { + subject.getPrincipals().addAll(principals); + principals.clear(); + return true; + } + catch (Exception e) { + throw new LoginException(e.getMessage()); + } + } + else { + principals.clear(); + } + return true; + } + + public void initialize(Subject subject, + CallbackHandler callbackHandler, + java.util.Map sharedState, + java.util.Map options) { + this.subject = subject; + this.callbackHandler = callbackHandler; + } + + public boolean login() throws LoginException { + if (callbackHandler == null) { + return false; + } + try { + NameCallback nameCallback = new NameCallback("Username: "); + PasswordCallback passwordCallback = new PasswordCallback("Password: ", false); + Callback[] callbacks = new Callback[]{nameCallback, passwordCallback}; + + callbackHandler.handle(callbacks); + + String username = nameCallback.getName(); + String password = new String(passwordCallback.getPassword()); + + ((PasswordCallback) callbacks[1]).clearPassword(); + + success = validate(username, password); + + callbacks[0] = null; + callbacks[1] = null; + + if (!success) { + throw new LoginException("Authentication failed: Password does not match"); + } + + return true; + } + catch (LoginException ex) { + throw ex; + } + catch (Exception ex) { + success = false; + throw new LoginException(ex.getMessage()); + } + } + + private boolean validate(String username, String password) { + if ("Bert".equals(username) && "Ernie".equals(password)) { + this.principals.add(new SimplePrincipal(username)); + return true; + } + else { + return false; + } + } + + public boolean logout() { + principals.clear(); + + Iterator iterator = subject.getPrincipals(SimplePrincipal.class).iterator(); + while (iterator.hasNext()) { + SimplePrincipal principal = (SimplePrincipal) iterator.next(); + subject.getPrincipals().remove(principal); + } + + return true; + } + + +} diff --git a/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/SimplePrincipal.java b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/SimplePrincipal.java new file mode 100644 index 00000000..2441280f --- /dev/null +++ b/security/src/test/java/org/springframework/ws/soap/security/xwss/callback/jaas/SimplePrincipal.java @@ -0,0 +1,51 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.soap.security.xwss.callback.jaas; + +import java.security.Principal; + +public final class SimplePrincipal implements Principal { + + private String name; + + public SimplePrincipal() { + name = ""; + } + + public SimplePrincipal(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public int hashCode() { + return name.hashCode(); + } + + public boolean equals(Object o) { + if (!(o instanceof SimplePrincipal)) { + return false; + } + return name.equals(((SimplePrincipal) o).name); + } + + public String toString() { + return name; + } +} \ No newline at end of file diff --git a/xml/pom.xml b/xml/pom.xml new file mode 100644 index 00000000..6e738850 --- /dev/null +++ b/xml/pom.xml @@ -0,0 +1,36 @@ + + + + spring-ws + org.springframework.ws + 1.0-m3-SNAPSHOT + + 4.0.0 + spring-xml + jar + Spring XML + Various XML support classes for Spring Web Services + + + + stax + stax-api + true + + + xalan + xalan + true + + + jaxen + jaxen + true + + + woodstox + wstx-asl + test + + + diff --git a/xml/src/etc/test-resources/log4j.properties b/xml/src/etc/test-resources/log4j.properties new file mode 100644 index 00000000..17f4d6bf --- /dev/null +++ b/xml/src/etc/test-resources/log4j.properties @@ -0,0 +1,6 @@ +log4j.rootCategory=INFO, stdout +log4j.logger.org.springframework.xml=DEBUG + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n \ No newline at end of file diff --git a/xml/src/etc/test-resources/org/springframework/xml/validation/invalidDocument.xml b/xml/src/etc/test-resources/org/springframework/xml/validation/invalidDocument.xml new file mode 100644 index 00000000..a7551338 --- /dev/null +++ b/xml/src/etc/test-resources/org/springframework/xml/validation/invalidDocument.xml @@ -0,0 +1,4 @@ + + + 20 + \ No newline at end of file diff --git a/xml/src/etc/test-resources/org/springframework/xml/validation/schema.xsd b/xml/src/etc/test-resources/org/springframework/xml/validation/schema.xsd new file mode 100644 index 00000000..60d338c5 --- /dev/null +++ b/xml/src/etc/test-resources/org/springframework/xml/validation/schema.xsd @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/xml/src/etc/test-resources/org/springframework/xml/validation/validDocument.xml b/xml/src/etc/test-resources/org/springframework/xml/validation/validDocument.xml new file mode 100644 index 00000000..ccd9449b --- /dev/null +++ b/xml/src/etc/test-resources/org/springframework/xml/validation/validDocument.xml @@ -0,0 +1,5 @@ + + + 42 + 10 + \ No newline at end of file diff --git a/xml/src/etc/test-resources/org/springframework/xml/xpath/namespaces.xml b/xml/src/etc/test-resources/org/springframework/xml/xpath/namespaces.xml new file mode 100644 index 00000000..bf3da70a --- /dev/null +++ b/xml/src/etc/test-resources/org/springframework/xml/xpath/namespaces.xml @@ -0,0 +1,8 @@ + + + + text + 42.0 + 1 + + \ No newline at end of file diff --git a/xml/src/etc/test-resources/org/springframework/xml/xpath/nonamespaces.xml b/xml/src/etc/test-resources/org/springframework/xml/xpath/nonamespaces.xml new file mode 100644 index 00000000..5072aac3 --- /dev/null +++ b/xml/src/etc/test-resources/org/springframework/xml/xpath/nonamespaces.xml @@ -0,0 +1,8 @@ + + + + text + 42.0 + 1 + + \ No newline at end of file diff --git a/xml/src/main/java/org/springframework/xml/JaxpVersion.java b/xml/src/main/java/org/springframework/xml/JaxpVersion.java new file mode 100644 index 00000000..f59127ca --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/JaxpVersion.java @@ -0,0 +1,80 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml; + +/** + * Helper class used to find the current version of JAXP. We cannot depend on the Java version, since JAXP can be + * upgraded idenpendantly of the Java version. + *

    + * Only distinguishes between JAXP 1.0, 1.1, 1.3, and 1.4, since JAXP 1.2 was a maintenance release with no new + * classes. + * + * @author Arjen Poutsma + */ +public abstract class JaxpVersion { + + public static final int JAXP_10 = 0; + + public static final int JAXP_11 = 1; + + public static final int JAXP_13 = 3; + + public static final int JAXP_14 = 4; + + private static final String JAXP_11_CLASS_NAME = "javax.xml.transform.Transformer"; + + private static final String JAXP_13_CLASS_NAME = "javax.xml.xpath.XPath"; + + private static final String JAXP_14_CLASS_NAME = "javax.xml.transform.stax.StAXSource"; + + private static int jaxpVersion = JAXP_10; + + static { + try { + Class.forName(JAXP_14_CLASS_NAME); + jaxpVersion = JAXP_14; + } + catch (ClassNotFoundException ex1) { + try { + Class.forName(JAXP_13_CLASS_NAME); + jaxpVersion = JAXP_13; + } + catch (ClassNotFoundException ex2) { + try { + Class.forName(JAXP_11_CLASS_NAME); + jaxpVersion = JAXP_11; + } + catch (ClassNotFoundException ex3) { + // default to JAXP 1.0 + } + } + } + } + + /** + * Gets the major JAXP version. This means we can do things like if (getJaxpVersion() < JAXP_13). + * + * @return a code comparable to the JAXP_XX codes in this class + * @see #JAXP_10 + * @see #JAXP_11 + * @see #JAXP_13 + * @see #JAXP_14 + */ + public static int getJaxpVersion() { + return jaxpVersion; + } +} \ No newline at end of file diff --git a/xml/src/main/java/org/springframework/xml/XmlException.java b/xml/src/main/java/org/springframework/xml/XmlException.java new file mode 100644 index 00000000..d70fbdfd --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/XmlException.java @@ -0,0 +1,46 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml; + +import org.springframework.core.NestedRuntimeException; + +/** + * Root of the hierarchy of XML exception. + * + * @author Arjen Poutsma + */ +public abstract class XmlException extends NestedRuntimeException { + + /** + * Constructs a new instance of the XmlException with the specific detail message. + * + * @param message the detail message + */ + protected XmlException(String message) { + super(message); + } + + /** + * Constructs a new instance of the XmlException with the specific detail message and exception. + * + * @param message the detail message + * @param throwable the wrapped exception + */ + protected XmlException(String message, Throwable throwable) { + super(message, throwable); + } +} diff --git a/xml/src/main/java/org/springframework/xml/namespace/QNameEditor.java b/xml/src/main/java/org/springframework/xml/namespace/QNameEditor.java new file mode 100644 index 00000000..f6df3bde --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/namespace/QNameEditor.java @@ -0,0 +1,72 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.namespace; + +import java.beans.PropertyEditorSupport; +import javax.xml.namespace.QName; + +import org.springframework.util.StringUtils; + +/** + * PropertyEditor for javax.xml.namespace.QName, to populate a property of type QName from a String value. + *

    + * Expects the syntax + *

    + * localPart
    + * 
    + * or + *
    + * {namespace}localPart
    + * 
    + * or + *
    + * {namespace}prefix:localPart
    + * 
    + * This resembles the toString() representation of QName itself, but allows for prefixes to be + * specified as well. + * + * @author Arjen Poutsma + * @see javax.xml.namespace.QName + * @see javax.xml.namespace.QName#toString() + * @see javax.xml.namespace.QName#valueOf(String) + */ +public class QNameEditor extends PropertyEditorSupport { + + public void setAsText(String text) throws IllegalArgumentException { + setValue(QNameUtils.parseQNameString(text)); + } + + public String getAsText() { + Object value = getValue(); + if (value == null || !(value instanceof QName)) { + return ""; + } + else { + QName qName = (QName) value; + String prefix = QNameUtils.getPrefix(qName); + if (StringUtils.hasLength(qName.getNamespaceURI()) && StringUtils.hasLength(prefix)) { + return "{" + qName.getNamespaceURI() + "}" + prefix + ":" + qName.getLocalPart(); + } + else if (StringUtils.hasLength(qName.getNamespaceURI())) { + return "{" + qName.getNamespaceURI() + "}" + qName.getLocalPart(); + } + else { + return qName.getLocalPart(); + } + } + } +} diff --git a/xml/src/main/java/org/springframework/xml/namespace/QNameUtils.java b/xml/src/main/java/org/springframework/xml/namespace/QNameUtils.java new file mode 100644 index 00000000..f6b39dbc --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/namespace/QNameUtils.java @@ -0,0 +1,189 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.namespace; + +import javax.xml.namespace.QName; + +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; +import org.w3c.dom.Node; + +/** + * Helper class for using javax.xml.namespace.QName. + * + * @author Arjen Poutsma + * @see javax.xml.namespace.QName + */ +public abstract class QNameUtils { + + private static boolean qNameHasPrefix; + + static { + try { + QName.class.getDeclaredConstructor(new Class[]{String.class, String.class, String.class}); + qNameHasPrefix = true; + } + catch (NoSuchMethodException e) { + qNameHasPrefix = false; + } + } + + /** + * Creates a new QName with the given parameters. Sets the prefix if possible, i.e. if the + * QName(String, String, String) constructor can be found. If this constructor is not available (as is + * the case on older implementations of JAX-RPC), the prefix is ignored. + * + * @param namespaceUri namespace URI of the QName + * @param localPart local part of the QName + * @param prefix prefix of the QName. May be ignored. + * @return the created QName + * @see QName#QName(String, String, String) + */ + public static QName createQName(String namespaceUri, String localPart, String prefix) { + if (qNameHasPrefix) { + return new QName(namespaceUri, localPart, prefix); + } + else { + return new QName(namespaceUri, localPart); + } + } + + /** + * Returns the prefix of the given QName. Returns the prefix if available, i.e. if the + * QName.getPrefix() method can be found. If this method is not available (as is the case on older + * implementations of JAX-RPC), an empty string is returned. + * + * @param qName the QName to return the prefix from + * @return the prefix, if available, or an empty string + * @see javax.xml.namespace.QName#getPrefix() + */ + public static String getPrefix(QName qName) { + return qNameHasPrefix ? qName.getPrefix() : ""; + } + + /** + * Validates the given String as a QName + * + * @param text the qualified name + * @return true if valid, false otherwise + */ + public static boolean validateQName(String text) { + if (!StringUtils.hasLength(text)) { + return false; + } + if (text.charAt(0) == '{') { + int i = text.indexOf('}'); + + if (i == -1 || i == text.length() - 1) { + return false; + } + } + return true; + } + + /** + * Returns the qualified name of the given DOM Node. + * + * @param node the node + * @return the qualified name of the node + */ + public static QName getQNameForNode(Node node) { + if (node.getNamespaceURI() != null && node.getPrefix() != null && node.getLocalName() != null) { + return createQName(node.getNamespaceURI(), node.getLocalName(), node.getPrefix()); + } + else if (node.getNamespaceURI() != null && node.getLocalName() != null) { + return new QName(node.getNamespaceURI(), node.getLocalName()); + } + else if (node.getLocalName() != null) { + return new QName(node.getLocalName()); + } + else { + // as a last resort, use the node name + return new QName(node.getNodeName()); + } + } + + /** + * Convert a QName to a qualified name, as used by DOM and SAX. The returned string has a format of + * prefix:localName if the prefix is set, or just localName if not. + * + * @param qName the QName + * @return the qualified name + */ + public static String toQualifiedName(QName qName) { + String prefix = getPrefix(qName); + if (!StringUtils.hasLength(prefix)) { + return qName.getLocalPart(); + } + else { + return prefix + ":" + qName.getLocalPart(); + } + } + + /** + * Convert a namespace URI and DOM or SAX qualified name to a QName. The qualified name can have the + * form prefix:localname or localName. + * + * @param namespaceUri the namespace URI + * @param qualifiedName the qualified name + * @return a QName + */ + public static QName toQName(String namespaceUri, String qualifiedName) { + int idx = qualifiedName.indexOf(':'); + if (idx == -1) { + return new QName(namespaceUri, qualifiedName); + } + else { + return createQName(namespaceUri, qualifiedName.substring(idx + 1), qualifiedName.substring(0, idx)); + } + } + + /** + * Parse the given qualified name string into a QName. Expects the syntax localPart, + * {namespace}localPart, or {namespace}prefix:localPart. This format resembles the + * toString() representation of QName itself, but allows for prefixes to be specified as + * well. + * + * @return a corresponding QName instance + * @throws IllegalArgumentException when the given string is null or empty. + */ + public static QName parseQNameString(String qNameString) { + Assert.hasLength(qNameString, "QName text may not be null or empty"); + if (qNameString.charAt(0) != '{') { + return new QName(qNameString); + } + else { + int endOfNamespaceURI = qNameString.indexOf('}'); + if (endOfNamespaceURI == -1) { + throw new IllegalArgumentException( + "Cannot create QName from \"" + qNameString + "\", missing closing \"}\""); + } + int prefixSeperator = qNameString.indexOf(':', endOfNamespaceURI + 1); + String namespaceURI = qNameString.substring(1, endOfNamespaceURI); + if (prefixSeperator == -1) { + return new QName(namespaceURI, qNameString.substring(endOfNamespaceURI + 1)); + } + else { + return createQName(namespaceURI, qNameString.substring(prefixSeperator + 1), + qNameString.substring(endOfNamespaceURI + 1, prefixSeperator)); + } + } + + } + + +} diff --git a/xml/src/main/java/org/springframework/xml/namespace/SimpleNamespaceContext.java b/xml/src/main/java/org/springframework/xml/namespace/SimpleNamespaceContext.java new file mode 100644 index 00000000..65bc9dc8 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/namespace/SimpleNamespaceContext.java @@ -0,0 +1,165 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.namespace; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.xml.XMLConstants; +import javax.xml.namespace.NamespaceContext; + +import org.springframework.util.Assert; + +/** + * Simple javax.xml.namespace.NamespaceContext implementation. Follows the standard + * NamespaceContext contract, and is loadable via a java.util.Map or + * java.util.Properties object + * + * @author Arjen Poutsma + */ +public class SimpleNamespaceContext implements NamespaceContext { + + private Map prefixToNamespaceUri = new HashMap(); + + /** + * Maps a String namespaceUri to a List of prefixes + */ + private Map namespaceUriToPrefixes = new HashMap(); + + private String defaultNamespaceUri = ""; + + public String getNamespaceURI(String prefix) { + Assert.notNull(prefix, "prefix is null"); + if (XMLConstants.XML_NS_PREFIX.equals(prefix)) { + return XMLConstants.XML_NS_URI; + } + else if (XMLConstants.XMLNS_ATTRIBUTE.equals(prefix)) { + return XMLConstants.XMLNS_ATTRIBUTE_NS_URI; + } + else if (XMLConstants.DEFAULT_NS_PREFIX.equals(prefix)) { + return defaultNamespaceUri; + } + else if (prefixToNamespaceUri.containsKey(prefix)) { + return (String) prefixToNamespaceUri.get(prefix); + } + return ""; + } + + public String getPrefix(String namespaceUri) { + List prefixes = getPrefixesInternal(namespaceUri); + return prefixes.isEmpty() ? null : (String) prefixes.get(0); + } + + public Iterator getPrefixes(String namespaceUri) { + return getPrefixesInternal(namespaceUri).iterator(); + } + + /** + * Sets the bindings for this namespace context. The supplied map must consist of string key value pairs. + * + * @param bindings the bindings + */ + public void setBindings(Map bindings) { + for (Iterator iterator = bindings.keySet().iterator(); iterator.hasNext();) { + String prefix = (String) iterator.next(); + bindNamespaceUri(prefix, (String) bindings.get(prefix)); + } + } + + /** + * Binds the given namespace as default namespace. + * + * @param namespaceUri the namespace uri + */ + public void bindDefaultNamespaceUri(String namespaceUri) { + bindNamespaceUri(XMLConstants.DEFAULT_NS_PREFIX, namespaceUri); + } + + /** + * Binds the given prefix to the given namespace. + * + * @param prefix the namespace prefix + * @param namespaceUri the namespace uri + */ + public void bindNamespaceUri(String prefix, String namespaceUri) { + Assert.notNull(prefix, "No prefix given"); + Assert.notNull(namespaceUri, "No namespaceUri given"); + if (XMLConstants.DEFAULT_NS_PREFIX.equals(prefix)) { + defaultNamespaceUri = namespaceUri; + } + else { + prefixToNamespaceUri.put(prefix, namespaceUri); + getPrefixesInternal(namespaceUri).add(prefix); + } + } + + /** + * Removes all declared prefixes. + */ + public void clear() { + prefixToNamespaceUri.clear(); + } + + /** + * Returns all declared prefixes. + * + * @return the declared prefixes + */ + public Iterator getBoundPrefixes() { + return prefixToNamespaceUri.keySet().iterator(); + } + + private List getPrefixesInternal(String namespaceUri) { + if (defaultNamespaceUri.equals(namespaceUri)) { + return Collections.singletonList(XMLConstants.DEFAULT_NS_PREFIX); + } + else if (XMLConstants.XML_NS_URI.equals(namespaceUri)) { + return Collections.singletonList(XMLConstants.XML_NS_PREFIX); + } + else if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceUri)) { + return Collections.singletonList(XMLConstants.XMLNS_ATTRIBUTE); + } + else { + List list = (List) namespaceUriToPrefixes.get(namespaceUri); + if (list == null) { + list = new ArrayList(); + namespaceUriToPrefixes.put(namespaceUri, list); + } + return list; + } + } + + /** + * Removes the given prefix from this context. + * + * @param prefix the prefix to be removed + */ + public void removeBinding(String prefix) { + if (XMLConstants.DEFAULT_NS_PREFIX.equals(prefix)) { + defaultNamespaceUri = ""; + } + else { + String namespaceUri = (String) namespaceUriToPrefixes.get(prefix); + List prefixes = getPrefixesInternal(namespaceUri); + prefixes.remove(prefix); + namespaceUriToPrefixes.remove(prefixes); + } + } +} diff --git a/xml/src/main/java/org/springframework/xml/namespace/package.html b/xml/src/main/java/org/springframework/xml/namespace/package.html new file mode 100644 index 00000000..5f82c9f2 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/namespace/package.html @@ -0,0 +1,5 @@ + + +Provides classes that help with XML Namespace processing. Mostly for internal use by the framework. + + diff --git a/xml/src/main/java/org/springframework/xml/package.html b/xml/src/main/java/org/springframework/xml/package.html new file mode 100644 index 00000000..3f016dd9 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/package.html @@ -0,0 +1,6 @@ + + +Provides classes for XML handling: version detection and a base XML exception class. Mostly for internal use by the +framework. + + diff --git a/xml/src/main/java/org/springframework/xml/sax/SaxUtils.java b/xml/src/main/java/org/springframework/xml/sax/SaxUtils.java new file mode 100644 index 00000000..8b6c03cd --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/sax/SaxUtils.java @@ -0,0 +1,57 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.sax; + +import java.io.IOException; + +import org.springframework.core.io.Resource; +import org.xml.sax.InputSource; + +/** + * @author Arjen Poutsma + */ +public abstract class SaxUtils { + + /** + * Creates a SAX InputSource from the given resource. Sets the system identifier to the resource's + * URL, if available. + * + * @param resource the resource + * @return the input source created from the resource + * @throws IOException if an I/O exception occurs + * @see InputSource#setSystemId(String) + * @see #getSystemId(org.springframework.core.io.Resource) + */ + public static InputSource createInputSource(Resource resource) throws IOException { + InputSource inputSource = new InputSource(resource.getInputStream()); + inputSource.setSystemId(getSystemId(resource)); + return inputSource; + } + + /** + * Retrieves the URL from the given resource as System ID. Returns null if it cannot be openened. + */ + public static String getSystemId(Resource resource) { + try { + return resource.getURL().toString(); + } + catch (IOException e) { + return null; + } + } + +} diff --git a/xml/src/main/java/org/springframework/xml/sax/package.html b/xml/src/main/java/org/springframework/xml/sax/package.html new file mode 100644 index 00000000..eb99a697 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/sax/package.html @@ -0,0 +1,5 @@ + + +Provides classes that help with SAX: the Simple API for XML. Mostly for internal use by the framework. + + diff --git a/xml/src/main/java/org/springframework/xml/stream/AbstractXmlStreamReader.java b/xml/src/main/java/org/springframework/xml/stream/AbstractXmlStreamReader.java new file mode 100644 index 00000000..b244f627 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/stream/AbstractXmlStreamReader.java @@ -0,0 +1,181 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; + +import org.springframework.util.Assert; + +/** + * Abstract base class for XMLStreamReaders. + * + * @author Arjen Poutsma + */ +public abstract class AbstractXmlStreamReader implements XMLStreamReader { + + public String getElementText() throws XMLStreamException { + if (getEventType() != XMLStreamConstants.START_ELEMENT) { + throw new XMLStreamException("parser must be on START_ELEMENT to read next text", getLocation()); + } + int eventType = next(); + StringBuffer buffer = new StringBuffer(); + while (eventType != XMLStreamConstants.END_ELEMENT) { + if (eventType == XMLStreamConstants.CHARACTERS || eventType == XMLStreamConstants.CDATA || + eventType == XMLStreamConstants.SPACE || eventType == XMLStreamConstants.ENTITY_REFERENCE) { + buffer.append(getText()); + } + else + if (eventType == XMLStreamConstants.PROCESSING_INSTRUCTION || eventType == XMLStreamConstants.COMMENT) { + // skipping + } + else if (eventType == XMLStreamConstants.END_DOCUMENT) { + throw new XMLStreamException("unexpected end of document when reading element text content", + getLocation()); + } + else if (eventType == XMLStreamConstants.START_ELEMENT) { + throw new XMLStreamException("element text content may not contain START_ELEMENT", getLocation()); + } + else { + throw new XMLStreamException("Unexpected event type " + eventType, getLocation()); + } + eventType = next(); + } + return buffer.toString(); + } + + public String getAttributeLocalName(int index) { + return getAttributeName(index).getLocalPart(); + } + + public String getAttributeNamespace(int index) { + return getAttributeName(index).getNamespaceURI(); + } + + public String getAttributePrefix(int index) { + return getAttributeName(index).getPrefix(); + } + + public String getNamespaceURI() { + int eventType = getEventType(); + if (eventType == XMLStreamConstants.START_ELEMENT || eventType == XMLStreamConstants.END_ELEMENT) { + return getName().getNamespaceURI(); + } + else { + throw new IllegalStateException("parser must be on START_ELEMENT or END_ELEMENT state"); + } + } + + public String getNamespaceURI(String prefix) { + Assert.notNull(prefix, "No prefix given"); + return getNamespaceContext().getNamespaceURI(prefix); + } + + public boolean hasText() { + int eventType = getEventType(); + return eventType == XMLStreamConstants.SPACE || eventType == XMLStreamConstants.CHARACTERS || + eventType == XMLStreamConstants.COMMENT || eventType == XMLStreamConstants.CDATA || + eventType == XMLStreamConstants.ENTITY_REFERENCE; + } + + public String getPrefix() { + int eventType = getEventType(); + if (eventType == XMLStreamConstants.START_ELEMENT || eventType == XMLStreamConstants.END_ELEMENT) { + return getName().getPrefix(); + } + else { + throw new IllegalStateException("parser must be on START_ELEMENT or END_ELEMENT state"); + } + } + + public boolean hasName() { + int eventType = getEventType(); + return eventType == XMLStreamConstants.START_ELEMENT || eventType == XMLStreamConstants.END_ELEMENT; + } + + public boolean isWhiteSpace() { + return getEventType() == XMLStreamConstants.SPACE; + } + + public boolean isStartElement() { + return getEventType() == XMLStreamConstants.START_ELEMENT; + } + + public boolean isEndElement() { + return getEventType() == XMLStreamConstants.END_ELEMENT; + } + + public boolean isCharacters() { + return getEventType() == XMLStreamConstants.CHARACTERS; + } + + public int nextTag() throws XMLStreamException { + int eventType = next(); + while (eventType == XMLStreamConstants.CHARACTERS && isWhiteSpace() || + eventType == XMLStreamConstants.CDATA && isWhiteSpace() || eventType == XMLStreamConstants.SPACE || + eventType == XMLStreamConstants.PROCESSING_INSTRUCTION || eventType == XMLStreamConstants.COMMENT) { + eventType = next(); + } + if (eventType != XMLStreamConstants.START_ELEMENT && eventType != XMLStreamConstants.END_ELEMENT) { + throw new XMLStreamException("expected start or end tag", getLocation()); + } + return eventType; + } + + public void require(int expectedType, String namespaceURI, String localName) throws XMLStreamException { + int eventType = getEventType(); + if (eventType != expectedType) { + throw new XMLStreamException("Expected [" + expectedType + "] but read [" + eventType + "]"); + } + } + + public String getAttributeValue(String namespaceURI, String localName) { + for (int i = 0; i < getAttributeCount(); i++) { + QName name = getAttributeName(i); + if (name.getNamespaceURI().equals(namespaceURI) && name.getLocalPart().equals(localName)) { + return getAttributeValue(i); + } + } + return null; + } + + public boolean hasNext() throws XMLStreamException { + return getEventType() != END_DOCUMENT; + } + + public String getLocalName() { + return getName().getLocalPart(); + } + + public char[] getTextCharacters() { + return getText().toCharArray(); + } + + public int getTextCharacters(int sourceStart, char[] target, int targetStart, int length) + throws XMLStreamException { + char[] source = getTextCharacters(); + length = Math.min(length, source.length); + System.arraycopy(source, sourceStart, target, targetStart, length); + return length; + } + + public int getTextLength() { + return getText().length(); + } +} diff --git a/xml/src/main/java/org/springframework/xml/stream/StaxContentHandler.java b/xml/src/main/java/org/springframework/xml/stream/StaxContentHandler.java new file mode 100644 index 00000000..e1bd73d1 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/stream/StaxContentHandler.java @@ -0,0 +1,152 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamException; + +import org.xml.sax.Attributes; +import org.xml.sax.ContentHandler; +import org.xml.sax.SAXException; + +import org.springframework.xml.namespace.QNameUtils; +import org.springframework.xml.namespace.SimpleNamespaceContext; + +/** + * Abstract base class for SAX ContentHandler implementations that use StAX as a basis. All methods + * delegate to internal template methods, capable of throwing a XMLStreamException. Additionally, an + * namespace context is used to keep track of declared namespaces. + * + * @author Arjen Poutsma + */ +public abstract class StaxContentHandler implements ContentHandler { + + private SimpleNamespaceContext namespaceContext = new SimpleNamespaceContext(); + + /** + * @throws SAXException + */ + public final void startDocument() throws SAXException { + namespaceContext.clear(); + try { + startDocumentInternal(); + } + catch (XMLStreamException ex) { + throw new SAXException("Could not handle startDocument: " + ex.getMessage(), ex); + } + } + + protected abstract void startDocumentInternal() throws XMLStreamException; + + public final void endDocument() throws SAXException { + namespaceContext.clear(); + try { + endDocumentInternal(); + } + catch (XMLStreamException ex) { + throw new SAXException("Could not handle startDocument: " + ex.getMessage(), ex); + } + } + + protected abstract void endDocumentInternal() throws XMLStreamException; + + /** + * Binds the given prefix to the given namespaces. + * + * @see SimpleNamespaceContext#bindNamespaceUri(String, String) + */ + public final void startPrefixMapping(String prefix, String uri) { + namespaceContext.bindNamespaceUri(prefix, uri); + } + + /** + * Removes the binding for the given prefix. + * + * @see SimpleNamespaceContext#removeBinding(String) + */ + public final void endPrefixMapping(String prefix) { + namespaceContext.removeBinding(prefix); + } + + public final void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { + try { + startElementInternal(QNameUtils.toQName(uri, qName), atts, namespaceContext); + } + catch (XMLStreamException ex) { + throw new SAXException("Could not handle startElement: " + ex.getMessage(), ex); + } + } + + protected abstract void startElementInternal(QName name, Attributes atts, SimpleNamespaceContext namespaceContext) + throws XMLStreamException; + + public final void endElement(String uri, String localName, String qName) throws SAXException { + try { + endElementInternal(QNameUtils.toQName(uri, qName), namespaceContext); + } + catch (XMLStreamException ex) { + throw new SAXException("Could not handle endElement: " + ex.getMessage(), ex); + } + } + + protected abstract void endElementInternal(QName name, SimpleNamespaceContext namespaceContext) + throws XMLStreamException; + + public final void characters(char ch[], int start, int length) throws SAXException { + try { + charactersInternal(ch, start, length); + } + catch (XMLStreamException ex) { + throw new SAXException("Could not handle characters: " + ex.getMessage(), ex); + } + } + + protected abstract void charactersInternal(char[] ch, int start, int length) throws XMLStreamException; + + public final void ignorableWhitespace(char[] ch, int start, int length) throws SAXException { + try { + ignorableWhitespaceInternal(ch, start, length); + } + catch (XMLStreamException ex) { + throw new SAXException("Could not handle ignorableWhitespace:" + ex.getMessage(), ex); + } + } + + protected abstract void ignorableWhitespaceInternal(char[] ch, int start, int length) throws XMLStreamException; + + public final void processingInstruction(String target, String data) throws SAXException { + try { + processingInstructionInternal(target, data); + } + catch (XMLStreamException ex) { + throw new SAXException("Could not handle processingInstruction: " + ex.getMessage(), ex); + } + } + + protected abstract void processingInstructionInternal(String target, String data) throws XMLStreamException; + + public final void skippedEntity(String name) throws SAXException { + try { + skippedEntityInternal(name); + } + catch (XMLStreamException ex) { + throw new SAXException("Could not handle skippedEntity: " + ex.getMessage(), ex); + } + } + + protected abstract void skippedEntityInternal(String name) throws XMLStreamException; +} diff --git a/xml/src/main/java/org/springframework/xml/stream/StaxEventContentHandler.java b/xml/src/main/java/org/springframework/xml/stream/StaxEventContentHandler.java new file mode 100644 index 00000000..e8f0a301 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/stream/StaxEventContentHandler.java @@ -0,0 +1,181 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import javax.xml.XMLConstants; +import javax.xml.namespace.QName; +import javax.xml.stream.Location; +import javax.xml.stream.XMLEventFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.events.XMLEvent; +import javax.xml.stream.util.XMLEventConsumer; + +import org.springframework.util.StringUtils; +import org.springframework.xml.namespace.QNameUtils; +import org.springframework.xml.namespace.SimpleNamespaceContext; +import org.xml.sax.Attributes; +import org.xml.sax.Locator; + +/** + * SAX ContentHandler that transforms callback calls to XMLEvents and writes them to a + * XMLEventConsumer. + * + * @author Arjen Poutsma + * @see XMLEvent + * @see XMLEventConsumer + */ +public class StaxEventContentHandler extends StaxContentHandler { + + private final XMLEventFactory eventFactory; + + private final XMLEventConsumer eventConsumer; + + private Locator locator; + + /** + * Constructs a new instance of the StaxEventContentHandler that writes to the given + * XMLEventConsumer. A default XMLEventFactory will be created. + * + * @param consumer the consumer to write events to + */ + public StaxEventContentHandler(XMLEventConsumer consumer) { + eventFactory = XMLEventFactory.newInstance(); + eventConsumer = consumer; + } + + /** + * Constructs a new instance of the StaxEventContentHandler that uses the given event factory to create + * events and writes to the given XMLEventConsumer. + * + * @param consumer the consumer to write events to + * @param factory the factory used to create events + */ + public StaxEventContentHandler(XMLEventConsumer consumer, XMLEventFactory factory) { + eventFactory = factory; + eventConsumer = consumer; + } + + public void setDocumentLocator(Locator locator) { + this.locator = locator; + } + + protected void startDocumentInternal() throws XMLStreamException { + consumeEvent(eventFactory.createStartDocument()); + } + + protected void endDocumentInternal() throws XMLStreamException { + consumeEvent(eventFactory.createEndDocument()); + } + + protected void startElementInternal(QName name, Attributes atts, SimpleNamespaceContext namespaceContext) + throws XMLStreamException { + List attributes = getAttributes(atts); + List namespaces = createNamespaces(namespaceContext); + consumeEvent(eventFactory.createStartElement(name, attributes.iterator(), namespaces.iterator())); + } + + protected void endElementInternal(QName name, SimpleNamespaceContext namespaceContext) throws XMLStreamException { + List namespaces = createNamespaces(namespaceContext); + consumeEvent(eventFactory.createEndElement(name, namespaces.iterator())); + } + + protected void charactersInternal(char[] ch, int start, int length) throws XMLStreamException { + consumeEvent(eventFactory.createCharacters(new String(ch, start, length))); + } + + protected void ignorableWhitespaceInternal(char[] ch, int start, int length) throws XMLStreamException { + consumeEvent(eventFactory.createIgnorableSpace(new String(ch, start, length))); + } + + protected void processingInstructionInternal(String target, String data) throws XMLStreamException { + consumeEvent(eventFactory.createProcessingInstruction(target, data)); + } + + private void consumeEvent(XMLEvent event) throws XMLStreamException { + if (locator != null) { + eventFactory.setLocation(new SaxLocation(locator)); + } + eventConsumer.add(event); + } + + /** + * Creates and returns a list of NameSpace objects from the NamespaceContext. + */ + private List createNamespaces(SimpleNamespaceContext namespaceContext) { + List namespaces = new ArrayList(); + String defaultNamespaceUri = namespaceContext.getNamespaceURI(XMLConstants.DEFAULT_NS_PREFIX); + if (StringUtils.hasLength(defaultNamespaceUri)) { + namespaces.add(eventFactory.createNamespace(defaultNamespaceUri)); + } + for (Iterator iterator = namespaceContext.getBoundPrefixes(); iterator.hasNext();) { + String prefix = (String) iterator.next(); + String namespaceUri = namespaceContext.getNamespaceURI(prefix); + namespaces.add(eventFactory.createNamespace(prefix, namespaceUri)); + } + return namespaces; + } + + private List getAttributes(Attributes attributes) { + List list = new ArrayList(); + for (int i = 0; i < attributes.getLength(); i++) { + QName name = QNameUtils.toQName(attributes.getURI(i), attributes.getQName(i)); + if (!("xmlns".equals(name.getLocalPart()) || "xmlns".equals(QNameUtils.getPrefix(name)))) { + list.add(eventFactory.createAttribute(name, attributes.getValue(i))); + } + } + return list; + } + + // + // No operation + // + + protected void skippedEntityInternal(String name) throws XMLStreamException { + } + + private static class SaxLocation implements Location { + + private Locator locator; + + public SaxLocation(Locator locator) { + this.locator = locator; + } + + public int getLineNumber() { + return locator.getLineNumber(); + } + + public int getColumnNumber() { + return locator.getColumnNumber(); + } + + public int getCharacterOffset() { + return -1; + } + + public String getPublicId() { + return locator.getPublicId(); + } + + public String getSystemId() { + return locator.getSystemId(); + } + } +} \ No newline at end of file diff --git a/xml/src/main/java/org/springframework/xml/stream/StaxEventXmlReader.java b/xml/src/main/java/org/springframework/xml/stream/StaxEventXmlReader.java new file mode 100644 index 00000000..c8d42e00 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/stream/StaxEventXmlReader.java @@ -0,0 +1,187 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import java.util.Iterator; + +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.events.Attribute; +import javax.xml.stream.events.Characters; +import javax.xml.stream.events.EndElement; +import javax.xml.stream.events.Namespace; +import javax.xml.stream.events.NotationDeclaration; +import javax.xml.stream.events.ProcessingInstruction; +import javax.xml.stream.events.StartElement; +import javax.xml.stream.events.XMLEvent; + +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.AttributesImpl; + +import org.springframework.xml.namespace.QNameUtils; + +/** + * SAX XMLReader that reads from a StAX XMLEventReader. Consumes XMLEvents from + * an XMLEventReader, and calls the corresponding methods on the SAX callback interfaces. + * + * @author Arjen Poutsma + * @see XMLEventReader + * @see #setContentHandler(org.xml.sax.ContentHandler) + * @see #setDTDHandler(org.xml.sax.DTDHandler) + * @see #setEntityResolver(org.xml.sax.EntityResolver) + * @see #setErrorHandler(org.xml.sax.ErrorHandler) + */ +public class StaxEventXmlReader extends StaxXmlReader { + + private final XMLEventReader reader; + + /** + * Constructs a new instance of the StaxEventXmlReader that reads from the given + * XMLEventReader. The supplied event reader must be in XMLStreamConstants.START_DOCUMENT + * or XMLStreamConstants.START_ELEMENT state. + * + * @param reader the XMLEventReader to read from + * @throws IllegalStateException if the reader is not at the start of a document or element + */ + public StaxEventXmlReader(XMLEventReader reader) { + try { + XMLEvent event = reader.peek(); + if (event == null || !(event.isStartDocument() || event.isStartElement())) { + throw new IllegalStateException("XMLEventReader not at start of document or element"); + } + } + catch (XMLStreamException ex) { + throw new IllegalStateException("Could not read first element: " + ex.getMessage(), ex); + } + + this.reader = reader; + } + + protected void parseInternal() throws SAXException, XMLStreamException { + boolean documentEnded = false; + while (reader.hasNext()) { + XMLEvent event = reader.nextEvent(); + switch (event.getEventType()) { + case XMLStreamConstants.START_ELEMENT: + handleStartElement(event.asStartElement()); + break; + case XMLStreamConstants.END_ELEMENT: + handleEndElement(event.asEndElement()); + break; + case XMLStreamConstants.PROCESSING_INSTRUCTION: + handleProcessingInstruction((ProcessingInstruction) event); + break; + case XMLStreamConstants.CHARACTERS: + case XMLStreamConstants.SPACE: + case XMLStreamConstants.CDATA: + handleCharacters(event.asCharacters()); + break; + case XMLStreamConstants.START_DOCUMENT: + setLocator(event.getLocation()); + handleStartDocument(); + break; + case XMLStreamConstants.END_DOCUMENT: + handleEndDocument(); + documentEnded = true; + break; + case XMLStreamConstants.NOTATION_DECLARATION: + handleNotationDeclaration((NotationDeclaration) event); + break; + } + } + if (!documentEnded) { + handleEndDocument(); + } + + } + + private void handleCharacters(Characters characters) throws SAXException { + if (getContentHandler() != null) { + if (characters.isIgnorableWhiteSpace()) { + getContentHandler() + .ignorableWhitespace(characters.getData().toCharArray(), 0, characters.getData().length()); + } + else { + getContentHandler().characters(characters.getData().toCharArray(), 0, characters.getData().length()); + } + } + } + + private void handleEndDocument() throws SAXException { + if (getContentHandler() != null) { + getContentHandler().endDocument(); + } + } + + private void handleEndElement(EndElement endElement) throws SAXException { + if (getContentHandler() != null) { + getContentHandler().endElement(endElement.getName().getNamespaceURI(), endElement.getName().getLocalPart(), + QNameUtils.toQualifiedName(endElement.getName())); + + for (Iterator i = endElement.getNamespaces(); i.hasNext();) { + Namespace namespace = (Namespace) i.next(); + getContentHandler().endPrefixMapping(namespace.getPrefix()); + } + } + } + + private void handleNotationDeclaration(NotationDeclaration declaration) throws SAXException { + if (getDtdHandler() != null) { + getDtdHandler().notationDecl(declaration.getName(), declaration.getPublicId(), declaration.getSystemId()); + } + } + + private void handleProcessingInstruction(ProcessingInstruction pi) throws SAXException { + if (getContentHandler() != null) { + getContentHandler().processingInstruction(pi.getTarget(), pi.getData()); + } + } + + private void handleStartDocument() throws SAXException { + if (getContentHandler() != null) { + getContentHandler().startDocument(); + } + } + + private void handleStartElement(StartElement startElement) throws SAXException { + if (getContentHandler() != null) { + for (Iterator i = startElement.getNamespaces(); i.hasNext();) { + Namespace namespace = (Namespace) i.next(); + getContentHandler().startPrefixMapping(namespace.getPrefix(), namespace.getNamespaceURI()); + } + + getContentHandler().startElement(startElement.getName().getNamespaceURI(), + startElement.getName().getLocalPart(), QNameUtils.toQualifiedName(startElement.getName()), + getAttributes(startElement)); + } + } + + private Attributes getAttributes(StartElement event) { + AttributesImpl attributes = new AttributesImpl(); + + for (Iterator i = event.getAttributes(); i.hasNext();) { + Attribute attribute = (Attribute) i.next(); + attributes.addAttribute(attribute.getName().getNamespaceURI(), attribute.getName().getLocalPart(), + QNameUtils.toQualifiedName(attribute.getName()), attribute.getDTDType(), attribute.getValue()); + } + + return attributes; + } + +} diff --git a/xml/src/main/java/org/springframework/xml/stream/StaxStreamContentHandler.java b/xml/src/main/java/org/springframework/xml/stream/StaxStreamContentHandler.java new file mode 100644 index 00000000..0af53728 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/stream/StaxStreamContentHandler.java @@ -0,0 +1,102 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import java.util.Iterator; +import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamWriter; + +import org.springframework.util.StringUtils; +import org.springframework.xml.namespace.QNameUtils; +import org.springframework.xml.namespace.SimpleNamespaceContext; +import org.xml.sax.Attributes; +import org.xml.sax.Locator; + +/** + * SAX ContentHandler that writes to a XMLStreamWriter. + * + * @author Arjen Poutsma + * @see XMLStreamWriter + */ +public class StaxStreamContentHandler extends StaxContentHandler { + + private final XMLStreamWriter streamWriter; + + /** + * Constructs a new instance of the StaxStreamContentHandler that writes to the given + * XMLStreamWriter. + * + * @param streamWriter the stream writer to write to + */ + public StaxStreamContentHandler(XMLStreamWriter streamWriter) { + this.streamWriter = streamWriter; + } + + public void setDocumentLocator(Locator locator) { + } + + protected void charactersInternal(char[] ch, int start, int length) throws XMLStreamException { + streamWriter.writeCharacters(ch, start, length); + } + + protected void endDocumentInternal() throws XMLStreamException { + streamWriter.writeEndDocument(); + } + + protected void endElementInternal(QName name, SimpleNamespaceContext namespaceContext) throws XMLStreamException { + streamWriter.writeEndElement(); + } + + protected void ignorableWhitespaceInternal(char[] ch, int start, int length) throws XMLStreamException { + streamWriter.writeCharacters(ch, start, length); + } + + protected void processingInstructionInternal(String target, String data) throws XMLStreamException { + streamWriter.writeProcessingInstruction(target, data); + } + + protected void skippedEntityInternal(String name) { + } + + protected void startDocumentInternal() throws XMLStreamException { + streamWriter.writeStartDocument(); + } + + protected void startElementInternal(QName name, Attributes attributes, SimpleNamespaceContext namespaceContext) + throws XMLStreamException { + streamWriter.writeStartElement(QNameUtils.getPrefix(name), name.getLocalPart(), name.getNamespaceURI()); + String defaultNamespaceUri = namespaceContext.getNamespaceURI(""); + if (StringUtils.hasLength(defaultNamespaceUri)) { + streamWriter.writeNamespace("", defaultNamespaceUri); + streamWriter.setDefaultNamespace(defaultNamespaceUri); + } + for (Iterator iterator = namespaceContext.getBoundPrefixes(); iterator.hasNext();) { + String prefix = (String) iterator.next(); + streamWriter.writeNamespace(prefix, namespaceContext.getNamespaceURI(prefix)); + streamWriter.setPrefix(prefix, namespaceContext.getNamespaceURI(prefix)); + } + for (int i = 0; i < attributes.getLength(); i++) { + QName attrName = QNameUtils.toQName(attributes.getURI(i), attributes.getQName(i)); + String attrPrefix = QNameUtils.getPrefix(attrName); + if (!("xmlns".equals(attrName.getLocalPart()) || "xmlns".equals(attrPrefix))) { + streamWriter.writeAttribute(attrPrefix, attrName.getNamespaceURI(), attrName.getLocalPart(), + attributes.getValue(i)); + } + } + } +} diff --git a/xml/src/main/java/org/springframework/xml/stream/StaxStreamXmlReader.java b/xml/src/main/java/org/springframework/xml/stream/StaxStreamXmlReader.java new file mode 100644 index 00000000..da8390f2 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/stream/StaxStreamXmlReader.java @@ -0,0 +1,187 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamConstants; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; + +import org.springframework.xml.namespace.QNameUtils; +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.AttributesImpl; + +/** + * SAX XMLReader that reads from a StAX XMLStreamReader. Reads from an + * XMLStreamReader, and calls the corresponding methods on the SAX callback interfaces. + * + * @author Arjen Poutsma + * @see XMLStreamReader + * @see #setContentHandler(org.xml.sax.ContentHandler) + * @see #setDTDHandler(org.xml.sax.DTDHandler) + * @see #setEntityResolver(org.xml.sax.EntityResolver) + * @see #setErrorHandler(org.xml.sax.ErrorHandler) + */ +public class StaxStreamXmlReader extends StaxXmlReader { + + private final XMLStreamReader reader; + + /** + * Constructs a new instance of the StaxStreamXmlReader that reads from the given + * XMLStreamReader. The supplied stream reader must be in XMLStreamConstants.START_DOCUMENT + * or XMLStreamConstants.START_ELEMENT state. + * + * @param reader the XMLEventReader to read from + * @throws IllegalStateException if the reader is not at the start of a document or element + */ + public StaxStreamXmlReader(XMLStreamReader reader) { + int event = reader.getEventType(); + if (!(event == XMLStreamConstants.START_DOCUMENT || event == XMLStreamConstants.START_ELEMENT)) { + throw new IllegalStateException("XMLEventReader not at start of document or element"); + } + this.reader = reader; + } + + protected void parseInternal() throws SAXException, XMLStreamException { + boolean documentEnded = false; + while (true) { + switch (reader.getEventType()) { + case XMLStreamConstants.START_ELEMENT: + handleStartElement(); + break; + case XMLStreamConstants.END_ELEMENT: + handleEndElement(); + break; + case XMLStreamConstants.PROCESSING_INSTRUCTION: + handleProcessingInstruction(); + break; + case XMLStreamConstants.CHARACTERS: + case XMLStreamConstants.SPACE: + case XMLStreamConstants.CDATA: + handleCharacters(); + break; + case XMLStreamConstants.START_DOCUMENT: + handleStartDocument(); + break; + case XMLStreamConstants.END_DOCUMENT: + handleEndDocument(); + documentEnded = true; + break; + } + if (reader.hasNext()) { + reader.next(); + } + else { + break; + } + } + if (!documentEnded) { + handleEndDocument(); + } + + } + + private void handleCharacters() throws SAXException { + if (getContentHandler() != null) { + if (reader.isWhiteSpace()) { + getContentHandler() + .ignorableWhitespace(reader.getTextCharacters(), reader.getTextStart(), reader.getTextLength()); + } + else { + getContentHandler() + .characters(reader.getTextCharacters(), reader.getTextStart(), reader.getTextLength()); + } + } + } + + private void handleEndDocument() throws SAXException { + if (getContentHandler() != null) { + getContentHandler().endDocument(); + } + } + + private void handleEndElement() throws SAXException { + if (getContentHandler() != null) { + QName qName = reader.getName(); + getContentHandler() + .endElement(qName.getNamespaceURI(), qName.getLocalPart(), QNameUtils.toQualifiedName(qName)); + for (int i = 0; i < reader.getNamespaceCount(); i++) { + String prefix = reader.getNamespacePrefix(i); + if (prefix == null) { + prefix = ""; + } + getContentHandler().endPrefixMapping(prefix); + } + } + } + + private void handleProcessingInstruction() throws SAXException { + if (getContentHandler() != null) { + getContentHandler().processingInstruction(reader.getPITarget(), reader.getPIData()); + } + } + + private void handleStartDocument() throws SAXException { + setLocator(reader.getLocation()); + if (getContentHandler() != null) { + getContentHandler().startDocument(); + } + } + + private void handleStartElement() throws SAXException { + if (getContentHandler() != null) { + for (int i = 0; i < reader.getNamespaceCount(); i++) { + String prefix = reader.getNamespacePrefix(i); + if (prefix == null) { + prefix = ""; + } + getContentHandler().startPrefixMapping(prefix, reader.getNamespaceURI(i)); + } + + QName qName = reader.getName(); + getContentHandler().startElement(qName.getNamespaceURI(), + qName.getLocalPart(), + QNameUtils.toQualifiedName(qName), + getAttributes()); + } + } + + private Attributes getAttributes() { + AttributesImpl attributes = new AttributesImpl(); + + for (int i = 0; i < reader.getAttributeCount(); i++) { + String namespace = reader.getAttributeNamespace(i); + if (namespace == null) { + namespace = ""; + } + String type = reader.getAttributeType(i); + if (type == null) { + type = ""; + } + attributes.addAttribute(namespace, + reader.getAttributeLocalName(i), + QNameUtils.toQualifiedName(reader.getAttributeName(i)), + type, + reader.getAttributeValue(i)); + } + + return attributes; + } + + +} diff --git a/xml/src/main/java/org/springframework/xml/stream/StaxXmlReader.java b/xml/src/main/java/org/springframework/xml/stream/StaxXmlReader.java new file mode 100644 index 00000000..228c9502 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/stream/StaxXmlReader.java @@ -0,0 +1,215 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import javax.xml.stream.Location; +import javax.xml.stream.XMLStreamException; + +import org.xml.sax.ContentHandler; +import org.xml.sax.DTDHandler; +import org.xml.sax.EntityResolver; +import org.xml.sax.ErrorHandler; +import org.xml.sax.InputSource; +import org.xml.sax.Locator; +import org.xml.sax.SAXException; +import org.xml.sax.SAXNotRecognizedException; +import org.xml.sax.SAXParseException; +import org.xml.sax.XMLReader; + +/** + * Abstract base class for SAX XMLReader implementations that use StAX as a basis. + * + * @author Arjen Poutsma + * @see #setContentHandler(org.xml.sax.ContentHandler) + * @see #setDTDHandler(org.xml.sax.DTDHandler) + * @see #setEntityResolver(org.xml.sax.EntityResolver) + * @see #setErrorHandler(org.xml.sax.ErrorHandler) + */ +public abstract class StaxXmlReader implements XMLReader { + + private DTDHandler dtdHandler; + + private ContentHandler contentHandler; + + private EntityResolver entityResolver; + + private ErrorHandler errorHandler; + + public ContentHandler getContentHandler() { + return contentHandler; + } + + public void setContentHandler(ContentHandler contentHandler) { + this.contentHandler = contentHandler; + } + + public DTDHandler getDtdHandler() { + return dtdHandler; + } + + public void setDtdHandler(DTDHandler dtdHandler) { + this.dtdHandler = dtdHandler; + } + + public EntityResolver getEntityResolver() { + return entityResolver; + } + + public void setEntityResolver(EntityResolver entityResolver) { + this.entityResolver = entityResolver; + } + + public ErrorHandler getErrorHandler() { + return errorHandler; + } + + public void setErrorHandler(ErrorHandler errorHandler) { + this.errorHandler = errorHandler; + } + + /** + * Throws a SAXNotRecognizedException exception. + * + * @throws SAXNotRecognizedException always + */ + public boolean getFeature(String name) throws SAXNotRecognizedException { + throw new SAXNotRecognizedException(name); + } + + /** + * Throws a SAXNotRecognizedException exception. + * + * @throws SAXNotRecognizedException always + */ + public void setFeature(String name, boolean value) throws SAXNotRecognizedException { + throw new SAXNotRecognizedException(name); + } + + /** + * Throws a SAXNotRecognizedException exception. + * + * @throws SAXNotRecognizedException always + */ + public Object getProperty(String name) throws SAXNotRecognizedException { + throw new SAXNotRecognizedException(name); + } + + /** + * Throws a SAXNotRecognizedException exception. + * + * @throws SAXNotRecognizedException always + */ + public void setProperty(String name, Object value) throws SAXNotRecognizedException { + throw new SAXNotRecognizedException(name); + } + + public void setDTDHandler(DTDHandler dtdHandler) { + this.setDtdHandler(dtdHandler); + } + + public DTDHandler getDTDHandler() { + return getDtdHandler(); + } + + /** + * Parses the StAX XML reader passed at construction-time. + *

    + * Note that the given InputSource is not read, but ignored. + * + * @param ignored is ignored + * @throws SAXException A SAX exception, possibly wrapping a XMLStreamException + */ + public final void parse(InputSource ignored) throws SAXException { + parse(); + } + + /** + * Parses the StAX XML reader passed at construction-time. + *

    + * Note that the given system identifier is not read, but ignored. + * + * @param ignored is ignored + * @throws SAXException A SAX exception, possibly wrapping a XMLStreamException + */ + public final void parse(String ignored) throws SAXException { + parse(); + } + + private void parse() throws SAXException { + try { + parseInternal(); + } + catch (XMLStreamException ex) { + SAXParseException saxException = new SAXParseException(ex.getMessage(), null, null, + ex.getLocation().getLineNumber(), ex.getLocation().getColumnNumber(), ex); + if (errorHandler != null) { + errorHandler.fatalError(saxException); + } + else { + throw saxException; + } + } + } + + /** + * Sets the SAX Locator based on the given StAX Location. + * + * @param location the location + * @see ContentHandler#setDocumentLocator(org.xml.sax.Locator) + */ + protected void setLocator(Location location) { + if (contentHandler != null) { + contentHandler.setDocumentLocator(new StaxLocator(location)); + } + } + + /** + * Template-method that parses the StAX reader passed at construction-time. + */ + protected abstract void parseInternal() throws SAXException, XMLStreamException; + + /** + * Implementation of the Locator interface that is based on a StAX Location. + * + * @see Locator + * @see Location + */ + private static class StaxLocator implements Locator { + + private Location location; + + protected StaxLocator(Location location) { + this.location = location; + } + + public String getPublicId() { + return location.getPublicId(); + } + + public String getSystemId() { + return location.getSystemId(); + } + + public int getLineNumber() { + return location.getLineNumber(); + } + + public int getColumnNumber() { + return location.getColumnNumber(); + } + } +} diff --git a/xml/src/main/java/org/springframework/xml/stream/XmlEventStreamReader.java b/xml/src/main/java/org/springframework/xml/stream/XmlEventStreamReader.java new file mode 100644 index 00000000..1ec62eee --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/stream/XmlEventStreamReader.java @@ -0,0 +1,253 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import java.util.Iterator; +import javax.xml.namespace.NamespaceContext; +import javax.xml.namespace.QName; +import javax.xml.stream.Location; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.events.Attribute; +import javax.xml.stream.events.Namespace; +import javax.xml.stream.events.ProcessingInstruction; +import javax.xml.stream.events.StartDocument; +import javax.xml.stream.events.XMLEvent; + +/** + * Implementation of the XMLStreamReader interface that wraps a XMLEventReader. Useful, + * because the StAX XMLInputFactory allows one to create a event reader from a stream reader, but not + * vice-versa. + * + * @author Arjen Poutsma + */ +public class XmlEventStreamReader extends AbstractXmlStreamReader { + + private XMLEvent event; + + private final XMLEventReader eventReader; + + public XmlEventStreamReader(XMLEventReader eventReader) throws XMLStreamException { + this.eventReader = eventReader; + event = eventReader.nextEvent(); + } + + public boolean isStandalone() { + if (event.isStartDocument()) { + return ((StartDocument) event).isStandalone(); + } + else { + throw new IllegalStateException(); + } + } + + public String getVersion() { + if (event.isStartDocument()) { + return ((StartDocument) event).getVersion(); + } + else { + throw new IllegalStateException(); + } + } + + public int getTextStart() { + return 0; + } + + public String getText() { + if (event.isCharacters()) { + return event.asCharacters().getData(); + } + else { + throw new IllegalStateException(); + } + } + + public String getPITarget() { + if (event.isProcessingInstruction()) { + return ((ProcessingInstruction) event).getTarget(); + } + else { + throw new IllegalStateException(); + } + } + + public String getPIData() { + if (event.isProcessingInstruction()) { + return ((ProcessingInstruction) event).getData(); + } + else { + throw new IllegalStateException(); + } + } + + public int getNamespaceCount() { + Iterator namespaces; + if (event.isStartElement()) { + namespaces = event.asStartElement().getNamespaces(); + } + else if (event.isEndElement()) { + namespaces = event.asEndElement().getNamespaces(); + } + else { + throw new IllegalStateException(); + } + return countIterator(namespaces); + } + + public NamespaceContext getNamespaceContext() { + if (event.isStartElement()) { + return event.asStartElement().getNamespaceContext(); + } + else { + throw new IllegalStateException(); + } + } + + public QName getName() { + if (event.isStartElement()) { + return event.asStartElement().getName(); + } + else if (event.isEndElement()) { + return event.asEndElement().getName(); + } + else { + throw new IllegalStateException(); + } + } + + public Location getLocation() { + return event.getLocation(); + } + + public int getEventType() { + return event.getEventType(); + } + + public String getEncoding() { + return null; + } + + public String getCharacterEncodingScheme() { + return null; + } + + public int getAttributeCount() { + if (!event.isStartElement()) { + throw new IllegalStateException(); + } + Iterator attributes = event.asStartElement().getAttributes(); + return countIterator(attributes); + } + + public void close() throws XMLStreamException { + eventReader.close(); + } + + public QName getAttributeName(int index) { + return getAttribute(index).getName(); + } + + public String getAttributeType(int index) { + return getAttribute(index).getDTDType(); + } + + public String getAttributeValue(int index) { + return getAttribute(index).getValue(); + } + + public String getNamespacePrefix(int index) { + return getNamespace(index).getPrefix(); + } + + public String getNamespaceURI(int index) { + return getNamespace(index).getNamespaceURI(); + } + + public Object getProperty(String name) throws IllegalArgumentException { + return eventReader.getProperty(name); + } + + public boolean isAttributeSpecified(int index) { + return getAttribute(index).isSpecified(); + } + + public int next() throws XMLStreamException { + event = eventReader.nextEvent(); + return event.getEventType(); + } + + public boolean standaloneSet() { + if (event.isStartDocument()) { + return ((StartDocument) event).standaloneSet(); + } + else { + throw new IllegalStateException(); + } + } + + private int countIterator(Iterator iterator) { + int count = 0; + while (iterator.hasNext()) { + iterator.next(); + count++; + } + return count; + } + + private Attribute getAttribute(int index) { + if (!event.isStartElement()) { + throw new IllegalStateException(); + } + int count = 0; + Iterator attributes = event.asStartElement().getAttributes(); + while (attributes.hasNext()) { + Attribute attribute = (Attribute) attributes.next(); + if (count == index) { + return attribute; + } + else { + count++; + } + } + throw new IllegalArgumentException(); + } + + private Namespace getNamespace(int index) { + Iterator namespaces; + if (event.isStartElement()) { + namespaces = event.asStartElement().getNamespaces(); + } + else if (event.isEndElement()) { + namespaces = event.asEndElement().getNamespaces(); + } + else { + throw new IllegalStateException(); + } + int count = 0; + while (namespaces.hasNext()) { + Namespace namespace = (Namespace) namespaces.next(); + if (count == index) { + return namespace; + } + else { + count++; + } + } + throw new IllegalArgumentException(); + } +} diff --git a/xml/src/main/java/org/springframework/xml/stream/package.html b/xml/src/main/java/org/springframework/xml/stream/package.html new file mode 100644 index 00000000..14298b80 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/stream/package.html @@ -0,0 +1,5 @@ + + +Provides classes that help with StAX: the Streaming API for XML. Mostly for internal use by the framework. + + diff --git a/xml/src/main/java/org/springframework/xml/transform/StaxResult.java b/xml/src/main/java/org/springframework/xml/transform/StaxResult.java new file mode 100644 index 00000000..ce80cc8f --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/transform/StaxResult.java @@ -0,0 +1,115 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.transform; + +import javax.xml.stream.XMLEventFactory; +import javax.xml.stream.XMLEventWriter; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.sax.SAXResult; + +import org.springframework.xml.stream.StaxEventContentHandler; +import org.springframework.xml.stream.StaxStreamContentHandler; +import org.xml.sax.ContentHandler; + +/** + * Implementation of the Result tagging interface for StAX writers. Can be constructed with a + * XMLEventConsumer or a XMLStreamWriter. + *

    + * This class is necessary because there is no implementation of Source for StaxReaders in JAXP 1.3. There + * will be a StaxResult in JAXP 1.4 (JDK 1.6), and by the time that version is available, this class will + * probably be deprecated. + *

    + * Even though StaxResult extends from SAXResult, calling the methods of + * SAXResult is not supported. In general, the only supported operation on this class is + * to use the ContentHandler obtained via {@link #getHandler()} to parse an input source using an + * XMLReader. Calling {@link #setHandler(org.xml.sax.ContentHandler)} will result in + * UnsupportedOperationExceptions. + * + * @author Arjen Poutsma + * @see XMLEventWriter + * @see XMLStreamWriter + * @see javax.xml.transform.Transformer + */ +public class StaxResult extends SAXResult { + + private XMLEventWriter eventWriter; + + private XMLStreamWriter streamWriter; + + /** + * Constructs a new instance of the StaxResult with the specified XMLStreamWriter. + * + * @param streamWriter the XMLStreamWriter to write to + */ + public StaxResult(XMLStreamWriter streamWriter) { + super.setHandler(new StaxStreamContentHandler(streamWriter)); + this.streamWriter = streamWriter; + } + + /** + * Constructs a new instance of the StaxResult with the specified XMLEventWriter. + * + * @param eventWriter the XMLEventWriter to write to + */ + public StaxResult(XMLEventWriter eventWriter) { + super.setHandler(new StaxEventContentHandler(eventWriter)); + this.eventWriter = eventWriter; + } + + /** + * Constructs a new instance of the StaxResult with the specified XMLEventWriter and + * XMLEventFactory. + * + * @param eventWriter the XMLEventWriter to write to + * @param eventFactory the XMLEventFactory to use for creating events + */ + public StaxResult(XMLEventWriter eventWriter, XMLEventFactory eventFactory) { + super.setHandler(new StaxEventContentHandler(eventWriter, eventFactory)); + this.eventWriter = eventWriter; + } + + /** + * Returns the XMLEventWriter used by this StaxResult. If this StaxResult was + * created with an XMLStreamWriter, the result will be null. + * + * @return the StAX event writer used by this result + * @see #StaxResult(javax.xml.stream.XMLEventWriter) + */ + public XMLEventWriter getXMLEventWriter() { + return eventWriter; + } + + /** + * Returns the XMLStreamWriter used by this StaxResult. If this StaxResult + * was created with an XMLEventConsumer, the result will be null. + * + * @return the StAX stream writer used by this result + * @see #StaxResult(javax.xml.stream.XMLStreamWriter) + */ + public XMLStreamWriter getXMLStreamWriter() { + return streamWriter; + } + + /** + * Throws a UnsupportedOperationException. + * + * @throws UnsupportedOperationException always + */ + public void setHandler(ContentHandler handler) { + throw new UnsupportedOperationException("setHandler is not supported"); + } +} diff --git a/xml/src/main/java/org/springframework/xml/transform/StaxSource.java b/xml/src/main/java/org/springframework/xml/transform/StaxSource.java new file mode 100644 index 00000000..db08b5a4 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/transform/StaxSource.java @@ -0,0 +1,118 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.transform; + +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLStreamReader; +import javax.xml.transform.sax.SAXSource; + +import org.springframework.xml.stream.StaxEventXmlReader; +import org.springframework.xml.stream.StaxStreamXmlReader; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; + +/** + * Implementation of the Source tagging interface for StAX readers. Can be constructed with a + * XMLEventReader or a XMLStreamReader. + *

    + * This class is necessary because there is no implementation of Source for StaxReaders in JAXP 1.3. There + * will be a StaxSource in JAXP 1.4 (JDK 1.6), and by the time that version is available, this class will + * probably be deprecated. + *

    + * Even though StaxSource extends from SAXSource, calling the methods of + * SAXSource is not supported. In general, the only supported operation on this class is + * to use the XMLReader obtained via {@link #getXMLReader()} to parse the input source obtained via {@link + * #getInputSource()}. Calling {@link #setXMLReader(org.xml.sax.XMLReader)} or {@link + * #setInputSource(org.xml.sax.InputSource)} will result in UnsupportedOperationExceptions. + * + * @author Arjen Poutsma + * @see XMLEventReader + * @see XMLStreamReader + * @see javax.xml.transform.Transformer + */ +public class StaxSource extends SAXSource { + + private XMLEventReader eventReader; + + private XMLStreamReader streamReader; + + /** + * Constructs a new instance of the StaxSource with the specified XMLStreamReader. The + * supplied stream reader must be in XMLStreamConstants.START_DOCUMENT or + * XMLStreamConstants.START_ELEMENT state. + * + * @param streamReader the XMLStreamReader to read from + * @throws IllegalStateException if the reader is not at the start of a document or element + */ + public StaxSource(XMLStreamReader streamReader) { + super(new StaxStreamXmlReader(streamReader), new InputSource()); + this.streamReader = streamReader; + } + + /** + * Constructs a new instance of the StaxSource with the specified XMLEventReader. The + * supplied event reader must be in XMLStreamConstants.START_DOCUMENT or + * XMLStreamConstants.START_ELEMENT state. + * + * @param eventReader the XMLEventReader to read from + * @throws IllegalStateException if the reader is not at the start of a document or element + */ + public StaxSource(XMLEventReader eventReader) { + super(new StaxEventXmlReader(eventReader), new InputSource()); + this.eventReader = eventReader; + } + + /** + * Returns the XMLEventReader used by this StaxSource. If this StaxSource was + * created with an XMLStreamReader, the result will be null. + * + * @return the StAX event reader used by this source + * @see StaxSource#StaxSource(javax.xml.stream.XMLEventReader) + */ + public XMLEventReader getXMLEventReader() { + return eventReader; + } + + /** + * Returns the XMLStreamReader used by this StaxSource. If this StaxSource + * was created with an XMLEventReader, the result will be null. + * + * @return the StAX event reader used by this source + * @see StaxSource#StaxSource(javax.xml.stream.XMLEventReader) + */ + public XMLStreamReader getXMLStreamReader() { + return streamReader; + } + + /** + * Throws a UnsupportedOperationException. + * + * @throws UnsupportedOperationException always + */ + public void setInputSource(InputSource inputSource) { + throw new UnsupportedOperationException("setInputSource is not supported"); + } + + /** + * Throws a UnsupportedOperationException. + * + * @throws UnsupportedOperationException always + */ + public void setXMLReader(XMLReader reader) { + throw new UnsupportedOperationException("setXMLReader is not supported"); + } +} diff --git a/xml/src/main/java/org/springframework/xml/transform/StringResult.java b/xml/src/main/java/org/springframework/xml/transform/StringResult.java new file mode 100644 index 00000000..3b7a748c --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/transform/StringResult.java @@ -0,0 +1,43 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.transform; + +import java.io.StringWriter; + +import javax.xml.transform.stream.StreamResult; + +/** + * Convenient subclass of StreamResult that writes to a StringWriter. The resulting string can + * be retrieved via toString(). + * + * @author Arjen Poutsma + * @see #toString() + */ +public class StringResult extends StreamResult { + + public StringResult() { + super(new StringWriter()); + } + + /** + * Returns the written XML as a string. + */ + public String toString() { + return getWriter().toString(); + } + +} diff --git a/xml/src/main/java/org/springframework/xml/transform/StringSource.java b/xml/src/main/java/org/springframework/xml/transform/StringSource.java new file mode 100644 index 00000000..44368385 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/transform/StringSource.java @@ -0,0 +1,50 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.transform; + +import java.io.StringReader; + +import javax.xml.transform.stream.StreamSource; + +/** + * Convenient subclass of StreamSource that reads from a StringReader. The string to be read + * can be set via the constructor. + * + * @author Arjen Poutsma + */ +public class StringSource extends StreamSource { + + /** + * Initializes a new instance of the StringSource with the given string content. + * + * @param content the content + */ + public StringSource(String content) { + super(new StringReader(content)); + } + + /** + * Initializes a new instance of the StringSource with the given string content and system id. + * + * @param content the content + * @param systemId a string that conforms to the URI syntax + */ + public StringSource(String content, String systemId) { + super(new StringReader(content), systemId); + } + +} diff --git a/xml/src/main/java/org/springframework/xml/transform/package.html b/xml/src/main/java/org/springframework/xml/transform/package.html new file mode 100644 index 00000000..32639a6c --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/transform/package.html @@ -0,0 +1,5 @@ + + +Provides classes that help with XML transformations. Mostly for internal use by the framework. + + diff --git a/xml/src/main/java/org/springframework/xml/validation/Jaxp10ValidatorFactory.java b/xml/src/main/java/org/springframework/xml/validation/Jaxp10ValidatorFactory.java new file mode 100644 index 00000000..7a1ca08b --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/validation/Jaxp10ValidatorFactory.java @@ -0,0 +1,179 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.validation; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.sax.SAXSource; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +import org.springframework.core.io.Resource; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.SAXParseException; +import org.xml.sax.helpers.DefaultHandler; + +/** + * Internal class that uses JAXP 1.0 features to create XmlValidator instances. + * + * @author Arjen Poutsma + */ +abstract class Jaxp10ValidatorFactory { + + private static final String SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage"; + + private static final String SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource"; + + static XmlValidator createValidator(Resource[] schemaResources, String schemaLanguage) throws IOException { + InputSource[] inputSources = new InputSource[schemaResources.length]; + for (int i = 0; i < schemaResources.length; i++) { + inputSources[i] = new InputSource(schemaResources[i].getInputStream()); + inputSources[i].setSystemId(SchemaLoaderUtils.getSystemId(schemaResources[i])); + } + return new Jaxp10Validator(inputSources, schemaLanguage); + } + + private static class Jaxp10Validator implements XmlValidator { + + private SAXParserFactory parserFactory; + + private TransformerFactory transformerFactory; + + private InputSource[] schemaInputSources; + + private String schemaLanguage; + + private Jaxp10Validator(InputSource[] schemaInputSources, String schemaLanguage) { + this.schemaInputSources = schemaInputSources; + this.schemaLanguage = schemaLanguage; + transformerFactory = TransformerFactory.newInstance(); + parserFactory = SAXParserFactory.newInstance(); + parserFactory.setNamespaceAware(true); + parserFactory.setValidating(true); + } + + public SAXParseException[] validate(Source source) throws IOException { + SAXParser parser = createSAXParser(); + ValidationErrorHandler errorHandler = new ValidationErrorHandler(); + try { + if (source instanceof SAXSource) { + validateSAXSource((SAXSource) source, parser, errorHandler); + } + else if (source instanceof StreamSource) { + validateStreamSource((StreamSource) source, parser, errorHandler); + } + else if (source instanceof DOMSource) { + validateDOMSource((DOMSource) source, parser, errorHandler); + } + else { + throw new IllegalArgumentException("Source [" + source.getClass().getName() + + "] is neither SAXSource, DOMSource, nor StreamSource"); + } + return errorHandler.getErrors(); + } + catch (SAXException ex) { + throw new XmlValidationException("Could not validate source: " + ex.getMessage(), ex); + } + } + + private void validateDOMSource(DOMSource domSource, SAXParser parser, ValidationErrorHandler errorHandler) + throws IOException, SAXException { + try { + // Sadly, JAXP 1.0 DOM doesn't implement DOM level 3, so we cannot use Document.normalizeDocument() + // Instead, we write the Document to a Stream, and validate that + Transformer transformer = transformerFactory.newTransformer(); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + transformer.transform(domSource, new StreamResult(outputStream)); + ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); + validateStreamSource(new StreamSource(inputStream), parser, errorHandler); + } + catch (TransformerException ex) { + throw new XmlValidationException("Could not validate DOM source: " + ex.getMessage(), ex); + } + + } + + private void validateStreamSource(StreamSource streamSource, + SAXParser parser, + ValidationErrorHandler errorHandler) throws SAXException, IOException { + if (streamSource.getInputStream() != null) { + parser.parse(streamSource.getInputStream(), errorHandler); + } + else if (streamSource.getReader() != null) { + parser.parse(new InputSource(streamSource.getReader()), errorHandler); + } + else { + throw new IllegalArgumentException("StreamSource contains neither InputStream nor Reader"); + } + } + + private void validateSAXSource(SAXSource source, SAXParser parser, ValidationErrorHandler errorHandler) + throws SAXException, IOException { + parser.parse(source.getInputSource(), errorHandler); + } + + private SAXParser createSAXParser() { + try { + SAXParser parser = parserFactory.newSAXParser(); + parser.setProperty(SCHEMA_LANGUAGE, schemaLanguage); + parser.setProperty(SCHEMA_SOURCE, schemaInputSources); + return parser; + } + catch (ParserConfigurationException ex) { + throw new XmlValidationException("Could not create SAXParser: " + ex.getMessage(), ex); + } + catch (SAXException ex) { + throw new XmlValidationException("Could not create SAXParser: " + ex.getMessage(), ex); + } + } + } + + /** + * DefaultHandler extension that stores errors and fatal errors in a list. + */ + private static class ValidationErrorHandler extends DefaultHandler { + + private List errors = new ArrayList(); + + private SAXParseException[] getErrors() { + return (SAXParseException[]) errors.toArray(new SAXParseException[errors.size()]); + } + + public void warning(SAXParseException ex) throws SAXException { + } + + public void error(SAXParseException ex) throws SAXException { + errors.add(ex); + } + + public void fatalError(SAXParseException ex) throws SAXException { + errors.add(ex); + } + } +} diff --git a/xml/src/main/java/org/springframework/xml/validation/Jaxp13ValidatorFactory.java b/xml/src/main/java/org/springframework/xml/validation/Jaxp13ValidatorFactory.java new file mode 100644 index 00000000..4b4f0191 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/validation/Jaxp13ValidatorFactory.java @@ -0,0 +1,91 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.validation; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import javax.xml.transform.Source; +import javax.xml.validation.Schema; + +import org.springframework.core.io.Resource; +import org.xml.sax.ErrorHandler; +import org.xml.sax.SAXException; +import org.xml.sax.SAXParseException; + +/** + * Internal class that uses JAXP 1.0 features to create XmlValidator instances. + * + * @author Arjen Poutsma + */ +abstract class Jaxp13ValidatorFactory { + + static XmlValidator createValidator(Resource[] resources, String schemaLanguage) throws IOException { + try { + Schema schema = SchemaLoaderUtils.loadSchema(resources, schemaLanguage); + return new Jaxp13Validator(schema); + } + catch (SAXException ex) { + throw new XmlValidationException("Could not create Schema: " + ex.getMessage(), ex); + } + } + + private static class Jaxp13Validator implements XmlValidator { + + private Schema schema; + + public Jaxp13Validator(Schema schema) { + this.schema = schema; + } + + public SAXParseException[] validate(Source source) throws IOException { + javax.xml.validation.Validator validator = schema.newValidator(); + ValidationErrorHandler errorHandler = new ValidationErrorHandler(); + validator.setErrorHandler(errorHandler); + try { + validator.validate(source); + return errorHandler.getErrors(); + } + catch (SAXException ex) { + throw new XmlValidationException("Could not validate source: " + ex.getMessage(), ex); + } + } + } + + /** + * ErrorHandler implementation that stores errors and fatal errors in a list. + */ + private static class ValidationErrorHandler implements ErrorHandler { + + private List errors = new ArrayList(); + + private SAXParseException[] getErrors() { + return (SAXParseException[]) errors.toArray(new SAXParseException[errors.size()]); + } + + public void warning(SAXParseException ex) throws SAXException { + } + + public void error(SAXParseException ex) throws SAXException { + errors.add(ex); + } + + public void fatalError(SAXParseException ex) throws SAXException { + errors.add(ex); + } + } +} diff --git a/xml/src/main/java/org/springframework/xml/validation/SchemaLoaderUtils.java b/xml/src/main/java/org/springframework/xml/validation/SchemaLoaderUtils.java new file mode 100644 index 00000000..9b2d86f0 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/validation/SchemaLoaderUtils.java @@ -0,0 +1,99 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.validation; + +import java.io.IOException; +import java.io.InputStream; +import javax.xml.transform.stream.StreamSource; +import javax.xml.validation.Schema; +import javax.xml.validation.SchemaFactory; + +import org.springframework.core.io.Resource; +import org.springframework.util.Assert; +import org.xml.sax.SAXException; + +/** + * Convenient utility methods for loading of javax.xml.validation.Schema objects, performing standard + * handling of input streams. + * + * @author Arjen Poutsma + */ +public abstract class SchemaLoaderUtils { + + /** + * Load schema from the given resource. + * + * @param resource the resource to load from + * @param schemaLanguage the language of the schema. Can be XMLConstants.W3C_XML_SCHEMA_NS_URI or + * XMLConstants.RELAXNG_NS_URI. + * @throws IOException if loading failed + * @throws SAXException if loading failed + * @see javax.xml.XMLConstants#W3C_XML_SCHEMA_NS_URI + * @see javax.xml.XMLConstants#RELAXNG_NS_URI + */ + public static Schema loadSchema(Resource resource, String schemaLanguage) throws IOException, SAXException { + return loadSchema(new Resource[]{resource}, schemaLanguage); + } + + /** + * Load schema from the given resource. + * + * @param resources the resources to load from + * @param schemaLanguage the language of the schema. Can be XMLConstants.W3C_XML_SCHEMA_NS_URI or + * XMLConstants.RELAXNG_NS_URI. + * @throws IOException if loading failed + * @throws SAXException if loading failed + * @see javax.xml.XMLConstants#W3C_XML_SCHEMA_NS_URI + * @see javax.xml.XMLConstants#RELAXNG_NS_URI + */ + public static Schema loadSchema(Resource[] resources, String schemaLanguage) throws IOException, SAXException { + Assert.notEmpty(resources, "No resources given"); + Assert.hasLength(schemaLanguage, "No schema language provided"); + StreamSource[] schemaSources = new StreamSource[resources.length]; + try { + for (int i = 0; i < resources.length; i++) { + Assert.notNull(resources[i], "Resource is null"); + Assert.isTrue(resources[i].exists(), "Resource " + resources[i] + " does not exist"); + schemaSources[i] = new StreamSource(resources[i].getInputStream(), getSystemId(resources[i])); + } + SchemaFactory schemaFactory = SchemaFactory.newInstance(schemaLanguage); + return schemaFactory.newSchema(schemaSources); + } + finally { + for (int i = 0; i < schemaSources.length; i++) { + if (schemaSources[i] != null) { + InputStream inputStream = schemaSources[i].getInputStream(); + if (inputStream != null) { + inputStream.close(); + } + } + } + } + } + + /** + * Retrieves the URL from the given resource as System ID. Returns null if it cannot be openened. + */ + public static String getSystemId(Resource resource) { + try { + return resource.getURL().toString(); + } + catch (IOException e) { + return null; + } + } +} \ No newline at end of file diff --git a/xml/src/main/java/org/springframework/xml/validation/XmlValidationException.java b/xml/src/main/java/org/springframework/xml/validation/XmlValidationException.java new file mode 100644 index 00000000..9280f5e8 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/validation/XmlValidationException.java @@ -0,0 +1,35 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.validation; + +import org.springframework.xml.XmlException; + +/** + * Expection thrown when a validation error occurs + * + * @author Arjen Poutsma + */ +public class XmlValidationException extends XmlException { + + public XmlValidationException(String s) { + super(s); + } + + public XmlValidationException(String s, Throwable throwable) { + super(s, throwable); + } +} diff --git a/xml/src/main/java/org/springframework/xml/validation/XmlValidator.java b/xml/src/main/java/org/springframework/xml/validation/XmlValidator.java new file mode 100644 index 00000000..5201fa3f --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/validation/XmlValidator.java @@ -0,0 +1,47 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.validation; + +import java.io.IOException; + +import javax.xml.transform.Source; + +import org.xml.sax.SAXParseException; + +/** + * Simple processor that validates a given Source. Can be created via the + * XmlValidatorFactory. + *

    + * XmlValidator instances are designed to be thread safe. + * + * @author Arjen Poutsma + * @see XmlValidatorFactory#createValidator(org.springframework.core.io.Resource, String) + */ +public interface XmlValidator { + + /** + * Validates the given Source, and returns an array of SAXParseExceptions as result. The + * array will be empty if no validation errors are found. + * + * @param source the input document + * @return an array of SAXParseExceptions + * @throws IOException if the source cannot be read + * @throws XmlValidationException if the source cannot be validated + */ + SAXParseException[] validate(Source source) throws IOException; + +} diff --git a/xml/src/main/java/org/springframework/xml/validation/XmlValidatorFactory.java b/xml/src/main/java/org/springframework/xml/validation/XmlValidatorFactory.java new file mode 100644 index 00000000..4921bbca --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/validation/XmlValidatorFactory.java @@ -0,0 +1,104 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.validation; + +import java.io.IOException; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.core.io.Resource; +import org.springframework.util.Assert; +import org.springframework.xml.JaxpVersion; + +/** + * Factory for XmlValidators, being aware of JAXP 1.3 XmlValidators, and JAXP 1.0 parsing + * capababilities. Mainly for internal use within the framework. + *

    + * The goal of this class is to avoid runtime dependencies on JAXP 1.3 by using the best validation implementation that + * is available. Prefers JAXP 1.3 XmlValidator implementations to a custom, SAX-based implementation. + * + * @author Arjen Poutsma + * @see XmlValidator + */ +public abstract class XmlValidatorFactory { + + private static final Log logger = LogFactory.getLog(XmlValidatorFactory.class); + + /** + * Constant that defines a W3C XML Schema. + */ + public static final String SCHEMA_W3C_XML = "http://www.w3.org/2001/XMLSchema"; + + /** + * Constant that defines a RELAX NG Schema. + */ + public static final String SCHEMA_RELAX_NG = "http://relaxng.org/ns/structure/1.0"; + + /** + * Create a XmlValidator with the given schema resource and schema language type. The schema language + * must be one of the SCHEMA_XXX constants. + * + * @param schemaResource a resource that locates the schema to validate against + * @param schemaLanguage the language of the schema + * @return a validator + * @throws IOException if the schema resource cannot be read + * @throws IllegalArgumentException if the schema language is not supported + * @throws IllegalStateException if JAXP 1.0 cannot be located + * @throws XmlValidationException if a XmlValidator cannot be created + * @see #SCHEMA_RELAX_NG + * @see #SCHEMA_W3C_XML + */ + public static XmlValidator createValidator(Resource schemaResource, String schemaLanguage) throws IOException { + return createValidator(new Resource[]{schemaResource}, schemaLanguage); + } + + /** + * Create a XmlValidator with the given schema resources and schema language type. The schema language + * must be one of the SCHEMA_XXX constants. + * + * @param schemaResources an array of resource that locate the schemas to validate against + * @param schemaLanguage the language of the schemas + * @return a validator + * @throws IOException if the schema resource cannot be read + * @throws IllegalArgumentException if the schema language is not supported + * @throws IllegalStateException if JAXP 1.0 cannot be located + * @throws XmlValidationException if a XmlValidator cannot be created + * @see #SCHEMA_RELAX_NG + * @see #SCHEMA_W3C_XML + */ + public static XmlValidator createValidator(Resource[] schemaResources, String schemaLanguage) throws IOException { + Assert.notEmpty(schemaResources, "No resources given"); + Assert.hasLength(schemaLanguage, "No schema language provided"); + Assert.isTrue(SCHEMA_W3C_XML.equals(schemaLanguage) || SCHEMA_RELAX_NG.equals(schemaLanguage), + "Invalid schema language: " + schemaLanguage); + for (int i = 0; i < schemaResources.length; i++) { + Assert.isTrue(schemaResources[i].exists(), "schema [" + schemaResources + "] does not exist"); + } + if (JaxpVersion.getJaxpVersion() >= JaxpVersion.JAXP_13) { + logger.debug("Creating JAXP 1.3 XmlValidator"); + return Jaxp13ValidatorFactory.createValidator(schemaResources, schemaLanguage); + } + else if (JaxpVersion.getJaxpVersion() >= JaxpVersion.JAXP_10) { + logger.debug("Creating JAXP 1.0 XmlValidator"); + return Jaxp10ValidatorFactory.createValidator(schemaResources, schemaLanguage); + } + else { + throw new IllegalStateException("Could not locate JAXP 1.0 or higher."); + } + } + +} diff --git a/xml/src/main/java/org/springframework/xml/validation/package.html b/xml/src/main/java/org/springframework/xml/validation/package.html new file mode 100644 index 00000000..07ed2cff --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/validation/package.html @@ -0,0 +1,5 @@ + + +Provides classes for XML validation in JAXP 1.0 and JAXP 1.3. Mostly for internal use by the framework. + + diff --git a/xml/src/main/java/org/springframework/xml/xpath/JaxenXPathExpressionFactory.java b/xml/src/main/java/org/springframework/xml/xpath/JaxenXPathExpressionFactory.java new file mode 100644 index 00000000..ad8bf0f2 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/xpath/JaxenXPathExpressionFactory.java @@ -0,0 +1,131 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.xpath; + +import java.util.List; +import java.util.Map; + +import org.jaxen.JaxenException; +import org.jaxen.SimpleNamespaceContext; +import org.jaxen.XPath; +import org.jaxen.dom.DOMXPath; +import org.w3c.dom.Node; + +/** + * Jaxen-specific factory for creating XPathExpressions. + * + * @author Arjen Poutsma + * @see #createXPathExpression(String) + */ +abstract class JaxenXPathExpressionFactory { + + /** + * Creates a Jaxen XPathExpression from the given string expression. + * + * @param expression the XPath expression + * @return the compiled XPathExpression + * @throws XPathParseException when the given expression cannot be parsed + */ + static XPathExpression createXPathExpression(String expression) { + try { + XPath xpath = new DOMXPath(expression); + return new JaxenXpathExpression(xpath); + } + catch (JaxenException ex) { + throw new org.springframework.xml.xpath.XPathParseException( + "Could not compile [" + expression + "] to a XPathExpression: " + ex.getMessage(), ex); + } + } + + /** + * Creates a Jaxen XPathExpression from the given string expression and prefixes. + * + * @param expression the XPath expression + * @param namespaces the namespaces + * @return the compiled XPathExpression + * @throws XPathParseException when the given expression cannot be parsed + */ + public static XPathExpression createXPathExpression(String expression, Map namespaces) { + try { + XPath xpath = new DOMXPath(expression); + xpath.setNamespaceContext(new SimpleNamespaceContext(namespaces)); + return new JaxenXpathExpression(xpath); + } + catch (JaxenException ex) { + throw new org.springframework.xml.xpath.XPathParseException( + "Could not compile [" + expression + "] to a XPathExpression: " + ex.getMessage(), ex); + } + } + + /** + * Jaxen implementation of the XPathExpression interface. + */ + private static class JaxenXpathExpression implements XPathExpression { + + private XPath xpath; + + private JaxenXpathExpression(XPath xpath) { + this.xpath = xpath; + } + + public Node evaluateAsNode(Node node) { + try { + return (Node) xpath.selectSingleNode(node); + } + catch (JaxenException ex) { + throw new XPathException("Could not evaluate XPath expression [" + xpath + "] :" + ex.getMessage(), ex); + } + } + + public boolean evaluateAsBoolean(Node node) { + try { + return xpath.booleanValueOf(node); + } + catch (JaxenException ex) { + throw new XPathException("Could not evaluate XPath expression [" + xpath + "] :" + ex.getMessage(), ex); + } + } + + public double evaluateAsNumber(Node node) { + try { + return xpath.numberValueOf(node).doubleValue(); + } + catch (JaxenException ex) { + throw new XPathException("Could not evaluate XPath expression [" + xpath + "] :" + ex.getMessage(), ex); + } + } + + public String evaluateAsString(Node node) { + try { + return xpath.stringValueOf(node); + } + catch (JaxenException ex) { + throw new XPathException("Could not evaluate XPath expression [" + xpath + "] :" + ex.getMessage(), ex); + } + } + + public Node[] evaluateAsNodes(Node node) { + try { + List result = xpath.selectNodes(node); + return (Node[]) result.toArray(new Node[result.size()]); + } + catch (JaxenException ex) { + throw new XPathException("Could not evaluate XPath expression [" + xpath + "] :" + ex.getMessage(), ex); + } + } + } +} diff --git a/xml/src/main/java/org/springframework/xml/xpath/Jaxp13XPathExpressionFactory.java b/xml/src/main/java/org/springframework/xml/xpath/Jaxp13XPathExpressionFactory.java new file mode 100644 index 00000000..0fa35e10 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/xpath/Jaxp13XPathExpressionFactory.java @@ -0,0 +1,140 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.xpath; + +import java.util.Map; + +import javax.xml.namespace.QName; +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathConstants; +import javax.xml.xpath.XPathExpressionException; +import javax.xml.xpath.XPathFactory; + +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import org.springframework.xml.namespace.SimpleNamespaceContext; + +/** + * JAXP 1.3-specific factory creating XPathExpressions. + * + * @author Arjen Poutsma + * @see #createXPathExpression(String) + */ +abstract class Jaxp13XPathExpressionFactory { + + private static XPathFactory xpathFactory; + + static { + xpathFactory = XPathFactory.newInstance(); + } + + /** + * Creates a JAXP 1.3 XPathExpression from the given string expression. + * + * @param expression the XPath expression + * @return the compiled XPathExpression + * @throws XPathParseException when the given expression cannot be parsed + */ + static XPathExpression createXPathExpression(String expression) { + try { + XPath xpath = xpathFactory.newXPath(); + javax.xml.xpath.XPathExpression xpathExpression = xpath.compile(expression); + return new Jaxp13XPathExpression(xpathExpression); + } + catch (XPathExpressionException ex) { + throw new org.springframework.xml.xpath.XPathParseException( + "Could not compile [" + expression + "] to a XPathExpression: " + ex.getMessage(), ex); + } + } + + /** + * Creates a JAXP 1.3 XPathExpression from the given string expression and namespaces. + * + * @param expression the XPath expression + * @param namespaces the namespaces + * @return the compiled XPathExpression + * @throws XPathParseException when the given expression cannot be parsed + */ + public static XPathExpression createXPathExpression(String expression, Map namespaces) { + try { + XPath xpath = xpathFactory.newXPath(); + SimpleNamespaceContext namespaceContext = new SimpleNamespaceContext(); + namespaceContext.setBindings(namespaces); + xpath.setNamespaceContext(namespaceContext); + javax.xml.xpath.XPathExpression xpathExpression = xpath.compile(expression); + return new Jaxp13XPathExpression(xpathExpression); + } + catch (XPathExpressionException ex) { + throw new org.springframework.xml.xpath.XPathParseException( + "Could not compile [" + expression + "] to a XPathExpression: " + ex.getMessage(), ex); + } + } + + /** + * JAXP 1.3 implementation of the XPathExpression interface. + */ + private static class Jaxp13XPathExpression implements XPathExpression { + + javax.xml.xpath.XPathExpression xpathExpression; + + private Jaxp13XPathExpression(javax.xml.xpath.XPathExpression xpathExpression) { + this.xpathExpression = xpathExpression; + } + + public String evaluateAsString(Node node) { + return (String) evaluate(node, XPathConstants.STRING); + } + + public Node[] evaluateAsNodes(Node node) { + NodeList nodeList = (NodeList) evaluate(node, XPathConstants.NODESET); + return toNodeArray(nodeList); + } + + private Object evaluate(Node node, QName returnType) { + try { + return xpathExpression.evaluate(node, returnType); + } + catch (XPathExpressionException ex) { + throw new XPathException("Could not evaluate XPath expression:" + ex.getMessage(), ex); + } + } + + private Node[] toNodeArray(NodeList nodeList) { + Node[] result = new Node[nodeList.getLength()]; + for (int i = 0; i < nodeList.getLength(); i++) { + result[i] = nodeList.item(i); + } + return result; + } + + public double evaluateAsNumber(Node node) { + Double result = (Double) evaluate(node, XPathConstants.NUMBER); + return result.doubleValue(); + } + + public boolean evaluateAsBoolean(Node node) { + Boolean result = (Boolean) evaluate(node, XPathConstants.BOOLEAN); + return result.booleanValue(); + } + + public Node evaluateAsNode(Node node) { + return (Node) evaluate(node, XPathConstants.NODE); + } + } + +} diff --git a/xml/src/main/java/org/springframework/xml/xpath/XPathException.java b/xml/src/main/java/org/springframework/xml/xpath/XPathException.java new file mode 100644 index 00000000..d9f2f673 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/xpath/XPathException.java @@ -0,0 +1,46 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.xpath; + +import org.springframework.xml.XmlException; + +/** + * Exception thrown when an error occurs during XPath processing. + * + * @author Arjen Poutsma + */ +public class XPathException extends XmlException { + + /** + * Constructs a new instance of the XPathException with the specific detail message. + * + * @param message the detail message + */ + public XPathException(String message) { + super(message); + } + + /** + * Constructs a new instance of the XPathException with the specific detail message and exception. + * + * @param message the detail message + * @param throwable the wrapped exception + */ + public XPathException(String message, Throwable throwable) { + super(message, throwable); + } +} diff --git a/xml/src/main/java/org/springframework/xml/xpath/XPathExpression.java b/xml/src/main/java/org/springframework/xml/xpath/XPathExpression.java new file mode 100644 index 00000000..4ad7cb73 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/xpath/XPathExpression.java @@ -0,0 +1,75 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.xpath; + +import org.w3c.dom.Node; + +/** + * Defines the contract for a precompiled XPath expression. Concrete instances can be obtained through the + * XPathExpressionFactory. + * + * @author Arjen Poutsma + * @see XPathExpressionFactory + */ +public interface XPathExpression { + + /** + * Evaluates the given expression as a Node. Returns the evaluation of the expression, or + * null if it is invalid. + * + * @param node the starting point + * @return the result of the evaluation + */ + Node evaluateAsNode(Node node); + + /** + * Evaluates the given expression as a boolean. Returns the boolean evaluation of the expression, or + * false if it is invalid. + * + * @param node the starting point + * @return the result of the evaluation + */ + boolean evaluateAsBoolean(Node node); + + /** + * Evaluates the given expression as a number (double). Returns the numeric evaluation of the + * expression, or Double.NaN if it is invalid. + * + * @param node the starting point + * @return the result of the evaluation + * @see Double#NaN + */ + double evaluateAsNumber(Node node); + + /** + * Evaluates the given expression, and returns the first Node that conforms to it. Returns + * null if no result could be found. + * + * @param node the starting point + * @return the first Node that is selected by the expression + */ + String evaluateAsString(Node node); + + /** + * Evaluates the given expression, and returns all Nodes that conform to it. Returns and empty array if + * no result could be found. + * + * @param node the starting point + * @return the Nodes that are selected by the expression + */ + Node[] evaluateAsNodes(Node node); +} diff --git a/xml/src/main/java/org/springframework/xml/xpath/XPathExpressionFactory.java b/xml/src/main/java/org/springframework/xml/xpath/XPathExpressionFactory.java new file mode 100644 index 00000000..837393ef --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/xpath/XPathExpressionFactory.java @@ -0,0 +1,117 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.xpath; + +import java.util.Collections; +import java.util.Map; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.util.Assert; +import org.springframework.xml.JaxpVersion; + +/** + * Factory for compiled XPathExpressions, being aware of JAXP 1.3+ XPath functionality, Jaxen, and Xalan. + * Mainly for internal use of the framework. + *

    + * The goal of this class is to avoid runtime dependencies a specific XPath engine, simply using the best XPath + * implementation that is available. Prefers JAXP 1.3+ XPath implementations to Jaxen, and falls back to Xalan. + * + * @author Arjen Poutsma + * @see XPathExpression + */ +public abstract class XPathExpressionFactory { + + private static final Log logger = LogFactory.getLog(XPathExpressionFactory.class); + + private static final String XALAN_XPATH_CLASS_NAME = "org.apache.xpath.XPath"; + + private static boolean xalanXPathAvailable; + + private static final String JAXEN_CLASS_NAME = "org.jaxen.XPath"; + + private static boolean jaxenAvailable; + + static { + // Check whether JAXP 1.3, Resin, Jaxen, or Xalan are available + if (JaxpVersion.getJaxpVersion() >= JaxpVersion.JAXP_13) { + logger.info("JAXP 1.3 available"); + } + try { + Class.forName(JAXEN_CLASS_NAME); + jaxenAvailable = true; + logger.info("Jaxen available"); + } + catch (ClassNotFoundException ex) { + jaxenAvailable = false; + } + try { + Class.forName(XALAN_XPATH_CLASS_NAME); + xalanXPathAvailable = true; + logger.info("Xalan available"); + } + catch (ClassNotFoundException ex) { + xalanXPathAvailable = false; + } + } + + /** + * Create a compiled XPath expression using the given string. + * + * @param expression the XPath expression + * @return the compiled XPath expression + * @throws IllegalStateException if neither JAXP 1.3+, Jaxen, or Xalan are available + * @throws XPathParseException if the given expression cannot be parsed + */ + public static XPathExpression createXPathExpression(String expression) + throws IllegalStateException, XPathParseException { + return createXPathExpression(expression, Collections.EMPTY_MAP); + } + + /** + * Create a compiled XPath expression using the given string and namespaces. The namespace map should consist of + * string prefixes mapped to string namespaces. + * + * @param expression the XPath expression + * @param namespaces a map that binds string prefixes to string namespaces + * @return the compiled XPath expression + * @throws IllegalStateException if neither JAXP 1.3+, Jaxen, or Xalan are available + * @throws XPathParseException if the given expression cannot be parsed + */ + public static XPathExpression createXPathExpression(String expression, Map namespaces) + throws IllegalStateException, XPathParseException { + Assert.hasLength(expression, "expression is empty"); + if (JaxpVersion.getJaxpVersion() >= JaxpVersion.JAXP_13) { + logger.debug("Creating [javax.xml.xpath.XPathExpression]"); + return Jaxp13XPathExpressionFactory.createXPathExpression(expression, namespaces); + } + else if (jaxenAvailable) { + logger.debug("Creating [org.jaxen.XPath]"); + return JaxenXPathExpressionFactory.createXPathExpression(expression, namespaces); + } + else if (xalanXPathAvailable) { + logger.debug("Creating [org.apache.xpath.XPath]"); + return XalanXPathExpressionFactory.createXPathExpression(expression, namespaces); + } + else { + throw new IllegalStateException( + "Could not create XPathExpression: could not locate JAXP 1.3, Resin, Xalan on the class path"); + } + } + + +} diff --git a/xml/src/main/java/org/springframework/xml/xpath/XPathParseException.java b/xml/src/main/java/org/springframework/xml/xpath/XPathParseException.java new file mode 100644 index 00000000..cbe1cebe --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/xpath/XPathParseException.java @@ -0,0 +1,45 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.xpath; + +/** + * Exception throws when a XPath expression cannot be parsed. + * + * @author Arjen Poutsma + */ +public class XPathParseException extends XPathException { + + /** + * Constructs a new instance of the XPathParseException with the specific detail message. + * + * @param message the detail message + */ + public XPathParseException(String message) { + super(message); + } + + /** + * Constructs a new instance of the XPathParseException with the specific detail message and + * exception. + * + * @param message the detail message + * @param throwable the wrapped exception + */ + public XPathParseException(String message, Throwable throwable) { + super(message, throwable); + } +} diff --git a/xml/src/main/java/org/springframework/xml/xpath/XalanXPathExpressionFactory.java b/xml/src/main/java/org/springframework/xml/xpath/XalanXPathExpressionFactory.java new file mode 100644 index 00000000..c636f54f --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/xpath/XalanXPathExpressionFactory.java @@ -0,0 +1,173 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.xpath; + +import java.util.Map; + +import javax.xml.transform.TransformerException; + +import org.apache.xml.utils.PrefixResolver; +import org.apache.xpath.XPath; +import org.apache.xpath.XPathContext; +import org.apache.xpath.objects.XObject; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.w3c.dom.traversal.NodeIterator; + +/** + * Xalan-specific factory creating XPathExpressions. + * + * @author Arjen Poutsma + * @see #createXPathExpression(String) + */ +abstract class XalanXPathExpressionFactory { + + /** + * Creates a Xalan XPathExpression from the given string expression. + * + * @param expression the XPath expression + * @return the compiled XPathExpression + * @throws XPathParseException when the given expression cannot be parsed + */ + static XPathExpression createXPathExpression(String expression) { + try { + XPath xpath = new XPath(expression, null, null, XPath.SELECT); + return new XalanXPathExpression(xpath); + } + catch (TransformerException ex) { + throw new org.springframework.xml.xpath.XPathParseException( + "Could not compile [" + expression + "] to a XPathExpression: " + ex.getMessage(), ex); + } + } + + /** + * Creates a Xalan XPathExpression from the given string expression and namespaces. + * + * @param expression the XPath expression + * @return the compiled XPathExpression + * @throws XPathParseException when the given expression cannot be parsed + */ + public static XPathExpression createXPathExpression(String expression, Map namespaces) { + try { + PrefixResolver prefixResolver = new SimplePrefixResolver(namespaces); + XPath xpath = new XPath(expression, null, prefixResolver, XPath.SELECT); + return new XalanXPathExpression(xpath); + } + catch (TransformerException ex) { + throw new org.springframework.xml.xpath.XPathParseException( + "Could not compile [" + expression + "] to a XPathExpression: " + ex.getMessage(), ex); + } + } + + /** + * Xalan implementation of the XPathExpression interface. + */ + private static class XalanXPathExpression implements XPathExpression { + + private XPath xpath; + + private XPathContext context = new XPathContext(); + + private XalanXPathExpression(XPath xpath) { + this.xpath = xpath; + } + + public Node evaluateAsNode(Node node) { + try { + XObject result = xpath.execute(context, node, null); + NodeIterator iterator = result.nodeset(); + return iterator.nextNode(); + } + catch (TransformerException ex) { + throw new XPathException("Could not evaluate XPath expression:" + ex.getMessage(), ex); + } + } + + public boolean evaluateAsBoolean(Node node) { + try { + XObject result = xpath.execute(context, node, null); + return result.bool(); + } + catch (TransformerException ex) { + throw new XPathException("Could not evaluate XPath expression:" + ex.getMessage(), ex); + } + } + + public double evaluateAsNumber(Node node) { + try { + XObject result = xpath.execute(context, node, null); + return result.num(); + } + catch (TransformerException ex) { + throw new XPathException("Could not evaluate XPath expression:" + ex.getMessage(), ex); + } + } + + public String evaluateAsString(Node node) { + try { + XObject result = xpath.execute(context, node, null); + return result.str(); + } + catch (TransformerException ex) { + throw new XPathException("Could not evaluate XPath expression:" + ex.getMessage(), ex); + } + } + + public Node[] evaluateAsNodes(Node node) { + try { + XObject result = xpath.execute(context, node, null); + return toNodeArray(result.nodelist()); + } + catch (TransformerException ex) { + throw new XPathException("Could not evaluate XPath expression:" + ex.getMessage(), ex); + } + } + + private Node[] toNodeArray(NodeList nodeList) { + Node[] result = new Node[nodeList.getLength()]; + for (int i = 0; i < nodeList.getLength(); i++) { + result[i] = nodeList.item(i); + } + return result; + } + } + + private static class SimplePrefixResolver implements PrefixResolver { + + private Map namespaces; + + private SimplePrefixResolver(Map namespaces) { + this.namespaces = namespaces; + } + + public String getNamespaceForPrefix(String prefix) { + return (String) namespaces.get(prefix); + } + + public String getNamespaceForPrefix(String prefix, Node node) { + return (String) namespaces.get(prefix); + } + + public String getBaseIdentifier() { + return null; + } + + public boolean handlesNullPrefixes() { + return false; + } + } +} diff --git a/xml/src/main/java/org/springframework/xml/xpath/package.html b/xml/src/main/java/org/springframework/xml/xpath/package.html new file mode 100644 index 00000000..3dfd1381 --- /dev/null +++ b/xml/src/main/java/org/springframework/xml/xpath/package.html @@ -0,0 +1,5 @@ + + +Provides classes for XPath evaluation using JAXP 1.3, Jaxen, and Xalan. Mostly for internal use by the framework. + + diff --git a/xml/src/test/java/org/springframework/xml/namespace/QNameEditorTest.java b/xml/src/test/java/org/springframework/xml/namespace/QNameEditorTest.java new file mode 100644 index 00000000..b5d962d9 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/namespace/QNameEditorTest.java @@ -0,0 +1,58 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.namespace; + +import javax.xml.namespace.QName; + +import junit.framework.TestCase; + +public class QNameEditorTest extends TestCase { + + private QNameEditor editor; + + protected void setUp() throws Exception { + editor = new QNameEditor(); + } + + public void testNamespaceLocalPartPrefix() throws Exception { + QName qname = new QName("namespace", "localpart", "prefix"); + doTest(qname); + } + + public void testNamespaceLocalPart() throws Exception { + QName qname = new QName("namespace", "localpart"); + doTest(qname); + } + + public void testLocalPart() throws Exception { + QName qname = new QName("localpart"); + doTest(qname); + } + + private void doTest(QName qname) { + editor.setValue(qname); + String text = editor.getAsText(); + assertNotNull("getAsText returns null", text); + editor.setAsText(text); + QName result = (QName) editor.getValue(); + assertNotNull("getValue returns null", result); + assertEquals("Parsed QName local part is not equal to original", qname.getLocalPart(), result.getLocalPart()); + assertEquals("Parsed QName prefix is not equal to original", qname.getPrefix(), result.getPrefix()); + assertEquals("Parsed QName namespace is not equal to original", qname.getNamespaceURI(), + result.getNamespaceURI()); + } +} \ No newline at end of file diff --git a/xml/src/test/java/org/springframework/xml/namespace/QNameUtilsTest.java b/xml/src/test/java/org/springframework/xml/namespace/QNameUtilsTest.java new file mode 100644 index 00000000..57e84320 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/namespace/QNameUtilsTest.java @@ -0,0 +1,105 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.namespace; + +import javax.xml.namespace.QName; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import junit.framework.TestCase; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import org.springframework.util.StringUtils; + +public class QNameUtilsTest extends TestCase { + + public void testValidQNames() { + assertTrue("Namespace QName not validated", QNameUtils.validateQName("{namespace}local")); + assertTrue("No Namespace QName not validated", QNameUtils.validateQName("local")); + } + + public void testInvalidQNames() { + assertFalse("Null QName validated", QNameUtils.validateQName(null)); + assertFalse("Empty QName validated", QNameUtils.validateQName("")); + assertFalse("Invalid QName validated", QNameUtils.validateQName("{namespace}")); + assertFalse("Invalid QName validated", QNameUtils.validateQName("{namespace")); + } + + public void testGetQNameForNodeNoNamespace() throws Exception { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document document = builder.newDocument(); + Element element = document.createElement("localname"); + QName qName = QNameUtils.getQNameForNode(element); + assertNotNull("getQNameForNode returns null", qName); + assertEquals("QName has invalid localname", "localname", qName.getLocalPart()); + assertFalse("Qname has invalid namespace", StringUtils.hasLength(qName.getNamespaceURI())); + assertFalse("Qname has invalid prefix", StringUtils.hasLength(qName.getPrefix())); + + } + + public void testGetQNameForNodeNoPrefix() throws Exception { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document document = builder.newDocument(); + Element element = document.createElementNS("namespace", "localname"); + QName qName = QNameUtils.getQNameForNode(element); + assertNotNull("getQNameForNode returns null", qName); + assertEquals("QName has invalid localname", "localname", qName.getLocalPart()); + assertEquals("Qname has invalid namespace", "namespace", qName.getNamespaceURI()); + assertFalse("Qname has invalid prefix", StringUtils.hasLength(qName.getPrefix())); + } + + public void testGetQNameForNode() throws Exception { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document document = builder.newDocument(); + Element element = document.createElementNS("namespace", "prefix:localname"); + QName qName = QNameUtils.getQNameForNode(element); + assertNotNull("getQNameForNode returns null", qName); + assertEquals("QName has invalid localname", "localname", qName.getLocalPart()); + assertEquals("Qname has invalid namespace", "namespace", qName.getNamespaceURI()); + assertEquals("Qname has invalid prefix", "prefix", qName.getPrefix()); + } + + public void testToQualifiedNamePrefix() throws Exception { + QName qName = new QName("namespace", "localName", "prefix"); + String result = QNameUtils.toQualifiedName(qName); + assertEquals("Invalid result", "prefix:localName", result); + } + + public void testToQualifiedNameNoPrefix() throws Exception { + QName qName = new QName("localName"); + String result = QNameUtils.toQualifiedName(qName); + assertEquals("Invalid result", "localName", result); + } + + public void testToQNamePrefix() throws Exception { + QName result = QNameUtils.toQName("namespace", "prefix:localName"); + assertEquals("invalid namespace", "namespace", result.getNamespaceURI()); + assertEquals("invalid prefix", "prefix", result.getPrefix()); + assertEquals("invalid localname", "localName", result.getLocalPart()); + } + + public void testToQNameNoPrefix() throws Exception { + QName result = QNameUtils.toQName("namespace", "localName"); + assertEquals("invalid namespace", "namespace", result.getNamespaceURI()); + assertEquals("invalid prefix", "", result.getPrefix()); + assertEquals("invalid localname", "localName", result.getLocalPart()); + } +} diff --git a/xml/src/test/java/org/springframework/xml/namespace/SimpleNamespaceContextTest.java b/xml/src/test/java/org/springframework/xml/namespace/SimpleNamespaceContextTest.java new file mode 100644 index 00000000..2c72a62c --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/namespace/SimpleNamespaceContextTest.java @@ -0,0 +1,104 @@ +/* + * Copyright 2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.xml.namespace; + +import java.util.Collections; +import java.util.Iterator; + +import javax.xml.XMLConstants; + +import junit.framework.TestCase; + +public class SimpleNamespaceContextTest extends TestCase { + + private SimpleNamespaceContext context; + + protected void setUp() throws Exception { + context = new SimpleNamespaceContext(); + context.bindNamespaceUri("prefix", "namespaceURI"); + } + + public void testGetNamespaceURI() { + assertEquals("Invalid namespaceURI for default namespace", "", context + .getNamespaceURI(XMLConstants.DEFAULT_NS_PREFIX)); + String defaultNamespaceUri = "defaultNamespace"; + context.bindNamespaceUri(XMLConstants.DEFAULT_NS_PREFIX, defaultNamespaceUri); + assertEquals("Invalid namespaceURI for default namespace", defaultNamespaceUri, context + .getNamespaceURI(XMLConstants.DEFAULT_NS_PREFIX)); + assertEquals("Invalid namespaceURI for bound prefix", "namespaceURI", context.getNamespaceURI("prefix")); + assertEquals("Invalid namespaceURI for unbound prefix", "", context.getNamespaceURI("unbound")); + assertEquals("Invalid namespaceURI for namespace prefix", XMLConstants.XML_NS_URI, context + .getNamespaceURI(XMLConstants.XML_NS_PREFIX)); + assertEquals("Invalid namespaceURI for attribute prefix", XMLConstants.XMLNS_ATTRIBUTE_NS_URI, context + .getNamespaceURI(XMLConstants.XMLNS_ATTRIBUTE)); + + } + + public void testGetPrefix() { + assertEquals("Invalid prefix for default namespace", XMLConstants.DEFAULT_NS_PREFIX, context.getPrefix("")); + assertEquals("Invalid prefix for bound namespace", "prefix", context.getPrefix("namespaceURI")); + assertNull("Invalid prefix for unbound namespace", context.getPrefix("unbound")); + assertEquals("Invalid prefix for namespace", XMLConstants.XML_NS_PREFIX, context + .getPrefix(XMLConstants.XML_NS_URI)); + assertEquals("Invalid prefix for attribute namespace", XMLConstants.XMLNS_ATTRIBUTE, context + .getPrefix(XMLConstants.XMLNS_ATTRIBUTE_NS_URI)); + } + + public void testGetPrefixes() { + assertPrefixes("", XMLConstants.DEFAULT_NS_PREFIX); + assertPrefixes("namespaceURI", "prefix"); + assertFalse("Invalid prefix for unbound namespace", context.getPrefixes("unbound").hasNext()); + assertPrefixes(XMLConstants.XML_NS_URI, XMLConstants.XML_NS_PREFIX); + assertPrefixes(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, XMLConstants.XMLNS_ATTRIBUTE); + } + + public void testMultiplePrefixes() { + context.bindNamespaceUri("prefix1", "namespace"); + context.bindNamespaceUri("prefix2", "namespace"); + Iterator iterator = context.getPrefixes("namespace"); + assertNotNull("getPrefixes returns null", iterator); + assertTrue("iterator is empty", iterator.hasNext()); + String result = (String) iterator.next(); + assertTrue("Invalid prefix", result.equals("prefix1") || result.equals("prefix2")); + assertTrue("iterator is empty", iterator.hasNext()); + result = (String) iterator.next(); + assertTrue("Invalid prefix", result.equals("prefix1") || result.equals("prefix2")); + assertFalse("iterator contains more than two values", iterator.hasNext()); + } + + private void assertPrefixes(String namespaceUri, String prefix) { + Iterator iterator = context.getPrefixes(namespaceUri); + assertNotNull("getPrefixes returns null", iterator); + assertTrue("iterator is empty", iterator.hasNext()); + String result = (String) iterator.next(); + assertEquals("Invalid prefix", prefix, result); + assertFalse("iterator contains multiple values", iterator.hasNext()); + } + + public void testGetBoundPrefixes() throws Exception { + Iterator iterator = context.getBoundPrefixes(); + assertNotNull("getPrefixes returns null", iterator); + assertTrue("iterator is empty", iterator.hasNext()); + String result = (String) iterator.next(); + assertEquals("Invalid prefix", "prefix", result); + assertFalse("iterator contains multiple values", iterator.hasNext()); + } + + public void testSetBindings() throws Exception { + context.setBindings(Collections.singletonMap("prefix", "namespace")); + assertEquals("Invalid namespace uri", "namespace", context.getNamespaceURI("prefix")); + } +} diff --git a/xml/src/test/java/org/springframework/xml/stream/AbstractStaxContentHandlerTestCase.java b/xml/src/test/java/org/springframework/xml/stream/AbstractStaxContentHandlerTestCase.java new file mode 100644 index 00000000..37f4f1e4 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/stream/AbstractStaxContentHandlerTestCase.java @@ -0,0 +1,62 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import java.io.StringReader; +import java.io.StringWriter; +import java.io.Writer; + +import javax.xml.stream.XMLStreamException; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; +import org.xml.sax.helpers.XMLReaderFactory; + +public abstract class AbstractStaxContentHandlerTestCase extends XMLTestCase { + + private static final String XML_CONTENT_HANDLER = + "content"; + + private XMLReader xmlReader; + + protected void setUp() throws Exception { + xmlReader = XMLReaderFactory.createXMLReader(); + } + + public void testContentHandler() throws Exception { + StringWriter stringWriter = new StringWriter(); + StaxContentHandler handler = createStaxContentHandler(stringWriter); + xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", false); + xmlReader.setContentHandler(handler); + xmlReader.parse(new InputSource(new StringReader(XML_CONTENT_HANDLER))); + assertXMLEqual("Invalid result", XML_CONTENT_HANDLER, stringWriter.toString()); + } + + public void testContentHandlerNamespacePrefixes() throws Exception { + StringWriter stringWriter = new StringWriter(); + StaxContentHandler handler = createStaxContentHandler(stringWriter); + xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); + xmlReader.setContentHandler(handler); + xmlReader.parse(new InputSource(new StringReader(XML_CONTENT_HANDLER))); + assertXMLEqual("Invalid result", XML_CONTENT_HANDLER, stringWriter.toString()); + } + + protected abstract StaxContentHandler createStaxContentHandler(Writer writer) throws XMLStreamException; + + +} diff --git a/xml/src/test/java/org/springframework/xml/stream/AbstractStaxXmlReaderTestCase.java b/xml/src/test/java/org/springframework/xml/stream/AbstractStaxXmlReaderTestCase.java new file mode 100644 index 00000000..82e20089 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/stream/AbstractStaxXmlReaderTestCase.java @@ -0,0 +1,202 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; +import java.util.Arrays; + +import javax.xml.stream.XMLStreamException; + +import junit.framework.TestCase; +import org.easymock.AbstractMatcher; +import org.easymock.MockControl; +import org.xml.sax.Attributes; +import org.xml.sax.ContentHandler; +import org.xml.sax.DTDHandler; +import org.xml.sax.InputSource; +import org.xml.sax.Locator; +import org.xml.sax.SAXException; +import org.xml.sax.XMLReader; +import org.xml.sax.helpers.XMLReaderFactory; + +public abstract class AbstractStaxXmlReaderTestCase extends TestCase { + + private static final String XML_DTD_HANDLER = + ""; + + private static final String XML_CONTENT_HANDLER = + "content"; + + private static final String XML_CONTENT_HANDLER_ATTS = ""; + + private XMLReader reader; + + protected void setUp() throws Exception { + reader = XMLReaderFactory.createXMLReader(); + reader.setFeature("http://xml.org/sax/features/namespaces", true); + reader.setFeature("http://xml.org/sax/features/namespace-prefixes", false); + } + + public void testContentHandler() throws SAXException, IOException, XMLStreamException { + // record the callbacks by parsing the XML with a regular SAX parser + MockControl control = MockControl.createStrictControl(ContentHandler.class); + control.setDefaultMatcher(new SaxArgumentMatcher()); + ContentHandler mock = (ContentHandler) control.getMock(); + reader.setContentHandler(mock); + reader.parse(new InputSource(new StringReader(XML_CONTENT_HANDLER))); + control.replay(); + StaxXmlReader staxXmlReader = createStaxXmlReader(new StringReader(XML_CONTENT_HANDLER)); + staxXmlReader.setContentHandler(mock); + staxXmlReader.parse(new InputSource()); + control.verify(); + } + + public void testContentHandlerAttributes() throws SAXException, IOException, XMLStreamException { + MockControl control = MockControl.createStrictControl(ContentHandler.class); + control.setDefaultMatcher(new SaxArgumentMatcher()); + ContentHandler mock = (ContentHandler) control.getMock(); + reader.setContentHandler(mock); + reader.parse(new InputSource(new StringReader(XML_CONTENT_HANDLER_ATTS))); + control.replay(); + StaxXmlReader staxXmlReader = createStaxXmlReader(new StringReader(XML_CONTENT_HANDLER_ATTS)); + staxXmlReader.setContentHandler(mock); + staxXmlReader.parse(new InputSource()); + control.verify(); + } + + public void testDtdHandler() throws IOException, SAXException, XMLStreamException { + // record the callbacks by parsing the XML with a regular SAX parser + MockControl control = MockControl.createStrictControl(DTDHandler.class); + control.setDefaultMatcher(new SaxArgumentMatcher()); + DTDHandler mock = (DTDHandler) control.getMock(); + reader.setDTDHandler(mock); + reader.parse(new InputSource(new StringReader(XML_DTD_HANDLER))); + control.replay(); + StaxXmlReader staxXmlReader = createStaxXmlReader(new StringReader(XML_DTD_HANDLER)); + staxXmlReader.setDTDHandler(mock); + staxXmlReader.parse(new InputSource()); + control.verify(); + } + + protected abstract StaxXmlReader createStaxXmlReader(Reader reader) throws XMLStreamException; + + /** + * Easymock ArgumentMatcher implementation that matches SAX arguments. + */ + private static class SaxArgumentMatcher extends AbstractMatcher { + + public boolean matches(Object[] expected, Object[] actual) { + if (expected == actual) { + return true; + } + if (expected == null || actual == null) { + return false; + } + if (expected.length != actual.length) { + throw new IllegalArgumentException("Expected and actual arguments must have the same size"); + } + if (expected.length == 3 && (expected[0] instanceof char[]) && (expected[1] instanceof Integer) && + (expected[2] instanceof Integer)) { + // handling of the character(char[], int, int) methods + String expectedString = new String((char[]) expected[0], ((Integer) expected[1]).intValue(), + ((Integer) expected[2]).intValue()); + String actualString = new String((char[]) actual[0], ((Integer) actual[1]).intValue(), + ((Integer) actual[2]).intValue()); + return (expectedString.equals(actualString)); + } + else if (expected.length == 1 && (expected[0] instanceof Locator)) { + return true; + } + else { + return super.matches(expected, actual); + } + } + + protected boolean argumentMatches(Object expected, Object actual) { + if (expected instanceof char[]) { + return Arrays.equals((char[]) expected, (char[]) actual); + } + else if (expected instanceof Attributes) { + Attributes expectedAttributes = (Attributes) expected; + Attributes actualAttributes = (Attributes) actual; + if (expectedAttributes.getLength() != actualAttributes.getLength()) { + return false; + } + for (int i = 0; i < expectedAttributes.getLength(); i++) { + if (!expectedAttributes.getURI(i).equals(actualAttributes.getURI(i)) || + !expectedAttributes.getQName(i).equals(actualAttributes.getQName(i)) || + !expectedAttributes.getType(i).equals(actualAttributes.getType(i)) || + !expectedAttributes.getValue(i).equals(actualAttributes.getValue(i))) { + return false; + } + } + return true; + } + else if (expected instanceof Locator) { + Locator expectedLocator = (Locator) expected; + Locator actualLocator = (Locator) actual; + return (expectedLocator.getColumnNumber() == actualLocator.getColumnNumber() && + expectedLocator.getLineNumber() == actualLocator.getLineNumber()); + } + return super.argumentMatches(expected, actual); + } + + protected String argumentToString(Object argument) { + if (argument instanceof char[]) { + char[] array = (char[]) argument; + StringBuffer buffer = new StringBuffer(); + for (int i = 0; i < array.length; i++) { + buffer.append(array[i]); + } + return buffer.toString(); + } + else if (argument instanceof Attributes) { + Attributes attributes = (Attributes) argument; + StringBuffer buffer = new StringBuffer("["); + for (int i = 0; i < attributes.getLength(); i++) { + buffer.append('{'); + buffer.append(attributes.getURI(i)); + buffer.append('}'); + buffer.append(attributes.getQName(i)); + buffer.append('='); + buffer.append(attributes.getValue(i)); + if (i < attributes.getLength() - 1) { + buffer.append(", "); + } + } + buffer.append(']'); + return buffer.toString(); + } + else if (argument instanceof Locator) { + Locator locator = (Locator) argument; + StringBuffer buffer = new StringBuffer("["); + buffer.append(locator.getLineNumber()); + buffer.append(','); + buffer.append(locator.getColumnNumber()); + buffer.append(']'); + return buffer.toString(); + } + else { + return super.argumentToString(argument); + } + } + } + + +} diff --git a/xml/src/test/java/org/springframework/xml/stream/StaxEventContentHandlerTest.java b/xml/src/test/java/org/springframework/xml/stream/StaxEventContentHandlerTest.java new file mode 100644 index 00000000..3b5fa65b --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/stream/StaxEventContentHandlerTest.java @@ -0,0 +1,30 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import java.io.Writer; + +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamException; + +public class StaxEventContentHandlerTest extends AbstractStaxContentHandlerTestCase { + + protected StaxContentHandler createStaxContentHandler(Writer writer) throws XMLStreamException { + XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); + return new StaxEventContentHandler(outputFactory.createXMLEventWriter(writer)); + } +} \ No newline at end of file diff --git a/xml/src/test/java/org/springframework/xml/stream/StaxEventXmlReaderTest.java b/xml/src/test/java/org/springframework/xml/stream/StaxEventXmlReaderTest.java new file mode 100644 index 00000000..b1e3b033 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/stream/StaxEventXmlReaderTest.java @@ -0,0 +1,31 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import java.io.Reader; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamException; + +public class StaxEventXmlReaderTest extends AbstractStaxXmlReaderTestCase { + + protected StaxXmlReader createStaxXmlReader(Reader reader) throws XMLStreamException { + XMLInputFactory inputFactory = XMLInputFactory.newInstance(); + return new StaxEventXmlReader(inputFactory.createXMLEventReader(reader)); + } +} + diff --git a/xml/src/test/java/org/springframework/xml/stream/StaxStreamContentHandlerTest.java b/xml/src/test/java/org/springframework/xml/stream/StaxStreamContentHandlerTest.java new file mode 100644 index 00000000..b5141b0f --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/stream/StaxStreamContentHandlerTest.java @@ -0,0 +1,30 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import java.io.Writer; + +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamException; + +public class StaxStreamContentHandlerTest extends AbstractStaxContentHandlerTestCase { + + protected StaxContentHandler createStaxContentHandler(Writer writer) throws XMLStreamException { + XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); + return new StaxStreamContentHandler(outputFactory.createXMLStreamWriter(writer)); + } +} \ No newline at end of file diff --git a/xml/src/test/java/org/springframework/xml/stream/StaxStreamXmlReaderTest.java b/xml/src/test/java/org/springframework/xml/stream/StaxStreamXmlReaderTest.java new file mode 100644 index 00000000..5bfa18ca --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/stream/StaxStreamXmlReaderTest.java @@ -0,0 +1,31 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import java.io.Reader; + +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamException; + +public class StaxStreamXmlReaderTest extends AbstractStaxXmlReaderTestCase { + + protected StaxXmlReader createStaxXmlReader(Reader reader) throws XMLStreamException { + XMLInputFactory inputFactory = XMLInputFactory.newInstance(); + return new StaxStreamXmlReader(inputFactory.createXMLStreamReader(reader)); + } + +} diff --git a/xml/src/test/java/org/springframework/xml/stream/XmlEventStreamReaderTest.java b/xml/src/test/java/org/springframework/xml/stream/XmlEventStreamReaderTest.java new file mode 100644 index 00000000..72359399 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/stream/XmlEventStreamReaderTest.java @@ -0,0 +1,56 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.stream; + +import java.io.StringReader; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLInputFactory; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.springframework.xml.transform.StaxSource; +import org.springframework.xml.transform.StringResult; + +public class XmlEventStreamReaderTest extends XMLTestCase { + + private static final String XML = + "content"; + + private XmlEventStreamReader streamReader; + + protected void setUp() throws Exception { + XMLInputFactory inputFactory = XMLInputFactory.newInstance(); + XMLEventReader eventReader = inputFactory.createXMLEventReader(new StringReader(XML)); + streamReader = new XmlEventStreamReader(eventReader); + } + + public void testReadAll() throws Exception { + while (streamReader.hasNext()) { + streamReader.next(); + } + } + + public void testReadCorrect() throws Exception { + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + StaxSource source = new StaxSource(streamReader); + StringResult result = new StringResult(); + transformer.transform(source, result); + assertXMLEqual(XML, result.toString()); + } + +} \ No newline at end of file diff --git a/xml/src/test/java/org/springframework/xml/transform/StaxResultTest.java b/xml/src/test/java/org/springframework/xml/transform/StaxResultTest.java new file mode 100644 index 00000000..18277468 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/transform/StaxResultTest.java @@ -0,0 +1,65 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.transform; + +import java.io.StringWriter; +import javax.xml.stream.XMLEventWriter; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; + +import org.custommonkey.xmlunit.XMLTestCase; + +public class StaxResultTest extends XMLTestCase { + + private static final String XML = ""; + + private Transformer transformer; + + private XMLOutputFactory inputFactory; + + protected void setUp() throws Exception { + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + transformer = transformerFactory.newTransformer(); + inputFactory = XMLOutputFactory.newInstance(); + } + + public void testStreamWriterSource() throws Exception { + StringWriter stringWriter = new StringWriter(); + XMLStreamWriter streamWriter = inputFactory.createXMLStreamWriter(stringWriter); + Source source = new StringSource(XML); + StaxResult result = new StaxResult(streamWriter); + assertEquals("Invalid streamWriter returned", streamWriter, result.getXMLStreamWriter()); + assertNull("EventWriter returned", result.getXMLEventWriter()); + transformer.transform(source, result); + assertXMLEqual("Invalid result", XML, stringWriter.toString()); + } + + public void testEventWriterSource() throws Exception { + StringWriter stringWriter = new StringWriter(); + XMLEventWriter eventWriter = inputFactory.createXMLEventWriter(stringWriter); + Source source = new StringSource(XML); + StaxResult result = new StaxResult(eventWriter); + assertEquals("Invalid eventWriter returned", eventWriter, result.getXMLEventWriter()); + assertNull("StreamWriter returned", result.getXMLStreamWriter()); + transformer.transform(source, result); + assertXMLEqual("Invalid result", XML, stringWriter.toString()); + } + +} \ No newline at end of file diff --git a/xml/src/test/java/org/springframework/xml/transform/StaxSourceTest.java b/xml/src/test/java/org/springframework/xml/transform/StaxSourceTest.java new file mode 100644 index 00000000..7efd37bb --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/transform/StaxSourceTest.java @@ -0,0 +1,62 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.transform; + +import java.io.StringReader; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamReader; +import javax.xml.transform.Result; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; + +import org.custommonkey.xmlunit.XMLTestCase; + +public class StaxSourceTest extends XMLTestCase { + + private static final String XML = ""; + + private Transformer transformer; + + private XMLInputFactory inputFactory; + + protected void setUp() throws Exception { + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + transformer = transformerFactory.newTransformer(); + inputFactory = XMLInputFactory.newInstance(); + } + + public void testStreamReaderSource() throws Exception { + XMLStreamReader streamReader = inputFactory.createXMLStreamReader(new StringReader(XML)); + StaxSource source = new StaxSource(streamReader); + assertEquals("Invalid streamReader returned", streamReader, source.getXMLStreamReader()); + assertNull("EventReader returned", source.getXMLEventReader()); + Result result = new StringResult(); + transformer.transform(source, result); + assertXMLEqual("Invalid result", XML, result.toString()); + } + + public void testEventReaderSource() throws Exception { + XMLEventReader eventReader = inputFactory.createXMLEventReader(new StringReader(XML)); + StaxSource source = new StaxSource(eventReader); + assertEquals("Invalid eventReader returned", eventReader, source.getXMLEventReader()); + assertNull("StreamReader returned", source.getXMLStreamReader()); + Result result = new StringResult(); + transformer.transform(source, result); + assertXMLEqual("Invalid result", XML, result.toString()); + } +} \ No newline at end of file diff --git a/xml/src/test/java/org/springframework/xml/transform/StringResultTest.java b/xml/src/test/java/org/springframework/xml/transform/StringResultTest.java new file mode 100644 index 00000000..e626eb07 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/transform/StringResultTest.java @@ -0,0 +1,46 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.transform; + +import java.io.IOException; + +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; + +import org.custommonkey.xmlunit.XMLTestCase; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.xml.sax.SAXException; + +public class StringResultTest extends XMLTestCase { + + public void testStringResult() + throws TransformerException, ParserConfigurationException, IOException, SAXException { + Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); + Element element = document.createElementNS("namespace", "prefix:localName"); + document.appendChild(element); + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + StringResult result = new StringResult(); + transformer.transform(new DOMSource(document), result); + assertXMLEqual("Invalid result", "", result.toString()); + } + +} \ No newline at end of file diff --git a/xml/src/test/java/org/springframework/xml/transform/StringSourceTest.java b/xml/src/test/java/org/springframework/xml/transform/StringSourceTest.java new file mode 100644 index 00000000..bd32fcc5 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/transform/StringSourceTest.java @@ -0,0 +1,39 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.transform; + +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMResult; + +import junit.framework.TestCase; +import org.w3c.dom.Element; + +public class StringSourceTest extends TestCase { + + public void testStringSource() throws TransformerException { + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + String content = ""; + DOMResult result = new DOMResult(); + transformer.transform(new StringSource(content), result); + Element rootElement = (Element) result.getNode().getFirstChild(); + assertEquals("Invalid local name", "content", rootElement.getLocalName()); + assertEquals("Invalid prefix", "prefix", rootElement.getPrefix()); + assertEquals("Invalid namespace", "namespace", rootElement.getNamespaceURI()); + } +} \ No newline at end of file diff --git a/xml/src/test/java/org/springframework/xml/validation/AbstractValidatorFactoryTestCase.java b/xml/src/test/java/org/springframework/xml/validation/AbstractValidatorFactoryTestCase.java new file mode 100644 index 00000000..656533db --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/validation/AbstractValidatorFactoryTestCase.java @@ -0,0 +1,105 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.validation; + +import java.io.InputStream; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.sax.SAXSource; +import javax.xml.transform.stream.StreamSource; + +import junit.framework.TestCase; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.w3c.dom.Document; +import org.xml.sax.InputSource; +import org.xml.sax.SAXParseException; + +public abstract class AbstractValidatorFactoryTestCase extends TestCase { + + private XmlValidator validator; + + private InputStream validInputStream; + + private InputStream invalidInputStream; + + protected void setUp() throws Exception { + Resource[] schemaResource = + new Resource[]{new ClassPathResource("schema.xsd", AbstractValidatorFactoryTestCase.class)}; + validator = createValidator(schemaResource, XmlValidatorFactory.SCHEMA_W3C_XML); + validInputStream = AbstractValidatorFactoryTestCase.class.getResourceAsStream("validDocument.xml"); + invalidInputStream = AbstractValidatorFactoryTestCase.class.getResourceAsStream("invalidDocument.xml"); + } + + protected void tearDown() throws Exception { + validInputStream.close(); + invalidInputStream.close(); + } + + protected abstract XmlValidator createValidator(Resource[] schemaResources, String schemaLanguage) throws Exception; + + public void testHandleValidMessageStream() throws Exception { + SAXParseException[] errors = validator.validate(new StreamSource(validInputStream)); + assertNotNull("Null returned for errors", errors); + assertEquals("ValidationErrors returned", 0, errors.length); + } + + public void testValidateTwice() throws Exception { + validator.validate(new StreamSource(validInputStream)); + validInputStream = AbstractValidatorFactoryTestCase.class.getResourceAsStream("validDocument.xml"); + validator.validate(new StreamSource(validInputStream)); + } + + public void testHandleInvalidMessageStream() throws Exception { + SAXParseException[] errors = validator.validate(new StreamSource(invalidInputStream)); + assertNotNull("Null returned for errors", errors); + assertEquals("ValidationErrors returned", 3, errors.length); + } + + public void testHandleValidMessageSax() throws Exception { + SAXParseException[] errors = validator.validate(new SAXSource(new InputSource(validInputStream))); + assertNotNull("Null returned for errors", errors); + assertEquals("ValidationErrors returned", 0, errors.length); + } + + public void testHandleInvalidMessageSax() throws Exception { + SAXParseException[] errors = validator.validate(new SAXSource(new InputSource(invalidInputStream))); + assertNotNull("Null returned for errors", errors); + assertEquals("ValidationErrors returned", 3, errors.length); + } + + public void testHandleValidMessageDom() throws Exception { + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + documentBuilderFactory.setNamespaceAware(true); + Document document = documentBuilderFactory.newDocumentBuilder() + .parse(new InputSource(validInputStream)); + SAXParseException[] errors = validator.validate(new DOMSource(document)); + assertNotNull("Null returned for errors", errors); + assertEquals("ValidationErrors returned", 0, errors.length); + } + + public void testHandleInvalidMessageDom() throws Exception { + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + documentBuilderFactory.setNamespaceAware(true); + Document document = documentBuilderFactory.newDocumentBuilder() + .parse(new InputSource(invalidInputStream)); + SAXParseException[] errors = validator.validate(new DOMSource(document)); + assertNotNull("Null returned for errors", errors); + assertEquals("ValidationErrors returned", 3, errors.length); + } + +} diff --git a/xml/src/test/java/org/springframework/xml/validation/Jaxp10ValidatorFactoryTest.java b/xml/src/test/java/org/springframework/xml/validation/Jaxp10ValidatorFactoryTest.java new file mode 100644 index 00000000..47620e26 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/validation/Jaxp10ValidatorFactoryTest.java @@ -0,0 +1,28 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.validation; + +import java.io.IOException; + +import org.springframework.core.io.Resource; + +public class Jaxp10ValidatorFactoryTest extends AbstractValidatorFactoryTestCase { + + protected XmlValidator createValidator(Resource[] schemaResources, String schemaLanguage) throws IOException { + return Jaxp10ValidatorFactory.createValidator(schemaResources, schemaLanguage); + } +} diff --git a/xml/src/test/java/org/springframework/xml/validation/Jaxp13ValidatorFactoryTest.java b/xml/src/test/java/org/springframework/xml/validation/Jaxp13ValidatorFactoryTest.java new file mode 100644 index 00000000..1358272c --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/validation/Jaxp13ValidatorFactoryTest.java @@ -0,0 +1,28 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.validation; + +import java.io.IOException; + +import org.springframework.core.io.Resource; + +public class Jaxp13ValidatorFactoryTest extends AbstractValidatorFactoryTestCase { + + protected XmlValidator createValidator(Resource[] schemaResources, String schemaLanguage) throws IOException { + return Jaxp13ValidatorFactory.createValidator(schemaResources, schemaLanguage); + } +} \ No newline at end of file diff --git a/xml/src/test/java/org/springframework/xml/validation/SchemaLoaderUtilsTest.java b/xml/src/test/java/org/springframework/xml/validation/SchemaLoaderUtilsTest.java new file mode 100644 index 00000000..c25fc6ff --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/validation/SchemaLoaderUtilsTest.java @@ -0,0 +1,66 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.validation; + +import javax.xml.XMLConstants; +import javax.xml.validation.Schema; + +import junit.framework.TestCase; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.core.io.UrlResource; + +public class SchemaLoaderUtilsTest extends TestCase { + + public void testLoadSchema() throws Exception { + Resource resource = new ClassPathResource("schema.xsd", getClass()); + Schema schema = SchemaLoaderUtils.loadSchema(resource, XMLConstants.W3C_XML_SCHEMA_NS_URI); + assertNotNull("No schema returned", schema); + assertFalse("Resource not closed", resource.isOpen()); + } + + public void testLoadNonExistantSchema() throws Exception { + try { + Resource nonExistant = new ClassPathResource("bla"); + SchemaLoaderUtils.loadSchema(nonExistant, XMLConstants.W3C_XML_SCHEMA_NS_URI); + fail("Should have thrown an IllegalArgumentException"); + } + catch (IllegalArgumentException e) { + // expected + } + } + + public void testLoadNullSchema() throws Exception { + try { + SchemaLoaderUtils.loadSchema((Resource) null, XMLConstants.W3C_XML_SCHEMA_NS_URI); + fail("Should have thrown an IllegalArgumentException"); + } + catch (IllegalArgumentException e) { + // expected + } + } + + public void testLoadMultipleSchemas() throws Exception { + Resource envelope = new UrlResource("http://schemas.xmlsoap.org/soap/envelope/"); + Resource encoding = new UrlResource("http://schemas.xmlsoap.org/soap/encoding/"); + Schema schema = + SchemaLoaderUtils.loadSchema(new Resource[]{envelope, encoding}, XMLConstants.W3C_XML_SCHEMA_NS_URI); + assertNotNull("No schema returned", schema); + assertFalse("Resource not closed", envelope.isOpen()); + assertFalse("Resource not closed", encoding.isOpen()); + } +} \ No newline at end of file diff --git a/xml/src/test/java/org/springframework/xml/validation/XmlValidatorFactoryTest.java b/xml/src/test/java/org/springframework/xml/validation/XmlValidatorFactoryTest.java new file mode 100644 index 00000000..9965e821 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/validation/XmlValidatorFactoryTest.java @@ -0,0 +1,92 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.validation; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; + +import junit.framework.TestCase; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; + +public class XmlValidatorFactoryTest extends TestCase { + + public void testCreateValidator() throws Exception { + Resource resource = new ClassPathResource("schema.xsd", AbstractValidatorFactoryTestCase.class); + XmlValidator validator = XmlValidatorFactory.createValidator(resource, XmlValidatorFactory.SCHEMA_W3C_XML); + assertNotNull("No validator returned", validator); + } + + public void testNonExistentResource() throws Exception { + Resource resource = new NonExistentResource(); + try { + XmlValidatorFactory.createValidator(resource, XmlValidatorFactory.SCHEMA_W3C_XML); + fail("IllegalArgumentException expected"); + } + catch (IllegalArgumentException ex) { + // expected + } + } + + public void testInvalidSchemaLanguage() throws Exception { + Resource resource = new ClassPathResource("schema.xsd", AbstractValidatorFactoryTestCase.class); + try { + XmlValidatorFactory.createValidator(resource, "bla"); + fail("IllegalArgumentException expected"); + } + catch (IllegalArgumentException ex) { + // expected + } + } + + private static class NonExistentResource implements Resource { + + public Resource createRelative(String relativePath) throws IOException { + throw new IOException(); + } + + public boolean exists() { + return false; + } + + public String getDescription() { + return null; + } + + public File getFile() throws IOException { + throw new IOException(); + } + + public String getFilename() { + return null; + } + + public URL getURL() throws IOException { + throw new IOException(); + } + + public boolean isOpen() { + return false; + } + + public InputStream getInputStream() throws IOException { + throw new IOException(); + } + } +} \ No newline at end of file diff --git a/xml/src/test/java/org/springframework/xml/xpath/AbstractXPathExpressionFactoryTestCase.java b/xml/src/test/java/org/springframework/xml/xpath/AbstractXPathExpressionFactoryTestCase.java new file mode 100644 index 00000000..d535ce13 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/xpath/AbstractXPathExpressionFactoryTestCase.java @@ -0,0 +1,192 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.xpath; + +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import junit.framework.TestCase; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.xml.sax.SAXException; + +import org.springframework.util.StringUtils; + +public abstract class AbstractXPathExpressionFactoryTestCase extends TestCase { + + private Document noNamespacesDocument; + + private Document namespacesDocument; + + private Map namespaces = new HashMap(); + + protected void setUp() throws Exception { + namespaces.put("prefix1", "namespace1"); + namespaces.put("prefix2", "namespace2"); + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + documentBuilderFactory.setNamespaceAware(true); + DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); + InputStream inputStream = getClass().getResourceAsStream("nonamespaces.xml"); + try { + noNamespacesDocument = documentBuilder.parse(inputStream); + } + finally { + inputStream.close(); + } + inputStream = getClass().getResourceAsStream("namespaces.xml"); + try { + namespacesDocument = documentBuilder.parse(inputStream); + } + finally { + inputStream.close(); + } + } + + public void testEvaluateAsBooleanInvalidNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/prefix1:root/prefix2:otherchild", namespaces); + boolean result = expression.evaluateAsBoolean(namespacesDocument); + assertFalse("Invalid result [" + result + "]", result); + } + + public void testEvaluateAsBooleanInvalidNoNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/root/otherchild"); + boolean result = expression.evaluateAsBoolean(noNamespacesDocument); + assertFalse("Invalid result [" + result + "]", result); + } + + public void testEvaluateAsBooleanNamespaces() throws IOException, SAXException { + XPathExpression expression = + createXPathExpression("/prefix1:root/prefix2:child/prefix2:boolean/text()", namespaces); + boolean result = expression.evaluateAsBoolean(namespacesDocument); + assertTrue("Invalid result", result); + } + + public void testEvaluateAsBooleanNoNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/root/child/boolean/text()"); + boolean result = expression.evaluateAsBoolean(noNamespacesDocument); + assertTrue("Invalid result", result); + } + + public void testEvaluateAsDoubleInvalidNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/prefix1:root/prefix2:otherchild", namespaces); + double result = expression.evaluateAsNumber(noNamespacesDocument); + assertTrue("Invalid result [" + result + "]", Double.isNaN(result)); + } + + public void testEvaluateAsDoubleInvalidNoNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/root/otherchild"); + double result = expression.evaluateAsNumber(noNamespacesDocument); + assertTrue("Invalid result [" + result + "]", Double.isNaN(result)); + } + + public void testEvaluateAsDoubleNamespaces() throws IOException, SAXException { + XPathExpression expression = + createXPathExpression("/prefix1:root/prefix2:child/prefix2:number/text()", namespaces); + double result = expression.evaluateAsNumber(namespacesDocument); + assertEquals("Invalid result", 42D, result, 0D); + } + + public void testEvaluateAsDoubleNoNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/root/child/number/text()"); + double result = expression.evaluateAsNumber(noNamespacesDocument); + assertEquals("Invalid result", 42D, result, 0D); + } + + public void testEvaluateAsNodeInvalidNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/prefix1:root/prefix2:otherchild", namespaces); + Node result = expression.evaluateAsNode(namespacesDocument); + assertNull("Invalid result [" + result + "]", result); + } + + public void testEvaluateAsNodeInvalidNoNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/root/otherchild"); + Node result = expression.evaluateAsNode(noNamespacesDocument); + assertNull("Invalid result [" + result + "]", result); + } + + public void testEvaluateAsNodeNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/prefix1:root/prefix2:child", namespaces); + Node result = expression.evaluateAsNode(namespacesDocument); + assertNotNull("Invalid result", result); + assertEquals("Invalid localname", "child", result.getLocalName()); + } + + public void testEvaluateAsNodeNoNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/root/child"); + Node result = expression.evaluateAsNode(noNamespacesDocument); + assertNotNull("Invalid result", result); + assertEquals("Invalid localname", "child", result.getLocalName()); + } + + public void testEvaluateAsNodesNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/prefix1:root/prefix2:child/*", namespaces); + Node[] results = expression.evaluateAsNodes(namespacesDocument); + assertNotNull("Invalid result", results); + assertEquals("Invalid amount of results", 3, results.length); + } + + public void testEvaluateAsNodesNoNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/root/child/*"); + Node[] results = expression.evaluateAsNodes(noNamespacesDocument); + assertNotNull("Invalid result", results); + assertEquals("Invalid amount of results", 3, results.length); + } + + public void testEvaluateAsStringInvalidNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/prefix1:root/prefix2:otherchild", namespaces); + String result = expression.evaluateAsString(namespacesDocument); + assertFalse("Invalid result [" + result + "]", StringUtils.hasText(result)); + } + + public void testEvaluateAsStringInvalidNoNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/root/otherchild"); + String result = expression.evaluateAsString(noNamespacesDocument); + assertFalse("Invalid result [" + result + "]", StringUtils.hasText(result)); + } + + public void testEvaluateAsStringNamespaces() throws IOException, SAXException { + XPathExpression expression = + createXPathExpression("/prefix1:root/prefix2:child/prefix2:text/text()", namespaces); + String result = expression.evaluateAsString(namespacesDocument); + assertEquals("Invalid result", "text", result); + } + + public void testEvaluateAsStringNoNamespaces() throws IOException, SAXException { + XPathExpression expression = createXPathExpression("/root/child/text/text()"); + String result = expression.evaluateAsString(noNamespacesDocument); + assertEquals("Invalid result", "text", result); + } + + public void testInvalidExpression() { + try { + createXPathExpression("\\"); + fail("No XPathParseException thrown"); + } + catch (XPathParseException ex) { + // Expected behaviour + } + } + + protected abstract XPathExpression createXPathExpression(String expression); + + protected abstract XPathExpression createXPathExpression(String expression, Map namespaces); +} diff --git a/xml/src/test/java/org/springframework/xml/xpath/JaxenXPathExpressionFactoryTest.java b/xml/src/test/java/org/springframework/xml/xpath/JaxenXPathExpressionFactoryTest.java new file mode 100644 index 00000000..6acab667 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/xpath/JaxenXPathExpressionFactoryTest.java @@ -0,0 +1,42 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.xpath; + +import java.io.IOException; +import java.util.Map; + +import org.xml.sax.SAXException; + +public class JaxenXPathExpressionFactoryTest extends AbstractXPathExpressionFactoryTestCase { + + protected XPathExpression createXPathExpression(String expression) { + return JaxenXPathExpressionFactory.createXPathExpression(expression); + } + + protected XPathExpression createXPathExpression(String expression, Map namespaces) { + return JaxenXPathExpressionFactory.createXPathExpression(expression, namespaces); + } + + public void testEvaluateAsDoubleNoNamespaces() throws IOException, SAXException { + // Currently not working on Jaxen 1.1 beta 8, hence the override here + } + + public void testEvaluateAsDoubleNamespaces() throws IOException, SAXException { + // Currently not working on Jaxen 1.1 beta 8, hence the override here + } + +} diff --git a/xml/src/test/java/org/springframework/xml/xpath/Jaxp13XPathExpressionFactoryTest.java b/xml/src/test/java/org/springframework/xml/xpath/Jaxp13XPathExpressionFactoryTest.java new file mode 100644 index 00000000..c1fd088a --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/xpath/Jaxp13XPathExpressionFactoryTest.java @@ -0,0 +1,30 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.xpath; + +import java.util.Map; + +public class Jaxp13XPathExpressionFactoryTest extends AbstractXPathExpressionFactoryTestCase { + + protected XPathExpression createXPathExpression(String expression) { + return Jaxp13XPathExpressionFactory.createXPathExpression(expression); + } + + protected XPathExpression createXPathExpression(String expression, Map namespaces) { + return Jaxp13XPathExpressionFactory.createXPathExpression(expression, namespaces); + } +} \ No newline at end of file diff --git a/xml/src/test/java/org/springframework/xml/xpath/XPathExpressionFactoryTest.java b/xml/src/test/java/org/springframework/xml/xpath/XPathExpressionFactoryTest.java new file mode 100644 index 00000000..f8bd51e7 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/xpath/XPathExpressionFactoryTest.java @@ -0,0 +1,37 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.xpath; + +import junit.framework.TestCase; + +public class XPathExpressionFactoryTest extends TestCase { + + public void testCreateXPathExpression() throws Exception { + XPathExpression expression = XPathExpressionFactory.createXPathExpression("/root"); + assertNotNull("No expression returned", expression); + } + + public void testCreateEmptyXPathExpression() throws Exception { + try { + XPathExpressionFactory.createXPathExpression(""); + fail("Should have thrown an Exception"); + } + catch (IllegalArgumentException ex) { + // expected + } + } +} \ No newline at end of file diff --git a/xml/src/test/java/org/springframework/xml/xpath/XalanXPathExpressionFactoryTest.java b/xml/src/test/java/org/springframework/xml/xpath/XalanXPathExpressionFactoryTest.java new file mode 100644 index 00000000..b2a222d6 --- /dev/null +++ b/xml/src/test/java/org/springframework/xml/xpath/XalanXPathExpressionFactoryTest.java @@ -0,0 +1,33 @@ +/* + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.xml.xpath; + +import java.util.Map; + +/** + * @author Arjen Poutsma + */ +public class XalanXPathExpressionFactoryTest extends AbstractXPathExpressionFactoryTestCase { + + protected XPathExpression createXPathExpression(String expression) { + return XalanXPathExpressionFactory.createXPathExpression(expression); + } + + protected XPathExpression createXPathExpression(String expression, Map prefixes) { + return XalanXPathExpressionFactory.createXPathExpression(expression, prefixes); + } +}

    + * Additionally, you must define a XWSS policy file by setting policyConfiguration property. The format of + * the policy file is documented in the Java + * Web Services Tutorial. + *

    rV}BhZ3xcYXM)RSQI0S14X$g#HWfTC7 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