You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-commits@xmlgraphics.apache.org by ss...@apache.org on 2022/08/03 11:40:25 UTC
svn commit: r1903209 - in /xmlgraphics/batik/trunk: ./ batik-bridge/src/main/java/org/apache/batik/bridge/svg12/ batik-dom/ batik-dom/src/main/java/org/apache/batik/dom/ lib/
Author: ssteiner
Date: Wed Aug 3 11:40:25 2022
New Revision: 1903209
URL: http://svn.apache.org/viewvc?rev=1903209&view=rev
Log:
BATIK-1329: Remove xalan
Removed:
xmlgraphics/batik/trunk/lib/LICENSE.xalan-2.7.2.txt
xmlgraphics/batik/trunk/lib/README.xalan-2.7.2.txt
xmlgraphics/batik/trunk/lib/xalan-2.7.2.jar
Modified:
xmlgraphics/batik/trunk/batik-bridge/src/main/java/org/apache/batik/bridge/svg12/XPathPatternContentSelector.java
xmlgraphics/batik/trunk/batik-dom/pom.xml
xmlgraphics/batik/trunk/batik-dom/src/main/java/org/apache/batik/dom/AbstractDocument.java
xmlgraphics/batik/trunk/pom.xml
Modified: xmlgraphics/batik/trunk/batik-bridge/src/main/java/org/apache/batik/bridge/svg12/XPathPatternContentSelector.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/batik-bridge/src/main/java/org/apache/batik/bridge/svg12/XPathPatternContentSelector.java?rev=1903209&r1=1903208&r2=1903209&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/batik-bridge/src/main/java/org/apache/batik/bridge/svg12/XPathPatternContentSelector.java (original)
+++ xmlgraphics/batik/trunk/batik-bridge/src/main/java/org/apache/batik/bridge/svg12/XPathPatternContentSelector.java Wed Aug 3 11:40:25 2022
@@ -18,20 +18,22 @@
*/
package org.apache.batik.bridge.svg12;
-import java.util.ArrayList;
-
-import org.apache.xml.utils.PrefixResolver;
-import org.apache.xpath.XPath;
-import org.apache.xpath.XPathContext;
-
import org.apache.batik.anim.dom.XBLOMContentElement;
import org.apache.batik.dom.AbstractDocument;
-
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.xpath.XPathException;
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpression;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
+import java.util.ArrayList;
+import java.util.Iterator;
+
/**
* A class to handle the XPath Pattern syntax for XBL content elements.
*
@@ -48,12 +50,7 @@ public class XPathPatternContentSelector
/**
* The XPath expression.
*/
- protected XPath xpath;
-
- /**
- * The XPath context.
- */
- protected XPathContext context;
+ protected XPathExpression xpath;
/**
* The selected nodes.
@@ -81,10 +78,11 @@ public class XPathPatternContentSelector
* Parses the XPath selector.
*/
protected void parse() {
- context = new XPathContext();
try {
- xpath = new XPath(expression, null, prefixResolver, XPath.MATCH);
- } catch (javax.xml.transform.TransformerException te) {
+ XPath xPathAPI = XPathFactory.newInstance().newXPath();
+ xPathAPI.setNamespaceContext(prefixResolver);
+ xpath = xPathAPI.compile(expression);
+ } catch (XPathExpressionException te) {
AbstractDocument doc
= (AbstractDocument) contentElement.getOwnerDocument();
throw doc.createXPathException
@@ -173,9 +171,8 @@ public class XPathPatternContentSelector
protected void update(Node n) {
if (!isSelected(n)) {
try {
- double matchScore
- = xpath.execute(context, n, prefixResolver).num();
- if (matchScore != XPath.MATCH_SCORE_NONE) {
+ Double matchScore = (Double) xpath.evaluate(n, XPathConstants.NUMBER);
+ if (matchScore != null) {
if (!descendantSelected(n)) {
nodes.add(n);
}
@@ -186,7 +183,7 @@ public class XPathPatternContentSelector
n = n.getNextSibling();
}
}
- } catch (javax.xml.transform.TransformerException te) {
+ } catch (XPathExpressionException te) {
AbstractDocument doc
= (AbstractDocument) contentElement.getOwnerDocument();
throw doc.createXPathException
@@ -217,36 +214,20 @@ public class XPathPatternContentSelector
/**
* Xalan prefix resolver.
*/
- protected class NSPrefixResolver implements PrefixResolver {
-
- /**
- * Get the base URI for this resolver. Since this resolver isn't
- * associated with a particular node, returns null.
- */
- public String getBaseIdentifier() {
- return null;
- }
-
+ protected class NSPrefixResolver implements NamespaceContext {
/**
* Resolves the given namespace prefix.
*/
- public String getNamespaceForPrefix(String prefix) {
+ public String getNamespaceURI(String prefix) {
return contentElement.lookupNamespaceURI(prefix);
}
- /**
- * Resolves the given namespace prefix.
- */
- public String getNamespaceForPrefix(String prefix, Node context) {
- // ignore the context node
- return contentElement.lookupNamespaceURI(prefix);
+ public String getPrefix(String namespaceURI) {
+ return null;
}
- /**
- * Returns whether this PrefixResolver handles a null prefix.
- */
- public boolean handlesNullPrefixes() {
- return false;
+ public Iterator getPrefixes(String namespaceURI) {
+ return null;
}
}
}
Modified: xmlgraphics/batik/trunk/batik-dom/pom.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/batik-dom/pom.xml?rev=1903209&r1=1903208&r2=1903209&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/batik-dom/pom.xml (original)
+++ xmlgraphics/batik/trunk/batik-dom/pom.xml Wed Aug 3 11:40:25 2022
@@ -61,11 +61,6 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>xalan</groupId>
- <artifactId>xalan</artifactId>
- <version>${xalan.version}</version>
- </dependency>
- <dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>${xmlapis.version}</version>
Modified: xmlgraphics/batik/trunk/batik-dom/src/main/java/org/apache/batik/dom/AbstractDocument.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/batik-dom/src/main/java/org/apache/batik/dom/AbstractDocument.java?rev=1903209&r1=1903208&r2=1903209&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/batik-dom/src/main/java/org/apache/batik/dom/AbstractDocument.java (original)
+++ xmlgraphics/batik/trunk/batik-dom/src/main/java/org/apache/batik/dom/AbstractDocument.java Wed Aug 3 11:40:25 2022
@@ -45,12 +45,6 @@ import org.apache.batik.util.DOMConstant
import org.apache.batik.util.SoftDoublyIndexedTable;
import org.apache.batik.constants.XMLConstants;
-import org.apache.xml.utils.PrefixResolver;
-
-import org.apache.xpath.XPath;
-import org.apache.xpath.XPathContext;
-import org.apache.xpath.objects.XObject;
-
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentType;
@@ -79,6 +73,13 @@ import org.w3c.dom.xpath.XPathExpression
import org.w3c.dom.xpath.XPathNSResolver;
import org.w3c.dom.xpath.XPathResult;
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.transform.TransformerException;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
+
/**
* This class implements the {@link org.w3c.dom.Document} interface.
*
@@ -2177,7 +2178,7 @@ public abstract class AbstractDocument
/**
* The compiled XPath expression.
*/
- protected XPath xpath;
+ protected javax.xml.xpath.XPathExpression xpath;
/**
* The namespace resolver.
@@ -2190,11 +2191,6 @@ public abstract class AbstractDocument
protected NSPrefixResolver prefixResolver;
/**
- * The XPathContext object.
- */
- protected XPathContext context;
-
- /**
* Creates a new XPathExpr object.
*/
public XPathExpr(String expr, XPathNSResolver res)
@@ -2202,9 +2198,10 @@ public abstract class AbstractDocument
resolver = res;
prefixResolver = new NSPrefixResolver();
try {
- xpath = new XPath(expr, null, prefixResolver, XPath.SELECT);
- context = new XPathContext();
- } catch (javax.xml.transform.TransformerException te) {
+ XPath xPathAPI = XPathFactory.newInstance().newXPath();
+ xPathAPI.setNamespaceContext(prefixResolver);
+ xpath = xPathAPI.compile(expr);
+ } catch (XPathExpressionException te) {
throw createXPathException
(XPathException.INVALID_EXPRESSION_ERR,
"xpath.invalid.expression",
@@ -2245,48 +2242,25 @@ public abstract class AbstractDocument
new Object[] {(int) contextNode.getNodeType(),
contextNode.getNodeName() });
}
- context.reset();
- XObject result = null;
- try {
- result = xpath.execute(context, contextNode, prefixResolver);
- } catch (javax.xml.transform.TransformerException te) {
- throw createXPathException
- (XPathException.INVALID_EXPRESSION_ERR,
- "xpath.error",
- new Object[] { xpath.getPatternString(),
- te.getMessage() });
- }
+
try {
switch (type) {
case XPathResult.ANY_UNORDERED_NODE_TYPE:
case XPathResult.FIRST_ORDERED_NODE_TYPE:
- return convertSingleNode(result, type);
+ return new Result((Node) xpath.evaluate(contextNode, XPathConstants.NODE), type);
case XPathResult.BOOLEAN_TYPE:
- return convertBoolean(result);
+ return new Result((Boolean) xpath.evaluate(contextNode, XPathConstants.BOOLEAN));
case XPathResult.NUMBER_TYPE:
- return convertNumber(result);
+ return new Result((Double) xpath.evaluate(contextNode, XPathConstants.NUMBER));
case XPathResult.ORDERED_NODE_ITERATOR_TYPE:
case XPathResult.UNORDERED_NODE_ITERATOR_TYPE:
case XPathResult.ORDERED_NODE_SNAPSHOT_TYPE:
case XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE:
- return convertNodeIterator(result, type);
+ return new Result((Node) xpath.evaluate(contextNode, XPathConstants.NODE), type);
case XPathResult.STRING_TYPE:
- return convertString(result);
- case XPathResult.ANY_TYPE:
- switch (result.getType()) {
- case XObject.CLASS_BOOLEAN:
- return convertBoolean(result);
- case XObject.CLASS_NUMBER:
- return convertNumber(result);
- case XObject.CLASS_STRING:
- return convertString(result);
- case XObject.CLASS_NODESET:
- return convertNodeIterator
- (result,
- XPathResult.UNORDERED_NODE_ITERATOR_TYPE);
- }
+ return new Result((String) xpath.evaluate(contextNode, XPathConstants.STRING));
}
- } catch (javax.xml.transform.TransformerException te) {
+ } catch (XPathExpressionException | TransformerException te) {
throw createXPathException
(XPathException.TYPE_ERR,
"xpath.cannot.convert.result",
@@ -2297,45 +2271,6 @@ public abstract class AbstractDocument
}
/**
- * Converts an XObject to a single node XPathResult.
- */
- protected Result convertSingleNode(XObject xo, short type)
- throws javax.xml.transform.TransformerException {
- return new Result(xo.nodelist().item(0), type);
- }
-
- /**
- * Converts an XObject to a boolean XPathResult.
- */
- protected Result convertBoolean(XObject xo)
- throws javax.xml.transform.TransformerException {
- return new Result(xo.bool());
- }
-
- /**
- * Converts an XObject to a number XPathResult.
- */
- protected Result convertNumber(XObject xo)
- throws javax.xml.transform.TransformerException {
- return new Result(xo.num());
- }
-
- /**
- * Converts an XObject to a string XPathResult.
- */
- protected Result convertString(XObject xo) {
- return new Result(xo.str());
- }
-
- /**
- * Converts an XObject to a node iterator XPathResult.
- */
- protected Result convertNodeIterator(XObject xo, short type)
- throws javax.xml.transform.TransformerException {
- return new Result(xo.nodelist(), type);
- }
-
- /**
* XPathResult implementation.
* XXX Namespace nodes are not handled correctly, since Xalan returns
* namespace nodes as simply the attribute node that caused the
@@ -2537,42 +2472,23 @@ public abstract class AbstractDocument
/**
* Xalan prefix resolver.
*/
- protected class NSPrefixResolver implements PrefixResolver {
-
- /**
- * Get the base URI for this resolver. Since this resolver isn't
- * associated with a particular node, returns null.
- */
- public String getBaseIdentifier() {
- return null;
- }
-
+ protected class NSPrefixResolver implements NamespaceContext {
/**
* Resolves the given namespace prefix.
*/
- public String getNamespaceForPrefix(String prefix) {
+ public String getNamespaceURI(String prefix) {
if (resolver == null) {
return null;
}
return resolver.lookupNamespaceURI(prefix);
}
- /**
- * Resolves the given namespace prefix.
- */
- public String getNamespaceForPrefix(String prefix, Node context) {
- // ignore the context node
- if (resolver == null) {
- return null;
- }
- return resolver.lookupNamespaceURI(prefix);
+ public String getPrefix(String namespaceURI) {
+ return null;
}
- /**
- * Returns whether this PrefixResolver handles a null prefix.
- */
- public boolean handlesNullPrefixes() {
- return false;
+ public Iterator getPrefixes(String namespaceURI) {
+ return null;
}
}
}
Modified: xmlgraphics/batik/trunk/pom.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/pom.xml?rev=1903209&r1=1903208&r2=1903209&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/pom.xml (original)
+++ xmlgraphics/batik/trunk/pom.xml Wed Aug 3 11:40:25 2022
@@ -27,7 +27,6 @@
<release.version>2.5.2</release.version>
<rhino.version>1.7.7</rhino.version>
<surefire.version>2.18.1</surefire.version>
- <xalan.version>2.7.2</xalan.version>
<xmlapis.version>1.4.01</xmlapis.version>
<xmlapisext.version>1.3.04</xmlapisext.version>
<xmlgraphics.commons.version>2.4.0-SNAPSHOT</xmlgraphics.commons.version>