schema.jpdl.jpdl-4.0.xsd Maven / Gradle / Ivy
Schema for jPDL 4 process descriptions;
element process is the top level element.
TODO: Add activity pluggability. (add the proper any's and
anyAttributes)
TODO: Pull up expression. The expression element in the
delegation group can be pulled up as an expression
attribute in each use case of the delegationGroup
TODO: Investigate if object-refs to centrally defined objects would
add value over inline defined objects.
A jPDL process definition description; This
is the top level element in a jPDL process file.
The process name. Multiple processes can be deployed with the same name, as long as they have a different
version.
The key can be used to provide a short acronym that will replace the name as the basis for the generated
process definition id
Indicates the sequence number of this version for all processes with the same name. By specifying a version
automatic deployment can figure out if this process is already deployed or not.
for extensibility
Start event
the resource name of the form in the
deployment.
End event.
sets the state of the execution explicitely
End cancel event.
End cancel event.
A wait state. When an execution arrives in this
activity, the execution will wait until an external trigger is received
with execution.signal() or execution.getActivityInstance().signal()
Decision gateway: selects one path out of many alternatives.
When an execution comes in, exactly one outgoing transition is taken.
The script text that will be evaluated.
Identification of the scripting language
to use.
The script that will be evaluated and resolve to
the name of the outgoing transition.
Identification of the scripting language
to use for the expr attribute.
Spawns multiple concurrent paths of
execution.
Spawns multiple concurrent paths of
execution.
Evaluates a piece of text as a script
Performs a hibernate query
Performs a hibernate SQL query
Sends an email
Invokes a method on a java object.
Either the java class is instantiated with reflection, or the
java object is fetched from the environment. Then values from the
environment are injected into the fields and a method is executed.
Uses a user defined, custom implementation of
ActivityBehaviour
Creates a task in the task component.
the resource name of the form in the
deployment.
Waits while a sub process instance is
being executed and continues when the sub process instance ends.
Events on which listeners can be registered.
Identifies the sub process by the id. This means that a specific
version of a process definition is referenced
Identifies the sub process by the key. This means that the latest
version of the process definition with the given key is referenced. The latest version
of the process is looked up each time the activity executes.
Expression that is evaluated when the sub process
instance ends. The value is then used for outcome transition mapping.
Scope enclosing a number of activities.
Events on which listeners can be registered.
the null value
A reference to an object in the current environment
The name of the referred object
The current environment.
A lookup from JNDI through the InitialContext
A java.util.List
Implementation class for this list.
Indicates if this collection should be synchronized
with Collections.synchronizedList(List)
A java.util.Map
Implementation class for this map.
Indicates if this collection should be synchronized
with Collections.synchronizedList(List)
A java.util.Set
The name of the object. It's optional and serves
as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.
Implementation class for this set.
Indicates if this collection should be synchronized
with Collections.synchronizedSet(Set)
A java.util.Properties
A file on the file system
A file as a resource in the classpath
the contents is fetched by loading a url
optionally indicates if the content of referenced file in attributes
'file', 'resource' or 'url' is XML. The default is the
plain properties format with a space or the equals character (=) separating key and value on
each line.
the name of the string object
the actual string value
A java.lang.Byte
The name of the object. It's optional and serves
as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.
A java.lang.Character
The name of the object. It's optional and serves
as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.
A java.lang.Double
The name of the object. It's optional and serves
as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.
java.lang.Boolean.FALSE
The name of the object. It's optional and serves
as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.
A java.lang.Float
The name of the object. It's optional and serves
as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.
A java.lang.Integer
The name of the object. It's optional and serves
as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.
A java.lang.Long
The name of the object. It's optional and serves
as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.
a java.lang.Short
The name of the object. It's optional and serves
as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.
java.lang.Boolean.TRUE
The name of the object. It's optional and serves
as an id to refer to this object from other object declarations. This name can
also be used lookup the object programmatically.
Any java object that will be created by reflection. .
There are three main ways to create an object: by constructor or by a factory
object or a static factory method.
Using the constructor: Then the class
attribute must provide the
fully qualified class name. In case another constructor then the default is
targetted, a constructor
child element can be provided.
The factory
attribute should not be provided for using a constructor.
Using a factory: Then the factory
attribute or one
factory
element must be provided along with the attribute
method
.
Using a static factory method: Then the class
and
method
attributes should be specified. There should be no
reference to a factory
attribute of element.
Construction and initialization: all objects (constructor and factory)
are build in two phases: construction and initialisation phase. During construction
all is done until a pointer is obtained to the object. In initialisation, operations
are applied to the object until it is ready to be used. The separation between
construction and initialisation is made to allow for bidirectional references. In
that case, at least one of both ends can not be fully initialised before it is injected
into the other end.
Operations: after construction, various operations can be applied to objects
like e.g. direct field injection, injection through setters, method invocation,
enlist with the standard transaction, subscribe the object as a listener to an observable
Arguments: There are two different places for arguments. The arg
elements for the factory method invocation should be placed as child elements under the
object
element. The arg
elements for the constructor should be
placed as child elements under the constructor
element.
Contains one element that describes the factory object.
Specifies the arguments to use for a non-default constructor.
The factory method arguments.
Injects a value into a member field of this object.
Exactly one child element must specify the value.
The member field name
Injects a value through a setter method.
Exactly one child element must specify the value.
The name of the property (without the 'set' prefix)
Invokes a method
the method name
The fully qualified class name
The class to instantiate.
The class to instantiate.
The name of the factory object
The factory method name
Indicates if the member fields and setter properties
should be automatically wired based on matching the property names and types with the
object names and types
The method arguments.
Each 'arg' element should have exactly one child element
that represents the value of the argument.
The java class name representing
the type of the method. This is optional and can be used to
indicate the appropriate method in case of method overloading.
Field injections from the environment
invocation.
Method arguments.
Name of the object in the environment
The name of the method to invoke.
The class to instantiate.
Expression that resolves to the target object
on which the method should be invoked.
The language in which attribute 'expr' is to be
resolved.
The variable name to store the return value
The content of this expression element
is the script text that will be evaluated. This is mutually
exclusive with the expression attribute.
The script text that will be evaluated. This
is mutually exclusive with the expression element.
Identification of the scripting language
to use.
Name of the variable in which the result
of the script evaluation will be stored
The query text.
Query parameters.
Name of the variable in which the result
of the script evaluation will be stored
Does this query return a unique result or a list
The id of this activity. The name should be unique
in the complete scope of the process.
Graphical information used by process designer tool.
To specify async continuations.
sync is the default.
the assignment attributes will be used in
tasks and swimlanes to specify to whom these respectively are assigned.
Expression that resolves to a userId referencing
the person to which the task or swimlane will be assigned.
Expression language for the assignee attribute.
Expression that resolves to a comma separated
list of userId's. All the referred people will be candidates for
take the task or swimlane.
Expression language for the
candidate-users attribute.
Resolves to a comma separated list of groupId's.
All the referred people will be candidates to
take the task or swimlane.
Expression language for the
candidate-groups attribute.
A process role.
The outgoing transitions. The first in the list
will be the default outgoing transition.
Name of this outgoing transition
Name of the destination activity of this transition.
Graphical information used by process designer tool.
A transition from one activity to another.
A list of event listeners that will
be notified when the event is fired
The event identification. start, end, take or
any other custom event.
The name of the sub process variable.
An expression for which the resulting
value will be used as value.
Language of the expression.
Name of the process variable
in the super process execution..
A list of event listeners that will
be notified when the timer fires
Timer duedate expression that defines the duedate of this
timer relative to the creation time of the timer. E.g. '2 hours' or '4 business days'
Timer duedate expression that defines repeated scheduling
relative to the last timer fire event. E.g. '2 hours' or '4 business days'
Absolute time in format HH:mm dd/MM/yyyy
(see SimpleDateFormat). The format for the absolute time can be customized in the
jbpm configuration.
URL reference to the attachment
Name of the attachment resource on the classpath
File reference to the attachment
list of email address separated by ',' (comma) ';' (semicolon) '|' or whitespace
list of user ids that are resolved to the email address against configured identity component.
user ids should be separated by ',' (comma) ';' (semicolon) '|' or whitespace
list of group ids that are resolved to the email address against configured identity component.
group ids should be separated by ',' (comma) ';' (semicolon) '|' or whitespace
Reference to the email template