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 2008/08/20 22:19:12 UTC

svn commit: r687450 - in /incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima: analysis_engine/impl/PearAnalysisEngineWrapper.java resource/Resource_ImplBase.java

Author: schor
Date: Wed Aug 20 13:19:11 2008
New Revision: 687450

URL: http://svn.apache.org/viewvc?rev=687450&view=rev
Log:
[UIMA-1150] fixes for Pear Wrapper.  Resource_implBase just has comment typo fixes

Modified:
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapper.java
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapper.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapper.java?rev=687450&r1=687449&r2=687450&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapper.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/PearAnalysisEngineWrapper.java Wed Aug 20 13:19:11 2008
@@ -29,17 +29,17 @@
 import java.util.WeakHashMap;
 
 import org.apache.uima.UIMAFramework;
+import org.apache.uima.UimaContextAdmin;
 import org.apache.uima.analysis_engine.AnalysisEngine;
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
 import org.apache.uima.analysis_engine.CasIterator;
-import org.apache.uima.analysis_engine.JCasIterator;
 import org.apache.uima.analysis_engine.ResultSpecification;
 import org.apache.uima.analysis_engine.metadata.AnalysisEngineMetaData;
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.TypeSystem;
-import org.apache.uima.jcas.JCas;
 import org.apache.uima.pear.tools.PackageBrowser;
 import org.apache.uima.resource.PearSpecifier;
+import org.apache.uima.resource.Resource;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.resource.ResourceManager;
 import org.apache.uima.resource.ResourceProcessException;
@@ -60,7 +60,7 @@
 
    // a hash map where the entries will be reclaimed when the keys are no longer
    // referenced by anything (other than this hash map)
-   // key = resourceManager instance associated with to this class
+   // key = resourceManager instance associated with this call
    // value = map <String_Pair, ResourceManager>
    // value = resourceManager instance created by this class
 
@@ -173,7 +173,19 @@
                         pkgBrowser.getRootDirectory().getName() });
 
          }
-         ResourceManager applicationRM = this.getResourceManager();
+         
+         // Caller's Resource Manager obtained from the additional parameters
+         // Note: UimaContext can be null for a top level call to produceAnalysisEngine,
+         //       where the descriptor is a Pear Resource.
+         
+         ResourceManager applicationRM = (ResourceManager) aAdditionalParams.get(Resource.PARAM_RESOURCE_MANAGER);
+         if (null == applicationRM) {  
+           UimaContextAdmin uimaContext = (UimaContextAdmin)aAdditionalParams.get(Resource.PARAM_UIMA_CONTEXT);
+           if (null != uimaContext) {
+             applicationRM = uimaContext.getResourceManager();
+           }
+         }
+         
          String classPath = pkgBrowser.buildComponentClassPath();
          String dataPath = pkgBrowser.getComponentDataPath();
          StringPair sp = new StringPair(classPath, dataPath);
@@ -204,14 +216,18 @@
                .parseResourceSpecifier(in);
 
          // create analysis engine
+         Map clonedAdditionalParameters = new HashMap(aAdditionalParams);
+         clonedAdditionalParameters.remove(Resource.PARAM_UIMA_CONTEXT);
+         clonedAdditionalParameters.remove(Resource.PARAM_RESOURCE_MANAGER);
          this.ae = UIMAFramework
-               .produceAnalysisEngine(specifier, innerRM, aAdditionalParams);
+               .produceAnalysisEngine(specifier, innerRM, clonedAdditionalParameters);
       } catch (IOException ex) {
          throw new ResourceInitializationException(ex);
       } catch (InvalidXMLException ex) {
          throw new ResourceInitializationException(ex);
       }
 
+      // note - this call must follow the setting of this.ae to a non-null value.
       super.initialize(aSpecifier, aAdditionalParams);
 
       UIMAFramework.getLogger(this.getClass()).logrb(Level.CONFIG,

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java?rev=687450&r1=687449&r2=687450&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/Resource_ImplBase.java Wed Aug 20 13:19:11 2008
@@ -109,7 +109,7 @@
       mUimaContextAdmin.setLogger(logger);
     }
 
-    // if this is a local resource (instantaited from a ResourceCreationSpedcifier),
+    // if this is a local resource (instantaited from a ResourceCreationSpecifier),
     // initialize the ResourceManager and UIMA Context.
     if (aSpecifier instanceof ResourceCreationSpecifier) {
       // resolve imports in the metadata
@@ -120,7 +120,7 @@
       } catch (InvalidXMLException e) {
         throw new ResourceInitializationException(e);
       }
-      // store Resoure metadata so it can be retrieved via getMetaData() method
+      // store Resource metadata so it can be retrieved via getMetaData() method
       setMetaData(metadata);
 
       // initialize configuration