Author: pkluegl
Date: Fri Aug 19 11:55:39 2016
New Revision: 1756904

URL: http://svn.apache.org/viewvc?rev=1756904&view=rev
Log:
UIMA-5062 - use/reuse resource manager

Modified:
    
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/Ruta.java
    
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/RutaEngine.java
    
uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLauncher.java

Modified: 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/Ruta.java
URL: 
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/Ruta.java?rev=1756904&r1=1756903&r2=1756904&view=diff
==============================================================================
--- 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/Ruta.java 
(original)
+++ 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/Ruta.java 
Fri Aug 19 11:55:39 2016
@@ -50,6 +50,7 @@ import org.apache.uima.jcas.cas.FSArray;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.apache.uima.resource.ResourceConfigurationException;
 import org.apache.uima.resource.ResourceInitializationException;
+import org.apache.uima.resource.ResourceManager;
 import org.apache.uima.resource.ResourceSpecifier;
 import org.apache.uima.resource.metadata.ConfigurationParameterSettings;
 import org.apache.uima.resource.metadata.TypeSystemDescription;
@@ -91,7 +92,7 @@ public class Ruta {
           ResourceConfigurationException, AnalysisEngineProcessException, 
URISyntaxException {
     String viewName = cas.getViewName();
     URL aedesc = RutaEngine.class.getResource("BasicEngine.xml");
-    AnalysisEngine ae = wrapAnalysisEngine(aedesc, viewName);
+    AnalysisEngine ae = wrapAnalysisEngine(aedesc, viewName, null);
 
     File scriptFile = File.createTempFile("Ruta", 
RutaEngine.SCRIPT_FILE_EXTENSION);
     scriptFile.deleteOnExit();
@@ -276,19 +277,19 @@ public class Ruta {
   }
   
 
-  public static AnalysisEngine wrapAnalysisEngine(URL descriptorUrl, String 
viewName)
+  public static AnalysisEngine wrapAnalysisEngine(URL descriptorUrl, String 
viewName, ResourceManager resourceManager)
           throws ResourceInitializationException, 
ResourceConfigurationException,
           InvalidXMLException, IOException, URISyntaxException {
-    return wrapAnalysisEngine(descriptorUrl, viewName, false, 
Charset.defaultCharset().name());
+    return wrapAnalysisEngine(descriptorUrl, viewName, false, 
Charset.defaultCharset().name(), resourceManager);
   }
   
   public static AnalysisEngine wrapAnalysisEngine(URL descriptorUrl, String 
viewName,
-          boolean rutaEngine, String encoding) throws 
ResourceInitializationException,
+          boolean rutaEngine, String encoding, ResourceManager 
resourceManager) throws ResourceInitializationException,
           ResourceConfigurationException, InvalidXMLException, IOException, 
URISyntaxException {
     if (viewName.equals(CAS.NAME_DEFAULT_SOFA)) {
       XMLInputSource in = new XMLInputSource(descriptorUrl);
       ResourceSpecifier specifier = 
UIMAFramework.getXMLParser().parseResourceSpecifier(in);
-      AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(specifier);
+      AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(specifier, 
resourceManager, null);
       return ae;
     } else {
       InputStream inputStream = null;
@@ -305,7 +306,7 @@ public class Ruta {
       FileUtils.saveString2File(aaedString, tempFile);
       XMLInputSource in = new XMLInputSource(tempFile);
       ResourceSpecifier specifier = 
UIMAFramework.getXMLParser().parseResourceSpecifier(in);
-      AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(specifier);
+      AnalysisEngine ae = 
UIMAFramework.produceAnalysisEngine(specifier,resourceManager, null);
       tempFile.delete();
       return ae;
     }

Modified: 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/RutaEngine.java
URL: 
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/RutaEngine.java?rev=1756904&r1=1756903&r2=1756904&view=diff
==============================================================================
--- 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/RutaEngine.java
 (original)
+++ 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/RutaEngine.java
 Fri Aug 19 11:55:39 2016
@@ -41,8 +41,10 @@ import org.apache.commons.lang.StringUti
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.UimaContext;
+import org.apache.uima.UimaContextAdmin;
 import org.apache.uima.analysis_component.AnalysisComponent;
 import org.apache.uima.analysis_engine.AnalysisEngine;
+import org.apache.uima.analysis_engine.AnalysisEngineDescription;
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.Feature;
@@ -526,8 +528,16 @@ public class RutaEngine extends JCasAnno
       descriptorPaths = ArrayUtils.addAll(descriptorPaths, singleDataPaths);
       resourcePaths = ArrayUtils.addAll(resourcePaths, singleDataPaths);
     }
-
-    resourceManager = UIMAFramework.newDefaultResourceManager();
+    if (context instanceof UimaContextAdmin) {
+      UimaContextAdmin uca = (UimaContextAdmin) context;
+      ResourceManager rm = uca.getResourceManager();
+      if (rm != null) {
+        resourceManager = rm;
+      }
+    }
+    if (resourceManager == null) {
+      resourceManager = UIMAFramework.newDefaultResourceManager();
+    }
     if (clonedDescriptorPath != null) {
       for (String path : clonedDescriptorPath) {
         dataPath += path + File.pathSeparator;
@@ -799,7 +809,7 @@ public class RutaEngine extends JCasAnno
         }
         try {
           AnalysisEngine eachEngine = 
Ruta.wrapAnalysisEngine(descriptorResource.getURL(),
-                  viewName);
+                  viewName, resourceManager);
           addAnalysisEngineToMap(additionalDescriptorEngineMap, 
eachEngineLocation, eachEngine);
         } catch (Exception e) {
           throw new AnalysisEngineProcessException(e);
@@ -824,7 +834,9 @@ public class RutaEngine extends JCasAnno
       Class<? extends AnalysisComponent> uimafitClass = (Class<? extends 
AnalysisComponent>) Class
               .forName(eachUimafitEngine);
       List<String> configurationData = 
script.getConfigurationData(eachUimafitEngine);
-      eachEngine = AnalysisEngineFactory.createEngine(uimafitClass, 
configurationData.toArray());
+      AnalysisEngineDescription aed = 
AnalysisEngineFactory.createEngineDescription(uimafitClass,
+              configurationData.toArray());
+      eachEngine = UIMAFramework.produceAnalysisEngine(aed, resourceManager, 
null);
     } catch (ClassNotFoundException | ResourceInitializationException e) {
       throw new AnalysisEngineProcessException(e);
     }

Modified: 
uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLauncher.java
URL: 
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLauncher.java?rev=1756904&r1=1756903&r2=1756904&view=diff
==============================================================================
--- 
uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLauncher.java
 (original)
+++ 
uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/launching/RutaLauncher.java
 Fri Aug 19 11:55:39 2016
@@ -131,7 +131,7 @@ public class RutaLauncher {
     }
 
     AnalysisEngine ae = Ruta.wrapAnalysisEngine(descriptor.toURI().toURL(), 
view, true,
-            inputEncoding);
+            inputEncoding, null);
     configure(ae);
     CAS cas = ae.newCAS();
 


Reply via email to