You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2016/08/29 20:15:25 UTC

svn commit: r1758296 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core: ./ src/main/java/ src/main/java/org/apache/uima/resource/ src/main/java/org/apache/uima/resource/impl/ src/main/java/org/apache/uima/resource/metadata/impl/ src/test/resource...

Author: schor
Date: Mon Aug 29 20:15:24 2016
New Revision: 1758296

URL: http://svn.apache.org/viewvc?rev=1758296&view=rev
Log:
UIMA-5058 catchup merge part 1

Added:
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateForMultipleAeTest.xml
      - copied unchanged from r1756914, uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/AggregateForMultipleAeTest.xml
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest.xml
      - copied unchanged from r1756914, uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest.xml
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest2.xml
      - copied unchanged from r1756914, uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest2.xml
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest3.xml
      - copied unchanged from r1756914, uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest3.xml
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest4.xml
      - copied unchanged from r1756914, uima/uimaj/trunk/uimaj-core/src/test/resources/TextAnalysisEngineImplTest/MultipleAeTest4.xml
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/ImportsTypeSystemImportedByName.xml
      - copied unchanged from r1756914, uima/uimaj/trunk/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/ImportsTypeSystemImportedByName.xml
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/TypeSystemImportedByName2.xml
      - copied unchanged from r1756914, uima/uimaj/trunk/uimaj-core/src/test/resources/org/apache/uima/resource/metadata/impl/TypeSystemImportedByName2.xml
Modified:
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/   (props changed)
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/   (props changed)
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/CasManager_impl.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/FsIndexCollection_impl.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypePriorities_impl.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypeSystemDescription_impl.java

Propchange: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Aug 29 20:15:24 2016
@@ -4,4 +4,4 @@
 /uima/uimaj/branches/depend-on-parent-pom-4/uimaj-core:961329-961745
 /uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core:1436573-1462257
 /uima/uimaj/branches/mavenAlign/uimaj-core:933273-944396
-/uima/uimaj/trunk/uimaj-core:1690273-1693269,1757287-1757385,1757523
+/uima/uimaj/trunk/uimaj-core:1690273-1693269,1756914,1757094,1757287-1757385,1757523

Propchange: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Aug 29 20:15:24 2016
@@ -5,4 +5,4 @@
 /uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java:1436573-1462257
 /uima/uimaj/branches/mavenAlign/uimaj-core/src/main/java:933273-944396
 /uima/uimaj/branches/test-parent-pom-6/uimaj-core/src/main/java:1024030
-/uima/uimaj/trunk/uimaj-core/src/main/java:1690273-1693269,1757287-1757385,1757523
+/uima/uimaj/trunk/uimaj-core/src/main/java:1690273-1693269,1756914,1757094,1757287-1757385,1757523

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java?rev=1758296&r1=1758295&r2=1758296&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java Mon Aug 29 20:15:24 2016
@@ -23,6 +23,7 @@ import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.uima.resource.metadata.ResourceManagerConfiguration;
 import org.apache.uima.util.XMLizable;

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/CasManager_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/CasManager_impl.java?rev=1758296&r1=1758295&r2=1758296&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/CasManager_impl.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/CasManager_impl.java Mon Aug 29 20:15:24 2016
@@ -99,7 +99,8 @@ public class CasManager_impl implements
       if (containsSameTypeAndIndexInfo(aMetaData)) { //UIMA-1249
         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, 
+             aMetaData.getSourceUrlString());  // internal error  UIMA-1249    
     }
     mMetaDataList.add(aMetaData);
 //    mCasDefinition = null; // marka this stale

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java?rev=1758296&r1=1758295&r2=1758296&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java Mon Aug 29 20:15:24 2016
@@ -28,6 +28,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.uima.UIMAFramework;
@@ -144,6 +145,12 @@ public class ResourceManager_impl implem
   final private Map<String,XMLizable> importCache = Collections.synchronizedMap(new HashMap<String,XMLizable>());
   
   /**
+   * Cache of imported descriptor URLs from which the parsed objects in importCache
+   * were created, so that these URLs are not re-parsed if the same URL is imported again.
+   */
+  final private Map<String,Set<String>> importUrlsCache = Collections.synchronizedMap(new HashMap<String,Set<String>>());
+  
+  /**
    * Creates a new <code>ResourceManager_impl</code>.
    */
   public ResourceManager_impl() {
@@ -694,6 +701,10 @@ public class ResourceManager_impl implem
     return importCache;
   }
 
+  public Map<String, Set<String>> getImportUrlsCache() {
+    return importUrlsCache;
+  }
+  
   public Class<?> loadUserClass(String name) throws ClassNotFoundException {
     ClassLoader cl = getExtensionClassLoader();
     if (cl == null) {

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/FsIndexCollection_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/FsIndexCollection_impl.java?rev=1758296&r1=1758295&r2=1758296&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/FsIndexCollection_impl.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/FsIndexCollection_impl.java Mon Aug 29 20:15:24 2016
@@ -26,6 +26,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.TreeSet;
 
 import org.apache.uima.UIMAFramework;
@@ -258,16 +259,24 @@ public class FsIndexCollection_impl exte
     FsIndexCollection desc;    
     String urlString = aURL.toString();
     Map<String, XMLizable> importCache = ((ResourceManager_impl)aResourceManager).getImportCache();
+    Map<String, Set<String>> importUrlsCache = aResourceManager.getImportUrlsCache();
     synchronized(importCache) {
       XMLizable cachedObject = importCache.get(urlString);
       if (cachedObject instanceof FsIndexCollection) {
         desc = (FsIndexCollection)cachedObject;
+        // Add the URLs parsed for this cached object to the list already-parsed (UIMA-5058)
+        aAlreadyImportedFsIndexCollectionURLs.addAll(importUrlsCache.get(urlString));
       } else {   
         XMLInputSource input;
         input = new XMLInputSource(aURL);
         desc = UIMAFramework.getXMLParser().parseFsIndexCollection(input);
+        TreeSet<String> previouslyImported = new TreeSet<String>(aAlreadyImportedFsIndexCollectionURLs);
         desc.resolveImports(aAlreadyImportedFsIndexCollectionURLs, aResourceManager);
         importCache.put(urlString, desc);
+        // Save the URLS parsed by this import 
+        TreeSet<String> locallyImported = new TreeSet<String>(aAlreadyImportedFsIndexCollectionURLs);
+        locallyImported.removeAll(previouslyImported);
+        importUrlsCache.put(urlString, locallyImported);
       }
     }
     aResults.addAll(Arrays.asList(desc.getFsIndexes()));

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypePriorities_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypePriorities_impl.java?rev=1758296&r1=1758295&r2=1758296&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypePriorities_impl.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypePriorities_impl.java Mon Aug 29 20:15:24 2016
@@ -26,6 +26,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.TreeSet;
 
 import org.apache.uima.UIMAFramework;
@@ -267,16 +268,24 @@ public class TypePriorities_impl extends
     TypePriorities desc;    
     String urlString = aURL.toString();
     Map<String, XMLizable> importCache = ((ResourceManager_impl)aResourceManager).getImportCache();
+    Map<String, Set<String>> importUrlsCache = aResourceManager.getImportUrlsCache();
     synchronized(importCache) {
       XMLizable cachedObject = importCache.get(urlString);
       if (cachedObject instanceof TypePriorities) {
         desc = (TypePriorities)cachedObject;
+        // Add the URLs parsed for this cached object to the list already-parsed (UIMA-5058)
+        aAlreadyImportedTypePrioritiesURLs.addAll(importUrlsCache.get(urlString));
       } else {   
         XMLInputSource input;
         input = new XMLInputSource(aURL);
         desc = UIMAFramework.getXMLParser().parseTypePriorities(input);
+        TreeSet<String> previouslyImported = new TreeSet<String>(aAlreadyImportedTypePrioritiesURLs);
         desc.resolveImports(aAlreadyImportedTypePrioritiesURLs, aResourceManager);
         importCache.put(urlString, desc);
+        // Save the URLS parsed by this import 
+        TreeSet<String> locallyImported = new TreeSet<String>(aAlreadyImportedTypePrioritiesURLs);
+        locallyImported.removeAll(previouslyImported);
+        importUrlsCache.put(urlString, locallyImported);
       }
     }
     aResults.addAll(Arrays.asList(desc.getPriorityLists()));

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypeSystemDescription_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypeSystemDescription_impl.java?rev=1758296&r1=1758295&r2=1758296&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypeSystemDescription_impl.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/resource/metadata/impl/TypeSystemDescription_impl.java Mon Aug 29 20:15:24 2016
@@ -26,6 +26,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.TreeSet;
 
 import org.apache.uima.UIMAFramework;
@@ -262,17 +263,26 @@ public class TypeSystemDescription_impl
     TypeSystemDescription desc;    
     String urlString = aURL.toString();
     Map<String, XMLizable> importCache = ((ResourceManager_impl)aResourceManager).getImportCache();
+    Map<String, Set<String>> importUrlsCache = aResourceManager.getImportUrlsCache();
     synchronized(importCache) {
       XMLizable cachedObject = importCache.get(urlString);
       if (cachedObject instanceof TypeSystemDescription) {
         desc = (TypeSystemDescription)cachedObject;
+        // Add the URLs parsed for this cached object to the list already-parsed (UIMA-5058)
+        aAlreadyImportedTypeSystemURLs.addAll(importUrlsCache.get(urlString));
       } else {   
         XMLInputSource input;
         input = new XMLInputSource(aURL);
         desc = UIMAFramework.getXMLParser().parseTypeSystemDescription(input);
+        TreeSet<String> previouslyImported = new TreeSet<String>(aAlreadyImportedTypeSystemURLs);
         desc.resolveImports(aAlreadyImportedTypeSystemURLs, aResourceManager);
         importCache.put(urlString, desc);
+        // Save the URLS parsed by this import 
+        TreeSet<String> locallyImported = new TreeSet<String>(aAlreadyImportedTypeSystemURLs);
+        locallyImported.removeAll(previouslyImported);
+        importUrlsCache.put(urlString, locallyImported);
       }
+      
     }
     aResults.addAll(Arrays.asList(desc.getTypes()));
   }