You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by al...@apache.org on 2007/03/21 17:09:11 UTC
svn commit: r520929 - in /incubator/uima/uimaj/trunk/uimaj-core/src/main:
java/org/apache/uima/ java/org/apache/uima/resource/
java/org/apache/uima/resource/impl/ resources/org/apache/uima/
Author: alally
Date: Wed Mar 21 09:09:10 2007
New Revision: 520929
URL: http://svn.apache.org/viewvc?view=rev&rev=520929
Log:
Added ResourceManager.setCasManager
UIMA-353: https://issues.apache.org/jira/browse/UIMA-353
Modified:
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UIMA_IllegalStateException.java
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java
incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UIMA_IllegalStateException.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UIMA_IllegalStateException.java?view=diff&rev=520929&r1=520928&r2=520929
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UIMA_IllegalStateException.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UIMA_IllegalStateException.java Wed Mar 21 09:09:10 2007
@@ -74,6 +74,14 @@
public static final String NO_NEXT_CAS = "no_next_cas";
/**
+ * Message key for a standard UIMA exception message: ResourceManager.setCasManager was called
+ * after the CAS Manager had already been set. You can only call setCasManager once, and you
+ * cannot have previously called ResourceManager.getCasManager or initialized any
+ * AnalysisEngines that use this ResouceManager.
+ */
+ public static final String CANNOT_SET_CAS_MANAGER = "cannot_set_cas_manager";
+
+ /**
* Creates a new exception with a null message.
*/
public UIMA_IllegalStateException() {
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java?view=diff&rev=520929&r1=520928&r2=520929
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/ResourceManager.java Wed Mar 21 09:09:10 2007
@@ -280,4 +280,20 @@
* Gets the CasManager, which manages the creation and pooling of CASes.
*/
public CasManager getCasManager();
+
+ /**
+ * Sets the CasManager, which manages the creation and pooling of CASes.
+ * This method does not normally need to be called by an application. It allows
+ * a custom CAS Manager implementation to be substituted for the default one,
+ * which may be useful when embedding UIMA in other middleware where a different
+ * CAS Manager implementation may be desired.
+ * <p>
+ * This method can only be called once, and must be called before creating any
+ * AnalysisEngines that use this ResourceManager. An Exception will be thrown if this
+ * method is called twice or is called after {@link #getCasManager()} has already been called
+ * (which happens during AE initialization).
+ *
+ * @param aCasManager CAS Manager instance to plug in
+ */
+ public void setCasManager(CasManager aCasManager);
}
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java?view=diff&rev=520929&r1=520928&r2=520929
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/resource/impl/ResourceManager_impl.java Wed Mar 21 09:09:10 2007
@@ -29,6 +29,8 @@
import java.util.Map;
import org.apache.uima.UIMAFramework;
+import org.apache.uima.UIMARuntimeException;
+import org.apache.uima.UIMA_IllegalStateException;
import org.apache.uima.internal.util.UIMAClassLoader;
import org.apache.uima.resource.CasManager;
import org.apache.uima.resource.DataResource;
@@ -99,7 +101,7 @@
private UIMAClassLoader uimaCL = null;
/** CasManager - manages creation and pooling of CASes. */
- private CasManager mCasManager = new CasManager_impl(this);
+ private CasManager mCasManager = null;
/**
* Creates a new <code>ResourceManager_impl</code>.
@@ -607,7 +609,29 @@
* @see org.apache.uima.resource.ResourceManager#getCasManager()
*/
public CasManager getCasManager() {
- return mCasManager;
+ synchronized(this) {
+ if (mCasManager == null) {
+ mCasManager = new CasManager_impl(this);
+ }
+ return mCasManager;
+ }
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see org.apache.uima.resource.ResourceManager#setCasManager(org.apache.uima.resource.CasManager)
+ */
+ public void setCasManager(CasManager aCasManager) {
+ synchronized(this) {
+ if (mCasManager == null) {
+ mCasManager = aCasManager;
+ }
+ else {
+ throw new UIMA_IllegalStateException(
+ UIMA_IllegalStateException.CANNOT_SET_CAS_MANAGER, new Object[0]);
+ }
+ }
}
static class ResourceRegistration {
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties?view=diff&rev=520929&r1=520928&r2=520929
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties Wed Mar 21 09:09:10 2007
@@ -63,6 +63,10 @@
no_next_cas = CasIterator.next was called when there were no more CASes remaining to be read.
+cannot_set_cas_manager = ResourceManager.setCasManager was called after the CAS Manager had already been set. \
+ You can only call setCasManager once, and you cannot have previously called ResourceManager.getCasManager \
+ or initialized any AnalysisEngines that use this ResouceManager.
+
#-----------------------------
#UIMA_IllegalArgumentException
#-----------------------------