A service interface for working with state associated with a single logical
user interaction called a "conversation" in the scope of a single request.
Conversation objects are not thread safe and should not be shared among
multiple threads.
A conversation provides a "task" context that is begun and eventually ends.
Between the beginning and the end attributes can be placed in and read from a
conversation's context.
A conversation needs to be
Conversation.lock() locked to obtain exclusive
access to it before it can be manipulated. Once manipulation is finished, you need to
Conversation.unlock() unlock the conversation. So code interacting with a
conversation always looks like this:
Conversation conv = ...;
conv.lock();
try {
// work with the Conversation object, calling methods like
// getAttribute(), putAttribute() and end()
}
finally {
conv.unlock();
}
Note that the attributes associated with a conversation are not
"conversation scope" as defined for a flow execution. They can be
any attributes, possibly technical in nature, associated with the
conversation.
author: Keith Donald author: Erwin Vervaet |