|
ModeShape Distribution 3.0.0.Beta4 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.modeshape.jcr.ExecutionContext
@Immutable public class ExecutionContext
An ExecutionContext is a representation of the environment or context in which a component or operation is operating. Some components require this context to be passed into individual methods, allowing the context to vary with each method invocation. Other components require the context to be provided before it's used, and will use that context for all its operations (until it is given a different one).
ExecutionContext instances are immutable
, so components may hold onto references to them without concern of
those contexts changing. Contexts may be used to create other contexts that vary the environment and/or security context. For
example, an ExecutionContext could be used to create another context that references the same namespace registry
but which has a different security context
.
Field Summary | |
---|---|
static ExecutionContext |
DEFAULT_CONTEXT
|
Constructor Summary | |
---|---|
|
ExecutionContext()
Create an instance of an execution context that uses the current JAAS calling context
, with default implementations for all other components (including default namespaces in the
namespace registry . |
|
ExecutionContext(ExecutionContext original)
Create a copy of the supplied execution context. |
protected |
ExecutionContext(ExecutionContext original,
SecurityContext securityContext)
Create a copy of the supplied execution context, but use the supplied AccessControlContext instead. |
protected |
ExecutionContext(SecurityContext securityContext,
NamespaceRegistry namespaceRegistry,
ValueFactories valueFactories,
PropertyFactory propertyFactory,
ThreadPoolFactory threadPoolFactory,
BinaryStore binaryStore,
Map<String,String> data,
String processId)
Create an instance of the execution context by supplying all parameters. |
Method Summary | |
---|---|
ExecutionContext |
clone()
|
BinaryStore |
getBinaryStore()
Get the binary store that should be used to store binary values. |
ExecutorService |
getCachedTreadPool(String name)
Signal that the supplied thread pool is no longer needed. |
Map<String,String> |
getData()
Get the immutable map of custom data that is affiliated with this context. |
String |
getId()
Get the unique identifier for this context. |
Logger |
getLogger(Class<?> clazz)
Return a logger associated with this context. |
Logger |
getLogger(String name)
Return a logger associated with this context. |
NamespaceRegistry |
getNamespaceRegistry()
Get the (mutable) namespace registry for this context. |
String |
getProcessId()
Get the identifier for the process in which this context exists. |
PropertyFactory |
getPropertyFactory()
Get the factory for creating Property objects. |
ExecutorService |
getScheduledThreadPool(String name)
Obtain a scheduled thread pool with the supplied name, or create and return one if no thread pool exists with that name. |
SecurityContext |
getSecurityContext()
Get the security context for this context. |
ExecutorService |
getThreadPool(String name)
Obtain a thread pool with the supplied name, or create and return one if no thread pool exists with that name. |
protected ThreadPoolFactory |
getThreadPoolFactory()
|
ValueFactories |
getValueFactories()
Get the factories that should be used to create values for properties . |
protected void |
initializeDefaultNamespaces(NamespaceRegistry namespaceRegistry)
Method that initializes the default namespaces for namespace registries. |
void |
releaseThreadPool(ExecutorService pool)
Performs a ExecutorService.shutdownNow() on the given pool, if the pool has been created
previously by this class. |
void |
terminateAllPools(long maxWaitTime,
TimeUnit timeUnit)
Terminates all the existing thread pool, by waiting for them maximum maxWaitTimeMillis milliseconds, after which
calling ExecutorService.shutdownNow() . |
String |
toString()
|
ExecutionContext |
with(BinaryStore binaryStore)
Create a new execution context that mirrors this context but that uses the supplied binary store. |
ExecutionContext |
with(Map<String,String> data)
Create a new execution context that mirrors this context but that contains the supplied data. |
ExecutionContext |
with(NamespaceRegistry namespaceRegistry)
Create a new execution context that mirrors this context but that uses the supplied namespace registry. |
ExecutionContext |
with(PropertyFactory propertyFactory)
Create a new execution context that mirrors this context but that uses the supplied factory . |
ExecutionContext |
with(SecurityContext securityContext)
Create an ExecutionContext that is the same as this context, but which uses the supplied security context . |
ExecutionContext |
with(String processId)
Create a new execution context that mirrors this context but that contains the supplied process identifier. |
ExecutionContext |
with(String key,
String value)
Create a new execution context that mirrors this context but that contains the supplied key-value pair in the new context's data. |
ExecutionContext |
with(ThreadPoolFactory threadPoolFactory)
Create a new execution context that mirrors this context but that uses the supplied thread pool
factory . |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final ExecutionContext DEFAULT_CONTEXT
Constructor Detail |
---|
public ExecutionContext()
current JAAS calling context
, with default implementations for all other components (including default namespaces in the
namespace registry
.
public ExecutionContext(ExecutionContext original)
original
- the original
IllegalArgumentException
- if the original is nullprotected ExecutionContext(ExecutionContext original, SecurityContext securityContext)
AccessControlContext
instead.
original
- the originalsecurityContext
- the security context
IllegalArgumentException
- if the original or access control context are is nullprotected ExecutionContext(SecurityContext securityContext, NamespaceRegistry namespaceRegistry, ValueFactories valueFactories, PropertyFactory propertyFactory, ThreadPoolFactory threadPoolFactory, BinaryStore binaryStore, Map<String,String> data, String processId)
securityContext
- the security context, or null if there is no associated authenticated usernamespaceRegistry
- the namespace registry implementation, or null if a thread-safe version of
SimpleNamespaceRegistry
instance should be usedvalueFactories
- the ValueFactories
implementation, or null if a StandardValueFactories
instance
should be usedpropertyFactory
- the PropertyFactory
implementation, or null if a BasicPropertyFactory
instance
should be usedthreadPoolFactory
- the ThreadPoolFactory
implementation, or null if a ThreadPools
instance should be
usedbinaryStore
- the BinaryStore
implementation, or null if a default TransientBinaryStore
should be useddata
- the custom data for this context, or null if there is no such dataprocessId
- the unique identifier of the process in which this context exists, or null if it should be generatedMethod Detail |
---|
protected ThreadPoolFactory getThreadPoolFactory()
public Logger getLogger(Class<?> clazz)
obtain a system logger
.
clazz
- the class that is doing the logging
clazz
; never nullgetLogger(String)
public Logger getLogger(String name)
obtain a system logger
.
name
- the name for the logger
clazz
; never nullgetLogger(Class)
public SecurityContext getSecurityContext()
security context
for this context.
null
public NamespaceRegistry getNamespaceRegistry()
null
public final PropertyFactory getPropertyFactory()
Property
objects.
null
public ValueFactories getValueFactories()
properties
.
public BinaryStore getBinaryStore()
BinaryFactory
in the
getValueFactories()
.
public ExecutorService getThreadPool(String name)
ThreadPoolFactory
released
.
getThreadPool
in interface ThreadPoolFactory
name
- the name of the thread pool; may not be null
public void releaseThreadPool(ExecutorService pool)
ThreadPoolFactory
ExecutorService.shutdownNow()
on the given pool, if the pool has been created
previously by this class. Clients which use this method should handle, if necessary, any potential
InterruptedException
releaseThreadPool
in interface ThreadPoolFactory
pool
- the pool that is no longer neededpublic ExecutorService getCachedTreadPool(String name)
ThreadPoolFactory
released
.
getCachedTreadPool
in interface ThreadPoolFactory
name
- the name of the thread pool; may not be null
public ExecutorService getScheduledThreadPool(String name)
ThreadPoolFactory
released
.
getScheduledThreadPool
in interface ThreadPoolFactory
name
- the name of the thread pool; may not be null
public void terminateAllPools(long maxWaitTime, TimeUnit timeUnit)
ThreadPoolFactory
maxWaitTimeMillis
milliseconds, after which
calling ExecutorService.shutdownNow()
.
terminateAllPools
in interface ThreadPoolFactory
maxWaitTime
- the maximum amount of time that should be given to the pools to shutdown on their own; must be
non-negativetimeUnit
- the unit of time for the maxWaitTime
parameterpublic String getId()
public String getProcessId()
public Map<String,String> getData()
public ExecutionContext with(BinaryStore binaryStore)
binaryStore
- the binary store that should be used, or null if the default implementation should be used
public ExecutionContext with(NamespaceRegistry namespaceRegistry)
value factories
and property factory
all make use of
the new namespace registry.
namespaceRegistry
- the new namespace registry implementation, or null if the default implementation should be used
public ExecutionContext with(ThreadPoolFactory threadPoolFactory)
thread pool
factory
.
threadPoolFactory
- the new thread pool factory implementation, or null if the default implementation should be used
public ExecutionContext with(PropertyFactory propertyFactory)
factory
.
propertyFactory
- the new propertyfactory implementation, or null if the default implementation should be used
public ExecutionContext with(SecurityContext securityContext)
ExecutionContext
that is the same as this context, but which uses the supplied security context
.
securityContext
- the new security context to use; may be null
IllegalArgumentException
- if the name
is nullpublic ExecutionContext with(Map<String,String> data)
data
- the data that is to be affiliated with the resulting context or null if the resulting context should have no
data
public ExecutionContext with(String key, String value)
key
- the key for the new data that is to be affiliated with the resulting contextvalue
- the data value to be affiliated with the supplied key in the resulting context, or null if an existing data
affiliated with the key should be removed in the resulting context
public ExecutionContext with(String processId)
processId
- the identifier of the process
public ExecutionContext clone()
clone
in class Object
Object.clone()
public String toString()
toString
in class Object
Object.toString()
protected void initializeDefaultNamespaces(NamespaceRegistry namespaceRegistry)
namespaceRegistry
- the namespace registry
|
ModeShape Distribution 3.0.0.Beta4 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |