Merge branch 'main' into feature/UIMA-6337-Upgrade-Ruta-to-UIMA-3.2.0-and-uimaFIT-3.2.0

# Conflicts:
#	ruta-parent/pom.xml
diff --git a/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java b/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java
index 347b400..94d07d5 100644
--- a/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java
+++ b/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java
@@ -588,6 +588,7 @@
             }

           }

         } else {

+          // uimaj-core 3.2.0

           if (!after) {

             result.moveToPrevious();

           }

diff --git a/ruta-core/src/test/java/org/apache/uima/ruta/rule/WildCardInWindowTest.java b/ruta-core/src/test/java/org/apache/uima/ruta/rule/WildCardInWindowTest.java
index a803fce..1775603 100644
--- a/ruta-core/src/test/java/org/apache/uima/ruta/rule/WildCardInWindowTest.java
+++ b/ruta-core/src/test/java/org/apache/uima/ruta/rule/WildCardInWindowTest.java
@@ -46,14 +46,16 @@
   public void testMultiMidOut() throws Exception {
     String document = ". A x 1 1 : x 2 % 3 x ; . A x B 1 C 1 : x 4 % 5 x ; .";
     String script = "";
-    script += "PERIOD #{-> T1} PERIOD;";
-    script += "T1 -> {CW{-> T4} # @COLON # NUM{-> T2} SPECIAL NUM{-> T3} # SEMICOLON;};";
+    script += "PERIOD ANY+{-PARTOF(PERIOD) -> T1} PERIOD;";
+    script += "T1 -> {CW{-> T4} # @COLON;};";
+    script += "T1 -> {CW{-> T5} # @COLON # NUM{-> T2} SPECIAL NUM{-> T3} # SEMICOLON;};";
     CAS cas = RutaTestUtils.getCAS(document);
     Ruta.apply(cas, script);
 
     RutaTestUtils.assertAnnotationsEquals(cas, 2, 2, "2", "4");
     RutaTestUtils.assertAnnotationsEquals(cas, 3, 2, "3", "5");
     RutaTestUtils.assertAnnotationsEquals(cas, 4, 2, "A", "C");
+    RutaTestUtils.assertAnnotationsEquals(cas, 5, 2, "A", "C");
 
   }
 
@@ -106,4 +108,24 @@
     RutaTestUtils.assertAnnotationsEquals(cas, 3, 1, "some text");
   }
 
+  @Test
+  public void testRightToLeftCombination() throws Exception {
+    String document = "bla . x x x A x x 1 : x x x 2 x x . bla";
+
+    // Both NUM/T3 should be removed
+    String script = "";
+    script += "PERIOD ANY+{-PARTOF(PERIOD) -> T1} PERIOD;";
+    script += "CW{->T2};";
+    script += "NUM{->T3};";
+    script += "T1->{";
+    script += "T2 # n1:T3 ANY[0,5]{-PARTOF(T3)} COLON # n2:@T3{-> UNMARK(n2)};";
+    script += "T2 # n:T3{ -> UNMARK(n)} COLON;";
+    script += "};";
+
+    CAS cas = RutaTestUtils.getCAS(document);
+    Ruta.apply(cas, script);
+
+    RutaTestUtils.assertAnnotationsEquals(cas, 3, 0);
+  }
+
 }
diff --git a/ruta-parent/pom.xml b/ruta-parent/pom.xml
index 8661599..adeb069 100644
--- a/ruta-parent/pom.xml
+++ b/ruta-parent/pom.xml
@@ -114,21 +114,25 @@
       (http://www.famfamfam.com/lab/icons/silk/), licensed under the

       Creative Commons Attribution 3.0 License.

     </postNoticeText>

+

     <uimaVersion>3.2.0</uimaVersion>

-    <uimafit-version>3.1.0</uimafit-version>

-    <spring-version>4.3.22.RELEASE</spring-version>

+    <uimafit-version>3.2.0</uimafit-version>

+    <spring-version>4.3.30.RELEASE</spring-version>

+    

     <!--

       BACKWARD_COMPATIBLE_IMPLEMENTER - patch version (=.=.+)

       BACKWARD_COMPATIBLE_USER - minor version (=.+.0)

       NON_BACKWARD_COMPATIBLE - major version (+.0.0)

     -->

 

-    <compat.level>NON_BACKWARD_COMPATIBLE</compat.level>

-    <compat.previous.version>2.6.0</compat.previous.version>

+    <compat.level>BACKWARD_COMPATIBLE_USER</compat.level>

+    <compat.previous.version>3.0.1</compat.previous.version>

+

     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

     <maven.compiler.target>1.8</maven.compiler.target>

     <maven.compiler.source>1.8</maven.compiler.source>

-    <api_check_oldVersion>2.6.1</api_check_oldVersion>

+    

+    <api_check_oldVersion>3.0.1</api_check_oldVersion>

   </properties>

 

   <dependencyManagement>