dalma |
Dalma workflow engine API.
This package hosts APIs that are accessed by applications that
use Dalma engine.
EngineFactory is the entry point to the API. |
Java Source File Name | Type | Comment |
Condition.java | Class | TODO. |
Conversation.java | Interface | Represents a running instance of a workflow. |
ConversationDeath.java | Class | Signals a irrecoverable death of a conversation. |
ConversationState.java | Class | State of a
Conversation . |
DalmaException.java | Class | Represents a generally unexpected error condition that cannot be meaningfully recovered. |
Description.java | Annotation | Puts a human readable description of the workflow on a
Program -derived class. |
EndPoint.java | Class | Represents a gate through which
Conversation s communicate with
outer world.
TODO: One engine may have more than one instances of the same endPoint
(such as using multiple POP3 ports, etc.) How do we configure this?
Perhaps by using Spring?
TODO: allow JMX to monitor the endPoint status
TODO: endPoint setting needs to be persistable. |
Engine.java | Class | Workflow engine. |
EngineFactory.java | Class | Factory for
Engine .
This class is mostly useful when you are configuring
Engine from IoC containers
such as Spring. |
EngineListener.java | Class | Receives various event notifications that happen in
Engine . |
ErrorHandler.java | Interface | Handles uncaught exceptions thrown from conversations.
Conversations may throw
RuntimeException because
of a programming error, or it may throw
Error because of more serious problem. |
Executor.java | Interface | An object that executes the submitted
Runnable s. |
Fiber.java | Class | |
FiberState.java | enum | |
package-info.java | | |
Program.java | Class | Entry point of the user-implemented workflow application.
A workflow application that runs inside the dalma container
needs to have a class that derives from this class. |
ReplyIterator.java | Interface | Iterator that enumerates the replies received to a message
that was sent out from an
EndPoint .
In a workflow, it's common for your program to send out a 'message'
(such as an e-mail, JMS message, etc), then wait for replies to it.
ReplyIterator defines a programming pattern that collects
all the replies in an easy way.
This message exchange pattern (MEP) is commonly seen across
many different messaging mechanisms, so
ReplyIterator is parameterized
with the type
T that represents the type of a reply.
Replies are received over the time, so at some point your application
has to decide that you are not going to wait for any more replies.
For this purpose, a
ReplyIterator has an expiration date.
Replies received beyond this expiration date will not be returned from
a
ReplyIterator (what happens to such messages depend on the endpoint
implementation.) Alternatively, you can call
ReplyIterator.dispose() method
any time to discard the iterator. |
Resource.java | Annotation | Identifies a field/method that needs to be injected by the dalma container.
A resource must be one of the following types:
-
EndPoint -derived type.
The container will require the user to configure an endpoint and injects the
configured endpoint.
-
String The container will inject a string that the user configured.
-
boolean The container will inject a true/false option that the user configured.
-
int The container will inject a number that the user configured.
... |
TimeUnit.java | enum | Unit of time. |
Workflow.java | Class | Base class of a workflow program.
In Dalma, a workflow consists of two instances.
A
Conversation , which is always retained in memory
to act as the outer shell of a workflow, and
a
Workflow , which contains application state and
persisted to the disk. |