You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2022/08/12 06:09:25 UTC
[activemq] 02/02: Clean up remaining Xalan references
This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch activemq-5.17.x
in repository https://gitbox.apache.org/repos/asf/activemq.git
commit 020519f54f466cf91558fd59aca9d2802263b5a3
Author: Lucas Tétreault <te...@amazon.com>
AuthorDate: Mon Aug 1 09:55:32 2022 -0700
Clean up remaining Xalan references
(cherry picked from commit 7b3f13feda883c56b4b685970d9fe57f030a4c34)
---
.../activemq/filter/XalanXPathEvaluator.java | 86 ----------------------
.../apache/activemq/filter/XPathExpression.java | 2 +-
assembly/src/release/examples/conf/resin-web.xml | 35 ---------
.../activemq/config/ValidateXMLConfigTest.java | 11 +--
4 files changed, 4 insertions(+), 130 deletions(-)
diff --git a/activemq-broker/src/main/java/org/apache/activemq/filter/XalanXPathEvaluator.java b/activemq-broker/src/main/java/org/apache/activemq/filter/XalanXPathEvaluator.java
deleted file mode 100644
index 7bfdaf0ac..000000000
--- a/activemq-broker/src/main/java/org/apache/activemq/filter/XalanXPathEvaluator.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
- * 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.activemq.filter;
-
-import org.apache.activemq.command.Message;
-import org.apache.activemq.util.ByteArrayInputStream;
-import org.w3c.dom.Document;
-import org.xml.sax.InputSource;
-
-import javax.jms.BytesMessage;
-import javax.jms.JMSException;
-import javax.jms.TextMessage;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathFactory;
-import java.io.StringReader;
-
-public class XalanXPathEvaluator implements XPathExpression.XPathEvaluator {
-
- private static final XPathFactory FACTORY = XPathFactory.newInstance();
- private final String xpathExpression;
- private final DocumentBuilder builder;
- private final XPath xpath = FACTORY.newXPath();
-
- public XalanXPathEvaluator(String xpathExpression, DocumentBuilder builder) throws Exception {
- this.xpathExpression = xpathExpression;
- if (builder != null) {
- this.builder = builder;
- } else {
- throw new RuntimeException("No document builder available");
- }
- }
-
- public boolean evaluate(Message message) throws JMSException {
- if (message instanceof TextMessage) {
- String text = ((TextMessage)message).getText();
- return evaluate(text);
- } else if (message instanceof BytesMessage) {
- BytesMessage bm = (BytesMessage)message;
- byte data[] = new byte[(int)bm.getBodyLength()];
- bm.readBytes(data);
- return evaluate(data);
- }
- return false;
- }
-
- private boolean evaluate(byte[] data) {
- try {
- InputSource inputSource = new InputSource(new ByteArrayInputStream(data));
- Document inputDocument = builder.parse(inputSource);
- return ((Boolean) xpath.evaluate(xpathExpression, inputDocument, XPathConstants.BOOLEAN)).booleanValue();
- } catch (Exception e) {
- return false;
- }
- }
-
- private boolean evaluate(String text) {
- try {
- InputSource inputSource = new InputSource(new StringReader(text));
- Document inputDocument = builder.parse(inputSource);
- return ((Boolean) xpath.evaluate(xpathExpression, inputDocument, XPathConstants.BOOLEAN)).booleanValue();
- } catch (Exception e) {
- return false;
- }
- }
-
- @Override
- public String toString() {
- return xpathExpression;
- }
-}
diff --git a/activemq-client/src/main/java/org/apache/activemq/filter/XPathExpression.java b/activemq-client/src/main/java/org/apache/activemq/filter/XPathExpression.java
index e90e15f00..84fd16784 100644
--- a/activemq-client/src/main/java/org/apache/activemq/filter/XPathExpression.java
+++ b/activemq-client/src/main/java/org/apache/activemq/filter/XPathExpression.java
@@ -42,7 +42,7 @@ public final class XPathExpression implements BooleanExpression {
private static final Logger LOG = LoggerFactory.getLogger(XPathExpression.class);
private static final String EVALUATOR_SYSTEM_PROPERTY = "org.apache.activemq.XPathEvaluatorClassName";
- private static final String DEFAULT_EVALUATOR_CLASS_NAME = "org.apache.activemq.filter.XalanXPathEvaluator";
+ private static final String DEFAULT_EVALUATOR_CLASS_NAME = "org.apache.activemq.filter.JAXPXPathEvaluator";
public static final String DOCUMENT_BUILDER_FACTORY_FEATURE = "org.apache.activemq.documentBuilderFactory.feature";
private static final Constructor EVALUATOR_CONSTRUCTOR;
diff --git a/assembly/src/release/examples/conf/resin-web.xml b/assembly/src/release/examples/conf/resin-web.xml
deleted file mode 100644
index 16415491c..000000000
--- a/assembly/src/release/examples/conf/resin-web.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<!--
- 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.
--->
-<web-app>
- <!--
- In order to be able to compatiable with Resin 2.1.x and 3.0.x,
- both XML and XSLT have to be replaced.
- If only xalan is included, Resin 2.1.x will fail but not 3.0.x.
- Therefore the best way is to use the compatiable version of the
- XML parser ans XSLT.
- - Please refere to the following link for more detailed information.
- - http://www.caucho.com/resin-3.0/xml/jaxp.xtp
- -->
- <!-- xml -->
- <system-property javax.xml.parsers.DocumentBuilderFactory=
- "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/>
- <system-property javax.xml.parsers.SAXParserFactory=
- "org.apache.xerces.jaxp.SAXParserFactoryImpl"/>
- <!-- xslt -->
- <system-property javax.xml.transform.TransformerFactory=
- "org.apache.xalan.processor.TransformerFactoryImpl"/>
-</web-app>
diff --git a/assembly/src/test/java/org/apache/activemq/config/ValidateXMLConfigTest.java b/assembly/src/test/java/org/apache/activemq/config/ValidateXMLConfigTest.java
index 87402f9d4..3ba1c05fd 100644
--- a/assembly/src/test/java/org/apache/activemq/config/ValidateXMLConfigTest.java
+++ b/assembly/src/test/java/org/apache/activemq/config/ValidateXMLConfigTest.java
@@ -23,6 +23,7 @@ import java.io.FileFilter;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashSet;
+import java.util.Objects;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -50,15 +51,9 @@ public class ValidateXMLConfigTest {
// resource:copy-resource brings all config files into target/conf
File sampleConfDir = new File("target/conf");
- final HashSet<String> skipped = new HashSet<String>(java.util.Arrays.asList(new String[]{
- "resin-web.xml", "web.xml", "camel.xml"
- }));
-
- for (File xmlFile : sampleConfDir.listFiles(new FileFilter() {
- public boolean accept(File pathname) {
- return pathname.isFile() && pathname.getName().endsWith("xml") && !skipped.contains(pathname.getName());
- }})) {
+ final HashSet<String> skipped = new HashSet<>(java.util.Arrays.asList("web.xml", "camel.xml", "jolokia-access.xml"));
+ for (File xmlFile : Objects.requireNonNull(sampleConfDir.listFiles(pathname -> pathname.isFile() && pathname.getName().endsWith("xml") && !skipped.contains(pathname.getName())))) {
validateXML(xmlFile);
}
}