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);
         }
     }