You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2015/02/26 15:52:43 UTC
svn commit: r1662468 -
/uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaProcessContainer.java
Author: cwiklik
Date: Thu Feb 26 14:52:43 2015
New Revision: 1662468
URL: http://svn.apache.org/r1662468
Log:
UIMA-4264 share one instance of UIMA ResourceManager across all process threads
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaProcessContainer.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaProcessContainer.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaProcessContainer.java?rev=1662468&r1=1662467&r2=1662468&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaProcessContainer.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jp/UimaProcessContainer.java Thu Feb 26 14:52:43 2015
@@ -41,6 +41,7 @@ import org.apache.uima.ducc.user.jp.uima
import org.apache.uima.impl.UimaVersion;
import org.apache.uima.resource.Resource;
import org.apache.uima.resource.ResourceInitializationException;
+import org.apache.uima.resource.ResourceManager;
import org.apache.uima.resource.ResourceSpecifier;
import org.apache.uima.util.CasPool;
import org.apache.uima.util.Level;
@@ -51,7 +52,7 @@ public class UimaProcessContainer extend
public static final String IMPORT_BY_NAME_PREFIX = "*importByName:";
// private DuccUimaSerializer uimaSerializer = new DuccUimaSerializer();
-
+ private static ResourceManager rm=null;
Semaphore sharedInitSemaphore = new Semaphore(1);
// this map enforces thread affinity to specific thread. Needed to make
// sure that a thread used to initialized the AE is used to call process().
@@ -124,7 +125,12 @@ public class UimaProcessContainer extend
ResourceSpecifier rSpecifier = null;
HashMap<String,Object> paramsMap =
new HashMap<String,Object>();
- paramsMap.put(Resource.PARAM_RESOURCE_MANAGER, UIMAFramework.newDefaultResourceManager());
+ synchronized(UimaProcessContainer.class) {
+ if ( rm == null ) {
+ rm = UIMAFramework.newDefaultResourceManager();
+ }
+ }
+ paramsMap.put(Resource.PARAM_RESOURCE_MANAGER, rm);
paramsMap.put(AnalysisEngine.PARAM_MBEAN_SERVER, platformMBeanServer);
try {