Jarek, Thanks for pointing this out.
Since the test specifically addressed issues appearing with version 8.9, and we use that same version in Synapse, I would like to keep it. I added a repository which contains the relevant artifacts. Andreas On Mon, Jan 5, 2009 at 16:29, Jarek Gawor <jga...@gmail.com> wrote: > Andreas, > > In this change you upgrade to Saxon 8.9 but version 8.9 is not > published in the Maven central repo (the latest version published is > 8.7) and therefore this causes build problems. We either need to > downgrade to 8.7 or publish 8.9 to Maven. > > Jarek > > On Mon, Dec 22, 2008 at 11:21 AM, <veit...@apache.org> wrote: >> Author: veithen >> Date: Mon Dec 22 08:21:05 2008 >> New Revision: 728721 >> >> URL: http://svn.apache.org/viewvc?rev=728721&view=rev >> Log: >> Added some integration tests for DOOM with Saxon and Xalan. Changed the >> exception thrown by NodeImpl#compareDocumentPosition from >> UnsupportedOperationException to DOMException(NOT_SUPPORTED_ERR) to make >> this work with Saxon 8.9. >> >> Added: >> >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/java/org/apache/axiom/om/impl/dom/ >> >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/java/org/apache/axiom/om/impl/dom/jaxp/ >> >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/java/org/apache/axiom/om/impl/dom/jaxp/TransformerTest.java >> (with props) >> >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/ >> >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/ >> >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/identity.xslt >> (with props) >> >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/input.xml >> (with props) >> >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/output.xml >> (with props) >> >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/stylesheet.xslt >> (with props) >> Modified: >> >> webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/pom.xml >> >> Modified: >> webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java >> URL: >> http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java?rev=728721&r1=728720&r2=728721&view=diff >> ============================================================================== >> --- >> webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java >> (original) >> +++ >> webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java >> Mon Dec 22 08:21:05 2008 >> @@ -518,9 +518,12 @@ >> throw new UnsupportedOperationException("TODO"); >> } >> >> - public short compareDocumentPosition(Node arg0) throws DOMException { >> - // TODO TODO >> - throw new UnsupportedOperationException("TODO"); >> + public short compareDocumentPosition(Node other) throws DOMException { >> + // This is not yet implemented. In the meantime, we throw a >> DOMException >> + // and not an UnsupportedOperationException, since this works >> better with >> + // some other libraries (such as Saxon 8.9). >> + throw new DOMException(DOMException.NOT_SUPPORTED_ERR, >> DOMMessageFormatter >> + .formatMessage(DOMMessageFormatter.DOM_DOMAIN, >> "NOT_SUPPORTED_ERR", null)); >> } >> >> public String getTextContent() throws DOMException { >> >> Modified: >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/pom.xml >> URL: >> http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-integration/pom.xml?rev=728721&r1=728720&r2=728721&view=diff >> ============================================================================== >> --- >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/pom.xml >> (original) >> +++ >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/pom.xml >> Mon Dec 22 08:21:05 2008 >> @@ -39,6 +39,11 @@ >> <version>${axiom.version}</version> >> </dependency> >> <dependency> >> + <groupId>org.apache.ws.commons.axiom</groupId> >> + <artifactId>axiom-dom</artifactId> >> + <version>${axiom.version}</version> >> + </dependency> >> + <dependency> >> <groupId>junit</groupId> >> <artifactId>junit</artifactId> >> </dependency> >> @@ -70,7 +75,12 @@ >> <dependency> >> <groupId>net.sf.saxon</groupId> >> <artifactId>saxon</artifactId> >> - <version>8.5.1</version> >> + <version>8.9</version> >> + </dependency> >> + <dependency> >> + <groupId>net.sf.saxon</groupId> >> + <artifactId>saxon-dom</artifactId> >> + <version>8.9</version> >> </dependency> >> </dependencies> >> <build> >> >> Added: >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/java/org/apache/axiom/om/impl/dom/jaxp/TransformerTest.java >> URL: >> http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/java/org/apache/axiom/om/impl/dom/jaxp/TransformerTest.java?rev=728721&view=auto >> ============================================================================== >> --- >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/java/org/apache/axiom/om/impl/dom/jaxp/TransformerTest.java >> (added) >> +++ >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/java/org/apache/axiom/om/impl/dom/jaxp/TransformerTest.java >> Mon Dec 22 08:21:05 2008 >> @@ -0,0 +1,87 @@ >> +/* >> + * 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.axiom.om.impl.dom.jaxp; >> + >> +import javax.xml.parsers.DocumentBuilder; >> +import javax.xml.parsers.DocumentBuilderFactory; >> +import javax.xml.transform.Transformer; >> +import javax.xml.transform.TransformerFactory; >> +import javax.xml.transform.dom.DOMResult; >> +import javax.xml.transform.dom.DOMSource; >> + >> +import org.custommonkey.xmlunit.XMLTestCase; >> +import org.custommonkey.xmlunit.XMLUnit; >> +import org.w3c.dom.Document; >> +import org.w3c.dom.Element; >> + >> +public class TransformerTest extends XMLTestCase { >> + private void testStylesheet(TransformerFactory tf) throws Exception { >> + DocumentBuilderFactory dbf = new DOOMDocumentBuilderFactory(); >> + DocumentBuilder builder = dbf.newDocumentBuilder(); >> + Document input = >> builder.parse(TransformerTest.class.getResourceAsStream("input.xml")); >> + Document stylesheet >> + = >> builder.parse(TransformerTest.class.getResourceAsStream("stylesheet.xslt")); >> + Document expected = >> builder.parse(TransformerTest.class.getResourceAsStream("output.xml")); >> + Document actual = builder.newDocument(); >> + Transformer transformer = tf.newTransformer(new >> DOMSource(stylesheet)); >> + transformer.transform(new DOMSource(input), new DOMResult(actual)); >> + XMLUnit.setIgnoreWhitespace(true); >> + assertXMLEqual(expected, actual); >> + } >> + >> + public void testStylesheetWithXalan() throws Exception { >> + testStylesheet(new >> org.apache.xalan.processor.TransformerFactoryImpl()); >> + } >> + >> + public void testStyleSheetWithSaxon() throws Exception { >> + testStylesheet(new net.sf.saxon.TransformerFactoryImpl()); >> + } >> + >> + // This test failed with Saxon 8.9 because >> NodeImpl#compareDocumentPosition >> + // threw an UnsupportedOperationException instead of a DOMException. >> + private void testIdentity(TransformerFactory tf) throws Exception { >> + DocumentBuilderFactory dbf = new DOOMDocumentBuilderFactory(); >> + DocumentBuilder builder = dbf.newDocumentBuilder(); >> + >> + Document document = builder.newDocument(); >> + Element root = document.createElement("root"); >> + Element element = document.createElementNS("urn:mynamespace", >> "element1"); >> + element.setAttribute("att", "testValue"); >> + element.appendChild(document.createTextNode("test")); >> + root.appendChild(element); >> + document.appendChild(root); >> + >> + Document stylesheet >> + = >> builder.parse(TransformerTest.class.getResourceAsStream("identity.xslt")); >> + Document output = builder.newDocument(); >> + Transformer transformer = tf.newTransformer(new >> DOMSource(stylesheet)); >> + transformer.transform(new DOMSource(document), new >> DOMResult(output)); >> + XMLUnit.setIgnoreWhitespace(false); >> + assertXMLEqual(document, output); >> + } >> + >> + public void testIdentityWithXalan() throws Exception { >> + testIdentity(new >> org.apache.xalan.processor.TransformerFactoryImpl()); >> + } >> + >> + public void testIdentityWithSaxon() throws Exception { >> + testIdentity(new net.sf.saxon.TransformerFactoryImpl()); >> + } >> +} >> >> Propchange: >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/java/org/apache/axiom/om/impl/dom/jaxp/TransformerTest.java >> ------------------------------------------------------------------------------ >> svn:eol-style = native >> >> Added: >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/identity.xslt >> URL: >> http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/identity.xslt?rev=728721&view=auto >> ============================================================================== >> --- >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/identity.xslt >> (added) >> +++ >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/identity.xslt >> Mon Dec 22 08:21:05 2008 >> @@ -0,0 +1,9 @@ >> +<?xml version="1.0" encoding="ISO-8859-1"?> >> +<xsl:stylesheet version="1.0" >> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> >> + <xsl:output method="xml"/> >> + <xsl:template match="node()|@*"> >> + <xsl:copy> >> + <xsl:apply-templates select="node()|@*"/> >> + </xsl:copy> >> + </xsl:template> >> +</xsl:stylesheet> >> \ No newline at end of file >> >> Propchange: >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/identity.xslt >> ------------------------------------------------------------------------------ >> svn:eol-style = native >> >> Added: >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/input.xml >> URL: >> http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/input.xml?rev=728721&view=auto >> ============================================================================== >> --- >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/input.xml >> (added) >> +++ >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/input.xml >> Mon Dec 22 08:21:05 2008 >> @@ -0,0 +1,18 @@ >> +<?xml version="1.0" encoding="utf-8"?> >> +<sales> >> + <division id="North"> >> + <revenue>10</revenue> >> + <growth>9</growth> >> + <bonus>7</bonus> >> + </division> >> + <division id="South"> >> + <revenue>4</revenue> >> + <growth>3</growth> >> + <bonus>4</bonus> >> + </division> >> + <division id="West"> >> + <revenue>6</revenue> >> + <growth>-1.5</growth> >> + <bonus>2</bonus> >> + </division> >> +</sales> >> >> Propchange: >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/input.xml >> ------------------------------------------------------------------------------ >> svn:eol-style = native >> >> Added: >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/output.xml >> URL: >> http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/output.xml?rev=728721&view=auto >> ============================================================================== >> --- >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/output.xml >> (added) >> +++ >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/output.xml >> Mon Dec 22 08:21:05 2008 >> @@ -0,0 +1,19 @@ >> +<?xml version="1.0" encoding="utf-8"?> >> +<svg width="3in" height="3in" >> + xmlns="http://www.w3.org/2000/svg"> >> + <g style="stroke: #000000"> >> + <line x1="0" x2="150" y1="150" y2="150"/> >> + <line x1="0" x2="0" y1="0" y2="150"/> >> + <text x="0" y="10">Revenue</text> >> + <text x="150" y="165">Division</text> >> + <rect x="10" y="50" width="20" height="100"/> >> + <text x="10" y="165">North</text> >> + <text x="10" y="45">10</text> >> + <rect x="50" y="110" width="20" height="40"/> >> + <text x="50" y="165">South</text> >> + <text x="50" y="105">4</text> >> + <rect x="90" y="90" width="20" height="60"/> >> + <text x="90" y="165">West</text> >> + <text x="90" y="85">6</text> >> + </g> >> +</svg> >> >> Propchange: >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/output.xml >> ------------------------------------------------------------------------------ >> svn:eol-style = native >> >> Added: >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/stylesheet.xslt >> URL: >> http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/stylesheet.xslt?rev=728721&view=auto >> ============================================================================== >> --- >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/stylesheet.xslt >> (added) >> +++ >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/stylesheet.xslt >> Mon Dec 22 08:21:05 2008 >> @@ -0,0 +1,45 @@ >> +<?xml version="1.0" encoding="utf-8"?> >> +<xsl:stylesheet version="1.0" >> + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >> + xmlns="http://www.w3.org/2000/svg"> >> + >> + <xsl:output method="xml" indent="yes" media-type="image/svg"/> >> + >> + <xsl:template match="/"> >> + <svg width = "3in" height="3in"> >> + <g style = "stroke: #000000"> >> + <!-- draw the axes --> >> + <line x1="0" x2="150" y1="150" y2="150"/> >> + <line x1="0" x2="0" y1="0" y2="150"/> >> + <text x="0" y="10">Revenue</text> >> + <text x="150" y="165">Division</text> >> + <xsl:for-each select="sales/division"> >> + <!-- define some useful variables --> >> + >> + <!-- the bar's x position --> >> + <xsl:variable name="pos" >> + select="(position()*40)-30"/> >> + >> + <!-- the bar's height --> >> + <xsl:variable name="height" >> + select="revenue*10"/> >> + >> + <!-- the rectangle --> >> + <rect x="{$pos}" y="{150-$height}" >> + width="20" height="{$height}"/> >> + >> + <!-- the text label --> >> + <text x="{$pos}" y="165"> >> + <xsl:value-of select="@id"/> >> + </text> >> + >> + <!-- the bar value --> >> + <text x="{$pos}" y="{145-$height}"> >> + <xsl:value-of select="revenue"/> >> + </text> >> + </xsl:for-each> >> + </g> >> + </svg> >> + </xsl:template> >> + >> +</xsl:stylesheet> >> \ No newline at end of file >> >> Propchange: >> webservices/commons/trunk/modules/axiom/modules/axiom-integration/src/test/resources/org/apache/axiom/om/impl/dom/jaxp/stylesheet.xslt >> ------------------------------------------------------------------------------ >> svn:eol-style = native >> >> >> >