Package com.tangosol.application
Interface ContainerContext
-
- All Known Implementing Classes:
DefaultCacheServer.SimpleContext
public interface ContainerContext
ContainerContext represents various aspects of the container infrastructure that could be used by Coherence applications working in the context of theContainerAdapter
.- Since:
- Coherence 12.2.1
- Author:
- gg 2014.06.04
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description Object
getCacheAttribute(String sCache, String sAttribute)
Obtain a value for a configuration attribute for a given cache.ContainerContext
getCurrentThreadContext()
Obtain the ContainerContext associated with the current thread.String
getDomainPartition()
Obtain the Domain Partition name associated with this ContainerContext.ContainerContext
getGlobalContext()
Obtain the ContainerContext associated with GLOBAL Domain Partition.Set<String>
getSharedCaches()
Get a set of names for all shared caches.boolean
isCacheShared(String sCache)
Check whether or not the cache with the specified name should be shared across various Domain Partitions.boolean
isGlobalDomainPartition()
Check whether or not the DomainPartition associated with this context is GLOBAL.void
resetCurrentThreadContext()
Reset the execution context for the calling thread to be associated with this ContainerContext's Domain Partition.default void
runInDomainPartitionContext(Runnable action)
Run the specified action in the context of the associated Domain Partition.<V> V
runInDomainPartitionContext(Callable<V> action)
Call the specified action in the context of the associated Domain Partition.void
setCurrentThreadContext()
Set the execution context for the calling thread to be associated with this ContainerContext's Domain Partition.
-
-
-
Method Detail
-
getDomainPartition
String getDomainPartition()
Obtain the Domain Partition name associated with this ContainerContext.Note, that to get the name of the the GLOBAL DomainPartition, the caller should do the following:
getGlobalContext().getDomainPartition();
- Returns:
- the Domain Partition name or null if the container does not support Multi-Tenancy or this feature is turned off
-
isGlobalDomainPartition
boolean isGlobalDomainPartition()
Check whether or not the DomainPartition associated with this context is GLOBAL.Note, that this call is basically equivalent to the following:
equals(getGlobalContext());
- Returns:
true
if the DomainPartition associated with this context is GLOBAL
-
getGlobalContext
ContainerContext getGlobalContext()
Obtain the ContainerContext associated with GLOBAL Domain Partition.Important note: since the ContainerContext object could use the context as a part of the event dispatcher or listener identity, it's imperative for the container to maintain no more than one instance of the global context.
- Returns:
- the ContainerContext associated with the GLOBAL Domain Partition.
-
getCurrentThreadContext
ContainerContext getCurrentThreadContext()
Obtain the ContainerContext associated with the current thread. Note, that the returned context could only be one of- null, if the current thread is not associated with any context;
- the GLOBAL context;
- this ContainerContext;
- another instance of ContainerContext representing the same Domain Partition as this context.
- Returns:
- the ContainerContext associated with the current thread or null if the thread has no association
-
setCurrentThreadContext
void setCurrentThreadContext()
Set the execution context for the calling thread to be associated with this ContainerContext's Domain Partition.Note, that to set the execution context as GLOBAL, the caller should do the following:
getGlobalContext().setCurrentThreadContext();
-
resetCurrentThreadContext
void resetCurrentThreadContext()
Reset the execution context for the calling thread to be associated with this ContainerContext's Domain Partition. This method should only be called if the thread context was changed usingsetCurrentThreadContext()
.
-
runInDomainPartitionContext
<V> V runInDomainPartitionContext(Callable<V> action)
Call the specified action in the context of the associated Domain Partition.Note, that to call the action in the GLOBAL context, the caller should do the following:
getGlobalContext().runInDomainPartitionContext(action);
- Type Parameters:
V
- the result type of the action- Parameters:
action
- the action to call- Returns:
- the result of the Callable action
-
runInDomainPartitionContext
default void runInDomainPartitionContext(Runnable action)
Run the specified action in the context of the associated Domain Partition.Note, that to run the action in the GLOBAL context, the caller should do the following:
getGlobalContext().runInDomainPartitionContext(action);
- Parameters:
action
- the action to run
-
isCacheShared
boolean isCacheShared(String sCache)
Check whether or not the cache with the specified name should be shared across various Domain Partitions.- Parameters:
sCache
- the cache name- Returns:
- true iff the specified cache should be shared
-
getCacheAttribute
Object getCacheAttribute(String sCache, String sAttribute)
Obtain a value for a configuration attribute for a given cache.- Parameters:
sCache
- the cache namesAttribute
- the attribute name- Returns:
- the specified attribute value or null, if the default value should be used
-
getSharedCaches
Set<String> getSharedCaches()
Get a set of names for all shared caches. Those names will be used to start corresponding cache services duringapplication activation
.- Returns:
- the set of shared cache names
-
-