There are 2 classes using some sun private classes that should be fixed :
com/oopsconsultancy/xmltask/ant/Regexp.java uses a private import for no reason
src/com/oopsconsultancy/xmltask/jdk15/XPathAnalyser15.java uses the xpath private api , while there are public apis since java 1.6
Here is a fixed version of the class
package com.oopsconsultancy.xmltask.jdk15;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import com.oopsconsultancy.xmltask.XPathAnalyser;
import com.oopsconsultancy.xmltask.XPathAnalyserClient;
/*
* uses the JDK 1.5 XPath API to analyse XML docs
*
* @author Brian Agnew
* @version $Id: XPathAnalyser15.java,v 1.2 2004/05/18 08:42:17 bagnew Exp $
/
public class XPathAnalyser15 implements XPathAnalyser {
private XPathAnalyserClient client;
private Object callback;
public void registerClient(XPathAnalyserClient client, Object callback) {
this.client = client;
this.callback = callback;
}
public int analyse(Node node, String xpath) throws Exception {
int count = 0;
XPathFactory factory = XPathFactory.newInstance();
XPath xpathcomiler = factory.newXPath();
XPathExpression expr = xpathcomiler.compile(xpath);
Object result = expr.evaluate(node, XPathConstants.NODESET);
if (result instanceof NodeList) {
NodeList nl = ((NodeList) result);
Node n;
for (int i = 0; i < nl.getLength(); i++) {
n = nl.item(i);
client.applyNode(n, callback);
count++;
}
} else if (result instanceof Boolean || result instanceof Double || result instanceof String) {
String str = String.valueOf(result);
client.applyNode(str, callback);
count++;
}
return count;
}
}