Remove Java < 1.5 support from XMLUtil.getTextContent
This commit is contained in:
parent
93a53e1cda
commit
a5eb04a2ba
|
@ -386,6 +386,7 @@ public interface ActiveMQClientLogger extends BasicLogger {
|
||||||
@Message(id = 214017, value = "Caught unexpected Throwable", format = Message.Format.MESSAGE_FORMAT)
|
@Message(id = 214017, value = "Caught unexpected Throwable", format = Message.Format.MESSAGE_FORMAT)
|
||||||
void caughtunexpectedThrowable(@Cause Throwable t);
|
void caughtunexpectedThrowable(@Cause Throwable t);
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
@LogMessage(level = Logger.Level.ERROR)
|
@LogMessage(level = Logger.Level.ERROR)
|
||||||
@Message(id = 214018, value = "Failed to invoke getTextContent() on node {0}", format = Message.Format.MESSAGE_FORMAT)
|
@Message(id = 214018, value = "Failed to invoke getTextContent() on node {0}", format = Message.Format.MESSAGE_FORMAT)
|
||||||
void errorOnXMLTransform(@Cause Throwable t, Node n);
|
void errorOnXMLTransform(@Cause Throwable t, Node n);
|
||||||
|
|
|
@ -26,7 +26,6 @@ import javax.xml.validation.Validator;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
import java.io.StringReader;
|
import java.io.StringReader;
|
||||||
import java.lang.reflect.Method;
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.security.AccessController;
|
import java.security.AccessController;
|
||||||
import java.security.PrivilegedAction;
|
import java.security.PrivilegedAction;
|
||||||
|
@ -145,16 +144,9 @@ public final class XMLUtil {
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Object[] EMPTY_ARRAY = new Object[0];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This metod is here because Node.getTextContent() is not available in JDK 1.4 and I would like
|
|
||||||
* to have an uniform access to this functionality.
|
|
||||||
* <p>
|
|
||||||
* Note: if the content is another element or set of elements, it returns a string representation
|
* Note: if the content is another element or set of elements, it returns a string representation
|
||||||
* of the hierarchy.
|
* of the hierarchy.
|
||||||
* <p>
|
|
||||||
* TODO implementation of this method is a hack. Implement it properly.
|
|
||||||
*/
|
*/
|
||||||
public static String getTextContent(final Node n) {
|
public static String getTextContent(final Node n) {
|
||||||
if (n.hasChildNodes()) {
|
if (n.hasChildNodes()) {
|
||||||
|
@ -173,55 +165,7 @@ public final class XMLUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Method[] methods = Node.class.getMethods();
|
return n.getTextContent();
|
||||||
|
|
||||||
for (Method getTextContext : methods) {
|
|
||||||
if ("getTextContent".equals(getTextContext.getName())) {
|
|
||||||
try {
|
|
||||||
return (String) getTextContext.invoke(n, XMLUtil.EMPTY_ARRAY);
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
ActiveMQClientLogger.LOGGER.errorOnXMLTransform(e, n);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String textContent = null;
|
|
||||||
|
|
||||||
if (n.hasChildNodes()) {
|
|
||||||
NodeList nl = n.getChildNodes();
|
|
||||||
for (int i = 0; i < nl.getLength(); i++) {
|
|
||||||
Node c = nl.item(i);
|
|
||||||
if (c.getNodeType() == Node.TEXT_NODE) {
|
|
||||||
textContent = n.getNodeValue();
|
|
||||||
if (textContent == null) {
|
|
||||||
// TODO This is a hack. Get rid of it and implement this properly
|
|
||||||
String s = c.toString();
|
|
||||||
int idx = s.indexOf("#text:");
|
|
||||||
if (idx != -1) {
|
|
||||||
textContent = s.substring(idx + 6).trim();
|
|
||||||
if (textContent.endsWith("]")) {
|
|
||||||
textContent = textContent.substring(0, textContent.length() - 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (textContent == null) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO This is a hack. Get rid of it and implement this properly
|
|
||||||
String s = n.toString();
|
|
||||||
int i = s.indexOf('>');
|
|
||||||
int i2 = s.indexOf("</");
|
|
||||||
if (i != -1 && i2 != -1) {
|
|
||||||
textContent = s.substring(i + 1, i2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return textContent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void assertEquivalent(final Node node, final Node node2) {
|
public static void assertEquivalent(final Node node, final Node node2) {
|
||||||
|
|
Loading…
Reference in New Issue