[jbpm-commits] JBoss JBPM SVN: r4648 - in jbpm4/trunk/modules/api/src: main/resources and 1 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Apr 28 03:50:35 EDT 2009
Author: tom.baeyens at jboss.com
Date: 2009-04-28 03:50:35 -0400 (Tue, 28 Apr 2009)
New Revision: 4648
Added:
jbpm4/trunk/modules/api/src/parked/
jbpm4/trunk/modules/api/src/parked/cfg.xsd
Removed:
jbpm4/trunk/modules/api/src/main/resources/cfg.xsd
Log:
JBPM-2181 parked cfg.xsd
Deleted: jbpm4/trunk/modules/api/src/main/resources/cfg.xsd
===================================================================
--- jbpm4/trunk/modules/api/src/main/resources/cfg.xsd 2009-04-28 07:45:57 UTC (rev 4647)
+++ jbpm4/trunk/modules/api/src/main/resources/cfg.xsd 2009-04-28 07:50:35 UTC (rev 4648)
@@ -1,1312 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<schema xmlns="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://jbpm.org/4/cfg"
- xmlns:tns="http://jbpm.org/4/cfg"
- elementFormDefault="qualified">
-
- <annotation>
- <documentation>Schema for the jBPM configuration file; configuration
- is the top level element.
- </documentation>
- </annotation>
-
- <!-- ### ELEMENTS ######################################################## -->
-
- <element name="business-calendar">
- <annotation><documentation>A BusinessCalendar that knows about working hours</documentation></annotation>
- <complexType>
- <sequence>
- <element name="monday" type="tns:businessCalendarDayType" minOccurs="0"/>
- <element name="tuesday" type="tns:businessCalendarDayType" minOccurs="0"/>
- <element name="wednesday" type="tns:businessCalendarDayType" minOccurs="0"/>
- <element name="thursday" type="tns:businessCalendarDayType" minOccurs="0"/>
- <element name="friday" type="tns:businessCalendarDayType" minOccurs="0"/>
- <element name="saturday" type="tns:businessCalendarDayType" minOccurs="0"/>
- <element name="sunday" type="tns:businessCalendarDayType" minOccurs="0"/>
- <element name="holiday" minOccurs="0" maxOccurs="unbounded">
- <complexType>
- <attribute name="period">
- <annotation><documentation>Two dates in date-format, separated by
- a dash that specify a holiday period. If it's just one day, a single day
- is also valid.</documentation></annotation>
- </attribute>
- </complexType>
- </element>
- </sequence>
- <attribute name="timezone" type="string">
- <annotation><documentation>Optional specification of the timezone as specified by
- java.util.TimeZone.getTimeZone(String)</documentation></annotation>
- </attribute>
- <attribute name="hour-format" type="string" default="HH:mm">
- <annotation><documentation>Indicates how to interpret the hour specifications
- in this business calendar in java.text.SimpleDateFormat(String)</documentation></annotation>
- </attribute>
- <attribute name="date-format" type="string" default="dd/MM/yyyy">
- <annotation><documentation>Indicates how to interpret the date specifications
- in this business calendar in java.text.SimpleDateFormat(String)</documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="byte">
- <annotation><documentation>A java.lang.Byte</documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="value" type="byte" use="required" />
- </complexType>
- </element>
-
- <element name="char">
- <annotation><documentation>A java.lang.Character</documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="value" use="required">
- <simpleType>
- <restriction base="string">
- <maxLength value="1" />
- </restriction>
- </simpleType>
- </attribute>
- </complexType>
- </element>
-
- <element name="class">
- <annotation><documentation>A java.lang.Class</documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="init" type="tns:initType" default="lazy">
- <annotation><documentation>Specifies when and how this object should be
- created and initialized. Default is lazy.</documentation></annotation>
- </attribute>
- <attribute name="class-name" use="required" type="string">
- <annotation><documentation>A fully qualified name of a
- class that can be found on the wire context classpath or
- (if that is not specified) on the current thread's context
- classpath.
- </documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="context-ref">
- <annotation><documentation>The context. This refers to
- the contexts transaction or process-engine.
- </documentation></annotation>
- <complexType>
- <attribute name="context-name" type="string">
- <annotation><documentation>The name of the context in the current
- environment. If this attribute is omitted, the enclosing
- context will be given.
- </documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="jbpm-configuration">
- <annotation><documentation>Defines an environment factory and
- an environment.
- </documentation></annotation>
- <complexType>
- <sequence>
- <element ref="tns:process-engine-context" />
- <element ref="tns:environment" />
- </sequence>
- </complexType>
- </element>
-
- <element name="process-engine-context" type="tns:contextType">
- <annotation><documentation>Defines the environment factory
- context. (Aka application context)
- </documentation></annotation>
- </element>
-
- <element name="environment" type="tns:contextType">
- <annotation><documentation>Defines the environment
- context. This context exists stretches for the duration of
- an Environment try-finally block.
- </documentation></annotation>
- </element>
-
- <element name="deployer-manager">
- <annotation><documentation>Has a list of deployers (org.jbpm.pvm.internal.deploy.Deployer)
- for handling deployments.
- </documentation></annotation>
- <complexType>
- <choice maxOccurs="unbounded">
- <group ref="tns:deployers" />
- </choice>
- </complexType>
- </element>
-
- <element name="double">
- <annotation><documentation>A java.lang.Double</documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="value" type="double" use="required" />
- </complexType>
- </element>
-
- <element name="env-ref">
- <annotation><documentation>Obtains the current environment. The environment
- is only available in objects declared inside the environment context. So it
- can't be used inside the session-factory context.
- </documentation></annotation>
- </element>
-
- <element name="process-engine-ref">
- <annotation><documentation>Obtains the current environment. The environment
- is only available in objects declared inside the environment context. So it
- can't be used inside the session-factory context.
- </documentation></annotation>
- </element>
-
- <element name="false">
- <annotation><documentation>java.lang.Boolean.FALSE
- </documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="float">
- <annotation><documentation>A java.lang.Float
- </documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="value" type="float" use="required" />
- </complexType>
- </element>
-
- <element name="hibernate-configuration" type="tns:hibernateConfigurationType">
- <annotation><documentation>A hibernate Configuration to be used in the
- process-engine context</documentation></annotation>
- </element>
-
- <element name="hibernate-session">
- <annotation><documentation>A hibernate Session to be used in the
- environment context</documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>Optional name of this hibernate session.
- Typically a session is looked up by type. Only if multiple sessions
- are declared, a name can be used to distinct them.
- </documentation></annotation>
- </attribute>
- <attribute name="init" type="tns:initType" default="lazy">
- <annotation><documentation>Specifies when and how this object should be
- initialized. Default is lazy.</documentation></annotation>
- </attribute>
- <attribute name="factory" type="string">
- <annotation><documentation>Optional name referring to the session-factory.
- If no factory name is provided, the SessionFactory is looked up by type.
- </documentation></annotation>
- </attribute>
- <attribute name="tx" type="tns:booleanValueType">
- <annotation><documentation>Indicates if a hibernate transaction should
- be started and ended in this environment. Default is true.
- </documentation></annotation>
- </attribute>
- <attribute name="current" type="tns:booleanValueType">
- <annotation><documentation>Indicates if the SessionFactory.getCurrentSession()
- should be used instead of opening and closing a new session. Default is false.
- If 'current' is set to true, then the default of 'close' will be set to false.
- </documentation></annotation>
- </attribute>
- <attribute name="close" type="tns:booleanValueType">
- <annotation><documentation>Indicates if the session should be closed when the
- environment closes. The default is true (unless 'current' is set to true)
- </documentation></annotation>
- </attribute>
- <attribute name="standard-transaction" type="string">
- <annotation><documentation>Optional name of the standard transaction.
- If 'tx' is set to true, a StandardTransaction needs to be found to enlist
- this hibernate session. By default, the lookup of the StandardTransaction
- is done by type. But this attribute allows to refer to the standard
- transaction by name.
- </documentation></annotation>
- </attribute>
- <attribute name="connection" type="string">
- <annotation><documentation>Optional name of the JDBC connection to use
- when creating this hibernate session. If no connection name is specified,
- the creation of the connection is left to the hibernate session.
- </documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="hibernate-session-factory">
- <annotation><documentation>A hibernate SessionFactory to be used in the
- process-engine context. The hibernate Configuration can be inlined in this
- 'session-factory', it can be refered by type or referred by name.
- </documentation></annotation>
- <complexType>
- <complexContent>
- <extension base="tns:hibernateConfigurationType">
- <attribute name="configuration" type="string">
- <annotation><documentation>The name of the configuration to use to build
- this hibernate SessionFactory. This is optional as the alternative methods
- to specify a configuration are just inlining it here in this hibernate
- session-factory element or looking up the hibernate Configuration by type.
- </documentation></annotation>
- </attribute>
- </extension>
- </complexContent>
- </complexType>
- </element>
-
- <element name="int">
- <annotation><documentation>A java.lang.Integer
- </documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="value" type="int" use="required"/>
- </complexType>
- </element>
-
- <element name="jndi">
- <annotation><documentation>A lookup from JNDI through the InitialContext
- </documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="jndi-name" type="string" use="required" />
- </complexType>
- </element>
-
- <element name="job-db-session">
- <annotation><documentation>A hibernate based JobDbSession</documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="init" type="tns:initType" default="lazy">
- <annotation><documentation>Specifies when and how this object should be
- initialized. Default is lazy.</documentation></annotation>
- </attribute>
- <attribute name="session" type="string" />
- </complexType>
- </element>
-
- <element name="job-executor">
- <annotation><documentation>The default component for executing timers and messages.
- A job-executor requires a CommandService.
- </documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>Optional name of this object used to look up
- this object from the environment. This name (along with ip-address) is
- used as the basis for the names of the threads in the job executor's thread
- pool. So when you're running more then one job-executor on the same
- machine, you should be specifying custom job executor names.</documentation></annotation>
- </attribute>
- <attribute name="init" type="tns:initType" default="lazy">
- <annotation><documentation>Specifies when and how this object should be
- initialized. Default is lazy.</documentation></annotation>
- </attribute>
- <attribute name="command-service" type="string">
- <annotation><documentation>Optional name of the command service to use. If
- this attribute is not present, the command service will be looked up
- by type.</documentation></annotation>
- </attribute>
- <attribute name="threads" type="int">
- <annotation><documentation>Number of worker threads. One extra thread will
- be created for scanning and acquisition of jobs (DispatcherThread).</documentation></annotation>
- </attribute>
- <attribute name="idle" type="int">
- <annotation><documentation>Number of milliseconds the dispatcher thread
- will normally wait inbetween checks for new jobs. Each time an exception
- occurs, the idle period will be doubled until the 'idle-max' is reached.
- This is a back-off mechanism in case the job executor can't access the
- database.
- </documentation></annotation>
- </attribute>
- <attribute name="idle-max" type="int">
- <annotation><documentation>Maxumum number of milliseconds the dispatcher thread
- will wait inbetween checks for new jobs.
- </documentation></annotation>
- </attribute>
- <attribute name="history" type="int">
- <annotation><documentation>Number of history records of job executions that will be
- kept in memory.</documentation></annotation>
- </attribute>
- <attribute name="lock" type="int">
- <annotation><documentation>Number of milliseconds that a job will be locked at
- acquisition time. When a job is acquired, the job executor will write it's name
- in the lock owner field of the job and the lockExpirationTime
- will be set to the current time plus 'lock' milliseconds. The lock by that thread should
- be considered as released if the lockExpirationTime has passed. This prevents starvation
- in case one of more JobExecutors in a cluster would die.</documentation></annotation>
- </attribute>
- <attribute name="auto-start" type="tns:booleanValueType">
- <annotation><documentation>Indicates if the job-executor should be started when it
- is created. Default is true. If the job-executor is not auto-started, it can be
- started programmatically with the start method on the JobExecutor.</documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="job-test-helper">
- <annotation><documentation>A test helper for controlling job executions</documentation></annotation>
- </element>
-
- <element name="list">
- <annotation><documentation>A java.util.List</documentation></annotation>
- <complexType>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="tns:persistableDescriptors" />
- </choice>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="init" type="tns:initType" default="lazy">
- <annotation><documentation>Specifies when and how this object should be
- created and initialized. Default is lazy.</documentation></annotation>
- </attribute>
- <attribute name="class" type="string" default="java.util.ArrayList">
- <annotation><documentation>Implementation class for this list.
- </documentation></annotation>
- </attribute>
- <attribute name="synchronized" type="tns:booleanValueType" default="false">
- <annotation><documentation>Indicates if this collection should be synchronized
- with Collections.synchronizedList(List)</documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="long">
- <annotation><documentation>A java.lang.Long</documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="value" type="long" use="required"/>
- </complexType>
- </element>
-
- <element name="map">
- <annotation><documentation>A java.util.Map</documentation></annotation>
- <complexType>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element name="entry">
- <complexType>
- <choice minOccurs="0">
- <element name="key" minOccurs="0">
- <complexType>
- <group ref="tns:persistableDescriptors" />
- </complexType>
- </element>
- <element name="value" minOccurs="0">
- <complexType>
- <group ref="tns:persistableDescriptors" />
- </complexType>
- </element>
- </choice>
- </complexType>
- </element>
- </choice>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="init" type="tns:initType" default="lazy">
- <annotation><documentation>Specifies when and how this object should be
- created and initialized. Default is lazy.</documentation></annotation>
- </attribute>
- <attribute name="class" type="string" default="java.util.HashMap">
- <annotation><documentation>Implementation class for this map.
- </documentation></annotation>
- </attribute>
- <attribute name="synchronized" type="tns:booleanValueType" default="false">
- <annotation><documentation>Indicates if this collection should be synchronized
- with Collections.synchronizedMap(Map)</documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="message-session">
- <annotation><documentation>Specifies an implementation of the MessageSession
- interface that sends messages to the JobExecutor. The main usage of MessageSession
- is by the PVM implementation for asynchronous continuations. The PVM will look
- up the message session by type. All message-session implementations depend on a
- DbSession like e.g. the 'pvm-db-session'. A DbSession will be looked up by type.
- </documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="target" type="tns:messageSessionTargetType" default="job-executor">
- <annotation><documentation>
- <p>Specifies the implementation of the message session.
- </p>
- <p><code><b>job-executor</b></code>: Is the default and sends to messages to the
- job-executor. In this case the message session has a dependency on
- a DbSession (like the PvmDbSession) and a Transaction to which the
- message session will register a listener to notify the job executor upon
- successfull completion.
- </p>
- <p><code><b>jms</b></code>: Sends the messages over JMS and a JMS listener is assumed
- (like the command executor MDB) that executes the message. If 'jms' is specified,
- attributes 'session-jndi' and 'destination-jndi' become required.
- </p>
- </documentation></annotation>
- </attribute>
- <attribute name="session-jndi" type="string" use="optional">
- <annotation><documentation>The JNDI name of the JMS Session. Only used in case of
- target <b>jms</b>. </documentation></annotation>
- </attribute>
- <attribute name="destination-jndi" type="string" use="optional">
- <annotation><documentation>The JNDI name of the Queue destination to use. Only used
- in case of target <b>jms</b>.</documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="null">
- <annotation><documentation>the null value
- </documentation></annotation>
- </element>
-
- <element name="object">
- <annotation><documentation>Any java object that will be created by reflection. .
- <p>There are three main ways to create an object: by constructor or by a factory
- object or a static factory method.</p>
- <p><b>Using the constructor</b>: Then the <code>class</code> attribute must provide the
- fully qualified class name. In case another constructor then the default is
- targetted, a <code>constructor</code> child element can be provided.
- The <code>factory</code> attribute should not be provided for using a constructor.
- </p>
- <p><b>Using a factory</b>: Then the <code>factory</code> attribute or one
- <code>factory</code> element must be provided along with the attribute
- <code>method</code>.
- </p>
- <p><b>Using a static factory method</b>: Then the <code>class</code> and
- <code>method</code> attributes should be specified. There should be no
- reference to a <code>factory</code> attribute of element.
- </p>
- <p><b>Construction and initialization</b>: 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.
- </p>
- <p><b>Operations</b>: 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
- </p>
- <p><b>Arguments</b>: There are two different places for arguments. The <code>arg</code>
- elements for the factory method invocation should be placed as child elements under the
- <code>object</code> element. The <code>arg</code> elements for the constructor should be
- placed as child elements under the <code>constructor</code> element.
- </p>
- </documentation></annotation>
- <complexType>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element name="factory">
- <annotation><documentation>Contains one element that describes the factory object.</documentation></annotation>
- <complexType>
- <group ref="tns:persistableDescriptors" />
- </complexType>
- </element>
- <element name="constructor">
- <annotation><documentation>Specifies the arguments to use for a non-default constructor.</documentation></annotation>
- <complexType>
- <choice maxOccurs="unbounded">
- <element name="arg" type="tns:argType" />
- </choice>
- </complexType>
- </element>
- <element name="arg" type="tns:argType">
- <annotation><documentation>The factory method arguments.</documentation></annotation>
- </element>
- <group ref="tns:operations" />
- </choice>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="init" type="tns:initType" default="lazy">
- <annotation><documentation>Specifies when and how this object should be
- initialized. Default is lazy.</documentation></annotation>
- </attribute>
- <attribute name="class" type="string">
- <annotation><documentation>The fully qualified class name</documentation></annotation>
- </attribute>
- <attribute name="factory" type="string">
- <annotation><documentation>The name of the factory object</documentation></annotation>
- </attribute>
- <attribute name="method" type="string">
- <annotation><documentation>The factory method name</documentation></annotation>
- </attribute>
- <attribute name="auto-wire" type="string">
- <annotation><documentation>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</documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="process-service">
- <annotation><documentation>The default process service implementation
- that delegates method implementations to a CommandService. process-service
- depends on a command service.
- </documentation></annotation>
- </element>
-
- <element name="properties">
- <annotation><documentation>A java.util.Properties</documentation></annotation>
- <complexType>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element name="property">
- <complexType>
- <attribute name="name" type="string" use="required" />
- <attribute name="value" type="string" use="required" />
- </complexType>
- </element>
- </choice>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="file" type="string">
- <annotation><documentation>A file on the file system</documentation></annotation>
- </attribute>
- <attribute name="resource" type="string">
- <annotation><documentation>A file as a resource in the classpath</documentation></annotation>
- </attribute>
- <attribute name="url" type="string">
- <annotation><documentation>the contents is fetched by loading a url</documentation></annotation>
- </attribute>
- <attribute name="is-xml" type="tns:booleanValueType">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="pvm-db-session">
- <annotation><documentation>A hibernate based PvmDbSession</documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="init" type="tns:initType" default="lazy">
- <annotation><documentation>Specifies when and how this object should be
- initialized. Default is lazy.</documentation></annotation>
- </attribute>
- <attribute name="session" type="string" />
- </complexType>
- </element>
-
- <element name="ref">
- <annotation><documentation>A reference to another object by name</documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="object" type="string" use="required">
- <annotation><documentation>The name of the referred object</documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="set">
- <annotation><documentation>A java.util.Set
- </documentation></annotation>
- <complexType>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="tns:persistableDescriptors" />
- </choice>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="init" type="tns:initType" default="lazy">
- <annotation><documentation>Specifies when and how this object should be
- initialized. Default is lazy.</documentation></annotation>
- </attribute>
- <attribute name="class" type="string" default="java.util.HashList">
- <annotation><documentation>Implementation class for this set.
- </documentation></annotation>
- </attribute>
- <attribute name="synchronized" type="tns:booleanValueType" default="false">
- <annotation><documentation>Indicates if this collection should be synchronized
- with Collections.synchronizedSet(Set)</documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="short">
- <annotation><documentation>a java.lang.Short
- </documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="value" type="short" use="required"/>
- </complexType>
- </element>
-
- <element name="command-service">
- <annotation><documentation>The command service for usage in standard
- Java environments.
- </documentation></annotation>
- <complexType>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="tns:interceptors" />
- </choice>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="init" type="tns:initType" default="lazy">
- <annotation><documentation>Specifies when and how this object should be
- initialized. Default is lazy.</documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="string">
- <annotation><documentation>a java.lang.String
- </documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="value" type="string" use="required"/>
- </complexType>
- </element>
-
- <element name="timer-session">
- <annotation><documentation>A timer session is used during process execution to create
- timers. Different implementations of the timer service make the process portable
- over different environments.
- </documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="init" type="tns:initType" default="lazy">
- <annotation><documentation>Specifies when and how this object should be
- initialized. Default is lazy.</documentation></annotation>
- </attribute>
- <attribute name="target" default="job-executor">
- <annotation><documentation>Specifies the target implementation. Use
- <code>job-executor</code> when the job executor is responsible for executing the
- timers (default). Use <code>ejb</code> in case the EJB Timer Service should be used.
- If the target is job-executor, there is a dependency on the transaction, the job-executor
- and a job-db-session.
- </documentation></annotation>
- <simpleType>
- <restriction base="string">
- <enumeration value="job-executor" />
- <enumeration value="ejb" />
- </restriction>
- </simpleType>
- </attribute>
- </complexType>
- </element>
-
- <element name="transaction">
- <annotation><documentation>The transaction binding. Specifies how the transaction in the
- pvm environment gets bound to the actual transaction in the real environment.
- </documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="target" default="standard">
- <annotation><documentation>The real transaction to be wrapped. Use <code>standard</code>
- in standard environments and enterprise in enterprise environments. In case of the
- <code>enterprise</code> target, the <code>jndi</code> name of the user transaction and
- the <code>manage</code> attribute can optionally be specified.
- </documentation></annotation>
- <simpleType>
- <restriction base="string">
- <enumeration value="standard" />
- <enumeration value="enterprise" />
- </restriction>
- </simpleType>
- </attribute>
- <attribute name="jndi" type="string" default="java:comp/UserTransaction">
- <annotation><documentation>The jndi name of the user transaction
- </documentation></annotation>
- </attribute>
- <attribute name="manage" type="tns:booleanValueType" default="false">
- <annotation><documentation>Indicates if the user transaction be controlled (=managed)
- by the environment.
- </documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="transaction-ref">
- <annotation><documentation>Reference to the org.jbpm.pvm.api.env.Transaction in the
- current environment.
- </documentation></annotation>
- </element>
-
- <element name="true">
- <annotation><documentation>java.lang.Boolean.TRUE
- </documentation></annotation>
- <complexType>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="types">
- <annotation><documentation>Specifies automatic variable type resolution, transforming
- variable values of any java class into their persistable format. When the
- type of a variable needs to be automatically detected. Each of the type elements will
- be scanned in order. When the type matches, it is used to store the value.
- </documentation></annotation>
- <complexType>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element name="type">
- <complexType>
- <choice>
- <element name="matcher">
- <annotation><documentation>Alternative to the <code>class</code> attribute to
- specify the matcher for this type.</documentation></annotation>
- <complexType>
- <group ref="tns:allDescriptors" />
- </complexType>
- </element>
- </choice>
- <attribute name="name" type="string">
- <annotation><documentation>The name of the type is optional. It's used when
- users declare variables in the process.</documentation></annotation>
- </attribute>
- <attribute name="class" type="string">
- <annotation><documentation>Specifies a matcher based on the class of the
- object. The java class name of the values that will be
- stored in this type. Apart from Java class names following literals can be
- used as well:
- <p><b><code>persistable</code></b>: Matches when the class of the object is
- known by the hibernate-session-factory so that a generic reference (any-mapping)
- can be created to the persistable object. If <code>class="persistable"</code>
- the attribute <code>id-type</code> becomes required.
- </p>
- <p><b><code>serializable</code></b>: Matches if the object implements the
- java.io.Serializable interface.
- </p>
- <p>If no <code>class</code> is provided, a matcher can also be specified
- as a separate child element.</p>
- </documentation></annotation>
- </attribute>
- <attribute name="hibernate-session-factory" type="string">
- <annotation><documentation>The name of the hibernate-session-factory. Only
- required if <code>class="persistable"</code> is used and if there is more then
- one hibernate session factory specified in the environment.
- </documentation></annotation>
- </attribute>
- <attribute name="id-type">
- <annotation><documentation>The type of the id property in the persistable object.
- </documentation></annotation>
- <simpleType>
- <restriction base="string">
- <enumeration value="long" />
- <enumeration value="string" />
- </restriction>
- </simpleType>
- </attribute>
- <attribute name="converter" type="string">
- <annotation><documentation>The class name of the converter. The converter must implement
- the Converter interface and have a default constructor</documentation></annotation>
- </attribute>
- <attribute name="variable-class" type="string" use="required">
- <annotation><documentation>The class name of the variable class. The variable class must be
- a sub class of Variable and must have a default constructor.</documentation></annotation>
- </attribute>
- </complexType>
- </element>
- </choice>
- <attribute name="name" type="string">
- <annotation><documentation>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.</documentation></annotation>
- </attribute>
- <attribute name="init" type="tns:initType" default="lazy">
- <annotation><documentation>Specifies when and how this object should be
- initialized. Default is lazy.</documentation></annotation>
- </attribute>
- <attribute name="file" type="string">
- <annotation><documentation>Imports variable types from a file. All the
- top level elements of the root document element are imported.</documentation></annotation>
- </attribute>
- <attribute name="url" type="string">
- <annotation><documentation>Imports variable types from a URL. All the
- top level elements of the root document element are imported.</documentation></annotation>
- </attribute>
- <attribute name="resource" type="string">
- <annotation><documentation>Imports variable types from a resource. All the
- top level elements of the root document element are imported.</documentation></annotation>
- </attribute>
- </complexType>
- </element>
-
- <!-- ### COMPLEX TYPES ################################################### -->
-
- <complexType name="argType">
- <annotation><documentation>The method arguments.
- Each 'arg' element should have exactly one child element
- that represents the value of the argument.
- </documentation></annotation>
- <attribute name="type" type="string">
- <annotation><documentation>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.
- </documentation></annotation>
- </attribute>
- </complexType>
-
- <complexType name="contextType">
- <annotation><documentation>A context is a set of object
- descriptions.
- </documentation></annotation>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="tns:allDescriptors" />
- </choice>
- </complexType>
-
- <complexType name="hibernateConfigurationType">
- <choice minOccurs="0" maxOccurs="unbounded">
- <element name="mapping">
- <annotation><documentation>Imports a hibernate mapping file</documentation></annotation>
- <complexType>
- <attribute name="resource" type="string">
- <annotation><documentation>Adds the referenced resource file as a mapping
- file to the hibernate configuration</documentation></annotation>
- </attribute>
- <attribute name="file" type="string">
- <annotation><documentation>Adds the referenced file as a mapping
- file to the hibernate configuration</documentation></annotation>
- </attribute>
- <attribute name="class" type="string">
- <annotation><documentation>Adds the resource file that matches the given class
- name as a mapping file to the hibernate configuration. Matching means
- .hbm.xml instead of .java</documentation></annotation>
- </attribute>
- <attribute name="url" type="string">
- <annotation><documentation>Adds file supplied by the URL as a mapping
- file to the hibernate configuration</documentation></annotation>
- </attribute>
- </complexType>
- </element>
- <element ref="tns:properties" />
- <element name="cache-configuration">
- <complexType>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element name="class-cache">
- <annotation><documentation>Persistent class for which hibernate should
- activate its second level cache</documentation></annotation>
- <complexType>
- <attribute name="class">
- <annotation><documentation>Fully qualified classname</documentation></annotation>
- </attribute>
- </complexType>
- </element>
- <element name="collection-cache">
- <annotation><documentation>Persistent collection for which hibernate should
- activate its second level cache</documentation></annotation>
- <complexType>
- <attribute name="collection">
- <annotation><documentation>Fully qualified classname, a dot (.) and
- then the property name of the collection</documentation></annotation>
- </attribute>
- </complexType>
- </element>
- </choice>
- <attribute name="usage" type="tns:hibernateCacheUsageType">
- <annotation><documentation>The caching strategy. see hibernate
- docs for more info.</documentation></annotation>
- </attribute>
- <attribute name="file" type="string">
- <annotation><documentation>Import source for class-cache elements</documentation></annotation>
- </attribute>
- <attribute name="resource" type="string">
- <annotation><documentation>Import source for class-cache elements</documentation></annotation>
- </attribute>
- <attribute name="url" type="string">
- <annotation><documentation>Import source for class-cache elements</documentation></annotation>
- </attribute>
- </complexType>
- </element>
- </choice>
- <attribute name="name" type="string">
- <annotation><documentation>Optional name of this hibernate session factory.
- Typically a session factory is looked up by type. Only if multiple sessions
- are declared, a name can be used to distinct them.
- </documentation></annotation>
- </attribute>
- <attribute name="init" type="tns:initType" default="lazy">
- <annotation><documentation>Specifies when and how this object should be
- initialized. Default is lazy.</documentation></annotation>
- </attribute>
- <attribute name="annotations">
- <annotation><documentation>Indicates if annotations should be enabled or
- disabled.</documentation></annotation>
- <simpleType>
- <restriction base="string">
- <enumeration value="enabled" />
- <enumeration value="disabled" />
- </restriction>
- </simpleType>
- </attribute>
- </complexType>
-
- <complexType name="businessCalendarDayType">
- <attribute name="hours" type="string">
- <annotation><documentation>The working hours of this day. Day parts are separated
- with 'and'. Begin and end hours are separated by '-'. E.g:
- 9:00-12:00 and 12:30-17:00
- </documentation></annotation>
- </attribute>
- </complexType>
-
-
-
- <!-- ### SIMPLE VALUE TYPES ############################################## -->
-
- <simpleType name="booleanValueType">
- <restriction base="string">
- <enumeration value="true" />
- <enumeration value="on" />
- <enumeration value="enabled" />
- <enumeration value="false" />
- <enumeration value="off" />
- <enumeration value="disabled" />
- </restriction>
- </simpleType>
-
- <simpleType name="hibernateSchemaOperationType">
- <restriction base="string">
- <enumeration value="update" />
- <enumeration value="create" />
- </restriction>
- </simpleType>
-
- <simpleType name="hibernateCacheUsageType">
- <restriction base="string">
- <enumeration value="read-only" />
- <enumeration value="nonstrict-read-write" />
- <enumeration value="read-write" />
- <enumeration value="transactional" />
- </restriction>
- </simpleType>
-
- <simpleType name="initType">
- <annotation><documentation>Specifies when and how this object should be
- initialized. Default is lazy.
-
- <p><code><b>lazy</b></code>: The object is only created when it is asked for.
- In case of transitive dependencies, the object might not yet be initialized.
- </p>
-
- <p><code><b>eager</b></code>: The object is created when the context is created.
- In case of transitive dependencies, the object might not yet be initialized.
- </p>
-
- <p><code><b>eager</b></code>: The object is created when the context is created.
- In case of transitive dependencies, the initialization is also mandatory.
- </p>
-
- <p><code><b>eager</b></code>: The object is only created when it is asked for.
- In case of transitive dependencies, initialization is mandatory.
- </p>
- </documentation></annotation>
- <restriction base="string">
- <enumeration value="lazy" />
- <enumeration value="eager" />
- <enumeration value="immediate" />
- <enumeration value="required" />
- </restriction>
- </simpleType>
-
- <simpleType name="messageSessionTargetType">
- <restriction base="string">
- <enumeration value="job-executor" />
- <enumeration value="jms" />
- <enumeration value="test" />
- </restriction>
- </simpleType>
-
-
- <!-- ### GROUPS ########################################################## -->
-
- <group name="persistableDescriptors">
- <choice>
- <element ref="tns:byte" />
- <element ref="tns:char" />
- <element ref="tns:class" />
- <element ref="tns:context-ref" />
- <element ref="tns:double" />
- <element ref="tns:env-ref" />
- <element ref="tns:process-engine-ref" />
- <element ref="tns:false" />
- <element ref="tns:float" />
- <element ref="tns:int" />
- <element ref="tns:jndi" />
- <element ref="tns:list" />
- <element ref="tns:long" />
- <element ref="tns:map" />
- <element ref="tns:message-session" />
- <element ref="tns:null" />
- <element ref="tns:object" />
- <element ref="tns:pvm-db-session" />
- <element ref="tns:properties" />
- <element ref="tns:ref" />
- <element ref="tns:set" />
- <element ref="tns:short" />
- <element ref="tns:string" />
- <element ref="tns:timer-session" />
- <element ref="tns:transaction-ref" />
- <element ref="tns:true" />
- </choice>
- </group>
-
- <group name="allDescriptors">
- <choice>
- <group ref="tns:persistableDescriptors" />
- <element ref="tns:business-calendar" />
- <element ref="tns:process-service" />
- <element ref="tns:deployer-manager" />
- <element ref="tns:hibernate-configuration" />
- <element ref="tns:hibernate-session-factory" />
- <element ref="tns:hibernate-session" />
- <element ref="tns:job-executor" />
- <element ref="tns:job-test-helper" />
- <element ref="tns:command-service" />
- <element ref="tns:transaction" />
- <element ref="tns:types" />
- </choice>
- </group>
-
- <group name="interceptors">
- <choice>
- <element name="environment-interceptor">
- <annotation><documentation>Interceptor that can be used as part of declaring
- a command service.
- </documentation></annotation>
- </element>
- <element name="retry-interceptor">
- <annotation><documentation>Interceptor that retries the method invocation in
- case of exceptions.
- </documentation></annotation>
- <complexType>
- <attribute name="retries" default="3">
- <annotation><documentation>Max number of attempts before giving up</documentation></annotation>
- </attribute>
- <attribute name="delay" default="50">
- <annotation><documentation>Delay in milliseconds after the first exception</documentation></annotation>
- </attribute>
- <attribute name="delay-factor" default="4">
- <annotation><documentation>Factor with which the delay is multiplied after subsequent
- failed attempts. This enables back-off to reduce load in case of repetitive failures.
- </documentation></annotation>
- </attribute>
- </complexType>
- </element>
- <element name="transaction-interceptor">
- <annotation><documentation>Interceptor that will make sure the transaction is initialized before each
- invocation and it will issue a setRollbackOnly on the transaction in case an exception occors.
- </documentation></annotation>
- </element>
- </choice>
- </group>
-
- <group name="deployers">
- <choice>
- <element name="create-process">
- <annotation><documentation>Deployer that can instantiate the
- process definition of a given type.
- </documentation></annotation>
- <complexType>
- <attribute name="name" type="string" />
- <attribute name="class" type="string" use="required"/>
- </complexType>
- </element>
- <element name="check-version">
- <annotation><documentation>Deployer checks if the version of the
- deployed process is exactly 1 more then the last version of the same
- process. If a version already exists, it is left untouched.
- If no version exists, by default, this deployer will assign
- a version to the process definition that is 1 higher then the
- highest deployed version in the DB for that process name. This
- default can be overridden by the 'assign' attribute.
- </documentation></annotation>
- <complexType>
- <attribute name="assign" default="true">
- <annotation><documentation>In case there the process definition
- has not be given a version explicitely, this attribute specifies
- if this deployer should assign a version. The assigned version
- will be 1 higher then the highest version in the db for processes
- with the same name. Starting with 1 if no similarly named procses
- definitions are found.
- </documentation></annotation>
- </attribute>
- </complexType>
- </element>
- <element name="create-id">
- <annotation><documentation>Deployer verifies if the version of the
- deployed process is exactly 1 more then the last version of the same
- process.
- </documentation></annotation>
- </element>
- <element name="save-process">
- <annotation><documentation>Deployer that saves the process with
- the PvmDbSession.
- </documentation></annotation>
- </element>
- </choice>
- </group>
-
- <group name="operations">
- <choice>
- <element name="enlist">
- <annotation><documentation>Enlists this object (assumes a org.jbpm.tx.Resource) with the current org.jbpm.tx.StandardTransaction</documentation></annotation>
- <complexType>
- <attribute name="transaction" type="string">
- <annotation><documentation>Optional reference to the name of the
- standard transaction. If no transaction name is specified, the transaction
- is looked up by type in the environment.
- </documentation></annotation>
- </attribute>
- </complexType>
- </element>
- <element name="field">
- <annotation><documentation>Injects a value into a member field of this object.
- Exactly one child element must specify the value.
- </documentation></annotation>
- <complexType>
- <group ref="tns:persistableDescriptors" />
- <attribute name="name">
- <annotation><documentation>The member field name</documentation></annotation>
- </attribute>
- </complexType>
- </element>
- <element name="invoke">
- <annotation><documentation>Invokes a method</documentation></annotation>
- <complexType>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element name="arg" type="tns:argType" />
- </choice>
- <attribute name="method" type="string" use="required">
- <annotation><documentation>the method name</documentation></annotation>
- </attribute>
- </complexType>
- </element>
- <element name="subscribe">
- <annotation><documentation>Subscribes this object to an observable</documentation></annotation>
- <complexType>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element name="arg" type="tns:argType" />
- </choice>
- <attribute name="context" type="string">
- <annotation><documentation>The context in which to find the observable. If not specified,
- the context of this object will be taken. If no observable object names are specified, the
- context object itself will be used as the observable.</documentation></annotation>
- </attribute>
- <attribute name="to" default="object-events">
- <annotation><documentation>Indicates if this object is interested in the events fired by
- the object itself (object-events) or in the wire events fired by the wire context
- (wire-events).</documentation></annotation>
- <simpleType>
- <restriction base="string">
- <enumeration value="wire-events" />
- <enumeration value="object-events" />
- </restriction>
- </simpleType>
- </attribute>
- <attribute name="event" type="string">
- <annotation><documentation>A single event. See 'events' for more information.</documentation></annotation>
- </attribute>
- <attribute name="events" type="string">
- <annotation><documentation>Comma separated list of events to listen to, filtering out all other events.
- If no events are specified or if the '*' wildcard is specified, the object will be notified of all events.
- </documentation></annotation>
- </attribute>
- <attribute name="object" type="string">
- <annotation><documentation>A single object name. See 'objects' for more information.</documentation></annotation>
- </attribute>
- <attribute name="objects" type="string">
- <annotation><documentation>Comma separated list of object names to listen to.
- If no objects are specified the specified context will be used as the observable.
- </documentation></annotation>
- </attribute>
- <attribute name="method" type="string">
- <annotation><documentation>Name of the method to invoke. If no method is specified, it is assumed that the
- object implements the Listener interface. Nested 'arg' elements can be used to provide arguments
- in the method invocation.
- </documentation></annotation>
- </attribute>
- </complexType>
- </element>
- </choice>
- </group>
-
-</schema>
\ No newline at end of file
Copied: jbpm4/trunk/modules/api/src/parked/cfg.xsd (from rev 4646, jbpm4/trunk/modules/api/src/main/resources/cfg.xsd)
===================================================================
--- jbpm4/trunk/modules/api/src/parked/cfg.xsd (rev 0)
+++ jbpm4/trunk/modules/api/src/parked/cfg.xsd 2009-04-28 07:50:35 UTC (rev 4648)
@@ -0,0 +1,1312 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://jbpm.org/4/cfg"
+ xmlns:tns="http://jbpm.org/4/cfg"
+ elementFormDefault="qualified">
+
+ <annotation>
+ <documentation>Schema for the jBPM configuration file; configuration
+ is the top level element.
+ </documentation>
+ </annotation>
+
+ <!-- ### ELEMENTS ######################################################## -->
+
+ <element name="business-calendar">
+ <annotation><documentation>A BusinessCalendar that knows about working hours</documentation></annotation>
+ <complexType>
+ <sequence>
+ <element name="monday" type="tns:businessCalendarDayType" minOccurs="0"/>
+ <element name="tuesday" type="tns:businessCalendarDayType" minOccurs="0"/>
+ <element name="wednesday" type="tns:businessCalendarDayType" minOccurs="0"/>
+ <element name="thursday" type="tns:businessCalendarDayType" minOccurs="0"/>
+ <element name="friday" type="tns:businessCalendarDayType" minOccurs="0"/>
+ <element name="saturday" type="tns:businessCalendarDayType" minOccurs="0"/>
+ <element name="sunday" type="tns:businessCalendarDayType" minOccurs="0"/>
+ <element name="holiday" minOccurs="0" maxOccurs="unbounded">
+ <complexType>
+ <attribute name="period">
+ <annotation><documentation>Two dates in date-format, separated by
+ a dash that specify a holiday period. If it's just one day, a single day
+ is also valid.</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+ </sequence>
+ <attribute name="timezone" type="string">
+ <annotation><documentation>Optional specification of the timezone as specified by
+ java.util.TimeZone.getTimeZone(String)</documentation></annotation>
+ </attribute>
+ <attribute name="hour-format" type="string" default="HH:mm">
+ <annotation><documentation>Indicates how to interpret the hour specifications
+ in this business calendar in java.text.SimpleDateFormat(String)</documentation></annotation>
+ </attribute>
+ <attribute name="date-format" type="string" default="dd/MM/yyyy">
+ <annotation><documentation>Indicates how to interpret the date specifications
+ in this business calendar in java.text.SimpleDateFormat(String)</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="byte">
+ <annotation><documentation>A java.lang.Byte</documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="value" type="byte" use="required" />
+ </complexType>
+ </element>
+
+ <element name="char">
+ <annotation><documentation>A java.lang.Character</documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="value" use="required">
+ <simpleType>
+ <restriction base="string">
+ <maxLength value="1" />
+ </restriction>
+ </simpleType>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="class">
+ <annotation><documentation>A java.lang.Class</documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="init" type="tns:initType" default="lazy">
+ <annotation><documentation>Specifies when and how this object should be
+ created and initialized. Default is lazy.</documentation></annotation>
+ </attribute>
+ <attribute name="class-name" use="required" type="string">
+ <annotation><documentation>A fully qualified name of a
+ class that can be found on the wire context classpath or
+ (if that is not specified) on the current thread's context
+ classpath.
+ </documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="context-ref">
+ <annotation><documentation>The context. This refers to
+ the contexts transaction or process-engine.
+ </documentation></annotation>
+ <complexType>
+ <attribute name="context-name" type="string">
+ <annotation><documentation>The name of the context in the current
+ environment. If this attribute is omitted, the enclosing
+ context will be given.
+ </documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="jbpm-configuration">
+ <annotation><documentation>Defines an environment factory and
+ an environment.
+ </documentation></annotation>
+ <complexType>
+ <sequence>
+ <element ref="tns:process-engine-context" />
+ <element ref="tns:environment" />
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="process-engine-context" type="tns:contextType">
+ <annotation><documentation>Defines the environment factory
+ context. (Aka application context)
+ </documentation></annotation>
+ </element>
+
+ <element name="environment" type="tns:contextType">
+ <annotation><documentation>Defines the environment
+ context. This context exists stretches for the duration of
+ an Environment try-finally block.
+ </documentation></annotation>
+ </element>
+
+ <element name="deployer-manager">
+ <annotation><documentation>Has a list of deployers (org.jbpm.pvm.internal.deploy.Deployer)
+ for handling deployments.
+ </documentation></annotation>
+ <complexType>
+ <choice maxOccurs="unbounded">
+ <group ref="tns:deployers" />
+ </choice>
+ </complexType>
+ </element>
+
+ <element name="double">
+ <annotation><documentation>A java.lang.Double</documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="value" type="double" use="required" />
+ </complexType>
+ </element>
+
+ <element name="env-ref">
+ <annotation><documentation>Obtains the current environment. The environment
+ is only available in objects declared inside the environment context. So it
+ can't be used inside the session-factory context.
+ </documentation></annotation>
+ </element>
+
+ <element name="process-engine-ref">
+ <annotation><documentation>Obtains the current environment. The environment
+ is only available in objects declared inside the environment context. So it
+ can't be used inside the session-factory context.
+ </documentation></annotation>
+ </element>
+
+ <element name="false">
+ <annotation><documentation>java.lang.Boolean.FALSE
+ </documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="float">
+ <annotation><documentation>A java.lang.Float
+ </documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="value" type="float" use="required" />
+ </complexType>
+ </element>
+
+ <element name="hibernate-configuration" type="tns:hibernateConfigurationType">
+ <annotation><documentation>A hibernate Configuration to be used in the
+ process-engine context</documentation></annotation>
+ </element>
+
+ <element name="hibernate-session">
+ <annotation><documentation>A hibernate Session to be used in the
+ environment context</documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>Optional name of this hibernate session.
+ Typically a session is looked up by type. Only if multiple sessions
+ are declared, a name can be used to distinct them.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="init" type="tns:initType" default="lazy">
+ <annotation><documentation>Specifies when and how this object should be
+ initialized. Default is lazy.</documentation></annotation>
+ </attribute>
+ <attribute name="factory" type="string">
+ <annotation><documentation>Optional name referring to the session-factory.
+ If no factory name is provided, the SessionFactory is looked up by type.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="tx" type="tns:booleanValueType">
+ <annotation><documentation>Indicates if a hibernate transaction should
+ be started and ended in this environment. Default is true.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="current" type="tns:booleanValueType">
+ <annotation><documentation>Indicates if the SessionFactory.getCurrentSession()
+ should be used instead of opening and closing a new session. Default is false.
+ If 'current' is set to true, then the default of 'close' will be set to false.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="close" type="tns:booleanValueType">
+ <annotation><documentation>Indicates if the session should be closed when the
+ environment closes. The default is true (unless 'current' is set to true)
+ </documentation></annotation>
+ </attribute>
+ <attribute name="standard-transaction" type="string">
+ <annotation><documentation>Optional name of the standard transaction.
+ If 'tx' is set to true, a StandardTransaction needs to be found to enlist
+ this hibernate session. By default, the lookup of the StandardTransaction
+ is done by type. But this attribute allows to refer to the standard
+ transaction by name.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="connection" type="string">
+ <annotation><documentation>Optional name of the JDBC connection to use
+ when creating this hibernate session. If no connection name is specified,
+ the creation of the connection is left to the hibernate session.
+ </documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="hibernate-session-factory">
+ <annotation><documentation>A hibernate SessionFactory to be used in the
+ process-engine context. The hibernate Configuration can be inlined in this
+ 'session-factory', it can be refered by type or referred by name.
+ </documentation></annotation>
+ <complexType>
+ <complexContent>
+ <extension base="tns:hibernateConfigurationType">
+ <attribute name="configuration" type="string">
+ <annotation><documentation>The name of the configuration to use to build
+ this hibernate SessionFactory. This is optional as the alternative methods
+ to specify a configuration are just inlining it here in this hibernate
+ session-factory element or looking up the hibernate Configuration by type.
+ </documentation></annotation>
+ </attribute>
+ </extension>
+ </complexContent>
+ </complexType>
+ </element>
+
+ <element name="int">
+ <annotation><documentation>A java.lang.Integer
+ </documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="value" type="int" use="required"/>
+ </complexType>
+ </element>
+
+ <element name="jndi">
+ <annotation><documentation>A lookup from JNDI through the InitialContext
+ </documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="jndi-name" type="string" use="required" />
+ </complexType>
+ </element>
+
+ <element name="job-db-session">
+ <annotation><documentation>A hibernate based JobDbSession</documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="init" type="tns:initType" default="lazy">
+ <annotation><documentation>Specifies when and how this object should be
+ initialized. Default is lazy.</documentation></annotation>
+ </attribute>
+ <attribute name="session" type="string" />
+ </complexType>
+ </element>
+
+ <element name="job-executor">
+ <annotation><documentation>The default component for executing timers and messages.
+ A job-executor requires a CommandService.
+ </documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>Optional name of this object used to look up
+ this object from the environment. This name (along with ip-address) is
+ used as the basis for the names of the threads in the job executor's thread
+ pool. So when you're running more then one job-executor on the same
+ machine, you should be specifying custom job executor names.</documentation></annotation>
+ </attribute>
+ <attribute name="init" type="tns:initType" default="lazy">
+ <annotation><documentation>Specifies when and how this object should be
+ initialized. Default is lazy.</documentation></annotation>
+ </attribute>
+ <attribute name="command-service" type="string">
+ <annotation><documentation>Optional name of the command service to use. If
+ this attribute is not present, the command service will be looked up
+ by type.</documentation></annotation>
+ </attribute>
+ <attribute name="threads" type="int">
+ <annotation><documentation>Number of worker threads. One extra thread will
+ be created for scanning and acquisition of jobs (DispatcherThread).</documentation></annotation>
+ </attribute>
+ <attribute name="idle" type="int">
+ <annotation><documentation>Number of milliseconds the dispatcher thread
+ will normally wait inbetween checks for new jobs. Each time an exception
+ occurs, the idle period will be doubled until the 'idle-max' is reached.
+ This is a back-off mechanism in case the job executor can't access the
+ database.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="idle-max" type="int">
+ <annotation><documentation>Maxumum number of milliseconds the dispatcher thread
+ will wait inbetween checks for new jobs.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="history" type="int">
+ <annotation><documentation>Number of history records of job executions that will be
+ kept in memory.</documentation></annotation>
+ </attribute>
+ <attribute name="lock" type="int">
+ <annotation><documentation>Number of milliseconds that a job will be locked at
+ acquisition time. When a job is acquired, the job executor will write it's name
+ in the lock owner field of the job and the lockExpirationTime
+ will be set to the current time plus 'lock' milliseconds. The lock by that thread should
+ be considered as released if the lockExpirationTime has passed. This prevents starvation
+ in case one of more JobExecutors in a cluster would die.</documentation></annotation>
+ </attribute>
+ <attribute name="auto-start" type="tns:booleanValueType">
+ <annotation><documentation>Indicates if the job-executor should be started when it
+ is created. Default is true. If the job-executor is not auto-started, it can be
+ started programmatically with the start method on the JobExecutor.</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="job-test-helper">
+ <annotation><documentation>A test helper for controlling job executions</documentation></annotation>
+ </element>
+
+ <element name="list">
+ <annotation><documentation>A java.util.List</documentation></annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <group ref="tns:persistableDescriptors" />
+ </choice>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="init" type="tns:initType" default="lazy">
+ <annotation><documentation>Specifies when and how this object should be
+ created and initialized. Default is lazy.</documentation></annotation>
+ </attribute>
+ <attribute name="class" type="string" default="java.util.ArrayList">
+ <annotation><documentation>Implementation class for this list.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="synchronized" type="tns:booleanValueType" default="false">
+ <annotation><documentation>Indicates if this collection should be synchronized
+ with Collections.synchronizedList(List)</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="long">
+ <annotation><documentation>A java.lang.Long</documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="value" type="long" use="required"/>
+ </complexType>
+ </element>
+
+ <element name="map">
+ <annotation><documentation>A java.util.Map</documentation></annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="entry">
+ <complexType>
+ <choice minOccurs="0">
+ <element name="key" minOccurs="0">
+ <complexType>
+ <group ref="tns:persistableDescriptors" />
+ </complexType>
+ </element>
+ <element name="value" minOccurs="0">
+ <complexType>
+ <group ref="tns:persistableDescriptors" />
+ </complexType>
+ </element>
+ </choice>
+ </complexType>
+ </element>
+ </choice>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="init" type="tns:initType" default="lazy">
+ <annotation><documentation>Specifies when and how this object should be
+ created and initialized. Default is lazy.</documentation></annotation>
+ </attribute>
+ <attribute name="class" type="string" default="java.util.HashMap">
+ <annotation><documentation>Implementation class for this map.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="synchronized" type="tns:booleanValueType" default="false">
+ <annotation><documentation>Indicates if this collection should be synchronized
+ with Collections.synchronizedMap(Map)</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="message-session">
+ <annotation><documentation>Specifies an implementation of the MessageSession
+ interface that sends messages to the JobExecutor. The main usage of MessageSession
+ is by the PVM implementation for asynchronous continuations. The PVM will look
+ up the message session by type. All message-session implementations depend on a
+ DbSession like e.g. the 'pvm-db-session'. A DbSession will be looked up by type.
+ </documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="target" type="tns:messageSessionTargetType" default="job-executor">
+ <annotation><documentation>
+ <p>Specifies the implementation of the message session.
+ </p>
+ <p><code><b>job-executor</b></code>: Is the default and sends to messages to the
+ job-executor. In this case the message session has a dependency on
+ a DbSession (like the PvmDbSession) and a Transaction to which the
+ message session will register a listener to notify the job executor upon
+ successfull completion.
+ </p>
+ <p><code><b>jms</b></code>: Sends the messages over JMS and a JMS listener is assumed
+ (like the command executor MDB) that executes the message. If 'jms' is specified,
+ attributes 'session-jndi' and 'destination-jndi' become required.
+ </p>
+ </documentation></annotation>
+ </attribute>
+ <attribute name="session-jndi" type="string" use="optional">
+ <annotation><documentation>The JNDI name of the JMS Session. Only used in case of
+ target <b>jms</b>. </documentation></annotation>
+ </attribute>
+ <attribute name="destination-jndi" type="string" use="optional">
+ <annotation><documentation>The JNDI name of the Queue destination to use. Only used
+ in case of target <b>jms</b>.</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="null">
+ <annotation><documentation>the null value
+ </documentation></annotation>
+ </element>
+
+ <element name="object">
+ <annotation><documentation>Any java object that will be created by reflection. .
+ <p>There are three main ways to create an object: by constructor or by a factory
+ object or a static factory method.</p>
+ <p><b>Using the constructor</b>: Then the <code>class</code> attribute must provide the
+ fully qualified class name. In case another constructor then the default is
+ targetted, a <code>constructor</code> child element can be provided.
+ The <code>factory</code> attribute should not be provided for using a constructor.
+ </p>
+ <p><b>Using a factory</b>: Then the <code>factory</code> attribute or one
+ <code>factory</code> element must be provided along with the attribute
+ <code>method</code>.
+ </p>
+ <p><b>Using a static factory method</b>: Then the <code>class</code> and
+ <code>method</code> attributes should be specified. There should be no
+ reference to a <code>factory</code> attribute of element.
+ </p>
+ <p><b>Construction and initialization</b>: 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.
+ </p>
+ <p><b>Operations</b>: 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
+ </p>
+ <p><b>Arguments</b>: There are two different places for arguments. The <code>arg</code>
+ elements for the factory method invocation should be placed as child elements under the
+ <code>object</code> element. The <code>arg</code> elements for the constructor should be
+ placed as child elements under the <code>constructor</code> element.
+ </p>
+ </documentation></annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="factory">
+ <annotation><documentation>Contains one element that describes the factory object.</documentation></annotation>
+ <complexType>
+ <group ref="tns:persistableDescriptors" />
+ </complexType>
+ </element>
+ <element name="constructor">
+ <annotation><documentation>Specifies the arguments to use for a non-default constructor.</documentation></annotation>
+ <complexType>
+ <choice maxOccurs="unbounded">
+ <element name="arg" type="tns:argType" />
+ </choice>
+ </complexType>
+ </element>
+ <element name="arg" type="tns:argType">
+ <annotation><documentation>The factory method arguments.</documentation></annotation>
+ </element>
+ <group ref="tns:operations" />
+ </choice>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="init" type="tns:initType" default="lazy">
+ <annotation><documentation>Specifies when and how this object should be
+ initialized. Default is lazy.</documentation></annotation>
+ </attribute>
+ <attribute name="class" type="string">
+ <annotation><documentation>The fully qualified class name</documentation></annotation>
+ </attribute>
+ <attribute name="factory" type="string">
+ <annotation><documentation>The name of the factory object</documentation></annotation>
+ </attribute>
+ <attribute name="method" type="string">
+ <annotation><documentation>The factory method name</documentation></annotation>
+ </attribute>
+ <attribute name="auto-wire" type="string">
+ <annotation><documentation>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</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="process-service">
+ <annotation><documentation>The default process service implementation
+ that delegates method implementations to a CommandService. process-service
+ depends on a command service.
+ </documentation></annotation>
+ </element>
+
+ <element name="properties">
+ <annotation><documentation>A java.util.Properties</documentation></annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="property">
+ <complexType>
+ <attribute name="name" type="string" use="required" />
+ <attribute name="value" type="string" use="required" />
+ </complexType>
+ </element>
+ </choice>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="file" type="string">
+ <annotation><documentation>A file on the file system</documentation></annotation>
+ </attribute>
+ <attribute name="resource" type="string">
+ <annotation><documentation>A file as a resource in the classpath</documentation></annotation>
+ </attribute>
+ <attribute name="url" type="string">
+ <annotation><documentation>the contents is fetched by loading a url</documentation></annotation>
+ </attribute>
+ <attribute name="is-xml" type="tns:booleanValueType">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="pvm-db-session">
+ <annotation><documentation>A hibernate based PvmDbSession</documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="init" type="tns:initType" default="lazy">
+ <annotation><documentation>Specifies when and how this object should be
+ initialized. Default is lazy.</documentation></annotation>
+ </attribute>
+ <attribute name="session" type="string" />
+ </complexType>
+ </element>
+
+ <element name="ref">
+ <annotation><documentation>A reference to another object by name</documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="object" type="string" use="required">
+ <annotation><documentation>The name of the referred object</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="set">
+ <annotation><documentation>A java.util.Set
+ </documentation></annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <group ref="tns:persistableDescriptors" />
+ </choice>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="init" type="tns:initType" default="lazy">
+ <annotation><documentation>Specifies when and how this object should be
+ initialized. Default is lazy.</documentation></annotation>
+ </attribute>
+ <attribute name="class" type="string" default="java.util.HashList">
+ <annotation><documentation>Implementation class for this set.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="synchronized" type="tns:booleanValueType" default="false">
+ <annotation><documentation>Indicates if this collection should be synchronized
+ with Collections.synchronizedSet(Set)</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="short">
+ <annotation><documentation>a java.lang.Short
+ </documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="value" type="short" use="required"/>
+ </complexType>
+ </element>
+
+ <element name="command-service">
+ <annotation><documentation>The command service for usage in standard
+ Java environments.
+ </documentation></annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <group ref="tns:interceptors" />
+ </choice>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="init" type="tns:initType" default="lazy">
+ <annotation><documentation>Specifies when and how this object should be
+ initialized. Default is lazy.</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="string">
+ <annotation><documentation>a java.lang.String
+ </documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="value" type="string" use="required"/>
+ </complexType>
+ </element>
+
+ <element name="timer-session">
+ <annotation><documentation>A timer session is used during process execution to create
+ timers. Different implementations of the timer service make the process portable
+ over different environments.
+ </documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="init" type="tns:initType" default="lazy">
+ <annotation><documentation>Specifies when and how this object should be
+ initialized. Default is lazy.</documentation></annotation>
+ </attribute>
+ <attribute name="target" default="job-executor">
+ <annotation><documentation>Specifies the target implementation. Use
+ <code>job-executor</code> when the job executor is responsible for executing the
+ timers (default). Use <code>ejb</code> in case the EJB Timer Service should be used.
+ If the target is job-executor, there is a dependency on the transaction, the job-executor
+ and a job-db-session.
+ </documentation></annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="job-executor" />
+ <enumeration value="ejb" />
+ </restriction>
+ </simpleType>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="transaction">
+ <annotation><documentation>The transaction binding. Specifies how the transaction in the
+ pvm environment gets bound to the actual transaction in the real environment.
+ </documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="target" default="standard">
+ <annotation><documentation>The real transaction to be wrapped. Use <code>standard</code>
+ in standard environments and enterprise in enterprise environments. In case of the
+ <code>enterprise</code> target, the <code>jndi</code> name of the user transaction and
+ the <code>manage</code> attribute can optionally be specified.
+ </documentation></annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="standard" />
+ <enumeration value="enterprise" />
+ </restriction>
+ </simpleType>
+ </attribute>
+ <attribute name="jndi" type="string" default="java:comp/UserTransaction">
+ <annotation><documentation>The jndi name of the user transaction
+ </documentation></annotation>
+ </attribute>
+ <attribute name="manage" type="tns:booleanValueType" default="false">
+ <annotation><documentation>Indicates if the user transaction be controlled (=managed)
+ by the environment.
+ </documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="transaction-ref">
+ <annotation><documentation>Reference to the org.jbpm.pvm.api.env.Transaction in the
+ current environment.
+ </documentation></annotation>
+ </element>
+
+ <element name="true">
+ <annotation><documentation>java.lang.Boolean.TRUE
+ </documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="types">
+ <annotation><documentation>Specifies automatic variable type resolution, transforming
+ variable values of any java class into their persistable format. When the
+ type of a variable needs to be automatically detected. Each of the type elements will
+ be scanned in order. When the type matches, it is used to store the value.
+ </documentation></annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="type">
+ <complexType>
+ <choice>
+ <element name="matcher">
+ <annotation><documentation>Alternative to the <code>class</code> attribute to
+ specify the matcher for this type.</documentation></annotation>
+ <complexType>
+ <group ref="tns:allDescriptors" />
+ </complexType>
+ </element>
+ </choice>
+ <attribute name="name" type="string">
+ <annotation><documentation>The name of the type is optional. It's used when
+ users declare variables in the process.</documentation></annotation>
+ </attribute>
+ <attribute name="class" type="string">
+ <annotation><documentation>Specifies a matcher based on the class of the
+ object. The java class name of the values that will be
+ stored in this type. Apart from Java class names following literals can be
+ used as well:
+ <p><b><code>persistable</code></b>: Matches when the class of the object is
+ known by the hibernate-session-factory so that a generic reference (any-mapping)
+ can be created to the persistable object. If <code>class="persistable"</code>
+ the attribute <code>id-type</code> becomes required.
+ </p>
+ <p><b><code>serializable</code></b>: Matches if the object implements the
+ java.io.Serializable interface.
+ </p>
+ <p>If no <code>class</code> is provided, a matcher can also be specified
+ as a separate child element.</p>
+ </documentation></annotation>
+ </attribute>
+ <attribute name="hibernate-session-factory" type="string">
+ <annotation><documentation>The name of the hibernate-session-factory. Only
+ required if <code>class="persistable"</code> is used and if there is more then
+ one hibernate session factory specified in the environment.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="id-type">
+ <annotation><documentation>The type of the id property in the persistable object.
+ </documentation></annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="long" />
+ <enumeration value="string" />
+ </restriction>
+ </simpleType>
+ </attribute>
+ <attribute name="converter" type="string">
+ <annotation><documentation>The class name of the converter. The converter must implement
+ the Converter interface and have a default constructor</documentation></annotation>
+ </attribute>
+ <attribute name="variable-class" type="string" use="required">
+ <annotation><documentation>The class name of the variable class. The variable class must be
+ a sub class of Variable and must have a default constructor.</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+ </choice>
+ <attribute name="name" type="string">
+ <annotation><documentation>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.</documentation></annotation>
+ </attribute>
+ <attribute name="init" type="tns:initType" default="lazy">
+ <annotation><documentation>Specifies when and how this object should be
+ initialized. Default is lazy.</documentation></annotation>
+ </attribute>
+ <attribute name="file" type="string">
+ <annotation><documentation>Imports variable types from a file. All the
+ top level elements of the root document element are imported.</documentation></annotation>
+ </attribute>
+ <attribute name="url" type="string">
+ <annotation><documentation>Imports variable types from a URL. All the
+ top level elements of the root document element are imported.</documentation></annotation>
+ </attribute>
+ <attribute name="resource" type="string">
+ <annotation><documentation>Imports variable types from a resource. All the
+ top level elements of the root document element are imported.</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <!-- ### COMPLEX TYPES ################################################### -->
+
+ <complexType name="argType">
+ <annotation><documentation>The method arguments.
+ Each 'arg' element should have exactly one child element
+ that represents the value of the argument.
+ </documentation></annotation>
+ <attribute name="type" type="string">
+ <annotation><documentation>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.
+ </documentation></annotation>
+ </attribute>
+ </complexType>
+
+ <complexType name="contextType">
+ <annotation><documentation>A context is a set of object
+ descriptions.
+ </documentation></annotation>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <group ref="tns:allDescriptors" />
+ </choice>
+ </complexType>
+
+ <complexType name="hibernateConfigurationType">
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="mapping">
+ <annotation><documentation>Imports a hibernate mapping file</documentation></annotation>
+ <complexType>
+ <attribute name="resource" type="string">
+ <annotation><documentation>Adds the referenced resource file as a mapping
+ file to the hibernate configuration</documentation></annotation>
+ </attribute>
+ <attribute name="file" type="string">
+ <annotation><documentation>Adds the referenced file as a mapping
+ file to the hibernate configuration</documentation></annotation>
+ </attribute>
+ <attribute name="class" type="string">
+ <annotation><documentation>Adds the resource file that matches the given class
+ name as a mapping file to the hibernate configuration. Matching means
+ .hbm.xml instead of .java</documentation></annotation>
+ </attribute>
+ <attribute name="url" type="string">
+ <annotation><documentation>Adds file supplied by the URL as a mapping
+ file to the hibernate configuration</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+ <element ref="tns:properties" />
+ <element name="cache-configuration">
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="class-cache">
+ <annotation><documentation>Persistent class for which hibernate should
+ activate its second level cache</documentation></annotation>
+ <complexType>
+ <attribute name="class">
+ <annotation><documentation>Fully qualified classname</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+ <element name="collection-cache">
+ <annotation><documentation>Persistent collection for which hibernate should
+ activate its second level cache</documentation></annotation>
+ <complexType>
+ <attribute name="collection">
+ <annotation><documentation>Fully qualified classname, a dot (.) and
+ then the property name of the collection</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+ </choice>
+ <attribute name="usage" type="tns:hibernateCacheUsageType">
+ <annotation><documentation>The caching strategy. see hibernate
+ docs for more info.</documentation></annotation>
+ </attribute>
+ <attribute name="file" type="string">
+ <annotation><documentation>Import source for class-cache elements</documentation></annotation>
+ </attribute>
+ <attribute name="resource" type="string">
+ <annotation><documentation>Import source for class-cache elements</documentation></annotation>
+ </attribute>
+ <attribute name="url" type="string">
+ <annotation><documentation>Import source for class-cache elements</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+ </choice>
+ <attribute name="name" type="string">
+ <annotation><documentation>Optional name of this hibernate session factory.
+ Typically a session factory is looked up by type. Only if multiple sessions
+ are declared, a name can be used to distinct them.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="init" type="tns:initType" default="lazy">
+ <annotation><documentation>Specifies when and how this object should be
+ initialized. Default is lazy.</documentation></annotation>
+ </attribute>
+ <attribute name="annotations">
+ <annotation><documentation>Indicates if annotations should be enabled or
+ disabled.</documentation></annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="enabled" />
+ <enumeration value="disabled" />
+ </restriction>
+ </simpleType>
+ </attribute>
+ </complexType>
+
+ <complexType name="businessCalendarDayType">
+ <attribute name="hours" type="string">
+ <annotation><documentation>The working hours of this day. Day parts are separated
+ with 'and'. Begin and end hours are separated by '-'. E.g:
+ 9:00-12:00 and 12:30-17:00
+ </documentation></annotation>
+ </attribute>
+ </complexType>
+
+
+
+ <!-- ### SIMPLE VALUE TYPES ############################################## -->
+
+ <simpleType name="booleanValueType">
+ <restriction base="string">
+ <enumeration value="true" />
+ <enumeration value="on" />
+ <enumeration value="enabled" />
+ <enumeration value="false" />
+ <enumeration value="off" />
+ <enumeration value="disabled" />
+ </restriction>
+ </simpleType>
+
+ <simpleType name="hibernateSchemaOperationType">
+ <restriction base="string">
+ <enumeration value="update" />
+ <enumeration value="create" />
+ </restriction>
+ </simpleType>
+
+ <simpleType name="hibernateCacheUsageType">
+ <restriction base="string">
+ <enumeration value="read-only" />
+ <enumeration value="nonstrict-read-write" />
+ <enumeration value="read-write" />
+ <enumeration value="transactional" />
+ </restriction>
+ </simpleType>
+
+ <simpleType name="initType">
+ <annotation><documentation>Specifies when and how this object should be
+ initialized. Default is lazy.
+
+ <p><code><b>lazy</b></code>: The object is only created when it is asked for.
+ In case of transitive dependencies, the object might not yet be initialized.
+ </p>
+
+ <p><code><b>eager</b></code>: The object is created when the context is created.
+ In case of transitive dependencies, the object might not yet be initialized.
+ </p>
+
+ <p><code><b>eager</b></code>: The object is created when the context is created.
+ In case of transitive dependencies, the initialization is also mandatory.
+ </p>
+
+ <p><code><b>eager</b></code>: The object is only created when it is asked for.
+ In case of transitive dependencies, initialization is mandatory.
+ </p>
+ </documentation></annotation>
+ <restriction base="string">
+ <enumeration value="lazy" />
+ <enumeration value="eager" />
+ <enumeration value="immediate" />
+ <enumeration value="required" />
+ </restriction>
+ </simpleType>
+
+ <simpleType name="messageSessionTargetType">
+ <restriction base="string">
+ <enumeration value="job-executor" />
+ <enumeration value="jms" />
+ <enumeration value="test" />
+ </restriction>
+ </simpleType>
+
+
+ <!-- ### GROUPS ########################################################## -->
+
+ <group name="persistableDescriptors">
+ <choice>
+ <element ref="tns:byte" />
+ <element ref="tns:char" />
+ <element ref="tns:class" />
+ <element ref="tns:context-ref" />
+ <element ref="tns:double" />
+ <element ref="tns:env-ref" />
+ <element ref="tns:process-engine-ref" />
+ <element ref="tns:false" />
+ <element ref="tns:float" />
+ <element ref="tns:int" />
+ <element ref="tns:jndi" />
+ <element ref="tns:list" />
+ <element ref="tns:long" />
+ <element ref="tns:map" />
+ <element ref="tns:message-session" />
+ <element ref="tns:null" />
+ <element ref="tns:object" />
+ <element ref="tns:pvm-db-session" />
+ <element ref="tns:properties" />
+ <element ref="tns:ref" />
+ <element ref="tns:set" />
+ <element ref="tns:short" />
+ <element ref="tns:string" />
+ <element ref="tns:timer-session" />
+ <element ref="tns:transaction-ref" />
+ <element ref="tns:true" />
+ </choice>
+ </group>
+
+ <group name="allDescriptors">
+ <choice>
+ <group ref="tns:persistableDescriptors" />
+ <element ref="tns:business-calendar" />
+ <element ref="tns:process-service" />
+ <element ref="tns:deployer-manager" />
+ <element ref="tns:hibernate-configuration" />
+ <element ref="tns:hibernate-session-factory" />
+ <element ref="tns:hibernate-session" />
+ <element ref="tns:job-executor" />
+ <element ref="tns:job-test-helper" />
+ <element ref="tns:command-service" />
+ <element ref="tns:transaction" />
+ <element ref="tns:types" />
+ </choice>
+ </group>
+
+ <group name="interceptors">
+ <choice>
+ <element name="environment-interceptor">
+ <annotation><documentation>Interceptor that can be used as part of declaring
+ a command service.
+ </documentation></annotation>
+ </element>
+ <element name="retry-interceptor">
+ <annotation><documentation>Interceptor that retries the method invocation in
+ case of exceptions.
+ </documentation></annotation>
+ <complexType>
+ <attribute name="retries" default="3">
+ <annotation><documentation>Max number of attempts before giving up</documentation></annotation>
+ </attribute>
+ <attribute name="delay" default="50">
+ <annotation><documentation>Delay in milliseconds after the first exception</documentation></annotation>
+ </attribute>
+ <attribute name="delay-factor" default="4">
+ <annotation><documentation>Factor with which the delay is multiplied after subsequent
+ failed attempts. This enables back-off to reduce load in case of repetitive failures.
+ </documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+ <element name="transaction-interceptor">
+ <annotation><documentation>Interceptor that will make sure the transaction is initialized before each
+ invocation and it will issue a setRollbackOnly on the transaction in case an exception occors.
+ </documentation></annotation>
+ </element>
+ </choice>
+ </group>
+
+ <group name="deployers">
+ <choice>
+ <element name="create-process">
+ <annotation><documentation>Deployer that can instantiate the
+ process definition of a given type.
+ </documentation></annotation>
+ <complexType>
+ <attribute name="name" type="string" />
+ <attribute name="class" type="string" use="required"/>
+ </complexType>
+ </element>
+ <element name="check-version">
+ <annotation><documentation>Deployer checks if the version of the
+ deployed process is exactly 1 more then the last version of the same
+ process. If a version already exists, it is left untouched.
+ If no version exists, by default, this deployer will assign
+ a version to the process definition that is 1 higher then the
+ highest deployed version in the DB for that process name. This
+ default can be overridden by the 'assign' attribute.
+ </documentation></annotation>
+ <complexType>
+ <attribute name="assign" default="true">
+ <annotation><documentation>In case there the process definition
+ has not be given a version explicitely, this attribute specifies
+ if this deployer should assign a version. The assigned version
+ will be 1 higher then the highest version in the db for processes
+ with the same name. Starting with 1 if no similarly named procses
+ definitions are found.
+ </documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+ <element name="create-id">
+ <annotation><documentation>Deployer verifies if the version of the
+ deployed process is exactly 1 more then the last version of the same
+ process.
+ </documentation></annotation>
+ </element>
+ <element name="save-process">
+ <annotation><documentation>Deployer that saves the process with
+ the PvmDbSession.
+ </documentation></annotation>
+ </element>
+ </choice>
+ </group>
+
+ <group name="operations">
+ <choice>
+ <element name="enlist">
+ <annotation><documentation>Enlists this object (assumes a org.jbpm.tx.Resource) with the current org.jbpm.tx.StandardTransaction</documentation></annotation>
+ <complexType>
+ <attribute name="transaction" type="string">
+ <annotation><documentation>Optional reference to the name of the
+ standard transaction. If no transaction name is specified, the transaction
+ is looked up by type in the environment.
+ </documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+ <element name="field">
+ <annotation><documentation>Injects a value into a member field of this object.
+ Exactly one child element must specify the value.
+ </documentation></annotation>
+ <complexType>
+ <group ref="tns:persistableDescriptors" />
+ <attribute name="name">
+ <annotation><documentation>The member field name</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+ <element name="invoke">
+ <annotation><documentation>Invokes a method</documentation></annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="arg" type="tns:argType" />
+ </choice>
+ <attribute name="method" type="string" use="required">
+ <annotation><documentation>the method name</documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+ <element name="subscribe">
+ <annotation><documentation>Subscribes this object to an observable</documentation></annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="arg" type="tns:argType" />
+ </choice>
+ <attribute name="context" type="string">
+ <annotation><documentation>The context in which to find the observable. If not specified,
+ the context of this object will be taken. If no observable object names are specified, the
+ context object itself will be used as the observable.</documentation></annotation>
+ </attribute>
+ <attribute name="to" default="object-events">
+ <annotation><documentation>Indicates if this object is interested in the events fired by
+ the object itself (object-events) or in the wire events fired by the wire context
+ (wire-events).</documentation></annotation>
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="wire-events" />
+ <enumeration value="object-events" />
+ </restriction>
+ </simpleType>
+ </attribute>
+ <attribute name="event" type="string">
+ <annotation><documentation>A single event. See 'events' for more information.</documentation></annotation>
+ </attribute>
+ <attribute name="events" type="string">
+ <annotation><documentation>Comma separated list of events to listen to, filtering out all other events.
+ If no events are specified or if the '*' wildcard is specified, the object will be notified of all events.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="object" type="string">
+ <annotation><documentation>A single object name. See 'objects' for more information.</documentation></annotation>
+ </attribute>
+ <attribute name="objects" type="string">
+ <annotation><documentation>Comma separated list of object names to listen to.
+ If no objects are specified the specified context will be used as the observable.
+ </documentation></annotation>
+ </attribute>
+ <attribute name="method" type="string">
+ <annotation><documentation>Name of the method to invoke. If no method is specified, it is assumed that the
+ object implements the Listener interface. Nested 'arg' elements can be used to provide arguments
+ in the method invocation.
+ </documentation></annotation>
+ </attribute>
+ </complexType>
+ </element>
+ </choice>
+ </group>
+
+</schema>
\ No newline at end of file
More information about the jbpm-commits
mailing list