UIMA-3569
- added example block example project
- updated descriptors

git-svn-id: https://svn.apache.org/repos/asf/uima/ruta/branches/UIMA-3569@1568362 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/example-projects/ExtensionsExample/descriptor/BasicEngine.xml b/example-projects/ExtensionsExample/descriptor/BasicEngine.xml
index 71c18d5..c0bbb36 100644
--- a/example-projects/ExtensionsExample/descriptor/BasicEngine.xml
+++ b/example-projects/ExtensionsExample/descriptor/BasicEngine.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>

+

 <!--

   Licensed to the Apache Software Foundation (ASF) under one

   or more contributor license agreements.  See the NOTICE file

@@ -17,7 +18,6 @@
   specific language governing permissions and limitations

   under the License.

 -->

-

 <analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">

   <frameworkImplementation>org.apache.uima.java</frameworkImplementation>

   <primitive>true</primitive>

@@ -132,7 +132,21 @@
       </configurationParameter>

       <configurationParameter>

         <name>dynamicAnchoring</name>

-        <description>Activates dynamic achoring (possible speed up).</description>

+        <description>Activates dynamic anchoring (possible speed up).</description>

+        <type>Boolean</type>

+        <multiValued>false</multiValued>

+        <mandatory>false</mandatory>

+      </configurationParameter>

+      <configurationParameter>

+        <name>greedyRuleElement</name>

+        <description>Activates greedy anchoring for rule elements.</description>

+        <type>Boolean</type>

+        <multiValued>false</multiValued>

+        <mandatory>false</mandatory>

+      </configurationParameter>

+      <configurationParameter>

+        <name>greedyRule</name>

+        <description>Activates greedy anchoring for complete rules.</description>

         <type>Boolean</type>

         <multiValued>false</multiValued>

         <mandatory>false</mandatory>

@@ -155,6 +169,18 @@
         <multiValued>false</multiValued>

         <mandatory>false</mandatory>

       </configurationParameter>

+      <configurationParameter>

+        <name>additionalUimafitEngines</name>

+        <type>String</type>

+        <multiValued>true</multiValued>

+        <mandatory>false</mandatory>

+      </configurationParameter>

+      <configurationParameter>

+        <name>strictImports</name>

+        <type>Boolean</type>

+        <multiValued>false</multiValued>

+        <mandatory>false</mandatory>

+      </configurationParameter>

     </configurationParameters>

     <configurationParameterSettings>

       <nameValuePair>

diff --git a/example-projects/ExtensionsExample/descriptor/BasicTypeSystem.xml b/example-projects/ExtensionsExample/descriptor/BasicTypeSystem.xml
index d6cb49a..0f5a9ae 100644
--- a/example-projects/ExtensionsExample/descriptor/BasicTypeSystem.xml
+++ b/example-projects/ExtensionsExample/descriptor/BasicTypeSystem.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>

+

 <!--

   Licensed to the Apache Software Foundation (ASF) under one

   or more contributor license agreements.  See the NOTICE file

@@ -17,7 +18,6 @@
   specific language governing permissions and limitations

   under the License.

 -->

-

 <typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier">

   <name>BasicTypeSystem</name>

   <description/>

@@ -140,7 +140,7 @@
     <typeDescription>

       <name>org.apache.uima.ruta.type.Document</name>

       <description/>

-      <supertypeName>uima.tcas.DocumentAnnotation</supertypeName>

+      <supertypeName>uima.tcas.Annotation</supertypeName>

     </typeDescription>

     <typeDescription>

       <name>org.apache.uima.ruta.type.TokenSeed</name>

diff --git a/example-projects/ExtensionsExample/descriptor/InternalTypeSystem.xml b/example-projects/ExtensionsExample/descriptor/InternalTypeSystem.xml
index aabf9a0..e0e207c 100644
--- a/example-projects/ExtensionsExample/descriptor/InternalTypeSystem.xml
+++ b/example-projects/ExtensionsExample/descriptor/InternalTypeSystem.xml
@@ -37,6 +37,11 @@
       </features>

     </typeDescription>

     <typeDescription>

+      <name>org.apache.uima.ruta.type.RutaOptional</name>

+      <description/>

+      <supertypeName>uima.tcas.Annotation</supertypeName>

+    </typeDescription>

+    <typeDescription>

       <name>org.apache.uima.ruta.type.RutaAnnotation</name>

       <description/>

       <supertypeName>uima.tcas.Annotation</supertypeName>

diff --git a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleActionEngine.xml b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleActionEngine.xml
index 1ab22fe..a4748f0 100644
--- a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleActionEngine.xml
+++ b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleActionEngine.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>

+

 <analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">

     <frameworkImplementation>org.apache.uima.java</frameworkImplementation>

     <primitive>true</primitive>

@@ -113,7 +114,21 @@
             </configurationParameter>

             <configurationParameter>

                 <name>dynamicAnchoring</name>

-                <description>Activates dynamic achoring (possible speed up).</description>

+                <description>Activates dynamic anchoring (possible speed up).</description>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>greedyRuleElement</name>

+                <description>Activates greedy anchoring for rule elements.</description>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>greedyRule</name>

+                <description>Activates greedy anchoring for complete rules.</description>

                 <type>Boolean</type>

                 <multiValued>false</multiValued>

                 <mandatory>false</mandatory>

@@ -136,6 +151,18 @@
                 <multiValued>false</multiValued>

                 <mandatory>false</mandatory>

             </configurationParameter>

+            <configurationParameter>

+                <name>additionalUimafitEngines</name>

+                <type>String</type>

+                <multiValued>true</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>strictImports</name>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

         </configurationParameters>

         <configurationParameterSettings>

             <nameValuePair>

@@ -197,7 +224,7 @@
                 <name>scriptPaths</name>

                 <value>

                     <array>

-                        <string>D:/work/workspace-textmarker/ExtensionsExample/script</string>

+                        <string>D:/work/runtime-EclipseApplication/ExtensionsExample/script</string>

                     </array>

                 </value>

             </nameValuePair>

@@ -205,7 +232,7 @@
                 <name>descriptorPaths</name>

                 <value>

                     <array>

-                        <string>D:/work/workspace-textmarker/ExtensionsExample/descriptor</string>

+                        <string>D:/work/runtime-EclipseApplication/ExtensionsExample/descriptor</string>

                     </array>

                 </value>

             </nameValuePair>

@@ -213,7 +240,7 @@
                 <name>resourcePaths</name>

                 <value>

                     <array>

-                        <string>D:\work\workspace-textmarker\ExtensionsExample\resources</string>

+                        <string>D:\work\runtime-EclipseApplication\ExtensionsExample\resources</string>

                     </array>

                 </value>

             </nameValuePair>

@@ -230,11 +257,21 @@
                 </value>

             </nameValuePair>

             <nameValuePair>

+                <name>additionalUimafitEngines</name>

+                <value>

+                    <array/>

+                </value>

+            </nameValuePair>

+            <nameValuePair>

                 <name>additionalExtensions</name>

                 <value>

                     <array>

                         <string>org.apache.uima.ruta.example.extensions.ExampleConditionExtension</string>

                         <string>org.apache.uima.ruta.example.extensions.ExampleActionExtension</string>

+                        <string>org.apache.uima.ruta.example.extensions.ExampleBooleanFunctionExtension</string>

+                        <string>org.apache.uima.ruta.example.extensions.ExampleNumberFunctionExtension</string>

+                        <string>org.apache.uima.ruta.example.extensions.ExampleStringFunctionExtension</string>

+                        <string>org.apache.uima.ruta.example.extensions.ExampleTypeFunctionExtension</string>

                     </array>

                 </value>

             </nameValuePair>

diff --git a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleActionTypeSystem.xml b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleActionTypeSystem.xml
index 33acd1e..ce571fc 100644
--- a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleActionTypeSystem.xml
+++ b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleActionTypeSystem.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>

+

 <typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier">

     <name>uima.ruta.example.ExampleActionTypeSystem</name>

     <imports>

diff --git a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleBlockEngine.xml b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleBlockEngine.xml
new file mode 100644
index 0000000..98d2913
--- /dev/null
+++ b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleBlockEngine.xml
@@ -0,0 +1,351 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">
+    <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+    <primitive>true</primitive>
+    <annotatorImplementationName>org.apache.uima.ruta.engine.RutaEngine</annotatorImplementationName>
+    <analysisEngineMetaData>
+        <name>BasicEngine</name>
+        <description/>
+        <version>1.0</version>
+        <vendor/>
+        <configurationParameters searchStrategy="language_fallback">
+            <configurationParameter>
+                <name>seeders</name>
+                <type>String</type>
+                <multiValued>true</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>debug</name>
+                <type>Boolean</type>
+                <multiValued>false</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>additionalScripts</name>
+                <type>String</type>
+                <multiValued>true</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>profile</name>
+                <type>Boolean</type>
+                <multiValued>false</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>debugWithMatches</name>
+                <type>Boolean</type>
+                <multiValued>false</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>statistics</name>
+                <type>Boolean</type>
+                <multiValued>false</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>additionalEngines</name>
+                <type>String</type>
+                <multiValued>true</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>additionalExtensions</name>
+                <type>String</type>
+                <multiValued>true</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>debugOnlyFor</name>
+                <type>String</type>
+                <multiValued>true</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>scriptEncoding</name>
+                <type>String</type>
+                <multiValued>false</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>additionalEngineLoaders</name>
+                <type>String</type>
+                <multiValued>true</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>resourcePaths</name>
+                <type>String</type>
+                <multiValued>true</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>defaultFilteredTypes</name>
+                <type>String</type>
+                <multiValued>true</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>mainScript</name>
+                <type>String</type>
+                <multiValued>false</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>scriptPaths</name>
+                <type>String</type>
+                <multiValued>true</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>descriptorPaths</name>
+                <type>String</type>
+                <multiValued>true</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>removeBasics</name>
+                <type>Boolean</type>
+                <multiValued>false</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>dynamicAnchoring</name>
+                <description>Activates dynamic anchoring (possible speed up).</description>
+                <type>Boolean</type>
+                <multiValued>false</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>greedyRuleElement</name>
+                <description>Activates greedy anchoring for rule elements.</description>
+                <type>Boolean</type>
+                <multiValued>false</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>greedyRule</name>
+                <description>Activates greedy anchoring for complete rules.</description>
+                <type>Boolean</type>
+                <multiValued>false</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>lowMemoryProfile</name>
+                <type>Boolean</type>
+                <multiValued>false</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>createdBy</name>
+                <type>Boolean</type>
+                <multiValued>false</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>simpleGreedyForComposed</name>
+                <type>Boolean</type>
+                <multiValued>false</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>additionalUimafitEngines</name>
+                <type>String</type>
+                <multiValued>true</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+            <configurationParameter>
+                <name>strictImports</name>
+                <type>Boolean</type>
+                <multiValued>false</multiValued>
+                <mandatory>false</mandatory>
+            </configurationParameter>
+        </configurationParameters>
+        <configurationParameterSettings>
+            <nameValuePair>
+                <name>debug</name>
+                <value>
+                    <boolean>false</boolean>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>profile</name>
+                <value>
+                    <boolean>false</boolean>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>debugWithMatches</name>
+                <value>
+                    <boolean>true</boolean>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>defaultFilteredTypes</name>
+                <value>
+                    <array>
+                        <string>org.apache.uima.ruta.type.SPACE</string>
+                        <string>org.apache.uima.ruta.type.NBSP</string>
+                        <string>org.apache.uima.ruta.type.BREAK</string>
+                        <string>org.apache.uima.ruta.type.MARKUP</string>
+                    </array>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>removeBasics</name>
+                <value>
+                    <boolean>false</boolean>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>seeders</name>
+                <value>
+                    <array>
+                        <string>org.apache.uima.ruta.seed.DefaultSeeder</string>
+                    </array>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>createdBy</name>
+                <value>
+                    <boolean>false</boolean>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>mainScript</name>
+                <value>
+                    <string>uima.ruta.example.ExampleBlock</string>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>scriptPaths</name>
+                <value>
+                    <array>
+                        <string>D:/work/runtime-EclipseApplication/ExtensionsExample/script</string>
+                    </array>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>descriptorPaths</name>
+                <value>
+                    <array>
+                        <string>D:/work/runtime-EclipseApplication/ExtensionsExample/descriptor</string>
+                    </array>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>resourcePaths</name>
+                <value>
+                    <array>
+                        <string>D:\work\runtime-EclipseApplication\ExtensionsExample\resources</string>
+                    </array>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>additionalScripts</name>
+                <value>
+                    <array/>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>additionalEngines</name>
+                <value>
+                    <array/>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>additionalUimafitEngines</name>
+                <value>
+                    <array/>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>additionalExtensions</name>
+                <value>
+                    <array>
+                        <string>org.apache.uima.ruta.example.extensions.ExampleConditionExtension</string>
+                        <string>org.apache.uima.ruta.example.extensions.ExampleActionExtension</string>
+                        <string>org.apache.uima.ruta.example.extensions.ExampleBooleanFunctionExtension</string>
+                        <string>org.apache.uima.ruta.example.extensions.ExampleNumberFunctionExtension</string>
+                        <string>org.apache.uima.ruta.example.extensions.ExampleStringFunctionExtension</string>
+                        <string>org.apache.uima.ruta.example.extensions.ExampleTypeFunctionExtension</string>
+                        <string>org.apache.uima.ruta.example.extensions.ExampleBlockExtension</string>
+                    </array>
+                </value>
+            </nameValuePair>
+            <nameValuePair>
+                <name>additionalEngineLoaders</name>
+                <value>
+                    <array/>
+                </value>
+            </nameValuePair>
+        </configurationParameterSettings>
+        <typeSystemDescription>
+            <name>uima.ruta.example.ExampleBlockTypeSystem</name>
+            <imports>
+                <import location="../../../BasicTypeSystem.xml"/>
+            </imports>
+            <types>
+                <typeDescription>
+                    <name>uima.ruta.example.ExampleBlock.T1</name>
+                    <description>Type defined in uima.ruta.example.ExampleBlock</description>
+                    <supertypeName>uima.tcas.Annotation</supertypeName>
+                </typeDescription>
+                <typeDescription>
+                    <name>uima.ruta.example.ExampleBlock.T2</name>
+                    <description>Type defined in uima.ruta.example.ExampleBlock</description>
+                    <supertypeName>uima.tcas.Annotation</supertypeName>
+                </typeDescription>
+                <typeDescription>
+                    <name>uima.ruta.example.ExampleBlock.T3</name>
+                    <description>Type defined in uima.ruta.example.ExampleBlock</description>
+                    <supertypeName>uima.tcas.Annotation</supertypeName>
+                </typeDescription>
+                <typeDescription>
+                    <name>uima.ruta.example.ExampleBlock.T4</name>
+                    <description>Type defined in uima.ruta.example.ExampleBlock</description>
+                    <supertypeName>uima.tcas.Annotation</supertypeName>
+                </typeDescription>
+            </types>
+        </typeSystemDescription>
+        <typePriorities>
+            <priorityList>
+                <type>org.apache.uima.ruta.type.RutaFrame</type>
+                <type>uima.tcas.Annotation</type>
+                <type>org.apache.uima.ruta.type.RutaBasic</type>
+            </priorityList>
+        </typePriorities>
+        <fsIndexCollection/>
+        <capabilities>
+            <capability>
+                <inputs/>
+                <outputs/>
+                <languagesSupported/>
+            </capability>
+            <capability>
+                <inputs>
+                    <type>uima.ruta.example.ExampleBlock.T1</type>
+                    <type>uima.ruta.example.ExampleBlock.T2</type>
+                    <type>uima.ruta.example.ExampleBlock.T3</type>
+                    <type>uima.ruta.example.ExampleBlock.T4</type>
+                </inputs>
+                <outputs>
+                    <type>uima.ruta.example.ExampleBlock.T1</type>
+                    <type>uima.ruta.example.ExampleBlock.T2</type>
+                    <type>uima.ruta.example.ExampleBlock.T3</type>
+                    <type>uima.ruta.example.ExampleBlock.T4</type>
+                </outputs>
+                <languagesSupported/>
+            </capability>
+        </capabilities>
+        <operationalProperties>
+            <modifiesCas>true</modifiesCas>
+            <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+            <outputsNewCASes>true</outputsNewCASes>
+        </operationalProperties>
+    </analysisEngineMetaData>
+    <resourceManagerConfiguration/>
+</analysisEngineDescription>
diff --git a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleBlockTypeSystem.xml b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleBlockTypeSystem.xml
new file mode 100644
index 0000000..cb67859
--- /dev/null
+++ b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleBlockTypeSystem.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier">
+    <name>uima.ruta.example.ExampleBlockTypeSystem</name>
+    <imports>
+        <import location="../../../BasicTypeSystem.xml"/>
+    </imports>
+    <types>
+        <typeDescription>
+            <name>uima.ruta.example.ExampleBlock.T1</name>
+            <description>Type defined in uima.ruta.example.ExampleBlock</description>
+            <supertypeName>uima.tcas.Annotation</supertypeName>
+        </typeDescription>
+        <typeDescription>
+            <name>uima.ruta.example.ExampleBlock.T2</name>
+            <description>Type defined in uima.ruta.example.ExampleBlock</description>
+            <supertypeName>uima.tcas.Annotation</supertypeName>
+        </typeDescription>
+        <typeDescription>
+            <name>uima.ruta.example.ExampleBlock.T3</name>
+            <description>Type defined in uima.ruta.example.ExampleBlock</description>
+            <supertypeName>uima.tcas.Annotation</supertypeName>
+        </typeDescription>
+        <typeDescription>
+            <name>uima.ruta.example.ExampleBlock.T4</name>
+            <description>Type defined in uima.ruta.example.ExampleBlock</description>
+            <supertypeName>uima.tcas.Annotation</supertypeName>
+        </typeDescription>
+    </types>
+</typeSystemDescription>
diff --git a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleBooleanFunctionEngine.xml b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleBooleanFunctionEngine.xml
index b244b07..1ceb0ac 100644
--- a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleBooleanFunctionEngine.xml
+++ b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleBooleanFunctionEngine.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>

+

 <analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">

     <frameworkImplementation>org.apache.uima.java</frameworkImplementation>

     <primitive>true</primitive>

@@ -113,7 +114,21 @@
             </configurationParameter>

             <configurationParameter>

                 <name>dynamicAnchoring</name>

-                <description>Activates dynamic achoring (possible speed up).</description>

+                <description>Activates dynamic anchoring (possible speed up).</description>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>greedyRuleElement</name>

+                <description>Activates greedy anchoring for rule elements.</description>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>greedyRule</name>

+                <description>Activates greedy anchoring for complete rules.</description>

                 <type>Boolean</type>

                 <multiValued>false</multiValued>

                 <mandatory>false</mandatory>

@@ -136,6 +151,18 @@
                 <multiValued>false</multiValued>

                 <mandatory>false</mandatory>

             </configurationParameter>

+            <configurationParameter>

+                <name>additionalUimafitEngines</name>

+                <type>String</type>

+                <multiValued>true</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>strictImports</name>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

         </configurationParameters>

         <configurationParameterSettings>

             <nameValuePair>

@@ -230,11 +257,20 @@
                 </value>

             </nameValuePair>

             <nameValuePair>

+                <name>additionalUimafitEngines</name>

+                <value>

+                    <array/>

+                </value>

+            </nameValuePair>

+            <nameValuePair>

                 <name>additionalExtensions</name>

                 <value>

                     <array>

                         <string>org.apache.uima.ruta.example.extensions.ExampleConditionExtension</string>

                         <string>org.apache.uima.ruta.example.extensions.ExampleActionExtension</string>

+                        <string>org.apache.uima.ruta.example.extensions.ExampleBooleanFunctionExtension</string>

+                        <string>org.apache.uima.ruta.example.extensions.ExampleNumberFunctionExtension</string>

+                        <string>org.apache.uima.ruta.example.extensions.ExampleStringFunctionExtension</string>

                         <string>org.apache.uima.ruta.example.extensions.ExampleTypeFunctionExtension</string>

                     </array>

                 </value>

diff --git a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleBooleanFunctionTypeSystem.xml b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleBooleanFunctionTypeSystem.xml
index bbef260..3cb7f30 100644
--- a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleBooleanFunctionTypeSystem.xml
+++ b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleBooleanFunctionTypeSystem.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>

+

 <typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier">

     <name>uima.ruta.example.ExampleBooleanFunctionTypeSystem</name>

     <imports>

diff --git a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleConditionEngine.xml b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleConditionEngine.xml
index 575e342..6bbc844 100644
--- a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleConditionEngine.xml
+++ b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleConditionEngine.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>

+

 <analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">

     <frameworkImplementation>org.apache.uima.java</frameworkImplementation>

     <primitive>true</primitive>

@@ -113,7 +114,21 @@
             </configurationParameter>

             <configurationParameter>

                 <name>dynamicAnchoring</name>

-                <description>Activates dynamic achoring (possible speed up).</description>

+                <description>Activates dynamic anchoring (possible speed up).</description>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>greedyRuleElement</name>

+                <description>Activates greedy anchoring for rule elements.</description>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>greedyRule</name>

+                <description>Activates greedy anchoring for complete rules.</description>

                 <type>Boolean</type>

                 <multiValued>false</multiValued>

                 <mandatory>false</mandatory>

@@ -136,6 +151,18 @@
                 <multiValued>false</multiValued>

                 <mandatory>false</mandatory>

             </configurationParameter>

+            <configurationParameter>

+                <name>additionalUimafitEngines</name>

+                <type>String</type>

+                <multiValued>true</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>strictImports</name>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

         </configurationParameters>

         <configurationParameterSettings>

             <nameValuePair>

@@ -230,11 +257,20 @@
                 </value>

             </nameValuePair>

             <nameValuePair>

+                <name>additionalUimafitEngines</name>

+                <value>

+                    <array/>

+                </value>

+            </nameValuePair>

+            <nameValuePair>

                 <name>additionalExtensions</name>

                 <value>

                     <array>

                         <string>org.apache.uima.ruta.example.extensions.ExampleConditionExtension</string>

                         <string>org.apache.uima.ruta.example.extensions.ExampleActionExtension</string>

+                        <string>org.apache.uima.ruta.example.extensions.ExampleBooleanFunctionExtension</string>

+                        <string>org.apache.uima.ruta.example.extensions.ExampleNumberFunctionExtension</string>

+                        <string>org.apache.uima.ruta.example.extensions.ExampleStringFunctionExtension</string>

                         <string>org.apache.uima.ruta.example.extensions.ExampleTypeFunctionExtension</string>

                     </array>

                 </value>

diff --git a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleConditionTypeSystem.xml b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleConditionTypeSystem.xml
index 71a88f1..e8a07ce 100644
--- a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleConditionTypeSystem.xml
+++ b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleConditionTypeSystem.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>

+

 <typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier">

     <name>uima.ruta.example.ExampleConditionTypeSystem</name>

     <imports>

diff --git a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleNumberFunctionEngine.xml b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleNumberFunctionEngine.xml
index 31d2059..dd99a29 100644
--- a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleNumberFunctionEngine.xml
+++ b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleNumberFunctionEngine.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>

+

 <analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">

     <frameworkImplementation>org.apache.uima.java</frameworkImplementation>

     <primitive>true</primitive>

@@ -113,7 +114,21 @@
             </configurationParameter>

             <configurationParameter>

                 <name>dynamicAnchoring</name>

-                <description>Activates dynamic achoring (possible speed up).</description>

+                <description>Activates dynamic anchoring (possible speed up).</description>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>greedyRuleElement</name>

+                <description>Activates greedy anchoring for rule elements.</description>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>greedyRule</name>

+                <description>Activates greedy anchoring for complete rules.</description>

                 <type>Boolean</type>

                 <multiValued>false</multiValued>

                 <mandatory>false</mandatory>

@@ -136,6 +151,18 @@
                 <multiValued>false</multiValued>

                 <mandatory>false</mandatory>

             </configurationParameter>

+            <configurationParameter>

+                <name>additionalUimafitEngines</name>

+                <type>String</type>

+                <multiValued>true</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>strictImports</name>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

         </configurationParameters>

         <configurationParameterSettings>

             <nameValuePair>

@@ -230,6 +257,12 @@
                 </value>

             </nameValuePair>

             <nameValuePair>

+                <name>additionalUimafitEngines</name>

+                <value>

+                    <array/>

+                </value>

+            </nameValuePair>

+            <nameValuePair>

                 <name>additionalExtensions</name>

                 <value>

                     <array>

diff --git a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleNumberFunctionTypeSystem.xml b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleNumberFunctionTypeSystem.xml
index 3640c24..48803a2 100644
--- a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleNumberFunctionTypeSystem.xml
+++ b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleNumberFunctionTypeSystem.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>

+

 <typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier">

     <name>uima.ruta.example.ExampleNumberFunctionTypeSystem</name>

     <imports>

diff --git a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleStringFunctionEngine.xml b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleStringFunctionEngine.xml
index dae7327..dcff5c5 100644
--- a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleStringFunctionEngine.xml
+++ b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleStringFunctionEngine.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>

+

 <analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">

     <frameworkImplementation>org.apache.uima.java</frameworkImplementation>

     <primitive>true</primitive>

@@ -113,7 +114,21 @@
             </configurationParameter>

             <configurationParameter>

                 <name>dynamicAnchoring</name>

-                <description>Activates dynamic achoring (possible speed up).</description>

+                <description>Activates dynamic anchoring (possible speed up).</description>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>greedyRuleElement</name>

+                <description>Activates greedy anchoring for rule elements.</description>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>greedyRule</name>

+                <description>Activates greedy anchoring for complete rules.</description>

                 <type>Boolean</type>

                 <multiValued>false</multiValued>

                 <mandatory>false</mandatory>

@@ -136,6 +151,18 @@
                 <multiValued>false</multiValued>

                 <mandatory>false</mandatory>

             </configurationParameter>

+            <configurationParameter>

+                <name>additionalUimafitEngines</name>

+                <type>String</type>

+                <multiValued>true</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>strictImports</name>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

         </configurationParameters>

         <configurationParameterSettings>

             <nameValuePair>

@@ -230,6 +257,12 @@
                 </value>

             </nameValuePair>

             <nameValuePair>

+                <name>additionalUimafitEngines</name>

+                <value>

+                    <array/>

+                </value>

+            </nameValuePair>

+            <nameValuePair>

                 <name>additionalExtensions</name>

                 <value>

                     <array>

diff --git a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleStringFunctionTypeSystem.xml b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleStringFunctionTypeSystem.xml
index c6fac0f..e1ad108 100644
--- a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleStringFunctionTypeSystem.xml
+++ b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleStringFunctionTypeSystem.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>

+

 <typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier">

     <name>uima.ruta.example.ExampleStringFunctionTypeSystem</name>

     <imports>

diff --git a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleTypeFunctionEngine.xml b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleTypeFunctionEngine.xml
index d999778..80fdff6 100644
--- a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleTypeFunctionEngine.xml
+++ b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleTypeFunctionEngine.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>

+

 <analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">

     <frameworkImplementation>org.apache.uima.java</frameworkImplementation>

     <primitive>true</primitive>

@@ -113,7 +114,21 @@
             </configurationParameter>

             <configurationParameter>

                 <name>dynamicAnchoring</name>

-                <description>Activates dynamic achoring (possible speed up).</description>

+                <description>Activates dynamic anchoring (possible speed up).</description>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>greedyRuleElement</name>

+                <description>Activates greedy anchoring for rule elements.</description>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>greedyRule</name>

+                <description>Activates greedy anchoring for complete rules.</description>

                 <type>Boolean</type>

                 <multiValued>false</multiValued>

                 <mandatory>false</mandatory>

@@ -136,6 +151,18 @@
                 <multiValued>false</multiValued>

                 <mandatory>false</mandatory>

             </configurationParameter>

+            <configurationParameter>

+                <name>additionalUimafitEngines</name>

+                <type>String</type>

+                <multiValued>true</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

+            <configurationParameter>

+                <name>strictImports</name>

+                <type>Boolean</type>

+                <multiValued>false</multiValued>

+                <mandatory>false</mandatory>

+            </configurationParameter>

         </configurationParameters>

         <configurationParameterSettings>

             <nameValuePair>

@@ -230,11 +257,20 @@
                 </value>

             </nameValuePair>

             <nameValuePair>

+                <name>additionalUimafitEngines</name>

+                <value>

+                    <array/>

+                </value>

+            </nameValuePair>

+            <nameValuePair>

                 <name>additionalExtensions</name>

                 <value>

                     <array>

                         <string>org.apache.uima.ruta.example.extensions.ExampleConditionExtension</string>

                         <string>org.apache.uima.ruta.example.extensions.ExampleActionExtension</string>

+                        <string>org.apache.uima.ruta.example.extensions.ExampleBooleanFunctionExtension</string>

+                        <string>org.apache.uima.ruta.example.extensions.ExampleNumberFunctionExtension</string>

+                        <string>org.apache.uima.ruta.example.extensions.ExampleStringFunctionExtension</string>

                         <string>org.apache.uima.ruta.example.extensions.ExampleTypeFunctionExtension</string>

                     </array>

                 </value>

diff --git a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleTypeFunctionTypeSystem.xml b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleTypeFunctionTypeSystem.xml
index 49c9d22..c056f30 100644
--- a/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleTypeFunctionTypeSystem.xml
+++ b/example-projects/ExtensionsExample/descriptor/uima/ruta/example/ExampleTypeFunctionTypeSystem.xml
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>

+

 <typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier">

     <name>uima.ruta.example.ExampleTypeFunctionTypeSystem</name>

     <imports>

diff --git a/example-projects/ExtensionsExample/descriptor/utils/Cutter.xml b/example-projects/ExtensionsExample/descriptor/utils/Cutter.xml
new file mode 100644
index 0000000..a0543b7
--- /dev/null
+++ b/example-projects/ExtensionsExample/descriptor/utils/Cutter.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+
+<analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">
+  <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+  <primitive>true</primitive>
+  <annotatorImplementationName>org.apache.uima.ruta.engine.RutaCutter</annotatorImplementationName>
+  <analysisEngineMetaData>
+    <name>XMLConverter</name>
+    <description/>
+    <version>1.0</version>
+    <vendor/>
+    <configurationParameters>
+      <configurationParameter>
+        <name>outputView</name>
+        <type>String</type>
+        <multiValued>false</multiValued>
+        <mandatory>false</mandatory>
+      </configurationParameter>
+      <configurationParameter>
+        <name>inputView</name>
+        <type>String</type>
+        <multiValued>false</multiValued>
+        <mandatory>false</mandatory>
+      </configurationParameter>
+      <configurationParameter>
+        <name>keep</name>
+        <type>String</type>
+        <multiValued>false</multiValued>
+        <mandatory>false</mandatory>
+      </configurationParameter>
+    </configurationParameters>
+    <configurationParameterSettings/>
+    <typeSystemDescription/>
+    <typePriorities/>
+    <fsIndexCollection/>
+    <capabilities>
+      <capability>
+        <inputs/>
+        <outputs/>
+        <languagesSupported/>
+      </capability>
+    </capabilities>
+    <operationalProperties>
+      <modifiesCas>true</modifiesCas>
+      <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+      <outputsNewCASes>false</outputsNewCASes>
+    </operationalProperties>
+  </analysisEngineMetaData>
+  <resourceManagerConfiguration/>
+</analysisEngineDescription>
diff --git a/example-projects/ExtensionsExample/descriptor/utils/HtmlConverter.xml b/example-projects/ExtensionsExample/descriptor/utils/HtmlConverter.xml
index b31d35d..aaa927f 100644
--- a/example-projects/ExtensionsExample/descriptor/utils/HtmlConverter.xml
+++ b/example-projects/ExtensionsExample/descriptor/utils/HtmlConverter.xml
@@ -46,6 +46,12 @@
         <mandatory>false</mandatory>

       </configurationParameter>

       <configurationParameter>

+        <name>linebreakReplacement</name>

+        <type>String</type>

+        <multiValued>false</multiValued>

+        <mandatory>false</mandatory>

+      </configurationParameter>

+      <configurationParameter>

         <name>inputView</name>

         <type>String</type>

         <multiValued>false</multiValued>

diff --git a/example-projects/ExtensionsExample/descriptor/utils/ViewWriter.xml b/example-projects/ExtensionsExample/descriptor/utils/ViewWriter.xml
new file mode 100644
index 0000000..2b3b472
--- /dev/null
+++ b/example-projects/ExtensionsExample/descriptor/utils/ViewWriter.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+
+<analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">
+  <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+  <primitive>true</primitive>
+  <annotatorImplementationName>org.apache.uima.ruta.engine.ViewWriter</annotatorImplementationName>
+  <analysisEngineMetaData>
+    <name>XMLConverter</name>
+    <description/>
+    <version>1.0</version>
+    <vendor/>
+    <configurationParameters>
+      <configurationParameter>
+        <name>outputView</name>
+        <type>String</type>
+        <multiValued>false</multiValued>
+        <mandatory>false</mandatory>
+      </configurationParameter>
+      <configurationParameter>
+        <name>inputView</name>
+        <type>String</type>
+        <multiValued>false</multiValued>
+        <mandatory>false</mandatory>
+      </configurationParameter>
+      <configurationParameter>
+        <name>output</name>
+        <type>String</type>
+        <multiValued>false</multiValued>
+        <mandatory>false</mandatory>
+      </configurationParameter>
+    </configurationParameters>
+    <configurationParameterSettings/>
+    <typeSystemDescription/>
+    <typePriorities/>
+    <fsIndexCollection/>
+    <capabilities>
+      <capability>
+        <inputs/>
+        <outputs/>
+        <languagesSupported/>
+      </capability>
+    </capabilities>
+    <operationalProperties>
+      <modifiesCas>true</modifiesCas>
+      <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+      <outputsNewCASes>true</outputsNewCASes>
+    </operationalProperties>
+  </analysisEngineMetaData>
+  <resourceManagerConfiguration/>
+</analysisEngineDescription>
diff --git a/example-projects/ExtensionsExample/output/test.txt.xmi b/example-projects/ExtensionsExample/output/test.txt.xmi
index b96713f..3a38abc 100644
--- a/example-projects/ExtensionsExample/output/test.txt.xmi
+++ b/example-projects/ExtensionsExample/output/test.txt.xmi
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><xmi:XMI xmlns:cas="http:///uima/cas.ecore" xmlns:type="http:///org/apache/uima/textmarker/type.ecore" xmlns:xmi="http://www.omg.org/XMI" xmlns:ExampleCondition="http:///uima/textmarker/ExampleCondition.ecore" xmlns:tcas="http:///uima/tcas.ecore" xmi:version="2.0"><cas:NULL xmi:id="0"/><cas:Sofa xmi:id="1" sofaNum="1" sofaID="_InitialView" mimeType="text" sofaString="This is a test.&#13;&#10;1900/12/24 and 24.4.1982"/><tcas:DocumentAnnotation xmi:id="8" sofa="1" begin="0" end="41" language="x-unspecified"/><type:CW xmi:id="13" sofa="1" begin="0" end="4"/><type:SPACE xmi:id="17" sofa="1" begin="4" end="5"/><type:SPACE xmi:id="25" sofa="1" begin="7" end="8"/><type:SPACE xmi:id="33" sofa="1" begin="9" end="10"/><type:SPACE xmi:id="73" sofa="1" begin="27" end="28"/><type:SPACE xmi:id="81" sofa="1" begin="31" end="32"/><type:SW xmi:id="21" sofa="1" begin="5" end="7"/><type:SW xmi:id="29" sofa="1" begin="8" end="9"/><type:SW xmi:id="37" sofa="1" begin="10" end="14"/><type:SW xmi:id="77" sofa="1" begin="28" end="31"/><type:PERIOD xmi:id="41" sofa="1" begin="14" end="15"/><type:PERIOD xmi:id="89" sofa="1" begin="34" end="35"/><type:PERIOD xmi:id="97" sofa="1" begin="36" end="37"/><type:BREAK xmi:id="45" sofa="1" begin="15" end="16"/><type:BREAK xmi:id="49" sofa="1" begin="16" end="17"/><type:NUM xmi:id="53" sofa="1" begin="17" end="21"/><type:NUM xmi:id="61" sofa="1" begin="22" end="24"/><type:NUM xmi:id="69" sofa="1" begin="25" end="27"/><type:NUM xmi:id="85" sofa="1" begin="32" end="34"/><type:NUM xmi:id="93" sofa="1" begin="35" end="36"/><type:NUM xmi:id="101" sofa="1" begin="37" end="41"/><type:SPECIAL xmi:id="57" sofa="1" begin="21" end="22"/><type:SPECIAL xmi:id="65" sofa="1" begin="24" end="25"/><type:TextMarkerBasic xmi:id="105" sofa="1" begin="0" end="4"/><type:TextMarkerBasic xmi:id="110" sofa="1" begin="4" end="5"/><type:TextMarkerBasic xmi:id="115" sofa="1" begin="5" end="7"/><type:TextMarkerBasic xmi:id="120" sofa="1" begin="7" end="8"/><type:TextMarkerBasic xmi:id="125" sofa="1" begin="8" end="9"/><type:TextMarkerBasic xmi:id="130" sofa="1" begin="9" end="10"/><type:TextMarkerBasic xmi:id="135" sofa="1" begin="10" end="14"/><type:TextMarkerBasic xmi:id="140" sofa="1" begin="14" end="15"/><type:TextMarkerBasic xmi:id="145" sofa="1" begin="15" end="16"/><type:TextMarkerBasic xmi:id="150" sofa="1" begin="16" end="17"/><type:TextMarkerBasic xmi:id="155" sofa="1" begin="17" end="21"/><type:TextMarkerBasic xmi:id="160" sofa="1" begin="21" end="22"/><type:TextMarkerBasic xmi:id="165" sofa="1" begin="22" end="24"/><type:TextMarkerBasic xmi:id="170" sofa="1" begin="24" end="25"/><type:TextMarkerBasic xmi:id="175" sofa="1" begin="25" end="27"/><type:TextMarkerBasic xmi:id="180" sofa="1" begin="27" end="28"/><type:TextMarkerBasic xmi:id="185" sofa="1" begin="28" end="31"/><type:TextMarkerBasic xmi:id="190" sofa="1" begin="31" end="32"/><type:TextMarkerBasic xmi:id="195" sofa="1" begin="32" end="34"/><type:TextMarkerBasic xmi:id="200" sofa="1" begin="34" end="35"/><type:TextMarkerBasic xmi:id="205" sofa="1" begin="35" end="36"/><type:TextMarkerBasic xmi:id="210" sofa="1" begin="36" end="37"/><type:TextMarkerBasic xmi:id="215" sofa="1" begin="37" end="41"/><ExampleCondition:BeforeMe xmi:id="352" sofa="1" begin="17" end="27"/><type:DebugMatchedRuleMatch xmi:id="424" sofa="1" begin="17" end="27" time="21" elements="432" matched="true" delegates=""/><type:DebugMatchedRuleMatch xmi:id="1334" sofa="1" begin="0" end="41" time="6" elements="1342" matched="true" delegates=""/><type:DebugFailedRuleMatch xmi:id="595" sofa="1" begin="22" end="27" time="21" elements="603" matched="false"/><type:DebugFailedRuleMatch xmi:id="749" sofa="1" begin="25" end="27" time="21" elements="757" matched="false"/><type:DebugFailedRuleMatch xmi:id="869" sofa="1" begin="32" end="41" time="21" elements="877" matched="false"/><type:DebugFailedRuleMatch xmi:id="1038" sofa="1" begin="35" end="41" time="21" elements="1046" matched="false"/><type:DebugFailedRuleMatch xmi:id="1192" sofa="1" begin="37" end="41" time="21" elements="1200" matched="false"/><type:DebugBlockApply xmi:id="401" sofa="1" begin="0" end="41" time="27" element="BLOCK(ExampleCondition) Document " applied="1" tried="1" rules="1334" id="0" innerApply="413"/><type:Statistics xmi:id="1387" total="11.0 10.0 1.0" amount="6 12 1" part="1.8333 0.8333 1.0"><name>OR</name><name>ExampleCondition</name><name>MARK</name></type:Statistics><type:DebugCreatedBy xmi:id="220" rule="provided" annotation="8" script="" id="-1"/><type:DebugCreatedBy xmi:id="225" rule="provided" annotation="13" script="" id="-1"/><type:DebugCreatedBy xmi:id="230" rule="provided" annotation="17" script="" id="-1"/><type:DebugCreatedBy xmi:id="235" rule="provided" annotation="21" script="" id="-1"/><type:DebugCreatedBy xmi:id="240" rule="provided" annotation="25" script="" id="-1"/><type:DebugCreatedBy xmi:id="245" rule="provided" annotation="29" script="" id="-1"/><type:DebugCreatedBy xmi:id="250" rule="provided" annotation="33" script="" id="-1"/><type:DebugCreatedBy xmi:id="255" rule="provided" annotation="37" script="" id="-1"/><type:DebugCreatedBy xmi:id="260" rule="provided" annotation="41" script="" id="-1"/><type:DebugCreatedBy xmi:id="265" rule="provided" annotation="45" script="" id="-1"/><type:DebugCreatedBy xmi:id="270" rule="provided" annotation="49" script="" id="-1"/><type:DebugCreatedBy xmi:id="275" rule="provided" annotation="53" script="" id="-1"/><type:DebugCreatedBy xmi:id="280" rule="provided" annotation="57" script="" id="-1"/><type:DebugCreatedBy xmi:id="285" rule="provided" annotation="61" script="" id="-1"/><type:DebugCreatedBy xmi:id="290" rule="provided" annotation="65" script="" id="-1"/><type:DebugCreatedBy xmi:id="295" rule="provided" annotation="69" script="" id="-1"/><type:DebugCreatedBy xmi:id="300" rule="provided" annotation="73" script="" id="-1"/><type:DebugCreatedBy xmi:id="305" rule="provided" annotation="77" script="" id="-1"/><type:DebugCreatedBy xmi:id="310" rule="provided" annotation="81" script="" id="-1"/><type:DebugCreatedBy xmi:id="315" rule="provided" annotation="85" script="" id="-1"/><type:DebugCreatedBy xmi:id="320" rule="provided" annotation="89" script="" id="-1"/><type:DebugCreatedBy xmi:id="325" rule="provided" annotation="93" script="" id="-1"/><type:DebugCreatedBy xmi:id="330" rule="provided" annotation="97" script="" id="-1"/><type:DebugCreatedBy xmi:id="335" rule="provided" annotation="101" script="" id="-1"/><type:DebugCreatedBy xmi:id="356" rule="(NUM (PERIOD | SPECIAL) NUM (PERIOD | SPECIAL) NUM){OR(ExampleCondition, ExampleCondition) -&gt; MARK(BeforeMe)} " annotation="352" script="uima.textmarker.ExampleCondition" id="1"/><type:DebugRuleApply xmi:id="413" sofa="1" begin="17" end="41" time="21" element="(NUM (PERIOD | SPECIAL) NUM (PERIOD | SPECIAL) NUM){OR(ExampleCondition, ExampleCondition) -&gt; MARK(BeforeMe)} " applied="1" tried="6" rules="424 595 749 869 1038 1192" id="1" script="uima.textmarker.ExampleCondition"/><type:DebugRuleElementMatches xmi:id="1270" matches="" element="NUM" ruleAnchor="false"/><type:DebugRuleElementMatches xmi:id="1264" matches="" element="(PERIOD | SPECIAL)" ruleAnchor="false"/><type:DebugRuleElementMatches xmi:id="1258" matches="" element="NUM" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="1249" element="(PERIOD | SPECIAL)" value="false"/><type:DebugRuleElementMatch xmi:id="1241" sofa="1" begin="0" end="0" time="0" baseCondition="1249" conditions=""/><type:DebugRuleElementMatches xmi:id="1237" matches="1241" element="(PERIOD | SPECIAL)" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="1228" element="NUM" value="true"/><type:DebugRuleElementMatch xmi:id="1220" sofa="1" begin="37" end="41" time="0" baseCondition="1228" conditions=""/><type:DebugRuleElementMatches xmi:id="1216" matches="1220" element="NUM" ruleAnchor="true"/><type:DebugEvaluatedCondition xmi:id="1293" element="ExampleCondition(&quot;1981/02/24&quot;, &quot;yyyy/mm/dd&quot;)" value="false" conditions=""/><type:DebugEvaluatedCondition xmi:id="1287" element="ExampleCondition(&quot;24.02.1981&quot;, &quot;dd.mm.yyyy&quot;)" value="false" conditions=""/><type:DebugEvaluatedCondition xmi:id="1283" element="OR(ExampleCondition, ExampleCondition)" value="false" conditions="1287 1293"/><type:DebugEvaluatedCondition xmi:id="1212" element="(NUM (PERIOD | SPECIAL) NUM (PERIOD | SPECIAL) NUM){OR(ExampleCondition, ExampleCondition) -&gt; MARK(BeforeMe)}" value="false"/><type:DebugRuleElementMatch xmi:id="1204" sofa="1" begin="37" end="41" time="0" baseCondition="1212" conditions="1283" elements="1216 1237 1258 1264 1270"/><type:DebugRuleElementMatches xmi:id="1200" matches="1204" element="(NUM (PERIOD | SPECIAL) NUM (PERIOD | SPECIAL) NUM){OR(ExampleCondition, ExampleCondition) -&gt; MARK(BeforeMe)}" ruleAnchor="false"/><type:DebugRuleElementMatches xmi:id="1146" matches="" element="NUM" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="1137" element="(PERIOD | SPECIAL)" value="false"/><type:DebugRuleElementMatch xmi:id="1129" sofa="1" begin="0" end="0" time="0" baseCondition="1137" conditions=""/><type:DebugRuleElementMatches xmi:id="1125" matches="1129" element="(PERIOD | SPECIAL)" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="1116" element="NUM" value="true"/><type:DebugRuleElementMatch xmi:id="1108" sofa="1" begin="37" end="41" time="0" baseCondition="1116" conditions=""/><type:DebugRuleElementMatches xmi:id="1104" matches="1108" element="NUM" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="1095" element="(PERIOD | SPECIAL)" value="true"/><type:DebugRuleElementMatch xmi:id="1087" sofa="1" begin="36" end="37" time="0" baseCondition="1095" conditions=""/><type:DebugRuleElementMatches xmi:id="1083" matches="1087" element="(PERIOD | SPECIAL)" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="1074" element="NUM" value="true"/><type:DebugRuleElementMatch xmi:id="1066" sofa="1" begin="35" end="36" time="0" baseCondition="1074" conditions=""/><type:DebugRuleElementMatches xmi:id="1062" matches="1066" element="NUM" ruleAnchor="true"/><type:DebugEvaluatedCondition xmi:id="1169" element="ExampleCondition(&quot;1981/02/24&quot;, &quot;yyyy/mm/dd&quot;)" value="false" conditions=""/><type:DebugEvaluatedCondition xmi:id="1163" element="ExampleCondition(&quot;24.02.1981&quot;, &quot;dd.mm.yyyy&quot;)" value="false" conditions=""/><type:DebugEvaluatedCondition xmi:id="1159" element="OR(ExampleCondition, ExampleCondition)" value="false" conditions="1163 1169"/><type:DebugEvaluatedCondition xmi:id="1058" element="(NUM (PERIOD | SPECIAL) NUM (PERIOD | SPECIAL) NUM){OR(ExampleCondition, ExampleCondition) -&gt; MARK(BeforeMe)}" value="false"/><type:DebugRuleElementMatch xmi:id="1050" sofa="1" begin="35" end="41" time="0" baseCondition="1058" conditions="1159" elements="1062 1083 1104 1125 1146"/><type:DebugRuleElementMatches xmi:id="1046" matches="1050" element="(NUM (PERIOD | SPECIAL) NUM (PERIOD | SPECIAL) NUM){OR(ExampleCondition, ExampleCondition) -&gt; MARK(BeforeMe)}" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="989" element="NUM" value="true"/><type:DebugRuleElementMatch xmi:id="981" sofa="1" begin="37" end="41" time="0" baseCondition="989" conditions=""/><type:DebugRuleElementMatches xmi:id="977" matches="981" element="NUM" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="968" element="(PERIOD | SPECIAL)" value="true"/><type:DebugRuleElementMatch xmi:id="960" sofa="1" begin="36" end="37" time="0" baseCondition="968" conditions=""/><type:DebugRuleElementMatches xmi:id="956" matches="960" element="(PERIOD | SPECIAL)" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="947" element="NUM" value="true"/><type:DebugRuleElementMatch xmi:id="939" sofa="1" begin="35" end="36" time="0" baseCondition="947" conditions=""/><type:DebugRuleElementMatches xmi:id="935" matches="939" element="NUM" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="926" element="(PERIOD | SPECIAL)" value="true"/><type:DebugRuleElementMatch xmi:id="918" sofa="1" begin="34" end="35" time="0" baseCondition="926" conditions=""/><type:DebugRuleElementMatches xmi:id="914" matches="918" element="(PERIOD | SPECIAL)" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="905" element="NUM" value="true"/><type:DebugRuleElementMatch xmi:id="897" sofa="1" begin="32" end="34" time="0" baseCondition="905" conditions=""/><type:DebugRuleElementMatches xmi:id="893" matches="897" element="NUM" ruleAnchor="true"/><type:DebugEvaluatedCondition xmi:id="1015" element="ExampleCondition(&quot;1981/02/24&quot;, &quot;yyyy/mm/dd&quot;)" value="false" conditions=""/><type:DebugEvaluatedCondition xmi:id="1009" element="ExampleCondition(&quot;24.02.1981&quot;, &quot;dd.mm.yyyy&quot;)" value="false" conditions=""/><type:DebugEvaluatedCondition xmi:id="1005" element="OR(ExampleCondition, ExampleCondition)" value="false" conditions="1009 1015"/><type:DebugEvaluatedCondition xmi:id="889" element="(NUM (PERIOD | SPECIAL) NUM (PERIOD | SPECIAL) NUM){OR(ExampleCondition, ExampleCondition) -&gt; MARK(BeforeMe)}" value="true"/><type:DebugRuleElementMatch xmi:id="881" sofa="1" begin="32" end="41" time="0" baseCondition="889" conditions="1005" elements="893 914 935 956 977"/><type:DebugRuleElementMatches xmi:id="877" matches="881" element="(NUM (PERIOD | SPECIAL) NUM (PERIOD | SPECIAL) NUM){OR(ExampleCondition, ExampleCondition) -&gt; MARK(BeforeMe)}" ruleAnchor="false"/><type:DebugRuleElementMatches xmi:id="827" matches="" element="NUM" ruleAnchor="false"/><type:DebugRuleElementMatches xmi:id="821" matches="" element="(PERIOD | SPECIAL)" ruleAnchor="false"/><type:DebugRuleElementMatches xmi:id="815" matches="" element="NUM" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="806" element="(PERIOD | SPECIAL)" value="false"/><type:DebugRuleElementMatch xmi:id="798" sofa="1" begin="0" end="0" time="0" baseCondition="806" conditions=""/><type:DebugRuleElementMatches xmi:id="794" matches="798" element="(PERIOD | SPECIAL)" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="785" element="NUM" value="true"/><type:DebugRuleElementMatch xmi:id="777" sofa="1" begin="25" end="27" time="0" baseCondition="785" conditions=""/><type:DebugRuleElementMatches xmi:id="773" matches="777" element="NUM" ruleAnchor="true"/><type:DebugEvaluatedCondition xmi:id="850" element="ExampleCondition(&quot;1981/02/24&quot;, &quot;yyyy/mm/dd&quot;)" value="false" conditions=""/><type:DebugEvaluatedCondition xmi:id="844" element="ExampleCondition(&quot;24.02.1981&quot;, &quot;dd.mm.yyyy&quot;)" value="false" conditions=""/><type:DebugEvaluatedCondition xmi:id="840" element="OR(ExampleCondition, ExampleCondition)" value="false" conditions="844 850"/><type:DebugEvaluatedCondition xmi:id="769" element="(NUM (PERIOD | SPECIAL) NUM (PERIOD | SPECIAL) NUM){OR(ExampleCondition, ExampleCondition) -&gt; MARK(BeforeMe)}" value="false"/><type:DebugRuleElementMatch xmi:id="761" sofa="1" begin="25" end="27" time="0" baseCondition="769" conditions="840" elements="773 794 815 821 827"/><type:DebugRuleElementMatches xmi:id="757" matches="761" element="(NUM (PERIOD | SPECIAL) NUM (PERIOD | SPECIAL) NUM){OR(ExampleCondition, ExampleCondition) -&gt; MARK(BeforeMe)}" ruleAnchor="false"/><type:DebugRuleElementMatches xmi:id="703" matches="" element="NUM" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="694" element="(PERIOD | SPECIAL)" value="false"/><type:DebugRuleElementMatch xmi:id="686" sofa="1" begin="0" end="0" time="0" baseCondition="694" conditions=""/><type:DebugRuleElementMatches xmi:id="682" matches="686" element="(PERIOD | SPECIAL)" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="673" element="NUM" value="true"/><type:DebugRuleElementMatch xmi:id="665" sofa="1" begin="25" end="27" time="0" baseCondition="673" conditions=""/><type:DebugRuleElementMatches xmi:id="661" matches="665" element="NUM" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="652" element="(PERIOD | SPECIAL)" value="true"/><type:DebugRuleElementMatch xmi:id="644" sofa="1" begin="24" end="25" time="0" baseCondition="652" conditions=""/><type:DebugRuleElementMatches xmi:id="640" matches="644" element="(PERIOD | SPECIAL)" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="631" element="NUM" value="true"/><type:DebugRuleElementMatch xmi:id="623" sofa="1" begin="22" end="24" time="0" baseCondition="631" conditions=""/><type:DebugRuleElementMatches xmi:id="619" matches="623" element="NUM" ruleAnchor="true"/><type:DebugEvaluatedCondition xmi:id="726" element="ExampleCondition(&quot;1981/02/24&quot;, &quot;yyyy/mm/dd&quot;)" value="false" conditions=""/><type:DebugEvaluatedCondition xmi:id="720" element="ExampleCondition(&quot;24.02.1981&quot;, &quot;dd.mm.yyyy&quot;)" value="false" conditions=""/><type:DebugEvaluatedCondition xmi:id="716" element="OR(ExampleCondition, ExampleCondition)" value="false" conditions="720 726"/><type:DebugEvaluatedCondition xmi:id="615" element="(NUM (PERIOD | SPECIAL) NUM (PERIOD | SPECIAL) NUM){OR(ExampleCondition, ExampleCondition) -&gt; MARK(BeforeMe)}" value="false"/><type:DebugRuleElementMatch xmi:id="607" sofa="1" begin="22" end="27" time="0" baseCondition="615" conditions="716" elements="619 640 661 682 703"/><type:DebugRuleElementMatches xmi:id="603" matches="607" element="(NUM (PERIOD | SPECIAL) NUM (PERIOD | SPECIAL) NUM){OR(ExampleCondition, ExampleCondition) -&gt; MARK(BeforeMe)}" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="1354" element="Document" value="true"/><type:DebugRuleElementMatch xmi:id="1346" sofa="1" begin="0" end="41" time="0" baseCondition="1354" conditions=""/><type:DebugRuleElementMatches xmi:id="1342" matches="1346" element="Document" ruleAnchor="true"/><type:DebugEvaluatedCondition xmi:id="544" element="NUM" value="true"/><type:DebugRuleElementMatch xmi:id="536" sofa="1" begin="25" end="27" time="0" baseCondition="544" conditions=""/><type:DebugRuleElementMatches xmi:id="532" matches="536" element="NUM" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="523" element="(PERIOD | SPECIAL)" value="true"/><type:DebugRuleElementMatch xmi:id="515" sofa="1" begin="24" end="25" time="0" baseCondition="523" conditions=""/><type:DebugRuleElementMatches xmi:id="511" matches="515" element="(PERIOD | SPECIAL)" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="502" element="NUM" value="true"/><type:DebugRuleElementMatch xmi:id="494" sofa="1" begin="22" end="24" time="0" baseCondition="502" conditions=""/><type:DebugRuleElementMatches xmi:id="490" matches="494" element="NUM" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="481" element="(PERIOD | SPECIAL)" value="true"/><type:DebugRuleElementMatch xmi:id="473" sofa="1" begin="21" end="22" time="0" baseCondition="481" conditions=""/><type:DebugRuleElementMatches xmi:id="469" matches="473" element="(PERIOD | SPECIAL)" ruleAnchor="false"/><type:DebugEvaluatedCondition xmi:id="460" element="NUM" value="true"/><type:DebugRuleElementMatch xmi:id="452" sofa="1" begin="17" end="21" time="0" baseCondition="460" conditions=""/><type:DebugRuleElementMatches xmi:id="448" matches="452" element="NUM" ruleAnchor="true"/><type:DebugEvaluatedCondition xmi:id="570" element="ExampleCondition(&quot;1981/02/24&quot;, &quot;yyyy/mm/dd&quot;)" value="true" conditions=""/><type:DebugEvaluatedCondition xmi:id="564" element="ExampleCondition(&quot;24.02.1981&quot;, &quot;dd.mm.yyyy&quot;)" value="false" conditions=""/><type:DebugEvaluatedCondition xmi:id="560" element="OR(ExampleCondition, ExampleCondition)" value="true" conditions="564 570"/><type:DebugEvaluatedCondition xmi:id="444" element="(NUM (PERIOD | SPECIAL) NUM (PERIOD | SPECIAL) NUM){OR(ExampleCondition, ExampleCondition) -&gt; MARK(BeforeMe)}" value="true"/><type:DebugRuleElementMatch xmi:id="436" sofa="1" begin="17" end="27" time="0" baseCondition="444" conditions="560" elements="448 469 490 511 532"/><type:DebugRuleElementMatches xmi:id="432" matches="436" element="(NUM (PERIOD | SPECIAL) NUM (PERIOD | SPECIAL) NUM){OR(ExampleCondition, ExampleCondition) -&gt; MARK(BeforeMe)}" ruleAnchor="false"/><cas:View sofa="1" members="8 13 17 25 33 73 81 21 29 37 77 41 89 97 45 49 53 61 69 85 93 101 57 65 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200 205 210 215 352 424 1334 595 749 869 1038 1192 401 1387 220 225 230 235 240 245 250 255 260 265 270 275 280 285 290 295 300 305 310 315 320 325 330 335 356"/></xmi:XMI>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><xmi:XMI xmlns:cas="http:///uima/cas.ecore" xmlns:ExampleBlock="http:///uima/ruta/example/ExampleBlock.ecore" xmlns:type="http:///org/apache/uima/ruta/type.ecore" xmlns:xmi="http://www.omg.org/XMI" xmlns:tcas="http:///uima/tcas.ecore" xmi:version="2.0"><cas:NULL xmi:id="0"/><cas:Sofa xmi:id="1" sofaNum="1" sofaID="_InitialView" mimeType="text" sofaString="This is a test.&#13;&#10;1900/12/24 and 24.4.1982&#13;&#10;CW&#13;&#10;org.apache.uima.ruta.type.NUM"/><tcas:DocumentAnnotation xmi:id="8" sofa="1" begin="0" end="76" language="x-unspecified"/><type:CW xmi:id="13" sofa="1" begin="0" end="4"/><type:SPACE xmi:id="17" sofa="1" begin="4" end="5"/><type:SPACE xmi:id="25" sofa="1" begin="7" end="8"/><type:SPACE xmi:id="33" sofa="1" begin="9" end="10"/><type:SPACE xmi:id="73" sofa="1" begin="27" end="28"/><type:SPACE xmi:id="81" sofa="1" begin="31" end="32"/><type:SW xmi:id="21" sofa="1" begin="5" end="7"/><type:SW xmi:id="29" sofa="1" begin="8" end="9"/><type:SW xmi:id="37" sofa="1" begin="10" end="14"/><type:SW xmi:id="77" sofa="1" begin="28" end="31"/><type:SW xmi:id="125" sofa="1" begin="47" end="50"/><type:SW xmi:id="133" sofa="1" begin="51" end="57"/><type:SW xmi:id="141" sofa="1" begin="58" end="62"/><type:SW xmi:id="149" sofa="1" begin="63" end="67"/><type:SW xmi:id="157" sofa="1" begin="68" end="72"/><type:PERIOD xmi:id="41" sofa="1" begin="14" end="15"/><type:PERIOD xmi:id="89" sofa="1" begin="34" end="35"/><type:PERIOD xmi:id="97" sofa="1" begin="36" end="37"/><type:PERIOD xmi:id="129" sofa="1" begin="50" end="51"/><type:PERIOD xmi:id="137" sofa="1" begin="57" end="58"/><type:PERIOD xmi:id="145" sofa="1" begin="62" end="63"/><type:PERIOD xmi:id="153" sofa="1" begin="67" end="68"/><type:PERIOD xmi:id="161" sofa="1" begin="72" end="73"/><type:BREAK xmi:id="45" sofa="1" begin="15" end="16"/><type:BREAK xmi:id="49" sofa="1" begin="16" end="17"/><type:BREAK xmi:id="105" sofa="1" begin="41" end="42"/><type:BREAK xmi:id="109" sofa="1" begin="42" end="43"/><type:BREAK xmi:id="117" sofa="1" begin="45" end="46"/><type:BREAK xmi:id="121" sofa="1" begin="46" end="47"/><type:NUM xmi:id="53" sofa="1" begin="17" end="21"/><type:NUM xmi:id="61" sofa="1" begin="22" end="24"/><type:NUM xmi:id="69" sofa="1" begin="25" end="27"/><type:NUM xmi:id="85" sofa="1" begin="32" end="34"/><type:NUM xmi:id="93" sofa="1" begin="35" end="36"/><type:NUM xmi:id="101" sofa="1" begin="37" end="41"/><type:SPECIAL xmi:id="57" sofa="1" begin="21" end="22"/><type:SPECIAL xmi:id="65" sofa="1" begin="24" end="25"/><type:CAP xmi:id="113" sofa="1" begin="43" end="45"/><type:CAP xmi:id="165" sofa="1" begin="73" end="76"/><type:RutaBasic xmi:id="169" sofa="1" begin="0" end="4"/><type:RutaBasic xmi:id="174" sofa="1" begin="4" end="5"/><type:RutaBasic xmi:id="179" sofa="1" begin="5" end="7"/><type:RutaBasic xmi:id="184" sofa="1" begin="7" end="8"/><type:RutaBasic xmi:id="189" sofa="1" begin="8" end="9"/><type:RutaBasic xmi:id="194" sofa="1" begin="9" end="10"/><type:RutaBasic xmi:id="199" sofa="1" begin="10" end="14"/><type:RutaBasic xmi:id="204" sofa="1" begin="14" end="15"/><type:RutaBasic xmi:id="209" sofa="1" begin="15" end="16"/><type:RutaBasic xmi:id="214" sofa="1" begin="16" end="17"/><type:RutaBasic xmi:id="219" sofa="1" begin="17" end="21"/><type:RutaBasic xmi:id="224" sofa="1" begin="21" end="22"/><type:RutaBasic xmi:id="229" sofa="1" begin="22" end="24"/><type:RutaBasic xmi:id="234" sofa="1" begin="24" end="25"/><type:RutaBasic xmi:id="239" sofa="1" begin="25" end="27"/><type:RutaBasic xmi:id="244" sofa="1" begin="27" end="28"/><type:RutaBasic xmi:id="249" sofa="1" begin="28" end="31"/><type:RutaBasic xmi:id="254" sofa="1" begin="31" end="32"/><type:RutaBasic xmi:id="259" sofa="1" begin="32" end="34"/><type:RutaBasic xmi:id="264" sofa="1" begin="34" end="35"/><type:RutaBasic xmi:id="269" sofa="1" begin="35" end="36"/><type:RutaBasic xmi:id="274" sofa="1" begin="36" end="37"/><type:RutaBasic xmi:id="279" sofa="1" begin="37" end="41"/><type:RutaBasic xmi:id="284" sofa="1" begin="41" end="42"/><type:RutaBasic xmi:id="289" sofa="1" begin="42" end="43"/><type:RutaBasic xmi:id="294" sofa="1" begin="43" end="45"/><type:RutaBasic xmi:id="299" sofa="1" begin="45" end="46"/><type:RutaBasic xmi:id="304" sofa="1" begin="46" end="47"/><type:RutaBasic xmi:id="309" sofa="1" begin="47" end="50"/><type:RutaBasic xmi:id="314" sofa="1" begin="50" end="51"/><type:RutaBasic xmi:id="319" sofa="1" begin="51" end="57"/><type:RutaBasic xmi:id="324" sofa="1" begin="57" end="58"/><type:RutaBasic xmi:id="329" sofa="1" begin="58" end="62"/><type:RutaBasic xmi:id="334" sofa="1" begin="62" end="63"/><type:RutaBasic xmi:id="339" sofa="1" begin="63" end="67"/><type:RutaBasic xmi:id="344" sofa="1" begin="67" end="68"/><type:RutaBasic xmi:id="349" sofa="1" begin="68" end="72"/><type:RutaBasic xmi:id="354" sofa="1" begin="72" end="73"/><type:RutaBasic xmi:id="359" sofa="1" begin="73" end="76"/><ExampleBlock:T1 xmi:id="392" sofa="1" begin="10" end="15"/><ExampleBlock:T1 xmi:id="416" sofa="1" begin="47" end="51"/><ExampleBlock:T1 xmi:id="432" sofa="1" begin="51" end="58"/><ExampleBlock:T1 xmi:id="448" sofa="1" begin="58" end="63"/><ExampleBlock:T1 xmi:id="464" sofa="1" begin="63" end="68"/><ExampleBlock:T1 xmi:id="480" sofa="1" begin="68" end="73"/><ExampleBlock:T2 xmi:id="504" sofa="1" begin="8" end="15"/><ExampleBlock:T3 xmi:id="576" sofa="1" begin="5" end="15"/><ExampleBlock:T4 xmi:id="656" sofa="1" begin="0" end="15"/><cas:View sofa="1" members="8 13 17 25 33 73 81 21 29 37 77 125 133 141 149 157 41 89 97 129 137 145 153 161 45 49 105 109 117 121 53 61 69 85 93 101 57 65 113 165 169 174 179 184 189 194 199 204 209 214 219 224 229 234 239 244 249 254 259 264 269 274 279 284 289 294 299 304 309 314 319 324 329 334 339 344 349 354 359 392 416 432 448 464 480 504 576 656"/></xmi:XMI>
\ No newline at end of file
diff --git a/example-projects/ExtensionsExample/script/uima/ruta/example/ExampleBlock.ruta b/example-projects/ExtensionsExample/script/uima/ruta/example/ExampleBlock.ruta
new file mode 100644
index 0000000..cf67d4b
--- /dev/null
+++ b/example-projects/ExtensionsExample/script/uima/ruta/example/ExampleBlock.ruta
@@ -0,0 +1,20 @@
+PACKAGE uima.ruta.example;
+
+DECLARE T1, T2, T3, T4;
+
+//This is a test.
+REVERSE Document{}{
+  (CW T3){-> T4};
+  (SW T2){-> T3};
+  (SW T1){-> T2};
+  (SW PERIOD){-> T1};
+}
+
+
+
+
+
+
+
+
+