Merge branch 'master' into feature/UIMA-6227-Upgrade-to-xmlunit-2

* master: (134 commits)
  [UIMA-6275] InitializableFactory is not smart enough to find a suitable classloader
  No issue: ASF Jenkins Windows nodes seem to have trouble ('nohup' not found) - excluding Windows build nodes for the moment.
  [UIMA-6270] Add selectOverlapping to (J)CasUtil
  [UIMA-6270] Add selectOverlapping to (J)CasUtil
  [UIMA-6263] CAS validation support
  [UIMA-6264] Switch from DocBook to Asciidoc
  [UIMA-6257] Jenkinsfile for uimaFIT
  [UIMA-6257] Jenkinsfile for uimaFIT
  [UIMA-6257] Jenkinsfile for uimaFIT
  [UIMA-6257] Jenkinsfile for uimaFIT
  [maven-release-plugin] prepare for next development iteration
  [maven-release-plugin] prepare release uimafit-3.1.0
  [maven-release-plugin] prepare for next development iteration
  [maven-release-plugin] prepare release uimafit-3.1.0
  [NO JIRA] Adjust UIMA version in the NOTICE file of the binary distribution
  [maven-release-plugin] prepare for next development iteration
  [maven-release-plugin] prepare release uimafit-3.1.0
  [NO JIRA] Update documentation to changed API in ExternalResourceFactory and removed a spurious character
  [NO JIRA] Adjusted comparison version for API change report
  [NO JIRA] Updated README file for release.
  ...

% Conflicts:
%	uimafit-core/pom.xml
%	uimafit-maven-plugin/pom.xml
diff --git a/Jenkinsfile b/Jenkinsfile
index 5bd0abc..dc512eb 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -16,13 +16,11 @@
 // under the License.
   
 pipeline {
-  agent {
-    label '!Windows'
-  }
-
-  tools { 
-    maven 'Maven (latest)' 
-    jdk 'JDK 1.8 (latest)' 
+  agent any
+  
+  tools {
+    maven 'maven_latest' 
+    jdk 'jdk_1.8_latest' 
   }
 
   options {
@@ -48,7 +46,14 @@
     stage("Build info") {
       steps {
         echo '=== Environment variables ==='
-        sh 'printenv'
+        script {
+          if (isUnix()) {
+            sh 'printenv'
+          }
+          else {
+            bat 'set'
+          }
+        }
       }
     }
         
diff --git a/uimafit-core/pom.xml b/uimafit-core/pom.xml
index 23bfdd1..cf9a65d 100644
--- a/uimafit-core/pom.xml
+++ b/uimafit-core/pom.xml
@@ -70,9 +70,9 @@
       <artifactId>spring-test</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency> <!-- https://issues.apache.org/jira/browse/UIMA-5173 -->
-      <groupId>xmlunit</groupId>
-      <artifactId>xmlunit</artifactId>
+    <dependency>
+      <groupId>org.xmlunit</groupId>
+      <artifactId>xmlunit-assertj</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
diff --git a/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java b/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java
index 32208d2..73ba3e9 100644
--- a/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java
+++ b/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryTest.java
@@ -84,9 +84,8 @@
 import org.apache.uima.resource.metadata.TypePriorityList;
 import org.apache.uima.resource.metadata.TypeSystemDescription;
 import org.apache.uima.util.XMLInputSource;
-import org.custommonkey.xmlunit.XMLAssert;
-import org.custommonkey.xmlunit.XMLUnit;
 import org.junit.Test;
+import org.xmlunit.assertj.XmlAssert;
 
 public class AnalysisEngineFactoryTest extends ComponentTestBase {
 
@@ -565,9 +564,7 @@
     
     String actual = FileUtils.readFileToString(target, "UTF-8");
     String expected = FileUtils.readFileToString(reference, "UTF-8");
-    XMLUnit.setIgnoreWhitespace(true);
-    XMLAssert.assertXMLEqual(expected, actual);
-//    assertEquals(expected, actual);
+    XmlAssert.assertThat(actual).and(expected).ignoreWhitespace().areIdentical();
   }
   
   @Test
diff --git a/uimafit-maven-plugin/pom.xml b/uimafit-maven-plugin/pom.xml
index 71f66ec..314d98b 100644
--- a/uimafit-maven-plugin/pom.xml
+++ b/uimafit-maven-plugin/pom.xml
@@ -149,12 +149,12 @@
           <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
-            <version>2.2</version>
+            <version>2.7</version>
           </dependency>
           <dependency>
-            <groupId>xmlunit</groupId>
-            <artifactId>xmlunit</artifactId>
-            <version>1.4</version>
+            <groupId>org.xmlunit</groupId>
+            <artifactId>xmlunit-assertj</artifactId>
+            <version>2.6.4</version>
           </dependency>
         </dependencies>
       </plugin>
diff --git a/uimafit-parent/pom.xml b/uimafit-parent/pom.xml
index 0dc5850..4f6ba2e 100644
--- a/uimafit-parent/pom.xml
+++ b/uimafit-parent/pom.xml
@@ -99,6 +99,11 @@
         <version>3.15.0</version>
       </dependency>
       <dependency>
+        <groupId>org.xmlunit</groupId>
+        <artifactId>xmlunit-assertj</artifactId>
+        <version>2.6.4</version>
+      </dependency>
+      <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-core</artifactId>
         <version>3.2.4</version>
@@ -266,6 +271,9 @@
                 <excludes combine.children="append">
                   <!-- Plain documentation -->
                   <exclude>README*</exclude>
+                  <!-- Eclipse config files -->
+                  <exclude>uimafit-docbook/.settings/**</exclude>
+                  <exclude>uimafit-docbook/.project</exclude>
                   <!-- GitHub templates -->
                   <exclude>.github/**</exclude>
                   <!-- Release files -->