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();