[java-sig-commits] [velocity] Port from werken-xpath to jdom
Mikolaj Izdebski
mizdebsk at fedoraproject.org
Fri Sep 27 12:37:22 UTC 2013
commit 1b9dc3e4f615e1e16c7659618392fa4546334728
Author: Mikolaj Izdebski <mizdebsk at redhat.com>
Date: Fri Sep 27 14:36:47 2013 +0200
Port from werken-xpath to jdom
- Resolves: rhbz#875817
0001-Don-t-use-Werken-XPath.patch | 165 +++++++++++++++++++++++++++++++++++++
velocity.spec | 17 +++-
2 files changed, 178 insertions(+), 4 deletions(-)
---
diff --git a/0001-Don-t-use-Werken-XPath.patch b/0001-Don-t-use-Werken-XPath.patch
new file mode 100644
index 0000000..b754573
--- /dev/null
+++ b/0001-Don-t-use-Werken-XPath.patch
@@ -0,0 +1,165 @@
+From 8a9344f55d74a5b809051ae144b3c028499fec0d Mon Sep 17 00:00:00 2001
+From: Mikolaj Izdebski <mizdebsk at redhat.com>
+Date: Sat, 27 Sep 2013 10:53:46 +0200
+Subject: [PATCH] Don't use Werken XPath
+
+---
+ src/java/org/apache/velocity/anakia/AnakiaElement.java | 7 +++++--
+ src/java/org/apache/velocity/anakia/NodeList.java | 6 ++++--
+ src/java/org/apache/velocity/anakia/XPathCache.java | 9 ++++++---
+ src/java/org/apache/velocity/anakia/XPathTool.java | 16 ++++++++++------
+ 4 files changed, 25 insertions(+), 13 deletions(-)
+
+diff --git a/src/java/org/apache/velocity/anakia/AnakiaElement.java b/src/java/org/apache/velocity/anakia/AnakiaElement.java
+index c72b653..df13153 100644
+--- a/src/java/org/apache/velocity/anakia/AnakiaElement.java
++++ b/src/java/org/apache/velocity/anakia/AnakiaElement.java
+@@ -20,8 +20,10 @@ package org.apache.velocity.anakia;
+ */
+
+ import org.jdom.Element;
++import org.jdom.JDOMException;
+ import org.jdom.Namespace;
+ import org.jdom.output.XMLOutputter;
++
+ import java.util.List;
+
+ /**
+@@ -126,10 +128,11 @@ public class AnakiaElement extends Element
+ * @param xpathExpression the XPath expression you wish to apply
+ * @return a NodeList representing the nodes that are the result of
+ * application of the XPath to the current element. It can be empty.
++ * @throws JDOMException
+ */
+- public NodeList selectNodes(String xpathExpression)
++ public NodeList selectNodes(String xpathExpression) throws JDOMException
+ {
+- return new NodeList(XPathCache.getXPath(xpathExpression).applyTo(this), false);
++ return new NodeList(XPathCache.getXPath(xpathExpression).selectNodes(this), false);
+ }
+
+ /**
+diff --git a/src/java/org/apache/velocity/anakia/NodeList.java b/src/java/org/apache/velocity/anakia/NodeList.java
+index daf611d..b303bda 100644
+--- a/src/java/org/apache/velocity/anakia/NodeList.java
++++ b/src/java/org/apache/velocity/anakia/NodeList.java
+@@ -35,6 +35,7 @@ import org.jdom.DocType;
+ import org.jdom.Document;
+ import org.jdom.Element;
+ import org.jdom.EntityRef;
++import org.jdom.JDOMException;
+ import org.jdom.ProcessingInstruction;
+ import org.jdom.Text;
+ import org.jdom.output.XMLOutputter;
+@@ -289,10 +290,11 @@ public class NodeList implements List, Cloneable
+ * @param xpathString the XPath expression you wish to apply
+ * @return a NodeList representing the nodes that are the result of
+ * application of the XPath to the current node list. It can be empty.
++ * @throws JDOMException
+ */
+- public NodeList selectNodes(String xpathString)
++ public NodeList selectNodes(String xpathString) throws JDOMException
+ {
+- return new NodeList(XPathCache.getXPath(xpathString).applyTo(nodes), false);
++ return new NodeList(XPathCache.getXPath(xpathString).selectNodes(nodes), false);
+ }
+
+ // List methods implemented hereafter
+diff --git a/src/java/org/apache/velocity/anakia/XPathCache.java b/src/java/org/apache/velocity/anakia/XPathCache.java
+index cef43d9..0d633b0 100644
+--- a/src/java/org/apache/velocity/anakia/XPathCache.java
++++ b/src/java/org/apache/velocity/anakia/XPathCache.java
+@@ -19,7 +19,9 @@ package org.apache.velocity.anakia;
+ * under the License.
+ */
+
+-import com.werken.xpath.XPath;
++import org.jdom.JDOMException;
++import org.jdom.xpath.XPath;
++
+ import java.util.Map;
+ import java.util.WeakHashMap;
+
+@@ -46,8 +48,9 @@ class XPathCache
+ * A cached object is returned if it already exists for the requested expression.
+ * @param xpathString the XPath expression to parse
+ * @return the XPath object that represents the parsed XPath expression.
++ * @throws JDOMException
+ */
+- static XPath getXPath(String xpathString)
++ static XPath getXPath(String xpathString) throws JDOMException
+ {
+ XPath xpath = null;
+ synchronized(XPATH_CACHE)
+@@ -55,7 +58,7 @@ class XPathCache
+ xpath = (XPath)XPATH_CACHE.get(xpathString);
+ if(xpath == null)
+ {
+- xpath = new XPath(xpathString);
++ xpath = XPath.newInstance(xpathString);
+ XPATH_CACHE.put(xpathString, xpath);
+ }
+ }
+diff --git a/src/java/org/apache/velocity/anakia/XPathTool.java b/src/java/org/apache/velocity/anakia/XPathTool.java
+index c9e6178..f85d2c1 100644
+--- a/src/java/org/apache/velocity/anakia/XPathTool.java
++++ b/src/java/org/apache/velocity/anakia/XPathTool.java
+@@ -23,6 +23,7 @@ import java.util.List;
+
+ import org.jdom.Document;
+ import org.jdom.Element;
++import org.jdom.JDOMException;
+
+ /**
+ * This class adds an entrypoint into XPath functionality,
+@@ -88,12 +89,13 @@ public class XPathTool
+ * @param doc The Document context
+ *
+ * @return A list of selected nodes
++ * @throws JDOMException
+ */
+ public NodeList applyTo(String xpathSpec,
+- Document doc)
++ Document doc) throws JDOMException
+ {
+ //RuntimeSingleton.info("XPathTool::applyTo(String, Document)");
+- return new NodeList(XPathCache.getXPath(xpathSpec).applyTo( doc ), false);
++ return new NodeList(XPathCache.getXPath(xpathSpec).selectNodes( doc ), false);
+ }
+
+ /**
+@@ -103,12 +105,13 @@ public class XPathTool
+ * @param elem The Element context
+ *
+ * @return A list of selected nodes
++ * @throws JDOMException
+ */
+ public NodeList applyTo(String xpathSpec,
+- Element elem)
++ Element elem) throws JDOMException
+ {
+ //RuntimeSingleton.info("XPathTool::applyTo(String, Element)");
+- return new NodeList(XPathCache.getXPath(xpathSpec).applyTo( elem ), false);
++ return new NodeList(XPathCache.getXPath(xpathSpec).selectNodes( elem ), false);
+ }
+
+ /**
+@@ -118,12 +121,13 @@ public class XPathTool
+ * @param nodeSet The nodeset context
+ *
+ * @return A list of selected nodes
++ * @throws JDOMException
+ */
+ public NodeList applyTo(String xpathSpec,
+- List nodeSet)
++ List nodeSet) throws JDOMException
+ {
+ //RuntimeSingleton.info("XPathTool::applyTo(String, List)");
+- return new NodeList(XPathCache.getXPath(xpathSpec).applyTo( nodeSet ), false);
++ return new NodeList(XPathCache.getXPath(xpathSpec).selectNodes( nodeSet ), false);
+ }
+ }
+
+--
+1.8.3.1
+
diff --git a/velocity.spec b/velocity.spec
index 81a402f..10115ea 100644
--- a/velocity.spec
+++ b/velocity.spec
@@ -30,7 +30,7 @@
Name: velocity
Version: 1.7
-Release: 9%{?dist}
+Release: 10%{?dist}
Epoch: 0
Summary: Java-based template engine
License: ASL 2.0
@@ -40,19 +40,19 @@ Source1: http://repo1.maven.org/maven2/org/apache/%{name}/%{name}/%{versi
Patch0: 0001-Remove-avalon-logkit.patch
Patch2: 0003-Use-system-jars.patch
Patch3: 0004-JDBC-41-compat.patch
+Patch4: 0001-Don-t-use-Werken-XPath.patch
Requires: apache-commons-collections
Requires: apache-commons-logging
Requires: apache-commons-lang
Requires: servlet3
Requires: jakarta-oro
-Requires: werken-xpath
Requires: junit
Requires: hsqldb
+Requires: jaxen
Requires: jdom
Requires: bcel
Requires: log4j
-BuildRequires: werken-xpath
BuildRequires: ant
BuildRequires: antlr
BuildRequires: junit
@@ -63,6 +63,7 @@ BuildRequires: apache-commons-logging
BuildRequires: apache-commons-lang
BuildRequires: servlet3
BuildRequires: jakarta-oro
+BuildRequires: jaxen
BuildRequires: jdom
BuildRequires: bcel
BuildRequires: log4j
@@ -140,6 +141,10 @@ cp %{SOURCE1} ./pom.xml
%patch3 -p1
+# Use jdom instead of werken-xpath
+%patch4 -p1
+%pom_remove_dep werken-xpath:
+
# -----------------------------------------------------------------------------
%build
@@ -152,9 +157,9 @@ tomcat-servlet-api \
junit \
jakarta-oro \
log4j \
+jaxen \
jdom \
bcel \
-werken-xpath \
hsqldb \
junit)
ant \
@@ -206,6 +211,10 @@ install -pD -T -m 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom
%{_datadir}/%{name}
%changelog
+* Sat Sep 21 2013 Mikolaj Izdebski <mizdebsk at redhat.com> - 0:1.7-10
+- Port from werken-xpath to jdom
+- Resolves: rhbz#875817
+
* Mon Aug 05 2013 Michal Srb <msrb at redhat.com> - 0:1.7-9
- Fix FTBFS (Resolves: #992852)
More information about the java-sig-commits
mailing list