Merged HEAD-QA to HEAD (4.2) (including moving test classes into separate folders)

51903 to 54309 


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@54310 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Samuel Langlois
2013-08-20 17:17:31 +00:00
parent 0a36e2af67
commit ab4ca7177f
1576 changed files with 36419 additions and 8603 deletions

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
<property name="databaseType" value="mysql" />
<property name="jdbcUrl" value="jdbc:mysql:///actint" />
<property name="jdbcDriver" value="org.gjt.mm.mysql.Driver" />
<property name="jdbcUsername" value="alfresco" />
<property name="jdbcPassword" value="alfresco" />
<!-- Database configurations -->
<property name="databaseSchemaUpdate" value="check-version" />
<!-- job executor configurations -->
<property name="jobExecutorActivate" value="false" />
<!-- mail server configurations -->
<property name="mailServerPort" value="5025" />
</bean>
</beans>

View File

@@ -0,0 +1,235 @@
create table ACT_GE_PROPERTY (
NAME_ varchar(255),
VALUE_ varchar(255),
REV_ integer,
primary key (NAME_)
) TYPE=InnoDB;
insert into ACT_GE_PROPERTY
values ('schema.version', '5.0.beta1', 1);
insert into ACT_GE_PROPERTY
values ('next.dbid', '1', 1);
create table ACT_GE_BYTEARRAY (
ID_ varchar(255),
REV_ integer,
NAME_ varchar(255),
DEPLOYMENT_ID_ varchar(255),
BYTES_ LONGBLOB,
primary key (ID_)
) TYPE=InnoDB;
create table ACT_RE_DEPLOYMENT (
ID_ varchar(255),
NAME_ varchar(255),
DEPLOY_TIME_ timestamp,
primary key (ID_)
) TYPE=InnoDB;
create table ACT_RU_EXECUTION (
ID_ varchar(255),
REV_ integer,
PROC_INST_ID_ varchar(255),
PARENT_ID_ varchar(255),
PROC_DEF_ID_ varchar(255),
SUPER_EXEC_ varchar(255),
ACTIVITY_ID_ varchar(255),
IS_ACTIVE_ TINYINT,
IS_CONCURRENT_ TINYINT,
IS_SCOPE_ TINYINT,
primary key (ID_)
) TYPE=InnoDB;
create table ACT_RU_JOB (
ID_ varchar(255) NOT NULL,
REV_ integer,
TYPE_ varchar(255) NOT NULL,
LOCK_EXP_TIME_ timestamp,
LOCK_OWNER_ varchar(255),
EXCLUSIVE_ boolean,
EXECUTION_ID_ varchar(255),
PROCESS_INSTANCE_ID_ varchar(255),
RETRIES_ integer,
EXCEPTION_ varchar(255),
DUEDATE_ timestamp NULL,
REPEAT_ varchar(255),
HANDLER_TYPE_ varchar(255),
HANDLER_CFG_ varchar(255),
primary key (ID_)
) TYPE=InnoDB;
create table ACT_ID_GROUP (
ID_ varchar(255),
REV_ integer,
NAME_ varchar(255),
TYPE_ varchar(255),
primary key (ID_)
) TYPE=InnoDB;
create table ACT_ID_MEMBERSHIP (
USER_ID_ varchar(255),
GROUP_ID_ varchar(255),
primary key (USER_ID_, GROUP_ID_)
) TYPE=InnoDB;
create table ACT_ID_USER (
ID_ varchar(255),
REV_ integer,
FIRST_ varchar(255),
LAST_ varchar(255),
EMAIL_ varchar(255),
PWD_ varchar(255),
primary key (ID_)
) TYPE=InnoDB;
create table ACT_RE_PROC_DEF (
ID_ varchar(255),
NAME_ varchar(255),
KEY_ varchar(255),
VERSION_ integer,
DEPLOYMENT_ID_ varchar(255),
RESOURCE_NAME_ varchar(255),
primary key (ID_)
) TYPE=InnoDB;
create table ACT_RU_TASK (
ID_ varchar(255),
REV_ integer,
EXECUTION_ID_ varchar(255),
PROC_INST_ID_ varchar(255),
PROC_DEF_ID_ varchar(255),
NAME_ varchar(255),
DESCRIPTION_ varchar(255),
FORM_ varchar(255),
ASSIGNEE_ varchar(255),
PRIORITY_ integer,
CREATE_TIME_ timestamp,
START_DEADLINE_ timestamp,
COMPLETION_DEADLINE_ timestamp,
SKIPPABLE_ TINYINT,
primary key (ID_)
) TYPE=InnoDB;
create table ACT_RU_TASKINVOLVEMENT (
ID_ varchar(255),
REV_ integer,
GROUP_ID_ varchar(255),
TYPE_ varchar(255),
USER_ID_ varchar(255),
TASK_ID_ varchar(255),
primary key (ID_)
) TYPE=InnoDB;
create table ACT_RU_VARIABLE (
ID_ varchar(255) not null,
REV_ integer,
TYPE_ varchar(255) not null,
NAME_ varchar(255) not null,
EXECUTION_ID_ varchar(255),
PROC_INST_ID_ varchar(255),
TASK_ID_ varchar(255),
BYTEARRAY_ID_ varchar(255),
DATE_ timestamp,
DOUBLE_ double,
LONG_ bigint,
TEXT_ varchar(255),
primary key (ID_)
) TYPE=InnoDB;
create table ACT_HI_PROC_INST (
ID_ varchar(255) not null,
PROC_INST_ID_ varchar(255) not null,
PROC_DEF_ID_ varchar(255) not null,
START_TIME_ datetime not null,
END_TIME_ datetime,
DURATION_ bigint,
-- TODO: check endStateName length
END_ACT_ID_ varchar(255),
primary key (ID_),
unique (PROC_INST_ID_)
) TYPE=InnoDB;
create table ACT_HI_ACT_INST (
ID_ varchar(255) not null,
ACT_ID_ varchar(255) not null,
ACT_NAME_ varchar(255),
ACT_TYPE_ varchar(255) not null,
PROC_INST_ID_ varchar(255) not null,
PROC_DEF_ID_ varchar(255) not null,
START_TIME_ datetime not null,
END_TIME_ datetime,
DURATION_ bigint,
primary key (ID_),
unique (ACT_ID_, PROC_INST_ID_)
) TYPE=InnoDB;
alter table ACT_GE_BYTEARRAY
add constraint FK_ACT_BYTEARR_DEPL
foreign key (DEPLOYMENT_ID_)
references ACT_RE_DEPLOYMENT (ID_);
alter table ACT_RU_EXECUTION
add constraint FK_ACT_EXE_PROCINST
foreign key (PROC_INST_ID_)
references ACT_RU_EXECUTION (ID_) on delete cascade on update cascade;
alter table ACT_RU_EXECUTION
add constraint FK_ACT_EXE_PARENT
foreign key (PARENT_ID_)
references ACT_RU_EXECUTION (ID_);
alter table ACT_RU_EXECUTION
add constraint FK_ACT_EXE_SUPER
foreign key (SUPER_EXEC_)
references ACT_RU_EXECUTION (ID_);
alter table ACT_ID_MEMBERSHIP
add constraint FK_ACT_MEMB_GROUP
foreign key (GROUP_ID_)
references ACT_ID_GROUP (ID_);
alter table ACT_ID_MEMBERSHIP
add constraint FK_ACT_MEMB_USER
foreign key (USER_ID_)
references ACT_ID_USER (ID_);
alter table ACT_RU_TASKINVOLVEMENT
add constraint FK_ACT_TSKASS_TASK
foreign key (TASK_ID_)
references ACT_RU_TASK (ID_);
alter table ACT_RU_TASK
add constraint FK_ACT_TASK_EXEC
foreign key (EXECUTION_ID_)
references ACT_RU_EXECUTION (ID_);
alter table ACT_RU_TASK
add constraint FK_ACT_TASK_PROCINST
foreign key (PROC_INST_ID_)
references ACT_RU_EXECUTION (ID_);
alter table ACT_RU_TASK
add constraint FK_ACT_TASK_PROCDEF
foreign key (PROC_DEF_ID_)
references ACT_RE_PROC_DEF (ID_);
alter table ACT_RU_VARIABLE
add constraint FK_ACT_VAR_TASK
foreign key (TASK_ID_)
references ACT_RU_TASK (ID_);
alter table ACT_RU_VARIABLE
add constraint FK_ACT_VAR_EXE
foreign key (EXECUTION_ID_)
references ACT_RU_EXECUTION (ID_);
alter table ACT_RU_VARIABLE
add constraint FK_ACT_VAR_PROCINST
foreign key (PROC_INST_ID_)
references ACT_RU_EXECUTION(ID_);
alter table ACT_RU_VARIABLE
add constraint FK_ACT_VAR_BYTEARRAY
foreign key (BYTEARRAY_ID_)
references ACT_GE_BYTEARRAY (ID_);

View File

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" ?>
<definitions id="adhoc-definitions"
typeLanguage="http://www.w3.org/2001/XMLSchema"
expressionLanguage="http://www.w3.org/1999/XPath"
targetNamespace="http://activiti.org/bpmn20"
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:activiti="http://activiti.org/bpmn">
<process isExecutable="true" id="adhoc" name="Adhoc Process">
<startEvent id="start"
activiti:formKey="adhocStart.form" />
<sequenceFlow id='flow1'
sourceRef='start'
targetRef='adhocTask' />
<userTask id="adhocTask" name="Adhoc Task"
activiti:formKey="adhocTask.form" >
<documentation>
Perform some arbitrary human task.
</documentation>
<humanPerformer>
<resourceAssignmentExpression>
<formalExpression>${taskAssignee}</formalExpression>
</resourceAssignmentExpression>
</humanPerformer>
</userTask>
<sequenceFlow id='flow2'
sourceRef='adhocTask'
targetRef='verifyTaskDone' />
<userTask id="verifyTaskDone" name="Verify Adhoc Task Completed."
activiti:formKey="adhocDone.form" >
<documentation>
Verify the arbitrary task was completed.
</documentation>
<humanPerformer>
<resourceAssignmentExpression>
<formalExpression>${initiator}</formalExpression>
</resourceAssignmentExpression>
</humanPerformer>
</userTask>
<sequenceFlow id='flow3' sourceRef='verifyTaskDone'
targetRef='theEnd' />
<endEvent id="theEnd" />
</process>
</definitions>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-access="field">
<subclass name="org.alfresco.repo.workflow.jbpm.WorkflowTaskInstance"
extends="org.jbpm.taskmgmt.exe.TaskInstance" discriminator-value="W">
<property name="jbpmEngineName" type="string" length="50"
column="JBPM_ENGINE_NAME" />
</subclass>
</hibernate-mapping>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-access="field">
<subclass name="org.alfresco.repo.workflow.jbpm.AlfrescoCreateTimerAction"
extends="org.jbpm.graph.def.Action"
discriminator-value="C">
<property name="timerName" column="TIMERNAME_" />
<property name="dueDate" column="DUEDATE_" />
<property name="repeat" column="REPEAT_" />
<property name="transitionName" column="TRANSITIONNAME_" />
<many-to-one name="timerAction"
column="TIMERACTION_"
foreign-key="FK_CRTETIMERACT_TA"
cascade="all" />
</subclass>
</hibernate-mapping>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-access="field">
<subclass name="org.alfresco.repo.workflow.jbpm.AlfrescoExecuteNodeJob"
discriminator-value="X"
extends="org.jbpm.job.ExecuteNodeJob">
</subclass>
</hibernate-mapping>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-access="field" >
<subclass name="org.alfresco.repo.workflow.jbpm.Join"
discriminator-value="J"
extends="org.jbpm.graph.def.Node" />
</hibernate-mapping>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-access="field">
<subclass name="org.alfresco.repo.workflow.jbpm.AlfrescoTaskNode"
discriminator-value="S"
extends="org.jbpm.graph.node.TaskNode">
</subclass>
</hibernate-mapping>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-access="field">
<subclass name="org.alfresco.repo.workflow.jbpm.AlfrescoTimer"
discriminator-value="S"
extends="org.jbpm.job.Timer">
</subclass>
</hibernate-mapping>

View File

@@ -0,0 +1,7 @@
<action-types>
<action-type element="action" class="org.jbpm.graph.def.Action" />
<action-type element="create-timer" class="org.alfresco.repo.workflow.jbpm.CreateTimerAction" />
<action-type element="cancel-timer" class="org.jbpm.scheduler.def.CancelTimerAction" />
<action-type element="script" class="org.jbpm.graph.action.Script" />
<action-type element="mail" class="org.jbpm.graph.action.MailAction" />
</action-types>

View File

@@ -0,0 +1,91 @@
<jbpm-configuration>
<jbpm-context>
<service name="persistence">
<factory>
<bean class="org.jbpm.persistence.db.DbPersistenceServiceFactory">
<field name="isCurrentSessionEnabled">
<true />
</field>
<field name="isTransactionEnabled">
<false />
</field>
</bean>
</factory>
</service>
<service name="tx" factory="org.jbpm.tx.TxServiceFactory" />
<service name="message" factory="org.jbpm.msg.db.DbMessageServiceFactory" />
<service name="scheduler"
factory="org.jbpm.scheduler.db.DbSchedulerServiceFactory" />
<service name="logging"
factory="org.jbpm.logging.db.DbLoggingServiceFactory" />
<service name="authentication"
factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" />
</jbpm-context>
<!--
configuration resource files pointing to default configuration
files in jbpm-{version}.jar
-->
<string name="resource.business.calendar"
value="org/jbpm/calendar/jbpm.business.calendar.properties" />
<string name="resource.default.modules"
value="org/jbpm/graph/def/jbpm.default.modules.properties" />
<string name='resource.converter'
value='org/alfresco/repo/workflow/jbpm/jbpm.converter.properties' />
<string name="resource.action.types"
value="org/alfresco/repo/workflow/jbpm/jbpm.action.types.xml" />
<string name="resource.node.types"
value="org/alfresco/repo/workflow/jbpm/jbpm.node.types.xml" />
<string name="resource.parsers"
value="org/alfresco/repo/workflow/jbpm/jbpm.parsers.xml" />
<string name="resource.varmapping"
value="org/alfresco/repo/workflow/jbpm/jbpm.varmapping.xml" />
<string name="resource.mail.templates" value="jbpm.mail.templates.xml" />
<int name="jbpm.byte.block.size" value="1024" singleton="true" />
<string name="jbpm.mail.smtp.host" value="localhost" />
<bean name="jbpm.task.instance.factory"
class="org.alfresco.repo.workflow.jbpm.WorkflowTaskInstanceFactory"
singleton="true">
<field name="jbpmEngineName">
<string value="jbpm_engine" />
</field>
</bean>
<bean name="jbpm.variable.resolver" class="org.jbpm.jpdl.el.impl.JbpmVariableResolver"
singleton="true" />
<bean name="jbpm.mail.address.resolver" class="org.jbpm.identity.mail.IdentityAddressResolver"
singleton="true" />
<bean name="jbpm.job.executor" class="org.alfresco.repo.workflow.jbpm.AlfrescoJobExecutor">
<field name="jbpmConfiguration">
<ref bean="jbpmConfiguration" />
</field>
<field name="name">
<string value="AlfrescoJbpmJobExecutor" />
</field>
<field name="nbrOfThreads">
<int value="1" />
</field>
<field name="idleInterval">
<int value="90000" />
</field> <!-- 15 minutes -->
<field name="maxIdleInterval">
<int value="3600000" />
</field> <!-- 1 hour -->
<field name="historyMaxSize">
<int value="20" />
</field>
<field name="maxLockTime">
<int value="600000" />
</field> <!-- 10 minutes -->
<field name="lockMonitorInterval">
<int value="60000" />
</field> <!-- 1 minute -->
<field name="lockBufferTime">
<int value="5000" />
</field> <!-- 5 seconds -->
</bean>
</jbpm-configuration>

View File

@@ -0,0 +1,19 @@
# this file contains the mappings between converter types
# and the char that is used in the database. this mapping
# is used by the ConverterEnumType to store the VariableInstance
# converter field. The Converters class provides singleton access
# to these converter classes.
B org.jbpm.context.exe.converter.BooleanToStringConverter
Y org.jbpm.context.exe.converter.BytesToByteArrayConverter
E org.jbpm.context.exe.converter.ByteToLongConverter
C org.jbpm.context.exe.converter.CharacterToStringConverter
A org.jbpm.context.exe.converter.DateToLongConverter
D org.jbpm.context.exe.converter.DoubleToStringConverter
F org.jbpm.context.exe.converter.FloatToStringConverter
G org.jbpm.context.exe.converter.FloatToDoubleConverter
I org.jbpm.context.exe.converter.IntegerToLongConverter
R org.jbpm.context.exe.converter.SerializableToByteArrayConverter
H org.jbpm.context.exe.converter.ShortToLongConverter
N org.alfresco.repo.workflow.jbpm.NodeConverter
L org.alfresco.repo.workflow.jbpm.NodeListConverter

View File

@@ -0,0 +1,105 @@
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<sql-query name="org.alfresco.repo.workflow.findTaskInstancesByActorId">
<!--
Query Result Object[]:
0=> TaskInstance,
1=> TaskMgmtDefinition,
2=> Token,
3=> ProcessInstance,
4=> StartState (Node),
5=> Task,
6=> ProcessDefinition,
7=> Task (StartTask),
8=> ContextInstance
-->
<return alias="taskInstance" class="org.jbpm.taskmgmt.exe.TaskInstance" />
<return alias="taskMgmtDefinition" class="org.jbpm.taskmgmt.def.TaskMgmtDefinition" />
<return-join alias="token" property="taskInstance.token" />
<return-join alias="processInstance" property="token.processInstance" />
<return-join alias="node" property="token.node" />
<return-join alias="task" property="taskInstance.task" />
<return-join alias="processDefinition1" property="task.processDefinition" />
<return-join alias="startTask" property="taskMgmtDefinition.startTask" />
<return alias="contextInstance" class="org.jbpm.context.exe.ContextInstance" />
<![CDATA[
SELECT
{taskInstance.*},
{token.*},
{processInstance.*},
{node.*},
{task.*},
{processDefinition1.*},
{taskMgmtDefinition.*},
{startTask.*},
{contextInstance.*}
FROM
JBPM_TASKINSTANCE taskInstance
JOIN JBPM_TOKEN token ON (taskInstance.TOKEN_ = token.ID_)
LEFT JOIN JBPM_NODE node ON (token.NODE_ = node.ID_)
JOIN JBPM_TASK task ON (taskInstance.TASK_ = task.ID_)
JOIN JBPM_PROCESSINSTANCE processInstance ON (taskInstance.PROCINST_ = processInstance.ID_)
JOIN JBPM_MODULEINSTANCE contextInstance ON (contextInstance.PROCESSINSTANCE_ = processInstance.ID_)
JOIN JBPM_PROCESSDEFINITION processDefinition1 ON (task.PROCESSDEFINITION_ = processDefinition1.ID_)
JOIN JBPM_PROCESSDEFINITION processDefinition2 ON (processInstance.PROCESSDEFINITION_ = processDefinition2.ID_)
JOIN JBPM_MODULEDEFINITION taskMgmtDefinition ON (taskMgmtDefinition.PROCESSDEFINITION_ = processDefinition2.ID_)
JOIN JBPM_TASK startTask ON (taskMgmtDefinition.STARTTASK_ = startTask.ID_)
WHERE
taskInstance.ACTORID_=:actorId
AND taskMgmtDefinition.NAME_ = 'org.jbpm.taskmgmt.def.TaskMgmtDefinition'
AND contextInstance.NAME_='org.jbpm.context.exe.ContextInstance'
AND taskInstance.ISSUSPENDED_ <> :true
AND taskInstance.ISOPEN_= :true
]]>
</sql-query>
<query name="org.alfresco.repo.workflow.findTaskInstancesByActorIdHQL">
select taskInstance
from org.jbpm.taskmgmt.exe.TaskInstance as taskInstance
left join fetch taskInstance.token as token
left join fetch taskInstance.task as task
left join fetch token.processInstance as processInstance
left join fetch processInstance.processDefinition as processDefinition
left join fetch processDefinition.definitions as taskMgmtDefinition
where taskInstance.actorId = :actorId
and taskInstance.isSuspended != true
and taskInstance.isOpen = true
</query>
<query name="org.alfresco.repo.workflow.cacheTaskInstanceProperties">
<![CDATA[
select taskInstance
from org.jbpm.taskmgmt.exe.TaskInstance as taskInstance
left join fetch taskInstance.variableInstances
left join fetch taskInstance.comments
left join fetch taskInstance.pooledActors
left join fetch taskInstance.swimlaneInstance as swimlaneInstance
left join fetch swimlaneInstance.pooledActors
left join fetch taskInstance.token as token
left join fetch token.processInstance as processInstance
left join fetch processInstance.rootToken as rootToken
left join fetch processInstance.instances
left join fetch token.node as node
left join fetch node.leavingTransitions
where taskInstance.id in (:ids)
]]>
</query>
<query name="org.alfresco.repo.workflow.cacheInstanceVariables">
<![CDATA[
select variableMap
from org.jbpm.context.exe.TokenVariableMap as variableMap
left join fetch variableMap.contextInstance as contextInstance
left join fetch variableMap.variableInstances
where contextInstance.id in (:ids)
]]>
</query>
</hibernate-mapping>

View File

@@ -0,0 +1,19 @@
<node-types>
<node-type element="start-state" class="org.jbpm.graph.node.StartState" />
<node-type element="end-state" class="org.jbpm.graph.node.EndState" />
<node-type element="node" class="org.jbpm.graph.def.Node" />
<node-type element="state" class="org.jbpm.graph.node.State" />
<node-type element="task-node" class="org.jbpm.graph.node.TaskNode" />
<node-type element="fork" class="org.jbpm.graph.node.Fork" />
<node-type element="join" class="org.alfresco.repo.workflow.jbpm.Join" />
<node-type element="decision" class="org.jbpm.graph.node.Decision" />
<node-type element="process-state" class="org.jbpm.graph.node.ProcessState" />
<node-type element="super-state" class="org.jbpm.graph.def.SuperState" />
<node-type element="merge" class="org.jbpm.graph.node.Merge" />
<node-type element="milestone-node" class="org.jbpm.graph.node.MilestoneNode" />
<node-type element="interleave-start" class="org.jbpm.graph.node.InterleaveStart" />
<node-type element="interleave-end" class="org.jbpm.graph.node.InterleaveEnd" />
<node-type element="mail-node" class="org.jbpm.graph.node.MailNode" />
<node-type element="page" class="org.jboss.seam.pageflow.Page" />
<node-type element="start-page" class="org.jboss.seam.pageflow.Page" />
</node-types>

View File

@@ -0,0 +1,4 @@
<parsers>
<parser class="org.alfresco.repo.workflow.jbpm.JBPMJpdlArchiveParser" />
<parser class="org.jbpm.jpdl.par.FileArchiveParser" />
</parsers>

View File

@@ -0,0 +1,198 @@
<!--
# This file specifies how jbpm will store variables into the database.
#
# If jbpm needs to determine how to store a variable into the database,
# the jbpm-types below or scanned in sequence as they are specified here.
# For each jbpm-type, jbpm will see if the give variable object matches
# with the matcher bean. If there is a match, the converter (optional)
# and the variable instance will be used to store and retrieve
# the variable value for the rest of its lifetime till the variable is
# deleted.
-->
<jbpm-types>
<list name="jbpm.types" singleton="true">
<!-- java.lang.String -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.ClassNameMatcher">
<field name="className"><string value="java.lang.String" /></field>
</bean>
</matcher>
<variable-instance class="org.jbpm.context.exe.variableinstance.StringInstance" />
</jbpm-type>
<!-- java.lang.Boolean -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.ClassNameMatcher">
<field name="className"><string value="java.lang.Boolean" /></field>
</bean>
</matcher>
<converter class="org.jbpm.context.exe.converter.BooleanToStringConverter" />
<variable-instance class="org.jbpm.context.exe.variableinstance.StringInstance" />
</jbpm-type>
<!-- java.lang.Character -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.ClassNameMatcher">
<field name="className"><string value="java.lang.Character" /></field>
</bean>
</matcher>
<converter class="org.jbpm.context.exe.converter.CharacterToStringConverter" />
<variable-instance class="org.jbpm.context.exe.variableinstance.StringInstance" />
</jbpm-type>
<!-- java.lang.Long -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.ClassNameMatcher">
<field name="className"><string value="java.lang.Long" /></field>
</bean>
</matcher>
<variable-instance class="org.jbpm.context.exe.variableinstance.LongInstance" />
</jbpm-type>
<!-- java.lang.Byte -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.ClassNameMatcher">
<field name="className"><string value="java.lang.Byte" /></field>
</bean>
</matcher>
<converter class="org.jbpm.context.exe.converter.ByteToLongConverter" />
<variable-instance class="org.jbpm.context.exe.variableinstance.LongInstance" />
</jbpm-type>
<!-- java.lang.Short -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.ClassNameMatcher">
<field name="className"><string value="java.lang.Short" /></field>
</bean>
</matcher>
<converter class="org.jbpm.context.exe.converter.ShortToLongConverter" />
<variable-instance class="org.jbpm.context.exe.variableinstance.LongInstance" />
</jbpm-type>
<!-- java.lang.Integer -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.ClassNameMatcher">
<field name="className"><string value="java.lang.Integer" /></field>
</bean>
</matcher>
<converter class="org.jbpm.context.exe.converter.IntegerToLongConverter" />
<variable-instance class="org.jbpm.context.exe.variableinstance.LongInstance" />
</jbpm-type>
<!-- java.lang.Double -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.ClassNameMatcher">
<field name="className"><string value="java.lang.Double" /></field>
</bean>
</matcher>
<variable-instance class="org.jbpm.context.exe.variableinstance.DoubleInstance" />
</jbpm-type>
<!-- java.lang.Float -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.ClassNameMatcher">
<field name="className"><string value="java.lang.Float" /></field>
</bean>
</matcher>
<converter class="org.jbpm.context.exe.converter.FloatToDoubleConverter" />
<variable-instance class="org.jbpm.context.exe.variableinstance.DoubleInstance" />
</jbpm-type>
<!-- java.util.Date -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.ClassNameMatcher">
<field name="className"><string value="java.util.Date" /></field>
</bean>
</matcher>
<variable-instance class="org.jbpm.context.exe.variableinstance.DateInstance" />
</jbpm-type>
<!-- org.alfresco.repo.workflow.jbpm.JBPMNode -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.ClassNameMatcher">
<field name="className"><string value="org.alfresco.repo.workflow.jbpm.JBPMNode" /></field>
</bean>
</matcher>
<converter class="org.alfresco.repo.workflow.jbpm.NodeConverter" />
<variable-instance class="org.jbpm.context.exe.variableinstance.StringInstance" />
</jbpm-type>
<!-- org.alfresco.repo.workflow.jbpm.JBPMNodeList -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.ClassNameMatcher">
<field name="className"><string value="org.alfresco.repo.workflow.jbpm.JBPMNodeList" /></field>
</bean>
</matcher>
<converter class="org.alfresco.repo.workflow.jbpm.NodeListConverter" />
<variable-instance class="org.jbpm.context.exe.variableinstance.ByteArrayInstance" />
</jbpm-type>
<!-- byte[] -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.ClassNameMatcher">
<field name="className"><string value="[B" /></field>
</bean>
</matcher>
<converter class="org.jbpm.context.exe.converter.BytesToByteArrayConverter" />
<variable-instance class="org.jbpm.context.exe.variableinstance.ByteArrayInstance" />
</jbpm-type>
<!-- hibernatable long id types -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.HibernateLongIdMatcher" />
</matcher>
<variable-instance class="org.jbpm.context.exe.variableinstance.HibernateLongInstance" />
</jbpm-type>
<!-- hibernatable string id types -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.HibernateStringIdMatcher" />
</matcher>
<variable-instance class="org.jbpm.context.exe.variableinstance.HibernateStringInstance" />
</jbpm-type>
<!-- java.io.Serializable -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.SerializableMatcher" />
</matcher>
<converter class="org.jbpm.context.exe.converter.SerializableToByteArrayConverter" />
<variable-instance class="org.jbpm.context.exe.variableinstance.ByteArrayInstance" />
</jbpm-type>
<!-- hibernatable ejb3 types -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.Ejb3Matcher" />
</matcher>
<variable-instance class="org.jbpm.context.exe.variableinstance.Ejb3Instance" />
</jbpm-type>
<!-- JSR 170 JCR Node -->
<jbpm-type>
<matcher>
<bean class="org.jbpm.context.exe.matcher.JcrNodeMatcher" />
</matcher>
<variable-instance class="org.jbpm.context.exe.variableinstance.JcrNodeInstance" />
</jbpm-type>
</list>
</jbpm-types>