Author: burn
Date: Fri Aug 19 13:22:22 2016
New Revision: 1756914

URL: http://svn.apache.org/viewvc?rev=1756914&view=rev
Log:
UIMA-5058 Changed to check that each piece of metadata already exists; name the 
failing item in the error msg; added JUnit tests

Added:
    
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateForMultipleAeTest.xml
   (with props)
    
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest.xml
   (with props)
    
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest2.xml
   (with props)
    
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest3.xml
   (with props)
    
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest4.xml
   (with props)
    
uima/uimaj/trunk/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/ImportsTypeSystemImportedByName.xml
   (with props)
    
uima/uimaj/trunk/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/TypeSystemImportedByName2.xml
   (with props)
Modified:
    
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/CasManager_impl.java
    
uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
    
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngine_implTest.java

Modified: 
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/CasManager_impl.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/CasManager_impl.java?rev=1756914&r1=1756913&r2=1756914&view=diff
==============================================================================
--- 
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/CasManager_impl.java
 (original)
+++ 
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/CasManager_impl.java
 Fri Aug 19 13:22:22 2016
@@ -20,6 +20,7 @@
 package org.apache.uima.resource.impl;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -41,8 +42,12 @@ import org.apache.uima.resource.CasManag
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.resource.ResourceManager;
 import org.apache.uima.resource.metadata.FsIndexCollection;
+import org.apache.uima.resource.metadata.FsIndexDescription;
+import org.apache.uima.resource.metadata.MetaDataObject;
 import org.apache.uima.resource.metadata.ProcessingResourceMetaData;
+import org.apache.uima.resource.metadata.TypeDescription;
 import org.apache.uima.resource.metadata.TypePriorities;
+import org.apache.uima.resource.metadata.TypePriorityList;
 import org.apache.uima.resource.metadata.TypeSystemDescription;
 import org.apache.uima.util.CasCreationUtils;
 import org.apache.uima.util.CasPool;
@@ -96,56 +101,99 @@ public class CasManager_impl implements
    */
   public synchronized void addMetaData(ProcessingResourceMetaData aMetaData) {
     if (mCasDefinition != null) {
-      if (containsSameTypeAndIndexInfo(aMetaData)) { //UIMA-1249
+      String error = containsSameTypeAndIndexInfo(aMetaData);  //UIMA-1249 
UIMA-5058
+      if (error == null) { 
         return;
       }
-      throw new 
UIMARuntimeException(UIMARuntimeException.ILLEGAL_ADDING_OF_NEW_META_INFO_AFTER_CAS_DEFINED,
 new Object[] {});  // internal error  UIMA-1249    
+      throw new 
UIMARuntimeException(UIMARuntimeException.ILLEGAL_ADDING_OF_NEW_META_INFO_AFTER_CAS_DEFINED,
 new Object[] {error});  // internal error  UIMA-1249    
     }
     mMetaDataList.add(aMetaData);
-//    mCasDefinition = null; // marka this stale
-//    mCurrentTypeSystem = null; //this too
   }
   
   /**
-   * This comparison is needed to avoid throwing errors in the use case:
+   * This check is needed to avoid throwing errors in the use case:
    *   a) the pipeline has been fully initialized, and one or more CASes have 
been drawn from this pool
    *   b) Another instance of an annotator using the same resource manager is 
initialized.
    *   
    * In this case there is no change to the metadata, and we do not want to 
disturb anything.
    * 
    * @param md the metadata to see if its in the list already
-   * @return true if the type system description, the type priority 
description, and the index collection are
-   * in the list already.
+   * @return  null if the type system description, the type priority 
description, and the index collection are in the list already,
+   *          or the name of the failing item. UIMA-5058
    */
-  private boolean containsSameTypeAndIndexInfo(ProcessingResourceMetaData md) {
+  private String containsSameTypeAndIndexInfo(ProcessingResourceMetaData md) {
     final TypeSystemDescription tsd = md.getTypeSystem();
-    final TypePriorities tsp = md.getTypePriorities();
+    if (tsd != null) {
+      for (TypeDescription td : tsd.getTypes()) {
+        String missing = findMissingEntry(td);
+        if (missing != null) return missing;  // At least 1 type is new
+      }
+    }
+    final TypePriorities tp = md.getTypePriorities();
+    if (tp != null) {
+      for (TypePriorityList tpl : tp.getPriorityLists()) {
+        String missing = findMissingEntry(tpl);
+        if (missing != null) return missing;  // At least 1 priority-list is 
new
+      }
+    }
     final FsIndexCollection ic = md.getFsIndexCollection();
-    
-    for (ProcessingResourceMetaData item : mMetaDataList) {
-      final TypeSystemDescription otsd = item.getTypeSystem();
-      final TypePriorities otsp = item.getTypePriorities();
-      final FsIndexCollection oic = item.getFsIndexCollection();
-      if (equalsWithNulls(tsp, otsp) &&
-          equalsWithNulls(tsd, otsd) &&
-          equalsWithNulls(ic , oic )) {
-        return true;
+    if (ic != null) {
+      for (FsIndexDescription fid : ic.getFsIndexes()) {
+        String missing = findMissingEntry(fid);
+        if (missing != null) return missing;   // At least 1 index is new
+      }
+    }
+    return null;  // All metadata already merged
+  }
+  
+  /*
+   * Check if the MetaDataObject is missing from the already merged 
CasDefinition
+   * Returns its name, or null if it is found.
+   */
+  private String findMissingEntry(MetaDataObject mdo) {
+    for (ProcessingResourceMetaData oldMd : mMetaDataList) {
+      MetaDataObject[] array = getMdArray(mdo, oldMd);
+      if (array != null) {
+        for (MetaDataObject oldMdo : array) {
+          if (mdo.equals(oldMdo)) return null;
+        }
       }
     }
-    return false;
+    return getMdName(mdo);
   }
   
-  private boolean equalsWithNulls(Object a, Object b) {
-    if (a == null && b == null) {
-      return true;
+  /*
+   * Return an array of TypeDescriptions or TypePriorities or 
FsIndexDescriptions
+   */
+  private MetaDataObject[] getMdArray(MetaDataObject type, 
ProcessingResourceMetaData md) {
+    if (type instanceof TypeDescription) {
+      TypeSystemDescription tsd = md.getTypeSystem();
+      return tsd==null ? null : tsd.getTypes();
+    } else if (type instanceof TypePriorityList) {
+      TypePriorities tp = md.getTypePriorities();
+      return tp==null ? null : tp.getPriorityLists();
+    } else if (type instanceof FsIndexDescription) {
+       FsIndexCollection ic = md.getFsIndexCollection();
+      return ic==null ? null : ic.getFsIndexes();
     }
-    if (a != null) {
-      return a.equals(b);
-    } else {
-      return b.equals(a);
+    return null;
+  }
+  
+  /*
+   * Return the "name" of the MetaDataObject for an error message
+   */
+  private String getMdName(MetaDataObject type) {
+    String name = "?";
+    if (type instanceof TypeDescription) {
+      name = "Type: " + ((TypeDescription)type).getName();
+    } else if (type instanceof TypePriorityList) {
+      name = "TypePriority: " + 
Arrays.toString(((TypePriorityList)type).getTypes());
+    } else if (type instanceof FsIndexDescription) {
+      name = "FsIndex: " + ((FsIndexDescription)type).getLabel();
     }
+    return name + "@" + type.getSourceUrlString();
   }
-
+  
   /*
    * (non-Javadoc)
    * 

Modified: 
uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties?rev=1756914&r1=1756913&r2=1756914&view=diff
==============================================================================
--- 
uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
 (original)
+++ 
uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
 Fri Aug 19 13:22:22 2016
@@ -55,7 +55,7 @@ illegal_cas_copy_to_same_cas = It is not
 
 unsupported_cas_copy_view_base_cas = Unsupported invocation of CasCopier 
copyCasView, specifying a source or destination as a base CAS.
 
-illegal_adding_of_new_meta_info = Illegal adding of additional MetaData after 
CASes have been defined.  Likely cause is the reuse of a Resource Manager 
object for a different pipeline, after it has already been initialized.
+illegal_adding_of_new_meta_info = Illegal adding of additional MetaData after 
CASes have been defined.\n  {0}\n  Likely cause is the reuse of a Resource 
Manager object for a different pipeline, after it has already been initialized.
 
 illegal_update_indexed_fs = Illegal update of indexed Feature Structure 
feature used as an key in one or more indices
 
@@ -573,4 +573,4 @@ DESERIALIZING_COMPRESSED_BINARY_UNSUPPOR
 DEREF_FS_OTHER_CAS = Dereferencing a FeatureStructure of a CAS in a different 
CAS''s context. This can happen if you try to set a feature structure reference 
to a value of a feature structure belonging to an entirely different CAS. FS = 
"{0}", CAS = "{1}".
 ILLEGAL_FEAT_SET = While a FeatureStructure was in the index, an illegal 
attempt was made to modify Feature "{0}" which is used as a key in one or more 
indices; the Feature Structure being modified was "{1}".
 LENIENT_NOT_SUPPORTED = Lenient deserialization not support for input of type 
{0}.
-SWITCH_CLASS_LOADER_NESTED = Multiply nested classloaders not supported.  
Original base loader: {0}, current nested loader: {1}, trying to switch to 
loader: {2}.
\ No newline at end of file
+SWITCH_CLASS_LOADER_NESTED = Multiply nested classloaders not supported.  
Original base loader: {0}, current nested loader: {1}, trying to switch to 
loader: {2}.

Modified: 
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngine_implTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngine_implTest.java?rev=1756914&r1=1756913&r2=1756914&view=diff
==============================================================================
--- 
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngine_implTest.java
 (original)
+++ 
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngine_implTest.java
 Fri Aug 19 13:22:22 2016
@@ -1622,4 +1622,59 @@ public class AnalysisEngine_implTest ext
     rdr.close();
     return len;
   }
+  
+  /*
+   * Test attempts to update the type-system after the lazy merge (UIMA-1249 & 
5048)
+   * Creating a 2nd identical AE should be OK even if the types are assembled 
in a different order.
+   * Creating an AE with an unseen type, type-priority, or index should fail. 
+   */
+  public void testAdditionalAEs() throws Exception {
+
+    // Create an AE and "freeze" the type-system
+    AnalysisEngineDescription desc = 
UIMAFramework.getXMLParser().parseAnalysisEngineDescription(
+            new 
XMLInputSource(JUnitExtension.getFile("TextAnalysisEngineImplTest/AggregateForMultipleAeTest.xml")));
+    UIMAFramework.getLogger().setLevel(Level.CONFIG);
+    AnalysisEngine ae1 = UIMAFramework.produceAnalysisEngine(desc);
+    ae1.newCAS();
+    
+    // Creating a 2nd duplicate engine failed in 2.8.1 if the 2nd of the 2 
typesystems imported
+    // is also contained in the 1st (UIMA-5058)
+    try {
+      AnalysisEngineDescription desc2 = 
UIMAFramework.getXMLParser().parseAnalysisEngineDescription(
+              new 
XMLInputSource(JUnitExtension.getFile("TextAnalysisEngineImplTest/MultipleAeTest.xml")));
+      UIMAFramework.produceAnalysisEngine(desc2, ae1.getResourceManager(), 
null);
+    } catch (Exception e) {
+      JUnitExtension.handleException(e);
+    }
+    
+    // Try creating one with at least one different type
+    try {
+      AnalysisEngineDescription desc2 = 
UIMAFramework.getXMLParser().parseAnalysisEngineDescription(
+              new 
XMLInputSource(JUnitExtension.getFile("TextAnalysisEngineImplTest/MultipleAeTest2.xml")));
+      UIMAFramework.produceAnalysisEngine(desc2, ae1.getResourceManager(), 
null);
+      fail();
+    } catch (Exception e) {
+      System.err.println("Expected exception: " + e);
+    }
+    
+    // Try creating one with different type-priorities
+    try {
+      AnalysisEngineDescription desc2 = 
UIMAFramework.getXMLParser().parseAnalysisEngineDescription(
+              new 
XMLInputSource(JUnitExtension.getFile("TextAnalysisEngineImplTest/MultipleAeTest3.xml")));
+      UIMAFramework.produceAnalysisEngine(desc2, ae1.getResourceManager(), 
null);
+      fail();
+    } catch (Exception e) {
+      System.err.println("Expected exception: " + e);
+    }
+    
+    // Try creating one with different indexes
+    try {
+      AnalysisEngineDescription desc2 = 
UIMAFramework.getXMLParser().parseAnalysisEngineDescription(
+              new 
XMLInputSource(JUnitExtension.getFile("TextAnalysisEngineImplTest/MultipleAeTest4.xml")));
+      UIMAFramework.produceAnalysisEngine(desc2, ae1.getResourceManager(), 
null);
+      fail();
+    } catch (Exception e) {
+      System.err.println("Expected exception: " + e);
+    }
+  }
 }

Added: 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateForMultipleAeTest.xml
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateForMultipleAeTest.xml?rev=1756914&view=auto
==============================================================================
--- 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateForMultipleAeTest.xml
 (added)
+++ 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateForMultipleAeTest.xml
 Fri Aug 19 13:22:22 2016
@@ -0,0 +1,56 @@
+<?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.
+ -->
+<!-- Descriptor for testing external overrides. -->
+<analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier";>
+  <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+  <primitive>false</primitive>
+  <delegateAnalysisEngineSpecifiers>
+    <delegateAnalysisEngine key="MultipleAeTest">
+      <import location="MultipleAeTest.xml"/>
+    </delegateAnalysisEngine>
+  </delegateAnalysisEngineSpecifiers>
+  <analysisEngineMetaData>
+    <name>Aggregate for multiple AE test</name>
+    <description/>
+    <version>1.0</version>
+    <vendor/>
+    <configurationParameters searchStrategy="language_fallback"/>
+    <configurationParameterSettings/>
+    <flowConstraints>
+      <fixedFlow>
+        <node>MultipleAeTest</node>
+      </fixedFlow>
+    </flowConstraints>
+    <fsIndexCollection/>
+    <capabilities>
+      <capability>
+        <inputs/>
+        <outputs/>
+        <languagesSupported/>
+      </capability>
+    </capabilities>
+    <operationalProperties>
+      <modifiesCas>true</modifiesCas>
+      <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+      <outputsNewCASes>false</outputsNewCASes>
+    </operationalProperties>
+  </analysisEngineMetaData>
+  <resourceManagerConfiguration/>
+</analysisEngineDescription>

Propchange: 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateForMultipleAeTest.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest.xml
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest.xml?rev=1756914&view=auto
==============================================================================
--- 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest.xml
 (added)
+++ 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest.xml
 Fri Aug 19 13:22:22 2016
@@ -0,0 +1,62 @@
+<?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.
+ -->
+<!-- Descriptor for testing duplicated nested types. -->
+<taeDescription xmlns="http://uima.apache.org/resourceSpecifier";>
+  <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+  <primitive>true</primitive>
+  
<annotatorImplementationName>org.apache.uima.analysis_engine.impl.TestAnnotator2</annotatorImplementationName>
+ 
+  <analysisEngineMetaData>
+    <name>AnnotatorWithDuplicatedNestedTypes</name>
+    <description>For testing duplicated nested types.</description>
+    <version>1.0</version>
+    <vendor>The Apache Software Foundation</vendor>
+
+    <typeSystemDescription>
+      <imports>
+       <import 
name="org.apache.uima.resource.metadata.impl.ImportsTypeSystemImportedByName"/>
+       <import 
name="org.apache.uima.resource.metadata.impl.TypeSystemImportedByName"/>
+      </imports>
+    </typeSystemDescription>
+
+       <typePriorities>
+         <priorityLists>
+               <priorityList>
+                 <type>TestType1</type>
+                 <type>NamedEntity</type>
+               </priorityList>
+         </priorityLists>
+       </typePriorities>
+
+    <!-- Capabilities: Inputs and Outputs -->
+    <capabilities>
+      <capability>
+        <inputs/>
+        <outputs/>
+        <languagesSupported/>
+      </capability>
+    </capabilities>
+    <operationalProperties>
+      <modifiesCas>true</modifiesCas>
+      <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+      <outputsNewCASes>false</outputsNewCASes>
+    </operationalProperties>
+  </analysisEngineMetaData>
+</taeDescription>

Propchange: 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest2.xml
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest2.xml?rev=1756914&view=auto
==============================================================================
--- 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest2.xml
 (added)
+++ 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest2.xml
 Fri Aug 19 13:22:22 2016
@@ -0,0 +1,52 @@
+<?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.
+ -->
+<!-- Descriptor for testing duplicated nested types. -->
+<taeDescription xmlns="http://uima.apache.org/resourceSpecifier";>
+  <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+  <primitive>true</primitive>
+  
<annotatorImplementationName>org.apache.uima.analysis_engine.impl.TestAnnotator2</annotatorImplementationName>
+ 
+  <analysisEngineMetaData>
+    <name>AnnotatorWithDifferentTypes</name>
+    <description>For testing a 2nd AE with new types.</description>
+    <version>1.0</version>
+    <vendor>The Apache Software Foundation</vendor>
+
+    <typeSystemDescription>
+      <imports>
+       <import 
name="org.apache.uima.resource.metadata.impl.TypeSystemImportedByName2"/>
+      </imports>
+    </typeSystemDescription>
+
+    <!-- Capabilities: Inputs and Outputs -->
+    <capabilities>
+      <capability>
+        <inputs/>
+        <outputs/>
+        <languagesSupported/>
+      </capability>
+    </capabilities>
+    <operationalProperties>
+      <modifiesCas>true</modifiesCas>
+      <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+      <outputsNewCASes>false</outputsNewCASes>
+    </operationalProperties>
+  </analysisEngineMetaData>
+</taeDescription>

Propchange: 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest2.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest3.xml
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest3.xml?rev=1756914&view=auto
==============================================================================
--- 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest3.xml
 (added)
+++ 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest3.xml
 Fri Aug 19 13:22:22 2016
@@ -0,0 +1,62 @@
+<?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.
+ -->
+<!-- Descriptor for testing duplicated nested types. -->
+<taeDescription xmlns="http://uima.apache.org/resourceSpecifier";>
+  <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+  <primitive>true</primitive>
+  
<annotatorImplementationName>org.apache.uima.analysis_engine.impl.TestAnnotator2</annotatorImplementationName>
+ 
+  <analysisEngineMetaData>
+    <name>AnnotatorWithDifferentTypePriorities</name>
+    <description>For testing different type-priorities.</description>
+    <version>1.0</version>
+    <vendor>The Apache Software Foundation</vendor>
+
+    <typeSystemDescription>
+      <imports>
+       <import 
name="org.apache.uima.resource.metadata.impl.ImportsTypeSystemImportedByName"/>
+       <import 
name="org.apache.uima.resource.metadata.impl.TypeSystemImportedByName"/>
+      </imports>
+    </typeSystemDescription>
+
+       <typePriorities>
+         <priorityLists>
+               <priorityList>
+                 <type>TestType2</type>
+                 <type>NamedEntity</type>
+               </priorityList>
+         </priorityLists>
+       </typePriorities>
+
+    <!-- Capabilities: Inputs and Outputs -->
+    <capabilities>
+      <capability>
+        <inputs/>
+        <outputs/>
+        <languagesSupported/>
+      </capability>
+    </capabilities>
+    <operationalProperties>
+      <modifiesCas>true</modifiesCas>
+      <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+      <outputsNewCASes>false</outputsNewCASes>
+    </operationalProperties>
+  </analysisEngineMetaData>
+</taeDescription>

Propchange: 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest3.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest4.xml
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest4.xml?rev=1756914&view=auto
==============================================================================
--- 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest4.xml
 (added)
+++ 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest4.xml
 Fri Aug 19 13:22:22 2016
@@ -0,0 +1,97 @@
+<?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.
+ -->
+<!-- Descriptor for testing duplicated nested types. -->
+<taeDescription xmlns="http://uima.apache.org/resourceSpecifier";>
+  <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+  <primitive>true</primitive>
+  
<annotatorImplementationName>org.apache.uima.analysis_engine.impl.TestAnnotator2</annotatorImplementationName>
+ 
+  <analysisEngineMetaData>
+    <name>AnnotatorWithDifferentIndexes</name>
+    <description>For testing different FS indexes.</description>
+    <version>1.0</version>
+    <vendor>The Apache Software Foundation</vendor>
+
+    <typeSystemDescription>
+      <imports>
+       <import 
name="org.apache.uima.resource.metadata.impl.ImportsTypeSystemImportedByName"/>
+       <import 
name="org.apache.uima.resource.metadata.impl.TypeSystemImportedByName"/>
+      </imports>
+    </typeSystemDescription>
+
+       <typePriorities>
+         <priorityLists>
+               <priorityList>
+                 <type>TestType1</type>
+                 <type>NamedEntity</type>
+               </priorityList>
+         </priorityLists>
+       </typePriorities>
+
+       <fsIndexCollection>
+         <fsIndexes>
+               <fsIndexDescription>
+                 <label>AnnotationSetIndex</label>
+                 <typeName>uima.tcas.Annotation</typeName>
+                 <kind>set</kind>
+                 <keys>
+                       <fsIndexKey>
+                         <featureName>begin</featureName>
+                         <comparator>standard</comparator>
+                       </fsIndexKey>
+                       <fsIndexKey>
+                         <featureName>end</featureName>
+                         <comparator>reverse</comparator>
+                       </fsIndexKey>
+                 </keys>
+               </fsIndexDescription>
+               <fsIndexDescription>
+                 <label>Annotation Bag Index</label>
+                 <typeName>uima.tcas.Annotation</typeName>
+                 <kind>bag</kind>
+                 <keys>
+                       <fsIndexKey>
+                         <featureName>begin</featureName>
+                         <comparator>standard</comparator>
+                       </fsIndexKey>
+                       <fsIndexKey>
+                         <featureName>end</featureName>
+                         <comparator>reverse</comparator>
+                       </fsIndexKey>
+                 </keys>
+               </fsIndexDescription>
+         </fsIndexes>
+       </fsIndexCollection>
+
+    <!-- Capabilities: Inputs and Outputs -->
+    <capabilities>
+      <capability>
+        <inputs/>
+        <outputs/>
+        <languagesSupported/>
+      </capability>
+    </capabilities>
+    <operationalProperties>
+      <modifiesCas>true</modifiesCas>
+      <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+      <outputsNewCASes>false</outputsNewCASes>
+    </operationalProperties>
+  </analysisEngineMetaData>
+</taeDescription>

Propchange: 
uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest4.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
uima/uimaj/trunk/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/ImportsTypeSystemImportedByName.xml
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/ImportsTypeSystemImportedByName.xml?rev=1756914&view=auto
==============================================================================
--- 
uima/uimaj/trunk/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/ImportsTypeSystemImportedByName.xml
 (added)
+++ 
uima/uimaj/trunk/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/ImportsTypeSystemImportedByName.xml
 Fri Aug 19 13:22:22 2016
@@ -0,0 +1,34 @@
+<typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier";>
+       
+  <!--
+        ***************************************************************
+        * 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.
+        ***************************************************************
+       -->
+
+
+  <name>TypeSystemWithImport</name>
+  <description>Imports TypeSystem-A</description>
+  <version>0.1</version>
+  <vendor>The Apache Software Foundation</vendor>
+  <imports>
+       <import 
name="org.apache.uima.resource.metadata.impl.TypeSystemImportedByName"/>
+  </imports>
+  <types>
+  </types>
+</typeSystemDescription>

Propchange: 
uima/uimaj/trunk/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/ImportsTypeSystemImportedByName.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
uima/uimaj/trunk/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/TypeSystemImportedByName2.xml
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/TypeSystemImportedByName2.xml?rev=1756914&view=auto
==============================================================================
--- 
uima/uimaj/trunk/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/TypeSystemImportedByName2.xml
 (added)
+++ 
uima/uimaj/trunk/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/TypeSystemImportedByName2.xml
 Fri Aug 19 13:22:22 2016
@@ -0,0 +1,60 @@
+<typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier";>
+       
+        <!--
+        ***************************************************************
+        * 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.
+        ***************************************************************
+   -->
+
+
+<name>TypeSystemImportedByLocation</name>
+<description>This is for testing the import mechanism.</description>
+<version>0.1</version>
+<vendor>The Apache Software Foundation</vendor>
+<types>
+<typeDescription>
+<name>TestType1</name>
+<description>This is a test.</description>
+<supertypeName>uima.tcas.Annotation</supertypeName>
+<features>
+<featureDescription>
+<name>Foo</name>
+<description/>
+<rangeTypeName>uima.cas.String</rangeTypeName>
+</featureDescription>
+</features>
+</typeDescription>
+<typeDescription>
+<name>NamedEntity</name>
+<description>A named entity.</description>
+<supertypeName>uima.tcas.Annotation</supertypeName>
+</typeDescription>
+<typeDescription>
+<name>TestType2</name>
+<description/>
+<supertypeName>uima.cas.TOP</supertypeName>
+<features>
+<featureDescription>
+<name>FooFoo</name>
+<description/>
+<rangeTypeName>uima.cas.Integer</rangeTypeName>
+</featureDescription>
+</features>
+</typeDescription>
+</types>
+</typeSystemDescription>

Propchange: 
uima/uimaj/trunk/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/TypeSystemImportedByName2.xml
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to