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 {