Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartBase.java Sun Dec 17 22:34:08 2017 @@ -21,7 +21,6 @@ package org.apache.axis2.jaxws.message.i import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMXMLParserWrapper; -import org.apache.axiom.om.impl.builder.StAXBuilder; import org.apache.axiom.soap.RolePlayer; import org.apache.axiom.soap.SOAP11Constants; import org.apache.axiom.soap.SOAP12Constants; @@ -771,12 +770,8 @@ public abstract class XMLPartBase implem OMElement om = getContentAsOMElement(); if (om !=null) { OMXMLParserWrapper builder = om.getBuilder(); - if (builder instanceof StAXBuilder) { - StAXBuilder staxBuilder = (StAXBuilder) builder; - staxBuilder.releaseParserOnClose(true); - if (!staxBuilder.isClosed()) { - staxBuilder.close(); - } + if (builder != null) { + builder.close(); } } }
Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartFactoryImpl.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartFactoryImpl.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartFactoryImpl.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLPartFactoryImpl.java Sun Dec 17 22:34:08 2017 @@ -20,8 +20,9 @@ package org.apache.axis2.jaxws.message.impl; import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMXMLBuilderFactory; import org.apache.axiom.soap.SOAPEnvelope; -import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder; +import org.apache.axiom.soap.SOAPModelBuilder; import org.apache.axis2.jaxws.message.Protocol; import org.apache.axis2.jaxws.message.XMLPart; import org.apache.axis2.jaxws.message.factory.XMLPartFactory; @@ -43,8 +44,7 @@ public class XMLPartFactoryImpl implemen */ public XMLPart createFrom(XMLStreamReader reader, Protocol protocol) throws XMLStreamException, WebServiceException { - StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(reader, - null); // Pass null has the version to trigger autodetection + SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(reader); SOAPEnvelope omEnvelope = builder.getSOAPEnvelope(); return createFrom(omEnvelope, protocol); } Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/impl/XMLSpineImpl.java Sun Dec 17 22:34:08 2017 @@ -20,11 +20,9 @@ package org.apache.axis2.jaxws.message.impl; import org.apache.axiom.om.OMAbstractFactory; -import org.apache.axiom.om.OMContainer; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMNamespace; import org.apache.axiom.om.OMNode; -import org.apache.axiom.om.impl.OMContainerEx; import org.apache.axiom.soap.RolePlayer; import org.apache.axiom.soap.SOAP11Constants; import org.apache.axiom.soap.SOAP12Constants; @@ -46,13 +44,11 @@ import org.apache.axis2.jaxws.message.fa import org.apache.axis2.jaxws.message.util.Reader2Writer; import org.apache.axis2.jaxws.message.util.XMLFaultUtils; import org.apache.axis2.jaxws.registry.FactoryRegistry; -import org.apache.axis2.jaxws.utility.JavaUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.jws.soap.SOAPBinding.Style; import javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; @@ -187,15 +183,7 @@ class XMLSpineImpl implements XMLSpine { } public XMLStreamReader getXMLStreamReader(boolean consume) throws WebServiceException { - if (consume) { - if (root.getBuilder() != null && !root.getBuilder().isCompleted()) { - return root.getXMLStreamReaderWithoutCaching(); - } else { - return root.getXMLStreamReader(); - } - } else { - return root.getXMLStreamReader(); - } + return root.getXMLStreamReader(!consume); } /* (non-Javadoc) @@ -215,7 +203,7 @@ class XMLSpineImpl implements XMLSpine { SOAPFaultDetail detail = root.getBody().getFault().getDetail(); for (int i = 0; i < numDetailBlocks; i++) { OMElement om = this._getChildOMElement(detail, i); - blocks[i] = this._getBlockFromOMElement(om, null, obf, false); + blocks[i] = this._getBlockFromOMElement(om, null, obf); } } @@ -312,7 +300,7 @@ class XMLSpineImpl implements XMLSpine { if (log.isDebugEnabled()) { log.debug("getBodyBlock: Found omElement " + omElement.getQName()); } - return this._getBlockFromOMElement(omElement, context, blockFactory, false); + return this._getBlockFromOMElement(omElement, context, blockFactory); } /* (non-Javadoc) @@ -345,7 +333,7 @@ class XMLSpineImpl implements XMLSpine { if (log.isDebugEnabled()) { log.debug("getBodyBlock: Found omElement " + omElement.getQName()); } - return this._getBlockFromOMElement(omElement, context, blockFactory, true); + return this._getBlockFromOMElement(omElement, context, blockFactory); } public void setBodyBlock(int index, Block block) throws WebServiceException { @@ -442,7 +430,7 @@ class XMLSpineImpl implements XMLSpine { if (om == null) { return null; } - return this._getBlockFromOMElement(om, context, blockFactory, false); + return this._getBlockFromOMElement(om, context, blockFactory); } public List<Block> getHeaderBlocks(String namespace, @@ -474,7 +462,7 @@ class XMLSpineImpl implements XMLSpine { // _getBlockFromOMElement may replace the current element; move the iterator to the // next element to avoid ConcurrentModificationException it.hasNext(); - Block block = _getBlockFromOMElement(om, context, blockFactory, false); + Block block = _getBlockFromOMElement(om, context, blockFactory); blocks.add(block); } } @@ -568,8 +556,7 @@ class XMLSpineImpl implements XMLSpine { } } - private Block _getBlockFromOMElement(OMElement om, Object context, BlockFactory blockFactory, - boolean setComplete) throws WebServiceException { + private Block _getBlockFromOMElement(OMElement om, Object context, BlockFactory blockFactory) throws WebServiceException { try { QName qName = om.getQName(); OMNamespace ns = om.getNamespace(); @@ -613,48 +600,6 @@ class XMLSpineImpl implements XMLSpine { OMElement newOM = _createOMElementFromBlock(qName.getLocalPart(), ns, block, soapFactory, (om.getParent() instanceof SOAPHeader)); om.insertSiblingBefore(newOM); - - // We want to set the om element and its parents to complete to - // shutdown the parsing. - if (setComplete) { - - // Get the root of the document - OMElement root = om; - while(root.getParent() instanceof OMElement) { - root = (OMElement) root.getParent(); - } - - try { - if (!root.isComplete() && root.getBuilder() != null && - !root.getBuilder().isCompleted()) { - // Forward the parser to the end so it will close - while (root.getBuilder().next() != XMLStreamConstants.END_DOCUMENT) { - //do nothing - } - } - } catch (Exception e) { - // Log and continue - if (log.isDebugEnabled()) { - log.debug("Builder next error:" + e.getMessage()); - log.trace(JavaUtils.stackToString(e)); - } - - } - - - OMContainer o = om; - while (o != null && o instanceof OMContainerEx) { - ((OMContainerEx)o).setComplete(true); - if ((o instanceof OMNode) && - (((OMNode)o).getParent()) instanceof OMContainer) { - o = ((OMNode)o).getParent(); - } else { - o = null; - } - } - } - - om.detach(); } return block; @@ -795,9 +740,9 @@ class XMLSpineImpl implements XMLSpine { return null; } QName qName = new QName(namespace, localPart); - Iterator it = om.getChildrenWithName(qName); + Iterator<OMElement> it = om.getChildrenWithName(qName); if (it != null && it.hasNext()) { - return (OMElement)it.next(); + return it.next(); } return null; } Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/Reader2Writer.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/Reader2Writer.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/Reader2Writer.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/Reader2Writer.java Sun Dec 17 22:34:08 2017 @@ -21,8 +21,8 @@ package org.apache.axis2.jaxws.message.u import org.apache.axiom.om.OMDocument; import org.apache.axiom.om.OMNode; -import org.apache.axiom.om.impl.builder.StAXOMBuilder; -import org.apache.axiom.om.util.StAXUtils; +import org.apache.axiom.om.OMXMLBuilderFactory; +import org.apache.axiom.om.OMXMLParserWrapper; import org.apache.axis2.jaxws.utility.JavaUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -30,7 +30,6 @@ import org.apache.commons.logging.LogFac import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; -import java.io.StringWriter; import java.util.Iterator; /** @@ -71,7 +70,7 @@ public class Reader2Writer { public void outputTo(XMLStreamWriter writer) throws XMLStreamException { // Using OM to convert the reader to a writer. This seems to be // the safest way to make the conversion, and it promotes code re-use. - StAXOMBuilder builder = new StAXOMBuilder(reader); + OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(reader); OMDocument omDocument = builder.getDocument(); Iterator it = omDocument.getChildren(); while (it.hasNext()) { @@ -86,23 +85,4 @@ public class Reader2Writer { reader.close(); } } - - /** - * Utility method to write the reader contents to a String - * @return String - */ - public String getAsString() throws XMLStreamException { - StringWriter sw = new StringWriter(); - XMLStreamWriter writer = StAXUtils.createXMLStreamWriter(sw); - - // Write the reader to the writer - outputTo(writer); - - // Flush the writer and get the String - writer.flush(); - sw.flush(); - String str = sw.toString(); - writer.close(); - return str; - } } Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/ResettableReader.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/ResettableReader.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/ResettableReader.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/ResettableReader.java Sun Dec 17 22:34:08 2017 @@ -20,7 +20,8 @@ package org.apache.axis2.jaxws.message.util; import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.impl.builder.StAXOMBuilder; +import org.apache.axiom.om.OMXMLBuilderFactory; +import org.apache.axiom.om.OMXMLParserWrapper; import javax.xml.stream.XMLStreamReader; @@ -41,7 +42,7 @@ public class ResettableReader extends Re */ public ResettableReader(XMLStreamReader reader) { super(reader, true); - StAXOMBuilder builder = new StAXOMBuilder(reader); + OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(reader); omElement = builder.getDocumentElement(); reset(); } Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/XMLFaultUtils.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/XMLFaultUtils.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/XMLFaultUtils.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/XMLFaultUtils.java Sun Dec 17 22:34:08 2017 @@ -22,6 +22,7 @@ package org.apache.axis2.jaxws.message.u import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMNamespace; import org.apache.axiom.om.OMSourcedElement; +import org.apache.axiom.om.OMXMLBuilderFactory; import org.apache.axiom.soap.SOAP11Constants; import org.apache.axiom.soap.SOAP12Constants; import org.apache.axiom.soap.SOAPBody; @@ -36,7 +37,7 @@ import org.apache.axiom.soap.SOAPFaultRo import org.apache.axiom.soap.SOAPFaultSubCode; import org.apache.axiom.soap.SOAPFaultText; import org.apache.axiom.soap.SOAPFaultValue; -import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder; +import org.apache.axiom.soap.SOAPModelBuilder; import org.apache.axis2.jaxws.ExceptionFactory; import org.apache.axis2.jaxws.message.Block; import org.apache.axis2.jaxws.message.Message; @@ -151,13 +152,7 @@ public class XMLFaultUtils { SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI); SOAPFaultCode soapCode = soapFault.getCode(); - QName codeQName = null; - if (isSoap11) { - codeQName = soapCode.getTextAsQName(); - } else { - codeQName = soapCode.getValue().getTextAsQName(); - } - XMLFaultCode code = XMLFaultCode.fromQName(codeQName); + XMLFaultCode code = XMLFaultCode.fromQName(soapCode.getValueAsQName()); // Get the primary reason text // TODO what if this fails @@ -187,9 +182,7 @@ public class XMLFaultUtils { // Walk the nested sub codes and collect the qnames while (soapSubCode != null) { - SOAPFaultValue soapSubCodeValue = soapSubCode.getValue(); - QName qName = soapSubCodeValue.getTextAsQName(); - list.add(qName); + list.add(soapSubCode.getValueAsQName()); soapSubCode = soapSubCode.getSubCode(); } @@ -366,7 +359,7 @@ public class XMLFaultUtils { SOAPEnvelope dummyEnv = (SOAPEnvelope) m.getAsOMElement(); - StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(dummyEnv.getXMLStreamReaderWithoutCaching()); + SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(dummyEnv.getXMLStreamReaderWithoutCaching()); SOAPEnvelope newEnv = (SOAPEnvelope) builder.getDocumentElement(); SOAPBody body = newEnv.getBody(); Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/message/util/impl/SAAJConverterImpl.java Sun Dec 17 22:34:08 2017 @@ -20,18 +20,18 @@ package org.apache.axis2.jaxws.message.util.impl; import org.apache.axiom.attachments.Attachments; +import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMNamespace; -import org.apache.axiom.om.impl.builder.StAXOMBuilder; +import org.apache.axiom.om.OMXMLBuilderFactory; +import org.apache.axiom.om.OMXMLParserWrapper; import org.apache.axiom.om.util.StAXUtils; import org.apache.axiom.soap.SOAP11Constants; import org.apache.axiom.soap.SOAP12Constants; -import org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder; -import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder; +import org.apache.axiom.soap.SOAPModelBuilder; import org.apache.axis2.jaxws.ExceptionFactory; import org.apache.axis2.jaxws.i18n.Messages; import org.apache.axis2.jaxws.message.util.SAAJConverter; -import org.apache.axis2.jaxws.message.util.SOAPElementReader; import org.apache.axis2.jaxws.utility.JavaUtils; import org.apache.axis2.jaxws.utility.SAAJFactory; import org.apache.commons.logging.Log; @@ -136,15 +136,15 @@ public class SAAJConverterImpl implement // Before we do the conversion, we have to fix the QNames for fault elements _fixFaultElements(saajEnvelope); - // Get a XMLStreamReader backed by a SOAPElement tree - XMLStreamReader reader = new SOAPElementReader(saajEnvelope); - - // Get a SOAP OM Builder. Passing null causes the version to be automatically triggered - StAXSOAPModelBuilder builder = null; - if (attachments == null) { - builder = new StAXSOAPModelBuilder(reader, null); + SOAPModelBuilder builder; + if (attachments != null) { + builder = OMXMLBuilderFactory.createSOAPModelBuilder( + OMAbstractFactory.getMetaFactory(), + new DOMSource(saajEnvelope), + attachments); } else { - builder = new MTOMStAXSOAPModelBuilder(reader, attachments, null); + // Get a SOAP OM Builder. + builder = OMXMLBuilderFactory.createSOAPModelBuilder(new DOMSource(saajEnvelope)); } // Create and return the OM Envelope org.apache.axiom.soap.SOAPEnvelope omEnvelope = builder.getSOAPEnvelope(); @@ -184,8 +184,8 @@ public class SAAJConverterImpl implement } catch (XMLStreamException e) { throw ExceptionFactory.makeWebServiceException(e); } - // Get a SOAP OM Builder. Passing null causes the version to be automatically triggered - StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(reader, null); + // Get a SOAP OM Builder. + SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(reader); // Create and return the OM Envelope return builder.getSOAPEnvelope(); } @@ -207,10 +207,8 @@ public class SAAJConverterImpl implement log.debug("The conversion occurs due to " + JavaUtils.stackToString()); } - // Get a XMLStreamReader backed by a SOAPElement tree - XMLStreamReader reader = new SOAPElementReader(soapElement); // Get a OM Builder. - StAXOMBuilder builder = new StAXOMBuilder(reader); + OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new DOMSource(soapElement)); // Create and return the Element OMElement om = builder.getDocumentElement(); // TODO The following statement expands the OM tree. This is Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/registry/FactoryRegistry.java Sun Dec 17 22:34:08 2017 @@ -36,7 +36,6 @@ import org.apache.axis2.jaxws.handler.fa import org.apache.axis2.jaxws.handler.lifecycle.factory.HandlerLifecycleManagerFactory; import org.apache.axis2.jaxws.message.databinding.impl.JAXBBlockFactoryImpl; import org.apache.axis2.jaxws.message.databinding.impl.OMBlockFactoryImpl; -import org.apache.axis2.jaxws.message.databinding.impl.ParsedEntityReaderImpl; import org.apache.axis2.jaxws.message.databinding.impl.SOAPEnvelopeBlockFactoryImpl; import org.apache.axis2.jaxws.message.databinding.impl.SourceBlockFactoryImpl; import org.apache.axis2.jaxws.message.databinding.impl.XMLStringBlockFactoryImpl; @@ -45,7 +44,6 @@ import org.apache.axis2.jaxws.message.fa import org.apache.axis2.jaxws.message.factory.JAXBBlockFactory; import org.apache.axis2.jaxws.message.factory.MessageFactory; import org.apache.axis2.jaxws.message.factory.OMBlockFactory; -import org.apache.axis2.jaxws.message.factory.ParsedEntityReaderFactory; import org.apache.axis2.jaxws.message.factory.SAAJConverterFactory; import org.apache.axis2.jaxws.message.factory.SOAPEnvelopeBlockFactory; import org.apache.axis2.jaxws.message.factory.SourceBlockFactory; @@ -126,7 +124,6 @@ public class FactoryRegistry { table.put(InvocationControllerFactory.class, new InvocationControllerFactoryImpl()); table.put(HandlerPreInvokerFactory.class, new HandlerPreInvokerFactoryImpl()); table.put(HandlerPostInvokerFactory.class, new HandlerPostInvokerFactoryImpl()); - table.put(ParsedEntityReaderFactory.class, new ParsedEntityReaderFactory()); // register the implementation responsible for both WebServiceContext // injection and the updating of the WebServiceContext instances that // have already been injected, we will register these by two different Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/impl/PackageSetBuilder.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/impl/PackageSetBuilder.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/impl/PackageSetBuilder.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/impl/PackageSetBuilder.java Sun Dec 17 22:34:08 2017 @@ -880,7 +880,7 @@ public class PackageSetBuilder { String baseDir = new File(System.getProperty("basedir",".")).getCanonicalPath(); String wsdlLocationPath = new File(baseDir +File.separator+ wsdlLocation).getAbsolutePath(); File file = new File(wsdlLocationPath); - URL url = file.toURL(); + URL url = file.toURI().toURL(); if(log.isDebugEnabled()){ log.debug("Reading WSDL from URL:" +url.toString()); } Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/server/dispatcher/ProviderDispatcher.java Sun Dec 17 22:34:08 2017 @@ -21,7 +21,6 @@ package org.apache.axis2.jaxws.server.di import org.apache.axis2.Constants; import org.apache.axis2.jaxws.ExceptionFactory; -import org.apache.axis2.jaxws.context.listener.ContextListenerUtils; import org.apache.axis2.jaxws.context.utils.ContextUtils; import org.apache.axis2.jaxws.core.MessageContext; import org.apache.axis2.jaxws.core.util.MessageContextUtils; @@ -307,8 +306,6 @@ public class ProviderDispatcher extends } } if (providerType.equals(OMElement.class)) { - //Register the ContextListener for performance. - ContextListenerUtils.registerProviderOMListener(request); // TODO avoid call to message.getValue due to // current unnecessary message transformation in // message.getValue. Once message.getValue is fixed, Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java Sun Dec 17 22:34:08 2017 @@ -52,7 +52,6 @@ import org.apache.axis2.jaxws.client.Pro import org.apache.axis2.jaxws.client.dispatch.JAXBDispatch; import org.apache.axis2.jaxws.client.dispatch.XMLDispatch; import org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler; -import org.apache.axis2.jaxws.context.listener.ProviderOMContextListener; import org.apache.axis2.jaxws.description.DescriptionFactory; import org.apache.axis2.jaxws.description.EndpointDescription; import org.apache.axis2.jaxws.description.ServiceDescription; @@ -335,13 +334,6 @@ public class ServiceDelegate extends jav if (serviceClient == null) serviceClient = getServiceClient(endpointDesc.getPortQName()); - - if(type == OMElement.class) { - if (log.isDebugEnabled()) { - log.debug("This a Dispatch<OMElement>. The custom builder is installed."); - } - ProviderOMContextListener.create(serviceClient.getServiceContext()); - } dispatch.setServiceClient(serviceClient); dispatch.setType(type); @@ -445,12 +437,6 @@ public class ServiceDelegate extends jav if (serviceClient == null) serviceClient = getServiceClient(portName); - if(type == OMElement.class) { - if (log.isDebugEnabled()) { - log.debug("This a Dispatch<OMElement>. The custom builder is installed."); - } - ProviderOMContextListener.create(serviceClient.getServiceContext()); - } dispatch.setServiceClient(serviceClient); dispatch.setType(type); return dispatch; Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/utility/ClassUtils.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/utility/ClassUtils.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/utility/ClassUtils.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/utility/ClassUtils.java Sun Dec 17 22:34:08 2017 @@ -316,33 +316,38 @@ public class ClassUtils { * */ public static Set<Class> getClasses(Type type, Set<Class> list) { - if (list == null) { - list = new HashSet<Class>(); - } - try { - if (type instanceof Class) { - list.add( (Class)type); - } - if (type instanceof ParameterizedType) { - ParameterizedType pt = (ParameterizedType) type; - getClasses(pt.getRawType(), list); - Type types[] = pt.getActualTypeArguments(); - if (types != null) { - for (int i=0; i<types.length; i++) { - getClasses(types[i], list); - } - } - } - if (type instanceof GenericArrayType) { - GenericArrayType gat = (GenericArrayType) type; - getClasses(gat.getGenericComponentType(), list); - } - } catch (Throwable t) { - if (log.isDebugEnabled()) { - log.debug("Problem occurred in getClasses. Processing continues " + t); - } - } - return list; + if (list == null) { + list = new HashSet<Class>(); + } + try { + if (type instanceof Class) { + Class<?> clazz = (Class<?>)type; + if (clazz.isArray()) { + getClasses(clazz.getComponentType(), list); + } else { + list.add(clazz); + } + } + if (type instanceof ParameterizedType) { + ParameterizedType pt = (ParameterizedType) type; + getClasses(pt.getRawType(), list); + Type types[] = pt.getActualTypeArguments(); + if (types != null) { + for (int i=0; i<types.length; i++) { + getClasses(types[i], list); + } + } + } + if (type instanceof GenericArrayType) { + GenericArrayType gat = (GenericArrayType) type; + getClasses(gat.getGenericComponentType(), list); + } + } catch (Throwable t) { + if (log.isDebugEnabled()) { + log.debug("Problem occurred in getClasses. Processing continues " + t); + } + } + return list; } } Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/utility/DataSourceFormatter.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/utility/DataSourceFormatter.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/utility/DataSourceFormatter.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/src/org/apache/axis2/jaxws/utility/DataSourceFormatter.java Sun Dec 17 22:34:08 2017 @@ -59,21 +59,21 @@ public class DataSourceFormatter impleme if (log.isDebugEnabled()) { log.debug("start writeTo()"); } + OMElement omElement = messageContext.getEnvelope().getBody().getFirstElement(); + DataSource busObject; + try { + busObject = (DataSource)((DataSourceBlock)((OMSourcedElement) omElement).getDataSource()).getBusinessObject(true); + } catch (XMLStreamException e) { + throw AxisFault.makeFault(e); + } + DataHandler dataHandler = new DataHandler(busObject); if (attachments != null && !attachments.isEmpty()) { - OMElement omElement = messageContext.getEnvelope().getBody().getFirstElement(); - DataSource busObject; - try { - busObject = (DataSource)((DataSourceBlock)((OMSourcedElement) omElement).getDataSource()).getBusinessObject(true); - } catch (XMLStreamException e) { - throw AxisFault.makeFault(e); - } OMMultipartWriter mpw = new OMMultipartWriter(outputStream, format); - DataHandler rootDataHandler = new DataHandler(busObject); - if (!rootDataHandler.getContentType().equals(contentType)) { - rootDataHandler = new WrappedDataHandler(rootDataHandler, contentType); + if (!dataHandler.getContentType().equals(contentType)) { + dataHandler = new WrappedDataHandler(dataHandler, contentType); } try { - mpw.writePart(rootDataHandler, format.getRootContentId()); + mpw.writePart(dataHandler, format.getRootContentId()); for (String cid : attachments.keySet()) { mpw.writePart(attachments.get(cid), cid); } @@ -82,24 +82,13 @@ public class DataSourceFormatter impleme } catch (IOException ex) { throw AxisFault.makeFault(ex); } - } else { - OMElement omElement = messageContext.getEnvelope().getBody().getFirstElement(); - if (omElement != null) { - try { - if (preserve) { - omElement.serialize(outputStream, format); - } else { - omElement.serializeAndConsume(outputStream, format); - } - } catch (XMLStreamException e) { - throw AxisFault.makeFault(e); - } - } - try { - outputStream.flush(); - } catch (IOException e) { - throw AxisFault.makeFault(e); - } + } else { + try { + dataHandler.writeTo(outputStream); + outputStream.flush(); + } catch (IOException e) { + throw AxisFault.makeFault(e); + } } } finally { if (log.isDebugEnabled()) { Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test-resources/axis2.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test-resources/axis2.xml?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test-resources/axis2.xml (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test-resources/axis2.xml Sun Dec 17 22:34:08 2017 @@ -140,12 +140,12 @@ <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/> <transportSender name="http" - class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"> + class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender"> <parameter name="PROTOCOL">HTTP/1.1</parameter> <parameter name="Transfer-Encoding">chunked</parameter> </transportSender> <transportSender name="https" - class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"> + class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender"> <parameter name="PROTOCOL">HTTP/1.1</parameter> <parameter name="Transfer-Encoding">chunked</parameter> </transportSender> Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test-resources/log4j.properties URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test-resources/log4j.properties?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test-resources/log4j.properties (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test-resources/log4j.properties Sun Dec 17 22:34:08 2017 @@ -35,7 +35,6 @@ log4j.rootCategory=ERROR, CONSOLE # Set the enterprise logger priority to FATAL log4j.logger.org.apache.axis2.enterprise=FATAL -log4j.logger.de.hunsicker.jalopy.io=FATAL log4j.logger.httpclient.wire.header=FATAL log4j.logger.org.apache.commons.httpclient=FATAL @@ -56,4 +55,4 @@ log4j.appender.SMALL=org.apache.log4j.Fi log4j.appender.SMALL.File=axis2.small.log log4j.appender.SMALL.Append=true log4j.appender.SMALL.layout=org.apache.log4j.PatternLayout -log4j.appender.SMALL.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n \ No newline at end of file +log4j.appender.SMALL.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/datasource/jaxb/JAXBCustomBuilderDisableStreamingTests.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/datasource/jaxb/JAXBCustomBuilderDisableStreamingTests.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/datasource/jaxb/JAXBCustomBuilderDisableStreamingTests.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/datasource/jaxb/JAXBCustomBuilderDisableStreamingTests.java Sun Dec 17 22:34:08 2017 @@ -18,15 +18,14 @@ */ package org.apache.axis2.datasource.jaxb; +import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.mock; + +import org.apache.axiom.soap.SOAPBody; import org.apache.axis2.context.MessageContext; import org.apache.axis2.description.AxisService; import org.apache.axis2.jaxws.Constants; -import javax.xml.namespace.NamespaceContext; -import javax.xml.namespace.QName; -import javax.xml.stream.Location; -import javax.xml.stream.XMLStreamException; - import junit.framework.TestCase; /** @@ -42,13 +41,7 @@ public class JAXBCustomBuilderDisableStr // Disable the JAXB Payload streaming msgCtx.setProperty(Constants.JAXWS_ENABLE_JAXB_PAYLOAD_STREAMING, new Boolean(false)); jaxbDSC.setMessageContext(msgCtx); - try { - assertNull(jaxbCB.create("ns", "lp", null, new MockXMLStreamReader(), null)); - } catch (Exception e) { - // Since we didn't set up the JAXBDSContext fully, if the disabling of it didn't - // work, then we'll get some sort of exception. - fail("JAXB Payload streaming was not disabled"); - } + assertThat(jaxbCB.accepts(mock(SOAPBody.class), 3, "ns", "lp")).isFalse(); } public void testDisableJAXBPayloadStreamingWithHighFidelity() { @@ -59,13 +52,7 @@ public class JAXBCustomBuilderDisableStr // Disable the JAXB Payload streaming msgCtx.setProperty(Constants.JAXWS_PAYLOAD_HIGH_FIDELITY, new Boolean(true)); jaxbDSC.setMessageContext(msgCtx); - try { - assertNull(jaxbCB.create("ns", "lp", null, new MockXMLStreamReader(), null)); - } catch (Exception e) { - // Since we didn't set up the JAXBDSContext fully, if the disabling of it didn't - // work, then we'll get some sort of exception. - fail("JAXB Payload streaming was not disabled"); - } + assertThat(jaxbCB.accepts(mock(SOAPBody.class), 3, "ns", "lp")).isFalse(); } public void testDisableJAXBPayloadStreamingWithHighFidelityParameter() throws Exception { @@ -78,13 +65,7 @@ public class JAXBCustomBuilderDisableStr service.addParameter(Constants.JAXWS_PAYLOAD_HIGH_FIDELITY, "true"); jaxbDSC.setMessageContext(msgCtx); - try { - assertNull(jaxbCB.create("ns", "lp", null, new MockXMLStreamReader(), null)); - } catch (Exception e) { - // Since we didn't set up the JAXBDSContext fully, if the disabling of it didn't - // work, then we'll get some sort of exception. - fail("JAXB Payload streaming was not disabled"); - } + assertThat(jaxbCB.accepts(mock(SOAPBody.class), 3, "ns", "lp")).isFalse(); } public void testDefaultJAXBPayloadStreaming() { @@ -95,197 +76,6 @@ public class JAXBCustomBuilderDisableStr // Do NOT Disable the JAXB Payload streaming; the default should be ON // msgCtx.setProperty(Constants.JAXWS_ENABLE_JAXB_PAYLOAD_STREAMING, new Boolean(false)); jaxbDSC.setMessageContext(msgCtx); - try { - jaxbCB.create("ns", "lp", null, new MockXMLStreamReader(), null); - fail("JAXB Payload streaming default was not enabled"); - } catch (Exception e) { - // Expected code path - // Since we didn't set up the JAXBDSContext fully, if the disabling of it didn't - // work, then we'll get some sort of exception. - } - } - - - class MockXMLStreamReader implements javax.xml.stream.XMLStreamReader { - - public void close() throws XMLStreamException { - } - - public int getAttributeCount() { - return 0; - } - - public String getAttributeLocalName(int i) { - return null; - } - - public QName getAttributeName(int i) { - return null; - } - - public String getAttributeNamespace(int i) { - return null; - } - - public String getAttributePrefix(int i) { - return null; - } - - public String getAttributeType(int i) { - return null; - } - - public String getAttributeValue(int i) { - return null; - } - - public String getAttributeValue(String s, String s1) { - return null; - } - - public String getCharacterEncodingScheme() { - return null; - } - - public String getElementText() throws XMLStreamException { - return null; - } - - public String getEncoding() { - return null; - } - - public int getEventType() { - return 0; - } - - public String getLocalName() { - return null; - } - - public Location getLocation() { - return null; - } - - public QName getName() { - return null; - } - - public NamespaceContext getNamespaceContext() { - return null; - } - - public int getNamespaceCount() { - return 0; - } - - public String getNamespacePrefix(int i) { - return null; - } - - public String getNamespaceURI() { - return null; - } - - public String getNamespaceURI(int i) { - return null; - } - - public String getNamespaceURI(String s) { - return null; - } - - public String getPIData() { - return null; - } - - public String getPITarget() { - return null; - } - - public String getPrefix() { - return null; - } - - public Object getProperty(String s) throws IllegalArgumentException { - return null; - } - - public String getText() { - return null; - } - - public char[] getTextCharacters() { - return null; - } - - public int getTextCharacters(int i, char[] ac, int j, int k) throws XMLStreamException { - return 0; - } - - public int getTextLength() { - return 0; - } - - public int getTextStart() { - return 0; - } - - public String getVersion() { - return null; - } - - public boolean hasName() { - return false; - } - - public boolean hasNext() throws XMLStreamException { - return false; - } - - public boolean hasText() { - return false; - } - - public boolean isAttributeSpecified(int i) { - return false; - } - - public boolean isCharacters() { - return false; - } - - public boolean isEndElement() { - return false; - } - - public boolean isStandalone() { - return false; - } - - public boolean isStartElement() { - return false; - } - - public boolean isWhiteSpace() { - return false; - } - - public int next() throws XMLStreamException { - return 0; - } - - public int nextTag() throws XMLStreamException { - return 0; - } - - public void require(int i, String s, String s1) throws XMLStreamException { - - } - - public boolean standaloneSet() { - return false; - } - + assertThat(jaxbCB.accepts(mock(SOAPBody.class), 3, "ns", "lp")).isTrue(); } } Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/EndpointReferenceUtilsTests.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/EndpointReferenceUtilsTests.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/EndpointReferenceUtilsTests.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/EndpointReferenceUtilsTests.java Sun Dec 17 22:34:08 2017 @@ -22,7 +22,8 @@ package org.apache.axis2.jaxws.addressin import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMFactory; -import org.apache.axiom.om.impl.builder.StAXOMBuilder; +import org.apache.axiom.om.OMXMLBuilderFactory; +import org.apache.axiom.om.OMXMLParserWrapper; import org.apache.axis2.addressing.AddressingConstants.Final; import org.apache.axis2.addressing.AddressingConstants.Submission; import org.apache.axis2.addressing.EndpointReference; @@ -84,7 +85,7 @@ public class EndpointReferenceUtilsTests public void test200508ConversionStartingFromAxis2() throws Exception { XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(EPR200508)); - StAXOMBuilder builder = new StAXOMBuilder(parser); + OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(parser); OMElement omElement = builder.getDocumentElement(); EndpointReference axis2EPR = @@ -125,7 +126,7 @@ public class EndpointReferenceUtilsTests public void test200408ConversionStartingFromAxis2() throws Exception { XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(EPR200408)); - StAXOMBuilder builder = new StAXOMBuilder(parser); + OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(parser); OMElement omElement = builder.getDocumentElement(); EndpointReference axis2EPR = Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/ReferenceParameterListTests.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/ReferenceParameterListTests.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/ReferenceParameterListTests.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/addressing/util/ReferenceParameterListTests.java Sun Dec 17 22:34:08 2017 @@ -20,10 +20,12 @@ package org.apache.axis2.jaxws.addressing.util; import junit.framework.TestCase; + +import org.apache.axiom.om.OMXMLBuilderFactory; import org.apache.axiom.om.util.StAXUtils; import org.apache.axiom.soap.SOAPEnvelope; import org.apache.axiom.soap.SOAPHeader; -import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder; +import org.apache.axiom.soap.SOAPModelBuilder; import org.w3c.dom.Element; import javax.xml.stream.XMLStreamReader; @@ -41,7 +43,7 @@ public class ReferenceParameterListTests public void setUp() throws Exception { File resourceFile = new File(testResourceDir, resourceFileName); XMLStreamReader parser = StAXUtils.createXMLStreamReader(new FileReader(resourceFile)); - StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(parser, null); + SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(parser); header = ((SOAPEnvelope)builder.getDocumentElement()).getHeader(); } Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/attachments/MTOMSerializationTests.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/attachments/MTOMSerializationTests.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/attachments/MTOMSerializationTests.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/attachments/MTOMSerializationTests.java Sun Dec 17 22:34:08 2017 @@ -29,7 +29,6 @@ import org.apache.axiom.om.OMText; import org.apache.axiom.soap.SOAPBody; import org.apache.axiom.soap.SOAPEnvelope; import org.apache.axiom.soap.SOAPFactory; -import org.apache.axiom.soap.impl.llom.soap11.SOAP11Factory; import org.apache.axis2.jaxws.message.Block; import org.apache.axis2.jaxws.message.Message; import org.apache.axis2.jaxws.message.Protocol; @@ -43,12 +42,18 @@ import org.apache.axis2.jaxws.unitTest.T import org.test.mtom.ImageDepot; import org.test.mtom.ObjectFactory; import org.test.mtom.SendImage; +import org.w3c.dom.Node; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.imageio.ImageIO; import javax.imageio.stream.FileImageInputStream; import javax.imageio.stream.ImageInputStream; +import javax.xml.soap.SOAPElement; +import javax.xml.soap.SOAPMessage; + +import static com.google.common.truth.Truth.assertThat; + import java.awt.*; import java.io.ByteArrayOutputStream; import java.io.File; @@ -104,7 +109,7 @@ public class MTOMSerializationTests exte OMElement payload = createPayload(); - SOAPFactory factory = new SOAP11Factory(); + SOAPFactory factory = OMAbstractFactory.getSOAP11Factory(); SOAPEnvelope env = factory.createSOAPEnvelope(); SOAPBody body = factory.createSOAPBody(env); @@ -198,7 +203,13 @@ public class MTOMSerializationTests exte msg.setMTOMEnabled(true); // Convert message to SAAJ to simulate an outbound handler - msg.getAsSOAPMessage(); + SOAPMessage saajMessage = msg.getAsSOAPMessage(); + + // SAAJ is expected to have an XOP encoded representation of the message + SOAPElement imageData = (SOAPElement)saajMessage.getSOAPBody().getElementsByTagNameNS("*", "imageData").item(0); + Node child = imageData.getFirstChild(); + assertThat(child.getNodeType()).isEqualTo(Node.ELEMENT_NODE); + assertThat(child.getLocalName()).isEqualTo("Include"); // Now convert it back to AXIOM Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/catalog/MultiRedirectionCatalogTest.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/catalog/MultiRedirectionCatalogTest.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/catalog/MultiRedirectionCatalogTest.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/catalog/MultiRedirectionCatalogTest.java Sun Dec 17 22:34:08 2017 @@ -135,7 +135,7 @@ public class MultiRedirectionCatalogTest fail(); } File file = new File(wsdlLocation); - url = file.toURL(); + url = file.toURI().toURL(); } catch (MalformedURLException e) { e.printStackTrace(); fail(); Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/catalog/XMLCatalogTests.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/catalog/XMLCatalogTests.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/catalog/XMLCatalogTests.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/catalog/XMLCatalogTests.java Sun Dec 17 22:34:08 2017 @@ -51,10 +51,10 @@ public class XMLCatalogTests extends Tes DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); documentBuilderFactory.setNamespaceAware(true); Document doc = documentBuilderFactory.newDocumentBuilder(). - parse(file.toURL().toString()); + parse(file.toURI().toURL().toString()); XmlSchemaCollection schemaCol = new XmlSchemaCollection(); - XmlSchema schema = schemaCol.read(doc,file.toURL().toString(),null); + XmlSchema schema = schemaCol.read(doc,file.toURI().toURL().toString(),null); assertNotNull(schema); assertNotNull(schema.getTypeByName(new QName("http://soapinterop.org/xsd2","SOAPStruct"))); @@ -72,10 +72,10 @@ public class XMLCatalogTests extends Tes DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); documentBuilderFactory.setNamespaceAware(true); Document doc = documentBuilderFactory.newDocumentBuilder(). - parse(file.toURL().toString()); + parse(file.toURI().toURL().toString()); XmlSchemaCollection schemaCol = new XmlSchemaCollection(); - XmlSchema schema = schemaCol.read(doc,file.toURL().toString(),null); + XmlSchema schema = schemaCol.read(doc,file.toURI().toURL().toString(),null); assertNotNull(schema); assertNotNull(schema.getTypeByName(new QName("http://soapinterop.org/xsd2","SOAPStruct"))); @@ -96,11 +96,11 @@ public class XMLCatalogTests extends Tes DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); documentBuilderFactory.setNamespaceAware(true); Document doc = documentBuilderFactory.newDocumentBuilder(). - parse(file.toURL().toString()); + parse(file.toURI().toURL().toString()); XmlSchemaCollection schemaCol = new XmlSchemaCollection(); schemaCol.setSchemaResolver(new CatalogURIResolver(catalogManager)); - XmlSchema schema = schemaCol.read(doc,file.toURL().toString(),null); + XmlSchema schema = schemaCol.read(doc,file.toURI().toURL().toString(),null); assertNotNull(schema); assertNotNull(schema.getTypeByName(new QName("http://soapinterop.org/xsd2","SOAPStruct"))); @@ -123,7 +123,7 @@ public class XMLCatalogTests extends Tes fail(); } File file = new File(wsdlLocation); - url = file.toURL(); + url = file.toURI().toURL(); } catch (MalformedURLException e) { e.printStackTrace(); fail(); Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/client/ClientConfigTests.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/client/ClientConfigTests.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/client/ClientConfigTests.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/client/ClientConfigTests.java Sun Dec 17 22:34:08 2017 @@ -50,7 +50,7 @@ public class ClientConfigTests extends T e.printStackTrace(); } File file = new File(wsdlLocation); - url = file.toURL(); + url = file.toURI().toURL(); } catch (MalformedURLException e) { e.printStackTrace(); } Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/client/ReleaseServiceTests.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/client/ReleaseServiceTests.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/client/ReleaseServiceTests.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/client/ReleaseServiceTests.java Sun Dec 17 22:34:08 2017 @@ -966,7 +966,7 @@ public class ReleaseServiceTests extends String wsdlLocation = getWsdlLocation(wsdlFileName); try { File file = new File(wsdlLocation); - url = file.toURL(); + url = file.toURI().toURL(); } catch (MalformedURLException e) { e.printStackTrace(); fail("Exception converting WSDL file to URL: " + e.toString()); Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/description/DescriptionTestUtils2.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/description/DescriptionTestUtils2.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/description/DescriptionTestUtils2.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/description/DescriptionTestUtils2.java Sun Dec 17 22:34:08 2017 @@ -23,6 +23,7 @@ package org.apache.axis2.jaxws.descripti import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite; import org.apache.axis2.jaxws.spi.ServiceDelegate; import org.apache.axis2.jaxws.unitTest.TestLogger; +import org.apache.axis2.wsdl.WSDLUtil; import javax.wsdl.Definition; import javax.wsdl.factory.WSDLFactory; @@ -60,7 +61,7 @@ public class DescriptionTestUtils2 { URL wsdlURL = null; String urlString = getWSDLLocation(wsdlFileName); try { - wsdlURL = new File(urlString).getAbsoluteFile().toURL(); + wsdlURL = new File(urlString).getAbsoluteFile().toURI().toURL(); } catch (Exception e) { TestLogger.logger.debug( "Caught exception creating WSDL URL :" + urlString + "; exception: " + @@ -72,8 +73,7 @@ public class DescriptionTestUtils2 { static Definition createWSDLDefinition(URL wsdlURL) { Definition wsdlDefinition = null; try { - WSDLFactory factory = WSDLFactory.newInstance(); - WSDLReader reader = factory.newWSDLReader(); + WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry(); wsdlDefinition = reader.readWSDL(wsdlURL.toString()); } catch (Exception e) { Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/description/sample/addnumbers/AddNumbersService.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/description/sample/addnumbers/AddNumbersService.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/description/sample/addnumbers/AddNumbersService.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/description/sample/addnumbers/AddNumbersService.java Sun Dec 17 22:34:08 2017 @@ -51,7 +51,7 @@ public class AddNumbersService e.printStackTrace(); } File file = new File(wsdlLocation); - url = file.toURL(); + url = file.toURI().toURL(); } catch (MalformedURLException e) { e.printStackTrace(); } Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerPrePostInvokerTests.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerPrePostInvokerTests.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerPrePostInvokerTests.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerPrePostInvokerTests.java Sun Dec 17 22:34:08 2017 @@ -1,225 +1,228 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.axis2.jaxws.handler; - -import junit.framework.TestCase; -import org.apache.axis2.jaxws.core.MessageContext; -import org.apache.axis2.jaxws.handler.factory.HandlerPostInvokerFactory; -import org.apache.axis2.jaxws.handler.factory.HandlerPreInvokerFactory; -import org.apache.axis2.jaxws.message.Block; -import org.apache.axis2.jaxws.message.Message; -import org.apache.axis2.jaxws.message.Protocol; -import org.apache.axis2.jaxws.message.factory.MessageFactory; -import org.apache.axis2.jaxws.message.factory.XMLStringBlockFactory; -import org.apache.axis2.jaxws.registry.FactoryRegistry; - -import javax.xml.ws.handler.Handler; -import javax.xml.ws.handler.soap.SOAPHandler; -import javax.xml.ws.handler.soap.SOAPMessageContext; -import java.util.ArrayList; -import java.util.Set; - -/** - * HandlerPrePostInvokerTests verifies that the mechanisms for finding the implementation classes to - * call before and after handler.handleMessage work, and that the calls are actually made. Simple as that. - */ -public class HandlerPrePostInvokerTests extends TestCase { - - private MessageContext mc = null; - private boolean preInvokerCalled = false; - private boolean postInvokerCalled = false; - private boolean messageAccessed = false; - - private static final String soap11env = "http://schemas.xmlsoap.org/soap/envelope/"; - - public static final String SOAP11_ENVELOPE = - "<?xml version='1.0' encoding='utf-8'?>" + - "<soapenv:Envelope xmlns:soapenv=\"" + soap11env + "\">" + - "<soapenv:Header />" + - "<soapenv:Body>" + - "</soapenv:Body>" + - "</soapenv:Envelope>"; - - @Override - protected void setUp() throws Exception { - - // Create a SOAP 1.1 Message and MessageContext - // I just grabbed this code from the JAXWS MessageTests - MessageFactory mf = (MessageFactory) FactoryRegistry.getFactory(MessageFactory.class); - Message m = mf.create(Protocol.soap11); - XMLStringBlockFactory f = - (XMLStringBlockFactory) FactoryRegistry.getFactory(XMLStringBlockFactory.class); - Block block = f.createFrom(SOAP11_ENVELOPE, null, null); - m.setBodyBlock(block); - - mc = new MessageContext(); - mc.setMessage(m); - mc.setMEPContext(new MEPContext(mc)); - } - - /** - * make sure the defaults are as expected - * - */ - public void testFactoryRegistry() { - HandlerPreInvokerFactory preFact = (HandlerPreInvokerFactory)FactoryRegistry.getFactory(HandlerPreInvokerFactory.class); - HandlerPostInvokerFactory postFact = (HandlerPostInvokerFactory)FactoryRegistry.getFactory(HandlerPostInvokerFactory.class); - HandlerPreInvoker preInvoker = preFact.createHandlerPreInvoker(); - HandlerPostInvoker postInvoker = postFact.createHandlerPostInvoker(); - assertTrue("preInvoker should be instanceof " + org.apache.axis2.jaxws.handler.impl.HandlerPreInvokerImpl.class.getCanonicalName(), preInvoker instanceof org.apache.axis2.jaxws.handler.impl.HandlerPreInvokerImpl); - assertTrue("postInvoker should be instanceof " + org.apache.axis2.jaxws.handler.impl.HandlerPostInvokerImpl.class.getCanonicalName(), postInvoker instanceof org.apache.axis2.jaxws.handler.impl.HandlerPostInvokerImpl); - } - - /** - * make sure the registered factories are used, and the calls are made in the places we expect - * - */ - public void testFactoryPrePost() { - - FactoryRegistry.setFactory(HandlerPreInvokerFactory.class, new HandlerPreInvokerFactoryImpl()); - FactoryRegistry.setFactory(HandlerPostInvokerFactory.class, new HandlerPostInvokerFactoryImpl()); - - ArrayList<Handler> handlers = new ArrayList<Handler>(); - handlers.add(new SOAPHandler1()); - HandlerChainProcessor processor = - new HandlerChainProcessor(handlers, Protocol.soap11); - boolean success = true; - try { - // server-side incoming request - success = processor.processChain(mc.getMEPContext(), - HandlerChainProcessor.Direction.IN, - HandlerChainProcessor.MEP.REQUEST, - true); - } catch (Exception e) { - assertNull(e); // should not get exception - } - - assertTrue("processChain should have succeeded", success); - assertTrue("preInvoker should have been called", preInvokerCalled); - assertTrue("postInvoker should have been called", postInvokerCalled); - assertTrue("Handler did not access message but messageAccessed property is true.", !messageAccessed); - - } - - public void testPostInvokerMessageAccessed() { - - FactoryRegistry.setFactory(HandlerPostInvokerFactory.class, new HandlerPostInvokerFactoryImpl()); - - ArrayList<Handler> handlers = new ArrayList<Handler>(); - handlers.add(new SOAPHandlerGetsMessage()); - HandlerChainProcessor processor = - new HandlerChainProcessor(handlers, Protocol.soap11); - boolean success = true; - try { - // server-side incoming request - success = processor.processChain(mc.getMEPContext(), - HandlerChainProcessor.Direction.IN, - HandlerChainProcessor.MEP.REQUEST, - true); - } catch (Exception e) { - assertNull(e); // should not get exception - } - - assertTrue("processChain should have succeeded", success); - assertTrue("postInvoker should have been called", postInvokerCalled); - assertTrue("Handler did access message but messageAccessed property is false.", messageAccessed); - - - } - - /***************************************** - * Classes needed for junit testcase * - *****************************************/ - - private class SOAPHandler1 implements SOAPHandler<SOAPMessageContext> { - - public Set getHeaders() { - return null; - } - - public void close(javax.xml.ws.handler.MessageContext messagecontext) { - } - - public boolean handleFault(SOAPMessageContext messagecontext) { - return true; - } - - public boolean handleMessage(SOAPMessageContext messagecontext) { - return true; - } - - } - /***************************************** - * Classes needed for junit testcase * - *****************************************/ - - private class SOAPHandlerGetsMessage implements SOAPHandler<SOAPMessageContext> { - - public Set getHeaders() { - return null; - } - - public void close(javax.xml.ws.handler.MessageContext messagecontext) { - } - - public boolean handleFault(SOAPMessageContext messagecontext) { - return true; - } - - public boolean handleMessage(SOAPMessageContext messagecontext) { - messagecontext.getMessage(); - return true; - } - - } - - private class HandlerPreInvokerFactoryImpl implements HandlerPreInvokerFactory { - public HandlerPreInvoker createHandlerPreInvoker() { - return new HandlerPreInvokerImpl(); - } - } - - private class HandlerPostInvokerFactoryImpl implements HandlerPostInvokerFactory { - public HandlerPostInvoker createHandlerPostInvoker() { - return new HandlerPostInvokerImpl(); - } - } - - private class HandlerPreInvokerImpl implements HandlerPreInvoker { - public void preInvoke(javax.xml.ws.handler.MessageContext mc) { - preInvokerCalled = true; - } - } - - private class HandlerPostInvokerImpl implements HandlerPostInvoker { - public void postInvoke(javax.xml.ws.handler.MessageContext mc) { - postInvokerCalled = true; - if (mc instanceof SoapMessageContext) { - SoapMessageContext smc = (SoapMessageContext) mc; - // PK96521 - before getting the message (which is expensive) check first to - // see if it was actually accessed by the handlers - messageAccessed = false; - if (smc.containsKey("jaxws.isMessageAccessed")) { - messageAccessed = (Boolean)(smc.get("jaxws.isMessageAccessed")); - } - } - } - } -} +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.axis2.jaxws.handler; + +import junit.framework.TestCase; +import org.apache.axis2.jaxws.core.MessageContext; +import org.apache.axis2.jaxws.handler.factory.HandlerPostInvokerFactory; +import org.apache.axis2.jaxws.handler.factory.HandlerPreInvokerFactory; +import org.apache.axis2.jaxws.message.Block; +import org.apache.axis2.jaxws.message.Message; +import org.apache.axis2.jaxws.message.Protocol; +import org.apache.axis2.jaxws.message.factory.MessageFactory; +import org.apache.axis2.jaxws.message.factory.XMLStringBlockFactory; +import org.apache.axis2.jaxws.registry.FactoryRegistry; + +import javax.xml.ws.handler.Handler; +import javax.xml.ws.handler.soap.SOAPHandler; +import javax.xml.ws.handler.soap.SOAPMessageContext; + +import static com.google.common.truth.Truth.assertThat; + +import java.util.ArrayList; +import java.util.Set; + +/** + * HandlerPrePostInvokerTests verifies that the mechanisms for finding the implementation classes to + * call before and after handler.handleMessage work, and that the calls are actually made. Simple as that. + */ +public class HandlerPrePostInvokerTests extends TestCase { + + private MessageContext mc = null; + private boolean preInvokerCalled = false; + private boolean postInvokerCalled = false; + private boolean messageAccessed = false; + + private static final String soap11env = "http://schemas.xmlsoap.org/soap/envelope/"; + + public static final String SOAP11_ENVELOPE = + "<?xml version='1.0' encoding='utf-8'?>" + + "<soapenv:Envelope xmlns:soapenv=\"" + soap11env + "\">" + + "<soapenv:Header />" + + "<soapenv:Body>" + + "</soapenv:Body>" + + "</soapenv:Envelope>"; + + @Override + protected void setUp() throws Exception { + + // Create a SOAP 1.1 Message and MessageContext + // I just grabbed this code from the JAXWS MessageTests + MessageFactory mf = (MessageFactory) FactoryRegistry.getFactory(MessageFactory.class); + Message m = mf.create(Protocol.soap11); + XMLStringBlockFactory f = + (XMLStringBlockFactory) FactoryRegistry.getFactory(XMLStringBlockFactory.class); + Block block = f.createFrom(SOAP11_ENVELOPE, null, null); + m.setBodyBlock(block); + + mc = new MessageContext(); + mc.setMessage(m); + mc.setMEPContext(new MEPContext(mc)); + } + + /** + * make sure the defaults are as expected + * + */ + public void testFactoryRegistry() { + HandlerPreInvokerFactory preFact = (HandlerPreInvokerFactory)FactoryRegistry.getFactory(HandlerPreInvokerFactory.class); + HandlerPostInvokerFactory postFact = (HandlerPostInvokerFactory)FactoryRegistry.getFactory(HandlerPostInvokerFactory.class); + HandlerPreInvoker preInvoker = preFact.createHandlerPreInvoker(); + HandlerPostInvoker postInvoker = postFact.createHandlerPostInvoker(); + assertThat(preInvoker).named("preInvoker").isInstanceOf(org.apache.axis2.jaxws.handler.impl.HandlerPreInvokerImpl.class); + assertThat(postInvoker).named("postInvoker").isInstanceOf(org.apache.axis2.jaxws.handler.impl.HandlerPostInvokerImpl.class); + } + + /** + * make sure the registered factories are used, and the calls are made in the places we expect + * + */ + public void testFactoryPrePost() { + HandlerPreInvokerFactory orgHandlerPreInvokerFactory = (HandlerPreInvokerFactory)FactoryRegistry.getFactory(HandlerPreInvokerFactory.class); + HandlerPostInvokerFactory orgHandlerPostInvokerFactory = (HandlerPostInvokerFactory)FactoryRegistry.getFactory(HandlerPostInvokerFactory.class); + try { + FactoryRegistry.setFactory(HandlerPreInvokerFactory.class, new HandlerPreInvokerFactoryImpl()); + FactoryRegistry.setFactory(HandlerPostInvokerFactory.class, new HandlerPostInvokerFactoryImpl()); + + ArrayList<Handler> handlers = new ArrayList<Handler>(); + handlers.add(new SOAPHandler1()); + HandlerChainProcessor processor = + new HandlerChainProcessor(handlers, Protocol.soap11); + boolean success = true; + // server-side incoming request + success = processor.processChain(mc.getMEPContext(), + HandlerChainProcessor.Direction.IN, + HandlerChainProcessor.MEP.REQUEST, + true); + + assertTrue("processChain should have succeeded", success); + assertTrue("preInvoker should have been called", preInvokerCalled); + assertTrue("postInvoker should have been called", postInvokerCalled); + assertTrue("Handler did not access message but messageAccessed property is true.", !messageAccessed); + } finally { + // Reset factory state to avoid side effects visible to other tests + FactoryRegistry.setFactory(HandlerPreInvokerFactory.class, orgHandlerPreInvokerFactory); + FactoryRegistry.setFactory(HandlerPostInvokerFactory.class, orgHandlerPostInvokerFactory); + } + } + + public void testPostInvokerMessageAccessed() { + HandlerPostInvokerFactory orgHandlerPostInvokerFactory = (HandlerPostInvokerFactory)FactoryRegistry.getFactory(HandlerPostInvokerFactory.class); + try { + FactoryRegistry.setFactory(HandlerPostInvokerFactory.class, new HandlerPostInvokerFactoryImpl()); + + ArrayList<Handler> handlers = new ArrayList<Handler>(); + handlers.add(new SOAPHandlerGetsMessage()); + HandlerChainProcessor processor = + new HandlerChainProcessor(handlers, Protocol.soap11); + boolean success = true; + // server-side incoming request + success = processor.processChain(mc.getMEPContext(), + HandlerChainProcessor.Direction.IN, + HandlerChainProcessor.MEP.REQUEST, + true); + + assertTrue("processChain should have succeeded", success); + assertTrue("postInvoker should have been called", postInvokerCalled); + assertTrue("Handler did access message but messageAccessed property is false.", messageAccessed); + } finally { + FactoryRegistry.setFactory(HandlerPostInvokerFactory.class, orgHandlerPostInvokerFactory); + } + } + + /***************************************** + * Classes needed for junit testcase * + *****************************************/ + + private class SOAPHandler1 implements SOAPHandler<SOAPMessageContext> { + + public Set getHeaders() { + return null; + } + + public void close(javax.xml.ws.handler.MessageContext messagecontext) { + } + + public boolean handleFault(SOAPMessageContext messagecontext) { + return true; + } + + public boolean handleMessage(SOAPMessageContext messagecontext) { + return true; + } + + } + /***************************************** + * Classes needed for junit testcase * + *****************************************/ + + private class SOAPHandlerGetsMessage implements SOAPHandler<SOAPMessageContext> { + + public Set getHeaders() { + return null; + } + + public void close(javax.xml.ws.handler.MessageContext messagecontext) { + } + + public boolean handleFault(SOAPMessageContext messagecontext) { + return true; + } + + public boolean handleMessage(SOAPMessageContext messagecontext) { + messagecontext.getMessage(); + return true; + } + + } + + private class HandlerPreInvokerFactoryImpl implements HandlerPreInvokerFactory { + public HandlerPreInvoker createHandlerPreInvoker() { + return new HandlerPreInvokerImpl(); + } + } + + private class HandlerPostInvokerFactoryImpl implements HandlerPostInvokerFactory { + public HandlerPostInvoker createHandlerPostInvoker() { + return new HandlerPostInvokerImpl(); + } + } + + private class HandlerPreInvokerImpl implements HandlerPreInvoker { + public void preInvoke(javax.xml.ws.handler.MessageContext mc) { + preInvokerCalled = true; + } + } + + private class HandlerPostInvokerImpl implements HandlerPostInvoker { + public void postInvoke(javax.xml.ws.handler.MessageContext mc) { + postInvokerCalled = true; + if (mc instanceof SoapMessageContext) { + SoapMessageContext smc = (SoapMessageContext) mc; + // PK96521 - before getting the message (which is expensive) check first to + // see if it was actually accessed by the handlers + messageAccessed = false; + if (smc.containsKey("jaxws.isMessageAccessed")) { + messageAccessed = (Boolean)(smc.get("jaxws.isMessageAccessed")); + } + } + } + } +} Propchange: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerPrePostInvokerTests.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerResolverTest.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerResolverTest.java?rev=1818518&r1=1818517&r2=1818518&view=diff ============================================================================== --- axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerResolverTest.java (original) +++ axis/axis2/java/core/branches/AXIS2-4091/modules/jaxws/test/org/apache/axis2/jaxws/handler/HandlerResolverTest.java Sun Dec 17 22:34:08 2017 @@ -142,7 +142,7 @@ public class HandlerResolverTest extends String sep = "/"; configLoc = sep + "test-resources" + sep + "configuration" + sep + "handlers" + sep + "handler.xml"; String baseDir = new File(System.getProperty("basedir",".")).getCanonicalPath(); - is = new File(baseDir + configLoc).toURL().openStream(); + is = new File(baseDir + configLoc).toURI().toURL().openStream(); } catch(Exception e) { e.printStackTrace();
