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, <[email protected]> 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 > > >
