public class CasManager_impl extends java.lang.Object implements CasManager
Constructor and Description |
---|
CasManager_impl(ResourceManager aResourceManager) |
Modifier and Type | Method and Description |
---|---|
void |
addMetaData(ProcessingResourceMetaData aMetaData)
Called by components when they initialize.
|
CAS |
createNewCas(java.util.Properties aPerformanceTuningSettings)
Create a new CAS using the CasDefinition stored in this CAS Manager.
|
void |
defineCasPool(java.lang.String aRequestorContextName,
int aMinimumSize,
java.util.Properties aPerformanceTuningSettings)
Defines a CAS pool within this CAS Manager.
|
void |
defineCasPool(UimaContextAdmin aRequestorContext,
int aMinimumSize,
java.util.Properties aPerformanceTuningSettings)
Defines the CAS pool required by a particular AnalysisEngine.
|
protected void |
finalize() |
CAS |
getCas(java.lang.String aRequestorContextName)
Gets an empty CAS.
|
CasDefinition |
getCasDefinition()
Gets the CasDefinition, as defined by merging all of the metadata supplied by calls
CasManager.addMetaData(ProcessingResourceMetaData) . |
AbstractCas |
getCasInterface(CAS cas,
java.lang.Class<? extends AbstractCas> requiredInterface)
Gets a specified interface to a CAS.
|
static AbstractCas |
getCasInterfaceStatic(CAS cas,
java.lang.Class<? extends AbstractCas> requiredInterface)
Gets a specified interface to a CAS.
|
protected int |
getCasPoolSize(java.lang.String aRequestorContextName,
int aMinimumSize)
Determines the size to use for a particular CAS Pool.
|
protected java.util.Map<CAS,CasPool> |
getCasToCasPoolMap() |
protected void |
populateCasToCasPoolAndUimaContextMaps(CasPool aCasPool,
UimaContext aUimaContext) |
protected void |
populateCasToCasPoolMap(CasPool aCasPool) |
protected void |
registerCasPoolMBean(java.lang.String aRequestorContextName,
CasPool pool)
Registers an MBean for the given CasPool.
|
void |
releaseCas(AbstractCas aCAS)
Releases a CAS back to its owner.
|
void |
setJmxInfo(java.lang.Object aMBeanServer,
java.lang.String aRootMBeanName)
Configures this CAS Manager so it can register an MBean for each of its CAS pools.
|
public CasManager_impl(ResourceManager aResourceManager)
public void addMetaData(ProcessingResourceMetaData aMetaData)
CasManager
addMetaData
in interface CasManager
aMetaData
- an object containing metadata for the component, including Type System, Type
Priorities, and Index Definitions needed to create the CAS.public CasDefinition getCasDefinition() throws ResourceInitializationException
CasManager
CasManager.addMetaData(ProcessingResourceMetaData)
.getCasDefinition
in interface CasManager
ResourceInitializationException
- if metadata could not be mergedpublic CAS getCas(java.lang.String aRequestorContextName)
CasManager
CasManager.defineCasPool(String, int, Properties)
and established a CAS Pool of size > 0. The CAS
Manager maintains a separate pool for each AnalysisEngine. This method may block if the CAS
pool does not contain any free instances.getCas
in interface CasManager
aRequestorContextName
- the context name of the AE requesting the CAS
(AnalysisEngine.getUimaContextAdmin().getQualifiedContextName()).public void releaseCas(AbstractCas aCAS)
CasOwner
aCAS
- Specified by:
releaseCas
in interface CasOwner
- Parameters:
aCAS
- the CAS to release
-
defineCasPool
public void defineCasPool(java.lang.String aRequestorContextName,
int aMinimumSize,
java.util.Properties aPerformanceTuningSettings)
throws ResourceInitializationException
Description copied from interface: CasManager
Defines a CAS pool within this CAS Manager. (Note that if this CAS pool is to be used
by a CAS Multiplier, then CasManager.defineCasPool(UimaContextAdmin, int, Properties)
should be used instead.
- Specified by:
defineCasPool
in interface CasManager
- Parameters:
aRequestorContextName
- name to give to the pool. Must be unique among all pool names in this
CAS manager, and care should be taken to assure that this does not match the
qualified name of UIMA Contexts passed to CasManager.defineCasPool(UimaContextAdmin, int, Properties)
.
This name is later passed to the CasManager.getCas(String)
method, to check out
CASes from the pool.aMinimumSize
- the minimum CAS pool size requiredaPerformanceTuningSettings
- settings, including initial CAS heap size, for the AE
- Throws:
ResourceInitializationException
- if a CAS could not be created.
-
defineCasPool
public void defineCasPool(UimaContextAdmin aRequestorContext,
int aMinimumSize,
java.util.Properties aPerformanceTuningSettings)
throws ResourceInitializationException
Description copied from interface: CasManager
Defines the CAS pool required by a particular AnalysisEngine. (The AnalysisEngine must contain
a CAS Multiplier if it requires a CAS pool.)
- Specified by:
defineCasPool
in interface CasManager
- Parameters:
aRequestorContext
- the UimaContext of the AE that will request the CASes
(AnalysisEngine.getUimaContextAdmin()).aMinimumSize
- the minimum CAS pool size requiredaPerformanceTuningSettings
- settings, including initial CAS heap size, for the AE
- Throws:
ResourceInitializationException
- if a CAS could not be created.
-
createNewCas
public CAS createNewCas(java.util.Properties aPerformanceTuningSettings)
throws ResourceInitializationException
Description copied from interface: CasManager
Create a new CAS using the CasDefinition stored in this CAS Manager. Note
that this new CAS will not belong to any pool managed by this CAS Manager.
If this method is called multiple times while the CasDefinition is constant,
each new CAS will share an identical TypeSystem object.
- Specified by:
createNewCas
in interface CasManager
- Parameters:
aPerformanceTuningSettings
- settings, including initial CAS heap size, for the AE
- Returns:
- a new CAS
- Throws:
ResourceInitializationException
- if the CAS could not be created
-
getCasInterface
public AbstractCas getCasInterface(CAS cas,
java.lang.Class<? extends AbstractCas> requiredInterface)
Gets a specified interface to a CAS.
- Specified by:
getCasInterface
in interface CasManager
- Parameters:
cas
- The CASrequiredInterface
- interface to get. Currently must be one of CAS or JCas.
-
getCasInterfaceStatic
public static AbstractCas getCasInterfaceStatic(CAS cas,
java.lang.Class<? extends AbstractCas> requiredInterface)
Gets a specified interface to a CAS.
- Parameters:
cas
- The CASrequiredInterface
- interface to get. Currently must be one of CAS or JCas.
-
setJmxInfo
public void setJmxInfo(java.lang.Object aMBeanServer,
java.lang.String aRootMBeanName)
Description copied from interface: CasManager
Configures this CAS Manager so it can register an MBean for each of its CAS pools.
- Specified by:
setJmxInfo
in interface CasManager
- Parameters:
aMBeanServer
- the JMX MBean Server to register MBeans with. If null, the
platform MBeanServer (Java 1.5+ only) will be used.aRootMBeanName
- unique MBean name for the root component that owns
this CAS Manager. The names of the CAS Pool MBeans will be formed by appending
,casPoolContextName=[contextName]
to the root component name, where
[contextName] is the requestorContextName for the CasPool.
-
populateCasToCasPoolMap
protected void populateCasToCasPoolMap(CasPool aCasPool)
-
populateCasToCasPoolAndUimaContextMaps
protected void populateCasToCasPoolAndUimaContextMaps(CasPool aCasPool,
UimaContext aUimaContext)
-
registerCasPoolMBean
protected void registerCasPoolMBean(java.lang.String aRequestorContextName,
CasPool pool)
Registers an MBean for the given CasPool.
- Parameters:
aRequestorContextName
- context name that identifies this CasPoolpool
- the CasPool
-
getCasPoolSize
protected int getCasPoolSize(java.lang.String aRequestorContextName,
int aMinimumSize)
Determines the size to use for a particular CAS Pool. This can be overridden
by subclasses to specify custom pool sizes.
- Parameters:
aRequestorContextName
- the context name of the AE that will request the CASes
(AnalysisEngine.getUimaContextAdmin().getQualifiedContextName()).aMinimumSize
- the minimum CAS pool size required
- Returns:
- the size of the CAS pool to create for the specified AE
-
finalize
protected void finalize()
throws java.lang.Throwable
- Overrides:
finalize
in class java.lang.Object
- Throws:
java.lang.Throwable
Copyright © 2013. All Rights Reserved.