Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
开发团队
Flowable Engine
提交
d824d9ee
F
Flowable Engine
项目概览
开发团队
/
Flowable Engine
通知
9
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Flowable Engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d824d9ee
编写于
7月 31, 2010
作者:
T
tombaeyens
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ACT-60 split persistence session into multiple separately pluggable sessions
上级
161b7dbf
变更
66
展开全部
隐藏空白更改
内联
并排
Showing
66 changed file
with
1020 addition
and
1441 deletion
+1020
-1441
modules/activiti-engine-test-cfg/src/test/java/org/activiti/test/db/ProcessEngineInitializationTest.java
...org/activiti/test/db/ProcessEngineInitializationTest.java
+4
-4
modules/activiti-engine/src/main/java/org/activiti/engine/impl/ProcessEngineImpl.java
...main/java/org/activiti/engine/impl/ProcessEngineImpl.java
+4
-4
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/HistorySession.java
...ain/java/org/activiti/engine/impl/cfg/HistorySession.java
+34
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/IdentitySession.java
...in/java/org/activiti/engine/impl/cfg/IdentitySession.java
+24
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/ManagementSession.java
.../java/org/activiti/engine/impl/cfg/ManagementSession.java
+35
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/MessageSession.java
...ain/java/org/activiti/engine/impl/cfg/MessageSession.java
+1
-2
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/ProcessEngineConfiguration.java
.../activiti/engine/impl/cfg/ProcessEngineConfiguration.java
+7
-7
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/RepositorySession.java
.../java/org/activiti/engine/impl/cfg/RepositorySession.java
+0
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/RuntimeSession.java
...ain/java/org/activiti/engine/impl/cfg/RuntimeSession.java
+4
-6
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/TaskSession.java
...c/main/java/org/activiti/engine/impl/cfg/TaskSession.java
+43
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/standalone/IbatisTransactionContext.java
.../engine/impl/cfg/standalone/IbatisTransactionContext.java
+2
-2
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/AddTaskInvolvementCmd.java
...a/org/activiti/engine/impl/cmd/AddTaskInvolvementCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/CheckPassword.java
...main/java/org/activiti/engine/impl/cmd/CheckPassword.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/ClaimTaskCmd.java
.../main/java/org/activiti/engine/impl/cmd/ClaimTaskCmd.java
+4
-4
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/CompleteTaskCmd.java
...in/java/org/activiti/engine/impl/cmd/CompleteTaskCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteDeploymentCmd.java
...ava/org/activiti/engine/impl/cmd/DeleteDeploymentCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteJobsCmd.java
...main/java/org/activiti/engine/impl/cmd/DeleteJobsCmd.java
+4
-4
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteMembershipCmd.java
...ava/org/activiti/engine/impl/cmd/DeleteMembershipCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteTaskCmd.java
...main/java/org/activiti/engine/impl/cmd/DeleteTaskCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteUserCmd.java
...main/java/org/activiti/engine/impl/cmd/DeleteUserCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindCandidateTasksCmd.java
...a/org/activiti/engine/impl/cmd/FindCandidateTasksCmd.java
+4
-4
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindChildExecutionsCmd.java
.../org/activiti/engine/impl/cmd/FindChildExecutionsCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindDeploymentResourcesCmd.java
.../activiti/engine/impl/cmd/FindDeploymentResourcesCmd.java
+1
-1
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindExecutionCmd.java
...n/java/org/activiti/engine/impl/cmd/FindExecutionCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindGroupCmd.java
.../main/java/org/activiti/engine/impl/cmd/FindGroupCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindGroupsByUserCmd.java
...ava/org/activiti/engine/impl/cmd/FindGroupsByUserCmd.java
+4
-4
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindProcessInstanceCmd.java
.../org/activiti/engine/impl/cmd/FindProcessInstanceCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindSingleTaskCmd.java
.../java/org/activiti/engine/impl/cmd/FindSingleTaskCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindTaskByAssigneeCmd.java
...a/org/activiti/engine/impl/cmd/FindTaskByAssigneeCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindUserCmd.java
...c/main/java/org/activiti/engine/impl/cmd/FindUserCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindUsersByGroupCmd.java
...ava/org/activiti/engine/impl/cmd/FindUsersByGroupCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/GetDeploymentResourceCmd.java
...rg/activiti/engine/impl/cmd/GetDeploymentResourceCmd.java
+1
-1
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/GetFormCmd.java
...rc/main/java/org/activiti/engine/impl/cmd/GetFormCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/GetNextIdBlockCmd.java
.../java/org/activiti/engine/impl/cmd/GetNextIdBlockCmd.java
+1
-1
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/GetTableCountCmd.java
...n/java/org/activiti/engine/impl/cmd/GetTableCountCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/GetTableMetaDataCmd.java
...ava/org/activiti/engine/impl/cmd/GetTableMetaDataCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SaveTaskCmd.java
...c/main/java/org/activiti/engine/impl/cmd/SaveTaskCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SaveUserCmd.java
...c/main/java/org/activiti/engine/impl/cmd/SaveUserCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetExecutionVariablesCmd.java
...rg/activiti/engine/impl/cmd/SetExecutionVariablesCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetTaskPriorityCmd.java
...java/org/activiti/engine/impl/cmd/SetTaskPriorityCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/StartProcessInstanceCmd.java
...org/activiti/engine/impl/cmd/StartProcessInstanceCmd.java
+1
-1
modules/activiti-engine/src/main/java/org/activiti/engine/impl/interceptor/CommandContext.java
.../org/activiti/engine/impl/interceptor/CommandContext.java
+21
-6
modules/activiti-engine/src/main/java/org/activiti/engine/impl/jobexecutor/AcquireJobsCmd.java
.../org/activiti/engine/impl/jobexecutor/AcquireJobsCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/jobexecutor/DecrementJobRetriesCmd.java
...iviti/engine/impl/jobexecutor/DecrementJobRetriesCmd.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/jobexecutor/JobExecutorMessageSession.java
...ti/engine/impl/jobexecutor/JobExecutorMessageSession.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/jobexecutor/JobExecutorTimerSession.java
...viti/engine/impl/jobexecutor/JobExecutorTimerSession.java
+4
-4
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/PersistentList.java
.../org/activiti/engine/impl/persistence/PersistentList.java
+0
-83
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbHistorySession.java
...activiti/engine/impl/persistence/db/DbHistorySession.java
+85
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbHistorySessionFactory.java
...i/engine/impl/persistence/db/DbHistorySessionFactory.java
+29
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbIdentitySession.java
...ctiviti/engine/impl/persistence/db/DbIdentitySession.java
+119
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbIdentitySessionFactory.java
.../engine/impl/persistence/db/DbIdentitySessionFactory.java
+29
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbManagementSession.java
...iviti/engine/impl/persistence/db/DbManagementSession.java
+138
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbManagementSessionFactory.java
...ngine/impl/persistence/db/DbManagementSessionFactory.java
+29
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbRepositorySession.java
...iviti/engine/impl/persistence/db/DbRepositorySession.java
+4
-21
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbRuntimeSession.java
...activiti/engine/impl/persistence/db/DbRuntimeSession.java
+169
-15
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbSqlSessionFactory.java
...iviti/engine/impl/persistence/db/DbSqlSessionFactory.java
+1
-2
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbTaskSession.java
...rg/activiti/engine/impl/persistence/db/DbTaskSession.java
+96
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbTaskSessionFactory.java
...viti/engine/impl/persistence/db/DbTaskSessionFactory.java
+29
-0
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/IbatisVariableTypeHandler.java
...engine/impl/persistence/db/IbatisVariableTypeHandler.java
+1
-1
modules/activiti-engine/src/main/java/org/activiti/engine/impl/variable/VariableInstance.java
...a/org/activiti/engine/impl/variable/VariableInstance.java
+4
-4
modules/activiti-engine/src/main/java/org/activiti/impl/db/execution/DbExecutionImpl.java
.../java/org/activiti/impl/db/execution/DbExecutionImpl.java
+4
-4
modules/activiti-engine/src/main/java/org/activiti/impl/persistence/IbatisPersistenceSession.java
...g/activiti/impl/persistence/IbatisPersistenceSession.java
+0
-817
modules/activiti-engine/src/main/java/org/activiti/impl/persistence/IbatisPersistenceSessionFactory.java
...iti/impl/persistence/IbatisPersistenceSessionFactory.java
+0
-308
modules/activiti-engine/src/main/java/org/activiti/impl/persistence/RuntimeSession.java
...in/java/org/activiti/impl/persistence/RuntimeSession.java
+2
-50
modules/activiti-engine/src/main/java/org/activiti/impl/persistence/RuntimeSessionFactory.java
.../org/activiti/impl/persistence/RuntimeSessionFactory.java
+1
-1
modules/activiti-engine/src/main/java/org/activiti/impl/repository/DeployerManager.java
...in/java/org/activiti/impl/repository/DeployerManager.java
+2
-2
未找到文件。
modules/activiti-engine-test-cfg/src/test/java/org/activiti/test/db/ProcessEngineInitializationTest.java
浏览文件 @
d824d9ee
...
...
@@ -21,8 +21,8 @@ import org.activiti.engine.DbSchemaStrategy;
import
org.activiti.engine.ProcessEngine
;
import
org.activiti.engine.ProcessEngineBuilder
;
import
org.activiti.engine.impl.ProcessEngineImpl
;
import
org.activiti.impl.persistence.
IbatisPersistenc
eSessionFactory
;
import
org.activiti.impl.persistence.
Persistenc
eSessionFactory
;
import
org.activiti.impl.persistence.
DbRuntim
eSessionFactory
;
import
org.activiti.impl.persistence.
Runtim
eSessionFactory
;
import
org.activiti.test.LogInitializer
;
import
org.apache.ibatis.session.SqlSession
;
import
org.apache.ibatis.session.SqlSessionFactory
;
...
...
@@ -61,12 +61,12 @@ public class ProcessEngineInitializationTest {
// then update the version to something that is different to the library
// version
PersistenceSessionFactory
persistenc
eSessionFactory
=
processEngine
.
getPersistenceSessionFactory
();
RuntimeSessionFactory
runtim
eSessionFactory
=
processEngine
.
getPersistenceSessionFactory
();
// if(persistenceSessionFactory instanceof CachingPersistenceSessionFactory){
// persistenceSessionFactory = ((CachingPersistenceSessionFactory) persistenceSessionFactory).getTargetPersistenceSessionFactory();
// }
SqlSessionFactory
sqlSessionFactory
=
((
IbatisPersistenceSessionFactory
)
persistenc
eSessionFactory
).
getSqlSessionFactory
();
SqlSessionFactory
sqlSessionFactory
=
((
DbRuntimeSessionFactory
)
runtim
eSessionFactory
).
getSqlSessionFactory
();
SqlSession
sqlSession
=
sqlSessionFactory
.
openSession
();
boolean
success
=
false
;
try
{
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/ProcessEngineImpl.java
浏览文件 @
d824d9ee
...
...
@@ -25,7 +25,7 @@ import org.activiti.engine.TaskService;
import
org.activiti.engine.impl.cfg.ProcessEngineConfiguration
;
import
org.activiti.engine.impl.jobexecutor.JobExecutor
;
import
org.activiti.engine.impl.persistence.db.DbSqlSessionFactory
;
import
org.activiti.impl.persistence.
Persistenc
eSessionFactory
;
import
org.activiti.impl.persistence.
Runtim
eSessionFactory
;
/**
* @author Tom Baeyens
...
...
@@ -44,7 +44,7 @@ public class ProcessEngineImpl implements ProcessEngine {
protected
ManagementService
managementService
;
protected
DbSchemaStrategy
dbSchemaStrategy
;
protected
JobExecutor
jobExecutor
;
protected
PersistenceSessionFactory
persistenc
eSessionFactory
;
protected
RuntimeSessionFactory
runtim
eSessionFactory
;
public
ProcessEngineImpl
(
ProcessEngineConfiguration
processEngineConfiguration
)
{
this
.
processEngineConfiguration
=
processEngineConfiguration
;
...
...
@@ -124,8 +124,8 @@ public class ProcessEngineImpl implements ProcessEngine {
public
DbSchemaStrategy
getDbSchemaStrategy
()
{
return
dbSchemaStrategy
;
}
public
Persistenc
eSessionFactory
getPersistenceSessionFactory
()
{
return
persistenc
eSessionFactory
;
public
Runtim
eSessionFactory
getPersistenceSessionFactory
()
{
return
runtim
eSessionFactory
;
}
public
ProcessEngineConfiguration
getProcessEngineConfiguration
()
{
return
processEngineConfiguration
;
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/HistorySession.java
0 → 100644
浏览文件 @
d824d9ee
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.engine.impl.cfg
;
import
org.activiti.impl.history.HistoricActivityInstanceImpl
;
import
org.activiti.impl.history.HistoricProcessInstanceImpl
;
/**
* @author Christian Stettler
* @author Tom Baeyens
*/
public
interface
HistorySession
{
/* History */
void
saveHistoricProcessInstance
(
HistoricProcessInstanceImpl
historicProcessInstance
);
HistoricProcessInstanceImpl
findHistoricProcessInstance
(
String
processInstanceId
);
void
deleteHistoricProcessInstance
(
String
processInstanceId
);
void
saveHistoricActivityInstance
(
HistoricActivityInstanceImpl
historicActivityInstance
);
HistoricActivityInstanceImpl
findHistoricActivityInstance
(
String
activityId
,
String
processInstanceId
);
void
deleteHistoricActivityInstance
(
String
activityId
,
String
processInstanceId
);
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/IdentitySession.java
浏览文件 @
d824d9ee
...
...
@@ -13,10 +13,34 @@
package
org.activiti.engine.impl.cfg
;
import
java.util.List
;
import
org.activiti.engine.impl.persistence.identity.GroupImpl
;
import
org.activiti.engine.impl.persistence.identity.UserImpl
;
/**
* @author Tom Baeyens
*/
public
interface
IdentitySession
{
/* User */
void
saveUser
(
UserImpl
user
);
UserImpl
findUser
(
String
userId
);
List
<
UserImpl
>
findUsersByGroup
(
String
groupId
);
void
deleteUser
(
String
userId
);
boolean
isValidUser
(
String
userId
);
/* Group */
void
saveGroup
(
GroupImpl
group
);
GroupImpl
findGroup
(
String
groupId
);
List
<
GroupImpl
>
findGroupsByUser
(
String
userId
);
List
<
GroupImpl
>
findGroupsByUserAndType
(
String
userId
,
String
groupType
);
void
deleteGroup
(
String
groupId
);
/* Membership */
void
createMembership
(
String
userId
,
String
groupId
);
void
deleteMembership
(
String
userId
,
String
groupId
);
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/ManagementSession.java
0 → 100644
浏览文件 @
d824d9ee
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.engine.impl.cfg
;
import
java.util.Map
;
import
org.activiti.engine.SortOrder
;
import
org.activiti.engine.TableMetaData
;
import
org.activiti.engine.TablePage
;
import
org.activiti.engine.impl.persistence.db.IdBlock
;
/**
* @author Tom Baeyens
*/
public
interface
ManagementSession
{
/* Management */
Map
<
String
,
Long
>
getTableCount
();
TablePage
getTablePage
(
String
tableName
,
int
offset
,
int
maxResults
,
String
sortColumn
,
SortOrder
sortOrder
);
TableMetaData
getTableMetaData
(
String
tableName
);
IdBlock
getNextDbidBlock
();
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/MessageSession.java
浏览文件 @
d824d9ee
...
...
@@ -12,14 +12,13 @@
*/
package
org.activiti.engine.impl.cfg
;
import
org.activiti.engine.impl.interceptor.Session
;
import
org.activiti.engine.impl.persistence.runtime.MessageImpl
;
/**
* @author Tom Baeyens
*/
public
interface
MessageSession
extends
Session
{
public
interface
MessageSession
{
void
send
(
MessageImpl
message
);
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/ProcessEngineConfiguration.java
浏览文件 @
d824d9ee
...
...
@@ -52,6 +52,7 @@ import org.activiti.engine.impl.jobexecutor.JobHandlers;
import
org.activiti.engine.impl.jobexecutor.TimerExecuteNestedActivityJobHandler
;
import
org.activiti.engine.impl.persistence.db.DbIdGenerator
;
import
org.activiti.engine.impl.persistence.db.DbRepositorySessionFactory
;
import
org.activiti.engine.impl.persistence.db.DbRuntimeSessionFactory
;
import
org.activiti.engine.impl.persistence.db.DbSqlSession
;
import
org.activiti.engine.impl.persistence.db.DbSqlSessionFactory
;
import
org.activiti.engine.impl.persistence.repository.Deployer
;
...
...
@@ -60,9 +61,8 @@ import org.activiti.engine.impl.variable.DefaultVariableTypes;
import
org.activiti.engine.impl.variable.VariableTypes
;
import
org.activiti.impl.event.DefaultProcessEventBus
;
import
org.activiti.impl.history.HistoricDataServiceImpl
;
import
org.activiti.impl.persistence.IbatisPersistenceSessionFactory
;
import
org.activiti.impl.persistence.PersistenceSession
;
import
org.activiti.impl.persistence.PersistenceSessionFactory
;
import
org.activiti.impl.persistence.RuntimeSession
;
import
org.activiti.impl.persistence.RuntimeSessionFactory
;
import
org.activiti.impl.repository.DeployerManager
;
import
org.activiti.pvm.event.ProcessEventBus
;
...
...
@@ -142,7 +142,7 @@ public class ProcessEngineConfiguration {
messageSessionFactory
=
new
JobExecutorMessageSessionFactory
();
timerSessionFactory
=
new
JobExecutorTimerSessionFactory
();
persistenceSessionFactory
=
new
IbatisPersistenc
eSessionFactory
();
persistenceSessionFactory
=
new
DbRuntim
eSessionFactory
();
repositorySessionFactory
=
new
DbRepositorySessionFactory
();
dbSqlSessionFactory
=
new
DbSqlSessionFactory
();
...
...
@@ -191,7 +191,7 @@ public class ProcessEngineConfiguration {
sessionFactories
.
put
(
TimerSession
.
class
,
timerSessionFactory
);
}
if
(
persistenceSessionFactory
!=
null
)
{
sessionFactories
.
put
(
Persistenc
eSession
.
class
,
persistenceSessionFactory
);
sessionFactories
.
put
(
Runtim
eSession
.
class
,
persistenceSessionFactory
);
}
if
(
repositorySessionFactory
!=
null
)
{
sessionFactories
.
put
(
RepositorySession
.
class
,
repositorySessionFactory
);
...
...
@@ -257,8 +257,8 @@ public class ProcessEngineConfiguration {
return
persistenceSessionFactory
;
}
public
void
setPersistenceSessionFactory
(
PersistenceSessionFactory
persistenc
eSessionFactory
)
{
this
.
persistenceSessionFactory
=
persistenc
eSessionFactory
;
public
void
setPersistenceSessionFactory
(
RuntimeSessionFactory
runtim
eSessionFactory
)
{
this
.
persistenceSessionFactory
=
runtim
eSessionFactory
;
}
public
String
getProcessEngineName
()
{
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/RepositorySession.java
浏览文件 @
d824d9ee
...
...
@@ -14,7 +14,6 @@
package
org.activiti.engine.impl.cfg
;
import
java.util.List
;
import
java.util.Map
;
import
org.activiti.engine.DeploymentBuilder
;
import
org.activiti.engine.impl.persistence.db.IdBlock
;
...
...
@@ -70,6 +69,4 @@ public interface RepositorySession {
// TODO document that these process definitions are deployed
ProcessDefinitionEntity
findDeployedProcessDefinitionById
(
String
processDefinitionId
);
IdBlock
getNextDbidBlock
();
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/RuntimeSession.java
浏览文件 @
d824d9ee
...
...
@@ -13,7 +13,6 @@
package
org.activiti.engine.impl.cfg
;
import
org.activiti.engine.impl.interceptor.Session
;
import
org.activiti.engine.impl.persistence.runtime.ActivityInstanceEntity
;
import
org.activiti.engine.impl.persistence.runtime.ProcessInstanceEntity
;
...
...
@@ -21,11 +20,10 @@ import org.activiti.engine.impl.persistence.runtime.ProcessInstanceEntity;
/**
* @author Tom Baeyens
*/
public
interface
RuntimeSession
extends
Session
{
public
interface
RuntimeSession
{
void
insert
(
ProcessInstanceEntity
processInstance
);
void
delete
(
ProcessInstanceEntity
processInstance
);
void
insert
ProcessInstance
(
ProcessInstanceEntity
processInstance
);
void
delete
ProcessInstance
(
ProcessInstanceEntity
processInstance
);
void
insert
(
ActivityInstanceEntity
activityInstance
);
void
delete
(
ActivityInstanceEntity
activityInstance
);
void
insertActivityInstance
(
ActivityInstanceEntity
activityInstance
);
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/
persistence/PersistentMap
.java
→
modules/activiti-engine/src/main/java/org/activiti/engine/impl/
cfg/TaskSession
.java
浏览文件 @
d824d9ee
...
...
@@ -10,41 +10,34 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.engine.impl.persistence
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
package
org.activiti.engine.impl.cfg
;
import
java.util.List
;
import
java.util.Map
;
import
org.activiti.engine.Page
;
import
org.activiti.engine.Task
;
import
org.activiti.engine.impl.persistence.task.TaskEntity
;
import
org.activiti.engine.impl.persistence.task.TaskInvolvement
;
/**
* @author Tom Baeyens
*/
public
class
PersistentMap
<
T
,
U
>
extends
HashMap
<
T
,
U
>
{
public
interface
TaskSession
{
private
static
final
long
serialVersionUID
=
1L
;
/* Task */
TaskEntity
findTask
(
String
taskId
);
List
<
TaskEntity
>
findTasksByExecution
(
String
executionId
);
List
<
Task
>
findTasksByAssignee
(
String
assignee
);
List
<
Task
>
findCandidateTasks
(
String
userId
,
List
<
String
>
groupIds
);
protected
List
<
U
>
added
=
new
ArrayList
<
U
>();
protected
List
<
U
>
removed
=
new
ArrayList
<
U
>();
public
U
put
(
T
key
,
U
value
)
{
added
.
add
(
value
);
U
removedValue
=
super
.
put
(
key
,
value
);
if
(
removedValue
!=
null
)
{
removed
.
add
(
removedValue
);
}
return
removedValue
;
}
public
U
remove
(
Object
key
)
{
U
removedValue
=
super
.
remove
(
key
);
if
(
removedValue
!=
null
)
{
removed
.
add
(
removedValue
);
}
return
removedValue
;
}
public
void
clear
()
{
throw
new
UnsupportedOperationException
(
"this method is not available on "
+
getClass
().
getName
());
}
List
<
Task
>
dynamicFindTasks
(
Map
<
String
,
Object
>
params
,
Page
page
);
long
dynamicFindTaskCount
(
Map
<
String
,
Object
>
params
);
/* TaskInvolvement */
List
<
TaskInvolvement
>
findTaskInvolvementsByTask
(
String
taskId
);
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cfg/standalone/IbatisTransactionContext.java
浏览文件 @
d824d9ee
...
...
@@ -23,7 +23,7 @@ import org.activiti.engine.impl.cfg.TransactionListener;
import
org.activiti.engine.impl.cfg.TransactionState
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.db.DbSqlSession
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -76,7 +76,7 @@ public class IbatisTransactionContext implements TransactionContext {
}
}
private
Persistenc
eSession
getPersistenceSession
()
{
private
Runtim
eSession
getPersistenceSession
()
{
return
commandContext
.
getPersistenceSession
();
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/AddTaskInvolvementCmd.java
浏览文件 @
d824d9ee
...
...
@@ -17,7 +17,7 @@ import org.activiti.engine.impl.interceptor.CommandContext;
import
org.activiti.engine.impl.persistence.task.TaskEntity
;
import
org.activiti.engine.impl.persistence.task.TaskInvolvement
;
import
org.activiti.engine.impl.persistence.task.TaskInvolvementType
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -68,8 +68,8 @@ public class AddTaskInvolvementCmd extends CmdVoid {
}
public
void
executeVoid
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
TaskEntity
task
=
persistenc
eSession
.
findTask
(
taskId
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
TaskEntity
task
=
runtim
eSession
.
findTask
(
taskId
);
if
(
task
==
null
)
{
throw
new
ActivitiException
(
"Cannot find task with id "
+
taskId
);
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/CheckPassword.java
浏览文件 @
d824d9ee
...
...
@@ -15,7 +15,7 @@ package org.activiti.engine.impl.cmd;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.identity.UserImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -33,8 +33,8 @@ public class CheckPassword implements Command<Boolean> {
public
Boolean
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
UserImpl
user
=
persistenc
eSession
.
findUser
(
userId
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
UserImpl
user
=
runtim
eSession
.
findUser
(
userId
);
if
(
(
user
!=
null
)
&&
(
password
!=
null
)
&&
(
password
.
equals
(
user
.
getPassword
()))
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/ClaimTaskCmd.java
浏览文件 @
d824d9ee
...
...
@@ -15,7 +15,7 @@ package org.activiti.engine.impl.cmd;
import
org.activiti.engine.ActivitiException
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.task.TaskEntity
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -33,8 +33,8 @@ public class ClaimTaskCmd extends CmdVoid {
}
public
void
executeVoid
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
TaskEntity
task
=
persistenc
eSession
.
findTask
(
taskId
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
TaskEntity
task
=
runtim
eSession
.
findTask
(
taskId
);
if
(
task
==
null
)
{
throw
new
ActivitiException
(
"Cannot find task with id "
+
taskId
);
...
...
@@ -43,7 +43,7 @@ public class ClaimTaskCmd extends CmdVoid {
if
(
task
.
getAssignee
()
!=
null
)
{
throw
new
ActivitiException
(
"Task "
+
taskId
+
" is already claimed by someone else"
);
}
else
{
if
(
persistenc
eSession
.
isValidUser
(
userId
))
{
if
(
runtim
eSession
.
isValidUser
(
userId
))
{
task
.
setAssignee
(
userId
);
}
else
{
throw
new
ActivitiException
(
"Cannot claim task "
+
taskId
+
": user "
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/CompleteTaskCmd.java
浏览文件 @
d824d9ee
...
...
@@ -18,7 +18,7 @@ import org.activiti.engine.ActivitiException;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.task.TaskEntity
;
import
org.activiti.impl.execution.ExecutionImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
import
org.activiti.pvm.runtime.PvmActivityInstance
;
...
...
@@ -36,9 +36,9 @@ public class CompleteTaskCmd extends CmdVoid {
}
public
void
executeVoid
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
TaskEntity
task
=
persistenc
eSession
.
findTask
(
taskId
);
TaskEntity
task
=
runtim
eSession
.
findTask
(
taskId
);
if
(
variables
!=
null
)
{
task
.
setExecutionVariables
(
variables
);
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteDeploymentCmd.java
浏览文件 @
d824d9ee
...
...
@@ -18,7 +18,7 @@ import org.activiti.engine.impl.cfg.RepositorySession;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.repository.ProcessDefinitionEntity
;
import
org.activiti.impl.db.execution.DbExecutionImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
* @author Joram Barrez
...
...
@@ -33,11 +33,11 @@ public class DeleteDeploymentCmd extends CmdVoid {
public
void
executeVoid
(
CommandContext
commandContext
)
{
RepositorySession
repositorySession
=
commandContext
.
getRepositorySession
();
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
List
<
ProcessDefinitionEntity
>
processDefinitions
=
repositorySession
.
findProcessDefinitionsByDeploymentId
(
deploymentId
);
for
(
ProcessDefinitionEntity
processDefinition
:
processDefinitions
)
{
List
<
DbExecutionImpl
>
executions
=
persistenc
eSession
.
findProcessInstancesByProcessDefintionId
(
processDefinition
.
getId
());
List
<
DbExecutionImpl
>
executions
=
runtim
eSession
.
findProcessInstancesByProcessDefintionId
(
processDefinition
.
getId
());
for
(
DbExecutionImpl
execution
:
executions
)
{
execution
.
end
();
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteJobsCmd.java
浏览文件 @
d824d9ee
...
...
@@ -19,7 +19,7 @@ import java.util.List;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.runtime.JobImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -39,10 +39,10 @@ public class DeleteJobsCmd implements Command<Void> {
}
public
Void
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
for
(
String
jobId:
jobIds
)
{
JobImpl
job
=
persistenc
eSession
.
findJobById
(
jobId
);
persistenc
eSession
.
delete
(
job
);
JobImpl
job
=
runtim
eSession
.
findJobById
(
jobId
);
runtim
eSession
.
delete
(
job
);
}
return
null
;
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteMembershipCmd.java
浏览文件 @
d824d9ee
...
...
@@ -13,7 +13,7 @@
package
org.activiti.engine.impl.cmd
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -30,8 +30,8 @@ public class DeleteMembershipCmd extends CmdVoid {
}
public
void
executeVoid
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
persistenc
eSession
.
deleteMembership
(
userId
,
groupId
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
runtim
eSession
.
deleteMembership
(
userId
,
groupId
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteTaskCmd.java
浏览文件 @
d824d9ee
...
...
@@ -15,7 +15,7 @@ package org.activiti.engine.impl.cmd;
import
org.activiti.engine.ActivitiException
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.task.TaskEntity
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -30,8 +30,8 @@ public class DeleteTaskCmd extends CmdVoid {
}
public
void
executeVoid
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
TaskEntity
task
=
persistenc
eSession
.
findTask
(
taskId
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
TaskEntity
task
=
runtim
eSession
.
findTask
(
taskId
);
if
(
task
!=
null
)
{
task
.
delete
();
}
else
{
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/DeleteUserCmd.java
浏览文件 @
d824d9ee
...
...
@@ -13,7 +13,7 @@
package
org.activiti.engine.impl.cmd
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -28,8 +28,8 @@ public class DeleteUserCmd extends CmdVoid {
}
public
void
executeVoid
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
persistenc
eSession
.
deleteUser
(
userId
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
runtim
eSession
.
deleteUser
(
userId
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindCandidateTasksCmd.java
浏览文件 @
d824d9ee
...
...
@@ -20,7 +20,7 @@ import org.activiti.engine.TaskQuery;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.identity.GroupImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
* @author Joram Barrez
...
...
@@ -35,15 +35,15 @@ public class FindCandidateTasksCmd implements Command<List<Task>> {
}
public
List
<
Task
>
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
List
<
String
>
groupIds
=
new
ArrayList
<
String
>();
List
<
GroupImpl
>
groups
=
persistenc
eSession
.
findGroupsByUser
(
userId
);
List
<
GroupImpl
>
groups
=
runtim
eSession
.
findGroupsByUser
(
userId
);
for
(
GroupImpl
group
:
groups
)
{
groupIds
.
add
(
group
.
getId
());
}
return
persistenc
eSession
.
findCandidateTasks
(
userId
,
groupIds
);
return
runtim
eSession
.
findCandidateTasks
(
userId
,
groupIds
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindChildExecutionsCmd.java
浏览文件 @
d824d9ee
...
...
@@ -16,7 +16,7 @@ import java.util.List;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -32,9 +32,9 @@ public class FindChildExecutionsCmd implements Command<List>{
}
public
List
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
return
persistenc
eSession
.
findChildExecutions
(
executionId
);
return
runtim
eSession
.
findChildExecutions
(
executionId
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindDeploymentResourcesCmd.java
浏览文件 @
d824d9ee
...
...
@@ -17,7 +17,7 @@ import java.util.List;
import
org.activiti.engine.impl.cfg.RepositorySession
;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindExecutionCmd.java
浏览文件 @
d824d9ee
...
...
@@ -15,7 +15,7 @@ package org.activiti.engine.impl.cmd;
import
org.activiti.engine.Execution
;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -30,9 +30,9 @@ public class FindExecutionCmd implements Command<Execution> {
}
public
Execution
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
return
persistenc
eSession
.
findExecution
(
executionId
);
return
runtim
eSession
.
findExecution
(
executionId
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindGroupCmd.java
浏览文件 @
d824d9ee
...
...
@@ -15,7 +15,7 @@ package org.activiti.engine.impl.cmd;
import
org.activiti.engine.identity.Group
;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -30,7 +30,7 @@ public class FindGroupCmd implements Command<Group> {
}
public
Group
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
return
persistenc
eSession
.
findGroup
(
groupId
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
return
runtim
eSession
.
findGroup
(
groupId
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindGroupsByUserCmd.java
浏览文件 @
d824d9ee
...
...
@@ -16,7 +16,7 @@ import java.util.List;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -33,13 +33,13 @@ public class FindGroupsByUserCmd implements Command<List> {
}
public
List
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
if
(
groupType
==
null
)
{
return
persistenc
eSession
return
runtim
eSession
.
findGroupsByUser
(
userId
);
}
return
persistenc
eSession
return
runtim
eSession
.
findGroupsByUserAndType
(
userId
,
groupType
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindProcessInstanceCmd.java
浏览文件 @
d824d9ee
...
...
@@ -15,7 +15,7 @@ package org.activiti.engine.impl.cmd;
import
org.activiti.engine.ProcessInstance
;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -30,8 +30,8 @@ public class FindProcessInstanceCmd implements Command<ProcessInstance> {
}
public
ProcessInstance
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
return
persistenc
eSession
.
findExecution
(
id
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
return
runtim
eSession
.
findExecution
(
id
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindSingleTaskCmd.java
浏览文件 @
d824d9ee
...
...
@@ -15,7 +15,7 @@ package org.activiti.engine.impl.cmd;
import
org.activiti.engine.Task
;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -30,8 +30,8 @@ public class FindSingleTaskCmd implements Command<Task> {
}
public
Task
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
return
persistenc
eSession
.
findTask
(
taskId
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
return
runtim
eSession
.
findTask
(
taskId
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindTaskByAssigneeCmd.java
浏览文件 @
d824d9ee
...
...
@@ -18,7 +18,7 @@ import org.activiti.engine.Task;
import
org.activiti.engine.TaskQuery
;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -34,8 +34,8 @@ public class FindTaskByAssigneeCmd implements Command<List<Task>> {
}
public
List
<
Task
>
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
return
persistenc
eSession
.
findTasksByAssignee
(
assignee
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
return
runtim
eSession
.
findTasksByAssignee
(
assignee
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindUserCmd.java
浏览文件 @
d824d9ee
...
...
@@ -15,7 +15,7 @@ package org.activiti.engine.impl.cmd;
import
org.activiti.engine.identity.User
;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -30,7 +30,7 @@ public class FindUserCmd implements Command<User> {
}
public
User
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
return
persistenc
eSession
.
findUser
(
userId
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
return
runtim
eSession
.
findUser
(
userId
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/FindUsersByGroupCmd.java
浏览文件 @
d824d9ee
...
...
@@ -16,7 +16,7 @@ import java.util.List;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -31,7 +31,7 @@ public class FindUsersByGroupCmd implements Command<List> {
}
public
List
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
return
persistenc
eSession
.
findUsersByGroup
(
groupId
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
return
runtim
eSession
.
findUsersByGroup
(
groupId
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/GetDeploymentResourceCmd.java
浏览文件 @
d824d9ee
...
...
@@ -19,7 +19,7 @@ import org.activiti.engine.impl.interceptor.Command;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.repository.ResourceEntity
;
import
org.activiti.engine.impl.persistence.runtime.ByteArrayImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/GetFormCmd.java
浏览文件 @
d824d9ee
...
...
@@ -25,7 +25,7 @@ import org.activiti.engine.impl.scripting.ScriptingEngines;
import
org.activiti.impl.definition.FormReference
;
import
org.activiti.impl.definition.ProcessDefinitionImpl
;
import
org.activiti.impl.execution.ExecutionImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
import
org.activiti.pvm.runtime.PvmActivityInstance
;
...
...
@@ -46,7 +46,7 @@ public class GetFormCmd implements Command<Object> {
}
public
Object
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
RepositorySession
repositorySession
=
commandContext
.
getRepositorySession
();
ProcessDefinitionEntity
processDefinition
=
null
;
TaskEntity
task
=
null
;
...
...
@@ -55,7 +55,7 @@ public class GetFormCmd implements Command<Object> {
if
(
taskId
!=
null
)
{
task
=
persistenc
eSession
.
findTask
(
taskId
);
task
=
runtim
eSession
.
findTask
(
taskId
);
if
(
task
==
null
)
{
throw
new
ActivitiException
(
"No task found for id = '"
+
taskId
+
"'"
);
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/GetNextIdBlockCmd.java
浏览文件 @
d824d9ee
...
...
@@ -16,7 +16,7 @@ import org.activiti.engine.impl.cfg.RepositorySession;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.db.IdBlock
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/GetTableCountCmd.java
浏览文件 @
d824d9ee
...
...
@@ -16,7 +16,7 @@ import java.util.Map;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -25,8 +25,8 @@ import org.activiti.impl.persistence.PersistenceSession;
public
class
GetTableCountCmd
implements
Command
<
Map
<
String
,
Long
>>
{
public
Map
<
String
,
Long
>
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
return
persistenc
eSession
.
getTableCount
();
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
return
runtim
eSession
.
getTableCount
();
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/GetTableMetaDataCmd.java
浏览文件 @
d824d9ee
...
...
@@ -15,7 +15,7 @@ package org.activiti.engine.impl.cmd;
import
org.activiti.engine.TableMetaData
;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -30,8 +30,8 @@ public class GetTableMetaDataCmd implements Command<TableMetaData> {
}
public
TableMetaData
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
return
persistenc
eSession
.
getTableMetaData
(
tableName
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
return
runtim
eSession
.
getTableMetaData
(
tableName
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SaveTaskCmd.java
浏览文件 @
d824d9ee
...
...
@@ -15,7 +15,7 @@ package org.activiti.engine.impl.cmd;
import
org.activiti.engine.Task
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.task.TaskEntity
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
* @author Joram Barrez
...
...
@@ -29,8 +29,8 @@ public class SaveTaskCmd extends CmdVoid {
}
public
void
executeVoid
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
persistenc
eSession
.
insert
((
TaskEntity
)
task
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
runtim
eSession
.
insert
((
TaskEntity
)
task
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SaveUserCmd.java
浏览文件 @
d824d9ee
...
...
@@ -15,7 +15,7 @@ package org.activiti.engine.impl.cmd;
import
org.activiti.engine.identity.User
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.identity.UserImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -30,8 +30,8 @@ public class SaveUserCmd extends CmdVoid {
}
public
void
executeVoid
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
persistenc
eSession
.
saveUser
((
UserImpl
)
user
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
runtim
eSession
.
saveUser
((
UserImpl
)
user
);
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetExecutionVariablesCmd.java
浏览文件 @
d824d9ee
...
...
@@ -17,7 +17,7 @@ import java.util.Map;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.db.execution.DbExecutionImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -34,9 +34,9 @@ public class SetExecutionVariablesCmd implements Command<Object> {
}
public
Object
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
DbExecutionImpl
execution
=
persistenc
eSession
DbExecutionImpl
execution
=
runtim
eSession
.
findExecution
(
executionId
);
execution
.
setVariables
(
variables
);
return
null
;
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/SetTaskPriorityCmd.java
浏览文件 @
d824d9ee
...
...
@@ -15,7 +15,7 @@ package org.activiti.engine.impl.cmd;
import
org.activiti.engine.ActivitiException
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.task.TaskEntity
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -33,8 +33,8 @@ public class SetTaskPriorityCmd extends CmdVoid {
}
public
void
executeVoid
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
TaskEntity
task
=
persistenc
eSession
.
findTask
(
taskId
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
TaskEntity
task
=
runtim
eSession
.
findTask
(
taskId
);
if
(
task
==
null
)
{
throw
new
ActivitiException
(
"Cannot find task with id "
+
taskId
);
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/StartProcessInstanceCmd.java
浏览文件 @
d824d9ee
...
...
@@ -21,7 +21,7 @@ import org.activiti.engine.impl.interceptor.Command;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.impl.definition.ProcessDefinitionImpl
;
import
org.activiti.impl.execution.ExecutionImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/interceptor/CommandContext.java
浏览文件 @
d824d9ee
...
...
@@ -19,13 +19,16 @@ import java.util.logging.Level;
import
java.util.logging.Logger
;
import
org.activiti.engine.ActivitiException
;
import
org.activiti.engine.impl.cfg.HistorySession
;
import
org.activiti.engine.impl.cfg.IdentitySession
;
import
org.activiti.engine.impl.cfg.ManagementSession
;
import
org.activiti.engine.impl.cfg.MessageSession
;
import
org.activiti.engine.impl.cfg.ProcessEngineConfiguration
;
import
org.activiti.engine.impl.cfg.RepositorySession
;
import
org.activiti.engine.impl.cfg.TaskSession
;
import
org.activiti.engine.impl.cfg.TimerSession
;
import
org.activiti.engine.impl.cfg.TransactionContext
;
import
org.activiti.engine.impl.cfg.TransactionContextFactory
;
import
org.activiti.impl.persistence.PersistenceSession
;
import
org.activiti.impl.persistence.RuntimeSession
;
/**
* @author Tom Baeyens
...
...
@@ -173,8 +176,14 @@ public class CommandContext {
return
(
T
)
session
;
}
public
PersistenceSession
getPersistenceSession
()
{
return
getSession
(
PersistenceSession
.
class
);
public
RepositorySession
getRepositorySession
()
{
return
getSession
(
RepositorySession
.
class
);
}
public
RuntimeSession
getPersistenceSession
()
{
return
getSession
(
RuntimeSession
.
class
);
}
public
IdentitySession
getIdentitySession
()
{
return
getSession
(
IdentitySession
.
class
);
}
public
MessageSession
getMessageSession
()
{
return
getSession
(
MessageSession
.
class
);
...
...
@@ -182,8 +191,14 @@ public class CommandContext {
public
TimerSession
getTimerSession
()
{
return
getSession
(
TimerSession
.
class
);
}
public
RepositorySession
getRepositorySession
()
{
return
getSession
(
RepositorySession
.
class
);
public
TaskSession
getTaskSession
()
{
return
getSession
(
TaskSession
.
class
);
}
public
HistorySession
getHistorySession
()
{
return
getSession
(
HistorySession
.
class
);
}
public
ManagementSession
getManagementSession
()
{
return
getSession
(
ManagementSession
.
class
);
}
// getters and setters //////////////////////////////////////////////////////
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/jobexecutor/AcquireJobsCmd.java
浏览文件 @
d824d9ee
...
...
@@ -21,7 +21,7 @@ import org.activiti.engine.impl.interceptor.Command;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.runtime.JobImpl
;
import
org.activiti.engine.impl.util.ClockUtil
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -36,7 +36,7 @@ public class AcquireJobsCmd implements Command<AcquiredJobs> {
}
public
AcquiredJobs
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
String
lockOwner
=
jobExecutor
.
getLockOwner
();
int
lockTimeInMillis
=
jobExecutor
.
getLockTimeInMillis
();
...
...
@@ -44,7 +44,7 @@ public class AcquireJobsCmd implements Command<AcquiredJobs> {
AcquiredJobs
acquiredJobs
=
new
AcquiredJobs
();
List
<
JobImpl
>
jobs
=
persistenc
eSession
.
findNextJobsToExecute
(
maxJobsPerAcquisition
);
List
<
JobImpl
>
jobs
=
runtim
eSession
.
findNextJobsToExecute
(
maxJobsPerAcquisition
);
for
(
JobImpl
job:
jobs
)
{
List
<
String
>
jobIds
=
new
ArrayList
<
String
>();
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/jobexecutor/DecrementJobRetriesCmd.java
浏览文件 @
d824d9ee
...
...
@@ -17,7 +17,7 @@ import org.activiti.engine.impl.cfg.TransactionState;
import
org.activiti.engine.impl.interceptor.Command
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.runtime.JobImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
* @author Tom Baeyens
...
...
@@ -35,8 +35,8 @@ public class DecrementJobRetriesCmd implements Command<Object> {
}
public
Object
execute
(
CommandContext
commandContext
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
JobImpl
job
=
persistenc
eSession
.
findJobById
(
jobId
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
JobImpl
job
=
runtim
eSession
.
findJobById
(
jobId
);
job
.
setRetries
(
job
.
getRetries
()
-
1
);
job
.
setLockOwner
(
null
);
job
.
setLockExpirationTime
(
null
);
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/jobexecutor/JobExecutorMessageSession.java
浏览文件 @
d824d9ee
...
...
@@ -16,7 +16,7 @@ import org.activiti.engine.impl.cfg.MessageSession;
import
org.activiti.engine.impl.cfg.TransactionState
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.persistence.runtime.MessageImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -38,8 +38,8 @@ public class JobExecutorMessageSession implements MessageSession {
}
public
void
send
(
MessageImpl
message
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
persistenc
eSession
.
insert
(
message
);
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
runtim
eSession
.
insert
(
message
);
commandContext
.
getTransactionContext
()
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/jobexecutor/JobExecutorTimerSession.java
浏览文件 @
d824d9ee
...
...
@@ -23,7 +23,7 @@ import org.activiti.engine.impl.interceptor.Session;
import
org.activiti.engine.impl.persistence.runtime.TimerImpl
;
import
org.activiti.engine.impl.util.ClockUtil
;
import
org.activiti.impl.execution.ExecutionImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -62,10 +62,10 @@ public class JobExecutorTimerSession implements TimerSession, Session {
}
public
void
cancelTimers
(
ExecutionImpl
execution
)
{
PersistenceSession
persistenc
eSession
=
commandContext
.
getPersistenceSession
();
List
<
TimerImpl
>
timers
=
persistenc
eSession
.
findTimersByExecutionId
(
execution
.
getId
());
RuntimeSession
runtim
eSession
=
commandContext
.
getPersistenceSession
();
List
<
TimerImpl
>
timers
=
runtim
eSession
.
findTimersByExecutionId
(
execution
.
getId
());
for
(
TimerImpl
timer:
timers
)
{
persistenc
eSession
.
delete
(
timer
);
runtim
eSession
.
delete
(
timer
);
}
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/PersistentList.java
已删除
100644 → 0
浏览文件 @
161b7dbf
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.engine.impl.persistence
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
/**
* @author Tom Baeyens
*/
public
class
PersistentList
<
T
>
extends
ArrayList
<
T
>
{
private
static
final
long
serialVersionUID
=
1L
;
protected
List
<
T
>
added
=
new
ArrayList
<
T
>();
protected
List
<
T
>
removed
=
new
ArrayList
<
T
>();
@Override
public
void
add
(
int
index
,
T
element
)
{
added
.
add
(
element
);
super
.
add
(
index
,
element
);
}
@Override
public
boolean
add
(
T
element
)
{
added
.
add
(
element
);
return
super
.
add
(
element
);
}
@Override
public
boolean
addAll
(
Collection
<
?
extends
T
>
c
)
{
added
.
addAll
(
c
);
return
super
.
addAll
(
c
);
}
@Override
public
boolean
addAll
(
int
index
,
Collection
<
?
extends
T
>
c
)
{
added
.
addAll
(
c
);
return
super
.
addAll
(
index
,
c
);
}
@Override
public
T
remove
(
int
index
)
{
removed
.
add
(
get
(
index
));
return
super
.
remove
(
index
);
}
@Override
public
boolean
remove
(
Object
o
)
{
boolean
isRemoved
=
super
.
remove
(
o
);
if
(
isRemoved
)
{
removed
.
add
((
T
)
o
);
}
return
isRemoved
;
}
@Override
protected
void
removeRange
(
int
fromIndex
,
int
toIndex
)
{
throw
new
UnsupportedOperationException
(
"this method is not available on "
+
getClass
().
getName
());
}
@Override
public
void
clear
()
{
throw
new
UnsupportedOperationException
(
"this method is not available on "
+
getClass
().
getName
());
}
@Override
public
T
set
(
int
index
,
T
element
)
{
throw
new
UnsupportedOperationException
(
"this method is not available on "
+
getClass
().
getName
());
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbHistorySession.java
0 → 100644
浏览文件 @
d824d9ee
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.engine.impl.persistence.db
;
import
java.util.HashMap
;
import
java.util.Map
;
import
org.activiti.engine.impl.cfg.HistorySession
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.interceptor.Session
;
import
org.activiti.impl.history.HistoricActivityInstanceImpl
;
import
org.activiti.impl.history.HistoricProcessInstanceImpl
;
/**
* @author Christian Stettler
* @author Tom Baeyens
*/
public
class
DbHistorySession
implements
HistorySession
,
Session
{
protected
DbSqlSession
dbSqlSession
;
public
DbHistorySession
()
{
this
.
dbSqlSession
=
CommandContext
.
getCurrentSession
(
DbSqlSession
.
class
);
}
public
void
saveHistoricProcessInstance
(
HistoricProcessInstanceImpl
historicProcessInstance
)
{
if
(
historicProcessInstance
.
getId
()
==
null
)
{
historicProcessInstance
.
setId
(
String
.
valueOf
(
idGenerator
.
getNextId
()));
dbSqlSession
.
insert
(
"insertHistoricProcessInstance"
,
historicProcessInstance
);
}
else
{
dbSqlSession
.
update
(
"updateHistoricProcessInstance"
,
historicProcessInstance
);
}
}
public
HistoricProcessInstanceImpl
findHistoricProcessInstance
(
String
processInstanceId
)
{
return
(
HistoricProcessInstanceImpl
)
dbSqlSession
.
selectOne
(
"selectHistoricProcessInstance"
,
processInstanceId
);
}
public
void
deleteHistoricProcessInstance
(
String
processInstanceId
)
{
dbSqlSession
.
delete
(
"deleteHistoricProcessInstance"
,
processInstanceId
);
}
public
void
saveHistoricActivityInstance
(
HistoricActivityInstanceImpl
historicActivityInstance
)
{
if
(
historicActivityInstance
.
getId
()
==
null
)
{
historicActivityInstance
.
setId
(
String
.
valueOf
(
idGenerator
.
getNextId
()));
dbSqlSession
.
insert
(
"insertHistoricActivityInstance"
,
historicActivityInstance
);
}
else
{
dbSqlSession
.
update
(
"updateHistoricActivityInstance"
,
historicActivityInstance
);
}
}
public
HistoricActivityInstanceImpl
findHistoricActivityInstance
(
String
activityId
,
String
processInstanceId
)
{
Map
<
String
,
String
>
parameters
=
new
HashMap
<
String
,
String
>();
parameters
.
put
(
"activityId"
,
activityId
);
parameters
.
put
(
"processInstanceId"
,
processInstanceId
);
return
(
HistoricActivityInstanceImpl
)
dbSqlSession
.
selectOne
(
"selectHistoricActivityInstance"
,
parameters
);
}
public
void
deleteHistoricActivityInstance
(
String
activityId
,
String
processInstanceId
)
{
Map
<
String
,
String
>
parameters
=
new
HashMap
<
String
,
String
>();
parameters
.
put
(
"activityId"
,
activityId
);
parameters
.
put
(
"processInstanceId"
,
processInstanceId
);
dbSqlSession
.
delete
(
"deleteHistoricActivityInstance"
,
parameters
);
}
public
void
close
()
{
}
public
void
flush
()
{
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbHistorySessionFactory.java
0 → 100644
浏览文件 @
d824d9ee
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.engine.impl.persistence.db
;
import
org.activiti.engine.impl.interceptor.Session
;
import
org.activiti.engine.impl.interceptor.SessionFactory
;
/**
* @author Tom Baeyens
*/
public
class
DbHistorySessionFactory
implements
SessionFactory
{
public
Session
openSession
()
{
return
new
DbHistorySession
();
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbIdentitySession.java
0 → 100644
浏览文件 @
d824d9ee
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.engine.impl.persistence.db
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
org.activiti.engine.impl.cfg.IdentitySession
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.interceptor.Session
;
import
org.activiti.engine.impl.persistence.identity.GroupImpl
;
import
org.activiti.engine.impl.persistence.identity.UserImpl
;
/**
* @author Tom Baeyens
*/
public
class
DbIdentitySession
implements
IdentitySession
,
Session
{
protected
DbSqlSession
dbSqlSession
;
public
DbIdentitySession
()
{
this
.
dbSqlSession
=
CommandContext
.
getCurrentSession
(
DbSqlSession
.
class
);
}
public
void
saveUser
(
UserImpl
user
)
{
if
(
user
.
isNew
())
{
dbSqlSession
.
insert
(
"insertUser"
,
user
);
}
else
{
dbSqlSession
.
update
(
"updateUser"
,
user
);
}
}
public
UserImpl
findUser
(
String
userId
)
{
return
(
UserImpl
)
dbSqlSession
.
selectOne
(
"selectUser"
,
userId
);
}
public
List
<
UserImpl
>
findUsersByGroup
(
String
groupId
)
{
return
dbSqlSession
.
selectList
(
"selectUsersByGroup"
,
groupId
);
}
public
List
<
UserImpl
>
findUsers
()
{
return
dbSqlSession
.
selectList
(
"selectUsers"
);
}
public
boolean
isValidUser
(
String
userId
)
{
return
findUser
(
userId
)
!=
null
;
}
public
void
deleteUser
(
String
userId
)
{
dbSqlSession
.
delete
(
"deleteMembershipsForUser"
,
userId
);
dbSqlSession
.
delete
(
"deleteUser"
,
userId
);
}
public
void
saveGroup
(
GroupImpl
group
)
{
if
(
group
.
isNew
())
{
dbSqlSession
.
insert
(
"insertGroup"
,
group
);
}
else
{
dbSqlSession
.
update
(
"updateGroup"
,
group
);
}
}
public
GroupImpl
findGroup
(
String
groupId
)
{
return
(
GroupImpl
)
dbSqlSession
.
selectOne
(
"selectGroup"
,
groupId
);
}
public
List
<
GroupImpl
>
findGroupsByUser
(
String
userId
)
{
return
dbSqlSession
.
selectList
(
"selectGroupsByUser"
,
userId
);
}
public
List
<
GroupImpl
>
findGroupsByUserAndType
(
String
userId
,
String
groupType
)
{
Map
<
String
,
Object
>
parameters
=
new
HashMap
<
String
,
Object
>();
parameters
.
put
(
"userId"
,
userId
);
parameters
.
put
(
"groupType"
,
groupType
);
return
dbSqlSession
.
selectList
(
"selectGroupsByUserAndType"
,
parameters
);
}
public
List
<
GroupImpl
>
findGroups
()
{
return
dbSqlSession
.
selectList
(
"selectGroups"
);
}
public
void
deleteGroup
(
String
groupId
)
{
dbSqlSession
.
delete
(
"deleteMembershipsForGroup"
,
groupId
);
dbSqlSession
.
delete
(
"deleteGroup"
,
groupId
);
}
public
void
createMembership
(
String
userId
,
String
groupId
)
{
Map
<
String
,
Object
>
parameters
=
new
HashMap
<
String
,
Object
>();
parameters
.
put
(
"userId"
,
userId
);
parameters
.
put
(
"groupId"
,
groupId
);
dbSqlSession
.
insert
(
"insertMembership"
,
parameters
);
}
public
void
deleteMembership
(
String
userId
,
String
groupId
)
{
Map
<
String
,
Object
>
parameters
=
new
HashMap
<
String
,
Object
>();
parameters
.
put
(
"userId"
,
userId
);
parameters
.
put
(
"groupId"
,
groupId
);
dbSqlSession
.
delete
(
"deleteMembership"
,
parameters
);
}
public
void
close
()
{
}
public
void
flush
()
{
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbIdentitySessionFactory.java
0 → 100644
浏览文件 @
d824d9ee
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.engine.impl.persistence.db
;
import
org.activiti.engine.impl.interceptor.Session
;
import
org.activiti.engine.impl.interceptor.SessionFactory
;
/**
* @author Tom Baeyens
*/
public
class
DbIdentitySessionFactory
implements
SessionFactory
{
public
Session
openSession
()
{
return
new
DbIdentitySession
();
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbManagementSession.java
0 → 100644
浏览文件 @
d824d9ee
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.engine.impl.persistence.db
;
import
java.sql.DatabaseMetaData
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
org.activiti.engine.ActivitiException
;
import
org.activiti.engine.ActivitiOptimisticLockingException
;
import
org.activiti.engine.SortOrder
;
import
org.activiti.engine.TableMetaData
;
import
org.activiti.engine.TablePage
;
import
org.activiti.engine.impl.cfg.ManagementSession
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.interceptor.Session
;
import
org.activiti.engine.impl.persistence.repository.PropertyEntity
;
import
org.apache.ibatis.session.RowBounds
;
/**
* @author Tom Baeyens
*/
public
class
DbManagementSession
implements
ManagementSession
,
Session
{
protected
DbSqlSession
dbSqlSession
;
public
DbManagementSession
()
{
this
.
dbSqlSession
=
CommandContext
.
getCurrentSession
(
DbSqlSession
.
class
);
}
public
Map
<
String
,
Long
>
getTableCount
()
{
Map
<
String
,
Long
>
tableCount
=
new
HashMap
<
String
,
Long
>();
try
{
for
(
String
tableName:
tableNames
)
{
tableCount
.
put
(
tableName
,
getTableCount
(
tableName
));
}
}
catch
(
Exception
e
)
{
throw
new
ActivitiException
(
"couldn't get table counts"
,
e
);
}
return
tableCount
;
}
protected
long
getTableCount
(
String
tableName
)
{
log
.
fine
(
"selecting table count for "
+
tableName
);
Long
count
=
(
Long
)
dbSqlSession
.
selectOne
(
"selectTableCount"
,
Collections
.
singletonMap
(
"tableName"
,
tableName
));
return
count
;
}
@SuppressWarnings
(
"unchecked"
)
public
TablePage
getTablePage
(
String
tableName
,
int
offset
,
int
maxResults
,
String
sortColumn
,
SortOrder
sortOrder
)
{
TablePage
tablePage
=
new
TablePage
();
Map
<
String
,
String
>
params
=
new
HashMap
<
String
,
String
>();
params
.
put
(
"tableName"
,
tableName
);
if
(
sortColumn
!=
null
)
{
params
.
put
(
"sortColumn"
,
sortColumn
);
if
(
sortOrder
.
equals
(
SortOrder
.
ASCENDING
))
{
params
.
put
(
"sortOrder"
,
"asc"
);
}
else
{
params
.
put
(
"sortOrder"
,
"desc"
);
}
tablePage
.
setSort
(
sortColumn
);
tablePage
.
setOrder
(
sortOrder
);
}
List
<
Map
<
String
,
Object
>>
tableData
=
(
List
<
Map
<
String
,
Object
>>)
dbSqlSession
.
selectList
(
"selectTableData"
,
params
,
new
RowBounds
(
offset
,
maxResults
)
);
tablePage
.
setTableName
(
tableName
);
tablePage
.
setStart
(
offset
);
tablePage
.
setTotal
(
getTableCount
(
tableName
));
tablePage
.
setRows
(
tableData
);
return
tablePage
;
}
public
TableMetaData
getTableMetaData
(
String
tableName
)
{
TableMetaData
result
=
new
TableMetaData
();
try
{
result
.
setTableName
(
tableName
);
DatabaseMetaData
metaData
=
dbSqlSession
.
getConnection
().
getMetaData
();
ResultSet
resultSet
=
metaData
.
getColumns
(
null
,
null
,
tableName
,
null
);
while
(
resultSet
.
next
())
{
String
name
=
resultSet
.
getString
(
"COLUMN_NAME"
);
String
type
=
resultSet
.
getString
(
"TYPE_NAME"
);
result
.
addColumnMetaData
(
name
,
type
);
}
}
catch
(
SQLException
e
)
{
throw
new
ActivitiException
(
"Could not retrieve database metadata: "
+
e
.
getMessage
());
}
return
result
;
}
public
IdBlock
getNextDbidBlock
()
{
String
statement
=
dbdbSqlSession
.
dbdbSqlSessionFactory
.
map
"selectProperty"
;
PropertyEntity
property
=
(
PropertyEntity
)
dbdbSqlSession
.
dbSqlSession
.
selectOne
(
statement
,
"next.dbid"
);
long
oldValue
=
Long
.
parseLong
(
property
.
getValue
());
long
newValue
=
oldValue
+
dbRepositorySessionFactory
.
getIdBlockSize
();
Map
<
String
,
Object
>
updateValues
=
new
HashMap
<
String
,
Object
>();
updateValues
.
put
(
"name"
,
property
.
getName
());
updateValues
.
put
(
"revision"
,
property
.
getDbversion
());
updateValues
.
put
(
"newRevision"
,
property
.
getDbversion
()+
1
);
updateValues
.
put
(
"value"
,
Long
.
toString
(
newValue
));
int
rowsUpdated
=
dbdbSqlSession
.
dbSqlSession
.
update
(
"updateProperty"
,
updateValues
);
if
(
rowsUpdated
!=
1
)
{
throw
new
ActivitiOptimisticLockingException
(
"couldn't get next block of dbids"
);
}
return
new
IdBlock
(
oldValue
,
newValue
-
1
);
}
public
void
close
()
{
}
public
void
flush
()
{
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbManagementSessionFactory.java
0 → 100644
浏览文件 @
d824d9ee
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.engine.impl.persistence.db
;
import
org.activiti.engine.impl.interceptor.Session
;
import
org.activiti.engine.impl.interceptor.SessionFactory
;
/**
* @author Tom Baeyens
*/
public
class
DbManagementSessionFactory
implements
SessionFactory
{
public
Session
openSession
()
{
return
new
DbManagementSession
();
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbRepositorySession.java
浏览文件 @
d824d9ee
...
...
@@ -44,12 +44,6 @@ public class DbRepositorySession implements Session, RepositorySession {
.
getSession
(
DbSqlSession
.
class
);
}
public
void
close
()
{
}
public
void
flush
()
{
}
public
void
deployNew
(
DeploymentEntity
deployment
)
{
dbSqlSession
.
insert
(
deployment
);
for
(
ResourceEntity
resource:
deployment
.
getResources
().
values
())
{
...
...
@@ -167,20 +161,9 @@ public class DbRepositorySession implements Session, RepositorySession {
return
processDefinition
;
}
public
IdBlock
getNextDbidBlock
()
{
String
statement
=
dbSqlSession
.
dbSqlSessionFactory
.
mapStatement
(
"selectProperty"
);
PropertyEntity
property
=
(
PropertyEntity
)
dbSqlSession
.
sqlSession
.
selectOne
(
statement
,
"next.dbid"
);
long
oldValue
=
Long
.
parseLong
(
property
.
getValue
());
long
newValue
=
oldValue
+
dbRepositorySessionFactory
.
getIdBlockSize
();
Map
<
String
,
Object
>
updateValues
=
new
HashMap
<
String
,
Object
>();
updateValues
.
put
(
"name"
,
property
.
getName
());
updateValues
.
put
(
"revision"
,
property
.
getDbversion
());
updateValues
.
put
(
"newRevision"
,
property
.
getDbversion
()+
1
);
updateValues
.
put
(
"value"
,
Long
.
toString
(
newValue
));
int
rowsUpdated
=
dbSqlSession
.
sqlSession
.
update
(
"updateProperty"
,
updateValues
);
if
(
rowsUpdated
!=
1
)
{
throw
new
ActivitiOptimisticLockingException
(
"couldn't get next block of dbids"
);
}
return
new
IdBlock
(
oldValue
,
newValue
-
1
);
public
void
close
()
{
}
public
void
flush
()
{
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbRuntimeSession.java
浏览文件 @
d824d9ee
...
...
@@ -10,44 +10,198 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.engine.impl.persistence.db
;
import
org.activiti.engine.impl.cfg.RuntimeSession
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.logging.Logger
;
import
org.activiti.engine.Job
;
import
org.activiti.engine.Page
;
import
org.activiti.engine.ProcessInstance
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.interceptor.Session
;
import
org.activiti.engine.impl.persistence.runtime.ActivityInstanceEntity
;
import
org.activiti.engine.impl.persistence.runtime.ProcessInstanceEntity
;
import
org.activiti.engine.impl.persistence.runtime.ByteArrayImpl
;
import
org.activiti.engine.impl.persistence.runtime.JobImpl
;
import
org.activiti.engine.impl.persistence.runtime.TimerImpl
;
import
org.activiti.engine.impl.util.ClockUtil
;
import
org.activiti.engine.impl.variable.DeserializedObject
;
import
org.activiti.engine.impl.variable.VariableInstance
;
import
org.activiti.impl.db.execution.DbExecutionImpl
;
import
org.activiti.impl.definition.ProcessDefinitionImpl
;
import
org.activiti.impl.execution.ExecutionImpl
;
import
org.activiti.impl.persistence.RuntimeSession
;
import
org.apache.ibatis.session.RowBounds
;
/**
* @author Joram Barrez
* @author Tom Baeyens
*/
public
class
DbRuntimeSession
implements
Session
,
RuntimeSession
{
private
static
Logger
log
=
Logger
.
getLogger
(
DbRuntimeSession
.
class
.
getName
());
protected
DbSqlSession
dbSqlSession
;
TODO
fix
the
transaction
flush
(
uncommented
to
make
sure
I
don
'
t
forget
)
protected
List
<
DeserializedObject
>
deserializedObjects
=
new
ArrayList
<
DeserializedObject
>();
public
void
addDeserializedObject
(
Object
deserializedObject
,
byte
[]
serializedBytes
,
VariableInstance
variableInstance
)
{
deserializedObjects
.
add
(
new
DeserializedObject
(
deserializedObject
,
serializedBytes
,
variableInstance
));
}
public
DbRuntimeSession
()
{
dbSqlSession
=
CommandContext
.
getCurrent
()
.
getSession
(
DbSqlSession
.
class
);
this
.
dbSqlSession
=
CommandContext
.
getCurrentSession
(
DbSqlSession
.
class
);
}
public
void
close
()
{
// executions ///////////////////////////////////////////////////////////////
public
DbExecutionImpl
findExecution
(
String
executionId
)
{
// TODO check if this execution was already loaded
DbExecutionImpl
execution
=
(
DbExecutionImpl
)
dbSqlSession
.
selectOne
(
"selectExecution"
,
executionId
);
if
(
execution
!=
null
)
{
execution
=
(
DbExecutionImpl
)
loaded
.
add
(
execution
);
}
return
execution
;
}
public
void
flush
()
{
@SuppressWarnings
(
"unchecked"
)
public
List
<
DbExecutionImpl
>
findProcessInstancesByProcessDefintionId
(
String
processDefinitionId
)
{
List
executions
=
dbSqlSession
.
selectList
(
"selectRootExecutionsForProcessDefinition"
,
processDefinitionId
);
return
loaded
.
add
(
executions
);
}
@SuppressWarnings
(
"unchecked"
)
public
List
<
ExecutionImpl
>
findChildExecutions
(
String
parentExecutionid
)
{
List
executions
=
dbSqlSession
.
selectList
(
"selectChildExecutions"
,
parentExecutionid
);
return
loaded
.
add
(
executions
);
}
public
void
deleteExecution
(
String
executionId
)
{
ExecutionImpl
execution
=
findExecution
(
executionId
);
execution
.
end
();
// TODO replace with real delete instead of end(), since this will create history traces
}
public
DbExecutionImpl
findSubProcessInstance
(
String
superExecutionId
)
{
DbExecutionImpl
subProcessInstance
=
(
DbExecutionImpl
)
dbSqlSession
.
selectOne
(
"selectSubProcessInstanceBySuperExecutionId"
,
superExecutionId
);
if
(
subProcessInstance
!=
null
)
{
subProcessInstance
=
(
DbExecutionImpl
)
loaded
.
add
(
subProcessInstance
);
}
return
subProcessInstance
;
}
public
long
findProcessInstanceCountByDynamicCriteria
(
Map
<
String
,
Object
>
params
)
{
return
(
Long
)
dbSqlSession
.
selectOne
(
"selectProcessInstanceCountByDynamicCriteria"
,
params
);
}
@SuppressWarnings
(
"unchecked"
)
public
List
<
ProcessInstance
>
findProcessInstancesByDynamicCriteria
(
Map
<
String
,
Object
>
params
)
{
return
dbSqlSession
.
selectList
(
"selectProcessInstanceByDynamicCriteria"
,
params
);
}
// variables ////////////////////////////////////////////////////////////////
public
List
<
VariableInstance
>
findVariablesByExecutionId
(
String
executionId
)
{
List
variablesInstances
=
dbSqlSession
.
selectList
(
"selectVariablesByExecutionId"
,
executionId
);
loaded
.
add
(
variablesInstances
);
return
variablesInstances
;
}
public
List
<
VariableInstance
>
findVariablesByTaskId
(
String
taskId
)
{
List
variableInstances
=
dbSqlSession
.
selectList
(
"selectVariablesByTaskId"
,
taskId
);
loaded
.
add
(
variableInstances
);
return
variableInstances
;
}
@SuppressWarnings
(
"unchecked"
)
public
byte
[]
getByteArrayBytes
(
String
byteArrayId
)
{
Map
<
String
,
Object
>
temp
=
(
Map
)
dbSqlSession
.
selectOne
(
"selectBytesOfByteArray"
,
byteArrayId
);
return
(
byte
[])
temp
.
get
(
"BYTES_"
);
}
public
ByteArrayImpl
findByteArrayById
(
String
byteArrayId
)
{
ByteArrayImpl
byteArray
=
(
ByteArrayImpl
)
dbSqlSession
.
selectOne
(
"selectByteArrayById"
,
byteArrayId
);
loaded
.
add
(
byteArray
);
return
byteArray
;
}
public
ProcessDefinitionImpl
findProcessDefinitionByDeploymentAndKey
(
String
deploymentId
,
String
processDefinitionKey
)
{
Map
<
String
,
Object
>
parameters
=
new
HashMap
<
String
,
Object
>();
parameters
.
put
(
"deploymentId"
,
deploymentId
);
parameters
.
put
(
"processDefinitionKey"
,
processDefinitionKey
);
return
(
ProcessDefinitionImpl
)
dbSqlSession
.
selectOne
(
"selectProcessDefinitionByDeploymentAndKey"
,
parameters
);
}
// job /////////////////////////////////////////////////////////////////////
public
JobImpl
findJobById
(
String
jobId
)
{
JobImpl
job
=
(
JobImpl
)
dbSqlSession
.
selectOne
(
"selectJob"
,
jobId
);
if
(
job
!=
null
)
{
loaded
.
add
(
job
);
}
return
job
;
}
public
void
delete
(
ProcessInstanceEntity
processInstance
)
{
public
List
<
JobImpl
>
findJobs
()
{
return
dbSqlSession
.
selectList
(
"selectJobs"
);
}
public
List
<
JobImpl
>
findNextJobsToExecute
(
int
maxNrOfJobs
)
{
Date
now
=
ClockUtil
.
getCurrentTime
();
RowBounds
rowBounds
=
new
RowBounds
(
0
,
maxNrOfJobs
);
List
<
JobImpl
>
jobs
=
dbSqlSession
.
selectList
(
"selectNextJobsToExecute"
,
now
,
rowBounds
);
if
(
jobs
!=
null
)
{
loaded
.
add
(
jobs
);
}
return
jobs
;
}
@SuppressWarnings
(
"unchecked"
)
public
List
<
JobImpl
>
findLockedJobs
()
{
return
dbSqlSession
.
selectList
(
"selectLockedJobs"
);
}
@SuppressWarnings
(
"unchecked"
)
public
List
<
TimerImpl
>
findUnlockedTimersByDuedate
(
Date
duedate
,
int
nrOfTimers
)
{
final
String
query
=
"selectUnlockedTimersByDuedate"
;
if
(
nrOfTimers
>
0
)
{
RowBounds
rowBounds
=
new
RowBounds
(
0
,
nrOfTimers
);
return
dbSqlSession
.
selectList
(
statement
(
query
),
duedate
,
rowBounds
);
}
else
{
return
dbSqlSession
.
selectList
(
statement
(
query
),
duedate
);
}
}
public
void
delete
(
ActivityInstanceEntity
activityInstance
)
{
@SuppressWarnings
(
"unchecked"
)
public
List
<
TimerImpl
>
findTimersByExecutionId
(
String
executionId
)
{
return
dbSqlSession
.
selectList
(
"selectTimersByExecutionId"
,
executionId
);
}
public
void
insert
(
ProcessInstanceEntity
processInstance
)
{
@SuppressWarnings
(
"unchecked"
)
public
List
<
Job
>
dynamicFindJobs
(
Map
<
String
,
Object
>
params
,
Page
page
)
{
final
String
query
=
"org.activiti.persistence.selectJobByDynamicCriteria"
;
if
(
page
==
null
)
{
return
dbSqlSession
.
selectList
(
query
,
params
);
}
else
{
return
dbSqlSession
.
selectList
(
query
,
params
,
new
RowBounds
(
page
.
getOffset
(),
page
.
getMaxResults
()));
}
}
public
void
insert
(
ActivityInstanceEntity
activityInstance
)
{
public
long
dynamicJobCount
(
Map
<
String
,
Object
>
params
)
{
return
(
Long
)
dbSqlSession
.
selectOne
(
"org.activiti.persistence.selectJobCountByDynamicCriteria"
,
params
);
}
public
void
close
()
{
}
public
void
flush
()
{
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbSqlSessionFactory.java
浏览文件 @
d824d9ee
...
...
@@ -34,7 +34,6 @@ import org.activiti.engine.impl.interceptor.SessionFactory;
import
org.activiti.engine.impl.persistence.PersistentObject
;
import
org.activiti.engine.impl.util.ClassNameUtil
;
import
org.activiti.engine.impl.util.IoUtil
;
import
org.activiti.impl.persistence.IbatisPersistenceSessionFactory
;
import
org.activiti.impl.persistence.LoadedObject
;
import
org.apache.ibatis.session.ExecutorType
;
import
org.apache.ibatis.session.SqlSession
;
...
...
@@ -66,7 +65,7 @@ public class DbSqlSessionFactory implements SessionFactory, ProcessEngineConfigu
public
void
configurationCompleted
(
ProcessEngineConfiguration
processEngineConfiguration
)
{
this
.
databaseName
=
processEngineConfiguration
.
getDatabaseName
();
this
.
sqlSessionFactory
=
((
IbatisPersistenc
eSessionFactory
)
processEngineConfiguration
.
getPersistenceSessionFactory
()).
getSqlSessionFactory
();
this
.
sqlSessionFactory
=
((
DbRuntim
eSessionFactory
)
processEngineConfiguration
.
getPersistenceSessionFactory
()).
getSqlSessionFactory
();
this
.
idGenerator
=
processEngineConfiguration
.
getIdGenerator
();
this
.
statementMappings
=
databaseSpecificStatements
.
get
(
processEngineConfiguration
.
getDatabaseName
());
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbTaskSession.java
0 → 100644
浏览文件 @
d824d9ee
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.engine.impl.persistence.db
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
org.activiti.engine.Page
;
import
org.activiti.engine.Task
;
import
org.activiti.engine.impl.cfg.TaskSession
;
import
org.activiti.engine.impl.interceptor.CommandContext
;
import
org.activiti.engine.impl.interceptor.Session
;
import
org.activiti.engine.impl.persistence.task.TaskEntity
;
import
org.activiti.engine.impl.persistence.task.TaskInvolvement
;
import
org.apache.ibatis.session.RowBounds
;
/**
* @author Tom Baeyens
*/
public
class
DbTaskSession
implements
TaskSession
,
Session
{
protected
DbSqlSession
dbSqlSession
;
public
DbTaskSession
()
{
this
.
dbSqlSession
=
CommandContext
.
getCurrentSession
(
DbSqlSession
.
class
);
}
// tasks ////////////////////////////////////////////////////////////////////
public
TaskEntity
findTask
(
String
id
)
{
TaskEntity
task
=
(
TaskEntity
)
dbSqlSession
.
selectOne
(
"selectTask"
,
id
);
if
(
task
!=
null
)
{
task
=
(
TaskEntity
)
loaded
.
add
(
task
);
}
return
task
;
}
@SuppressWarnings
(
"unchecked"
)
public
List
<
TaskInvolvement
>
findTaskInvolvementsByTask
(
String
taskId
)
{
List
taskInvolvements
=
dbSqlSession
.
selectList
(
"selectTaskInvolvementsByTask"
,
taskId
);
return
loaded
.
add
(
taskInvolvements
);
}
@SuppressWarnings
(
"unchecked"
)
public
List
<
TaskEntity
>
findTasksByExecution
(
String
executionId
)
{
List
tasks
=
dbSqlSession
.
selectList
(
"selectTaskByExecution"
,
executionId
);
return
loaded
.
add
(
tasks
);
}
@SuppressWarnings
(
"unchecked"
)
public
List
<
Task
>
findCandidateTasks
(
String
userId
,
List
<
String
>
groupIds
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"userId"
,
userId
);
params
.
put
(
"groupIds"
,
groupIds
);
List
tasks
=
(
List
)
dbSqlSession
.
selectList
(
"selectCandidateTasks"
,
params
);
return
loaded
.
add
(
tasks
);
}
@SuppressWarnings
(
"unchecked"
)
public
List
<
Task
>
findTasksByAssignee
(
String
assignee
)
{
return
dbSqlSession
.
selectList
(
"selectTasksByAssignee"
,
assignee
);
}
@SuppressWarnings
(
"unchecked"
)
public
List
<
Task
>
dynamicFindTasks
(
Map
<
String
,
Object
>
params
,
Page
page
)
{
final
String
query
=
"selectTaskByDynamicCriteria"
;
if
(
page
==
null
)
{
return
dbSqlSession
.
selectList
(
query
,
params
);
}
else
{
return
dbSqlSession
.
selectList
(
query
,
params
,
new
RowBounds
(
page
.
getOffset
(),
page
.
getMaxResults
()));
}
}
public
long
dynamicFindTaskCount
(
Map
<
String
,
Object
>
params
)
{
return
(
Long
)
dbSqlSession
.
selectOne
(
"selectTaskCountByDynamicCriteria"
,
params
);
}
public
void
close
()
{
}
public
void
flush
()
{
}
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/db/DbTaskSessionFactory.java
0 → 100644
浏览文件 @
d824d9ee
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.engine.impl.persistence.db
;
import
org.activiti.engine.impl.interceptor.Session
;
import
org.activiti.engine.impl.interceptor.SessionFactory
;
/**
* @author Tom Baeyens
*/
public
class
DbTaskSessionFactory
implements
SessionFactory
{
public
Session
openSession
()
{
return
new
DbTaskSession
();
}
}
modules/activiti-engine/src/main/java/org/activiti/
impl/persistence
/IbatisVariableTypeHandler.java
→
modules/activiti-engine/src/main/java/org/activiti/
engine/impl/persistence/db
/IbatisVariableTypeHandler.java
浏览文件 @
d824d9ee
...
...
@@ -11,7 +11,7 @@
* limitations under the License.
*/
package
org.activiti.
impl.persistence
;
package
org.activiti.
engine.impl.persistence.db
;
import
java.sql.CallableStatement
;
import
java.sql.PreparedStatement
;
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/variable/VariableInstance.java
浏览文件 @
d824d9ee
...
...
@@ -21,7 +21,7 @@ import org.activiti.engine.impl.persistence.PersistentObject;
import
org.activiti.engine.impl.persistence.runtime.ByteArrayImpl
;
import
org.activiti.engine.impl.persistence.task.TaskEntity
;
import
org.activiti.impl.db.execution.DbExecutionImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
* @author Tom Baeyens
...
...
@@ -79,11 +79,11 @@ public class VariableInstance implements Serializable, PersistentObject {
}
public
void
delete
()
{
PersistenceSession
persistenc
eSession
=
CommandContext
.
getCurrent
().
getPersistenceSession
();
persistenc
eSession
.
delete
(
this
);
RuntimeSession
runtim
eSession
=
CommandContext
.
getCurrent
().
getPersistenceSession
();
runtim
eSession
.
delete
(
this
);
if
(
byteArrayValueId
!=
null
)
{
persistenc
eSession
.
delete
(
getByteArrayValue
());
runtim
eSession
.
delete
(
getByteArrayValue
());
}
}
...
...
modules/activiti-engine/src/main/java/org/activiti/impl/db/execution/DbExecutionImpl.java
浏览文件 @
d824d9ee
...
...
@@ -26,7 +26,7 @@ import org.activiti.engine.impl.persistence.task.TaskEntity;
import
org.activiti.impl.definition.ActivityImpl
;
import
org.activiti.impl.definition.ProcessDefinitionImpl
;
import
org.activiti.impl.execution.ExecutionImpl
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
* @author Tom Baeyens
...
...
@@ -244,20 +244,20 @@ public class DbExecutionImpl extends ExecutionImpl implements PersistentObject {
ensureVariableMapInitialized
();
PersistenceSession
persistenc
eSession
=
CommandContext
.
getCurrent
().
getPersistenceSession
();
RuntimeSession
runtim
eSession
=
CommandContext
.
getCurrent
().
getPersistenceSession
();
Set
<
String
>
variableNames
=
new
HashSet
<
String
>(
variableMap
.
getVariableNames
());
for
(
String
variableName
:
variableNames
)
{
variableMap
.
deleteVariable
(
variableName
);
}
List
<
TaskEntity
>
tasks
=
persistenc
eSession
.
findTasksByExecution
(
id
);
List
<
TaskEntity
>
tasks
=
runtim
eSession
.
findTasksByExecution
(
id
);
for
(
TaskEntity
task
:
tasks
)
{
task
.
delete
();
}
// then delete execution
persistenc
eSession
.
delete
(
this
);
runtim
eSession
.
delete
(
this
);
}
// variables ////////////////////////////////////////////////////////////////
...
...
modules/activiti-engine/src/main/java/org/activiti/impl/persistence/IbatisPersistenceSession.java
已删除
100644 → 0
浏览文件 @
161b7dbf
此差异已折叠。
点击以展开。
modules/activiti-engine/src/main/java/org/activiti/impl/persistence/IbatisPersistenceSessionFactory.java
已删除
100644 → 0
浏览文件 @
161b7dbf
/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.activiti.impl.persistence
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.io.Reader
;
import
java.sql.Connection
;
import
java.sql.Statement
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Properties
;
import
java.util.StringTokenizer
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
import
javax.sql.DataSource
;
import
org.activiti.engine.ActivitiException
;
import
org.activiti.engine.ActivitiWrongDbException
;
import
org.activiti.engine.ProcessEngine
;
import
org.activiti.engine.impl.cfg.IdGenerator
;
import
org.activiti.engine.impl.cfg.ProcessEngineConfiguration
;
import
org.activiti.engine.impl.cfg.ProcessEngineConfigurationAware
;
import
org.activiti.engine.impl.interceptor.Session
;
import
org.activiti.engine.impl.persistence.repository.ProcessDefinitionEntity
;
import
org.activiti.engine.impl.util.IoUtil
;
import
org.activiti.engine.impl.variable.Type
;
import
org.activiti.engine.impl.variable.VariableTypes
;
import
org.apache.ibatis.builder.xml.XMLConfigBuilder
;
import
org.apache.ibatis.datasource.pooled.PooledDataSource
;
import
org.apache.ibatis.mapping.Environment
;
import
org.apache.ibatis.reflection.factory.DefaultObjectFactory
;
import
org.apache.ibatis.reflection.factory.ObjectFactory
;
import
org.apache.ibatis.session.Configuration
;
import
org.apache.ibatis.session.ExecutorType
;
import
org.apache.ibatis.session.SqlSession
;
import
org.apache.ibatis.session.SqlSessionFactory
;
import
org.apache.ibatis.session.defaults.DefaultSqlSessionFactory
;
import
org.apache.ibatis.transaction.TransactionFactory
;
import
org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory
;
import
org.apache.ibatis.transaction.managed.ManagedTransactionFactory
;
import
org.apache.ibatis.type.JdbcType
;
/**
* @author Tom Baeyens
*/
public
class
IbatisPersistenceSessionFactory
implements
PersistenceSessionFactory
,
ProcessEngineConfigurationAware
{
private
static
Logger
log
=
Logger
.
getLogger
(
IbatisPersistenceSessionFactory
.
class
.
getName
());
protected
static
List
<
String
>
statements
=
new
ArrayList
<
String
>();
protected
static
Map
<
String
,
Map
<
String
,
String
>>
databaseSpecificStatements
=
null
;
static
{
// Default statement ids
statements
.
add
(
"selectExecution"
);
statements
.
add
(
"selectDbSchemaVersion"
);
statements
.
add
(
"selectRootExecutionsForProcessDefinition"
);
statements
.
add
(
"selectChildExecutions"
);
statements
.
add
(
"selectProcessInstanceCountByDynamicCriteria"
);
statements
.
add
(
"selectProcessInstanceByDynamicCriteria"
);
statements
.
add
(
"selectVariablesByExecutionId"
);
statements
.
add
(
"selectVariablesByTaskId"
);
statements
.
add
(
"selectTask"
);
statements
.
add
(
"selectTaskByExecution"
);
statements
.
add
(
"selectDeployments"
);
statements
.
add
(
"selectDeploymentsByName"
);
statements
.
add
(
"selectDeployment"
);
statements
.
add
(
"selectDeploymentByProcessDefinitionId"
);
statements
.
add
(
"selectByteArraysForDeployment"
);
statements
.
add
(
"selectResourceNamesForDeployment"
);
statements
.
add
(
"selectDeploymentResource"
);
statements
.
add
(
"selectBytesOfByteArray"
);
statements
.
add
(
"selectByteArrayById"
);
statements
.
add
(
"selectProcessDefinitionById"
);
statements
.
add
(
"selectLatestProcessDefinitionByKey"
);
statements
.
add
(
"selectProcessDefinitions"
);
statements
.
add
(
"selectProcessDefinitionIdsByDeployment"
);
statements
.
add
(
"selectProcessDefinitionByDeploymentAndKey"
);
statements
.
add
(
"selectJob"
);
statements
.
add
(
"selectJobs"
);
statements
.
add
(
"selectNextJobsToExecute"
);
statements
.
add
(
"selectUnlockedTimersByDuedate"
);
statements
.
add
(
"selectLockedJobs"
);
statements
.
add
(
"selectTimersByExecutionId"
);
statements
.
add
(
"selectUser"
);
statements
.
add
(
"selectUsersByGroup"
);
statements
.
add
(
"selectUsers"
);
statements
.
add
(
"selectGroup"
);
statements
.
add
(
"selectGroupsByUser"
);
statements
.
add
(
"selectGroupsByUserAndType"
);
statements
.
add
(
"selectGroups"
);
statements
.
add
(
"selectCandidateTasks"
);
statements
.
add
(
"selectTasksByAssignee"
);
statements
.
add
(
"selectTaskByDynamicCriteria"
);
statements
.
add
(
"selectTaskCountByDynamicCriteria"
);
statements
.
add
(
"selectTaskInvolvementsByTask"
);
statements
.
add
(
"selectTableCount"
);
statements
.
add
(
"selectTableData"
);
statements
.
add
(
"selectProperty"
);
statements
.
add
(
"selectHistoricProcessInstance"
);
statements
.
add
(
"selectHistoricActivityInstance"
);
statements
.
add
(
"insertExecution"
);
statements
.
add
(
"insertJob"
);
statements
.
add
(
"insertTask"
);
statements
.
add
(
"insertTaskInvolvement"
);
statements
.
add
(
"insertVariableInstance"
);
statements
.
add
(
"insertByteArray"
);
statements
.
add
(
"insertMessage"
);
statements
.
add
(
"insertTimer"
);
statements
.
add
(
"insertDeployment"
);
statements
.
add
(
"insertByteArray"
);
statements
.
add
(
"insertProcessDefinition"
);
statements
.
add
(
"insertGroup"
);
statements
.
add
(
"insertUser"
);
statements
.
add
(
"insertMembership"
);
statements
.
add
(
"insertHistoricProcessInstance"
);
statements
.
add
(
"insertHistoricActivityInstance"
);
statements
.
add
(
"updateUser"
);
statements
.
add
(
"updateGroup"
);
statements
.
add
(
"updateProperty"
);
statements
.
add
(
"updateExecution"
);
statements
.
add
(
"updateTask"
);
statements
.
add
(
"updateTaskInvolvement"
);
statements
.
add
(
"updateVariableInstance"
);
statements
.
add
(
"updateByteArray"
);
statements
.
add
(
"updateMessage"
);
statements
.
add
(
"updateTimer"
);
statements
.
add
(
"updateHistoricProcessInstance"
);
statements
.
add
(
"updateHistoricActivityInstance"
);
statements
.
add
(
"deleteMembership"
);
statements
.
add
(
"deleteDeployment"
);
statements
.
add
(
"deleteExecution"
);
statements
.
add
(
"deleteTask"
);
statements
.
add
(
"deleteTaskInvolvement"
);
statements
.
add
(
"deleteVariableInstance"
);
statements
.
add
(
"deleteByteArray"
);
statements
.
add
(
"deleteJob"
);
statements
.
add
(
"deleteProcessDefinitionsForDeployment"
);
statements
.
add
(
"deleteByteArraysForDeployment"
);
statements
.
add
(
"deleteMembershipsForGroup"
);
statements
.
add
(
"deleteGroup"
);
statements
.
add
(
"deleteMembershipsForUser"
);
statements
.
add
(
"deleteUser"
);
statements
.
add
(
"deleteHistoricProcessInstance"
);
statements
.
add
(
"deleteHistoricActivityInstance"
);
// DB specific statement ids
// e.g. addDatabaseSpecificStatement("oracle", "selectExecution",
// "selectExecution_oracle");
addDatabaseSpecificStatement
(
"mysql"
,
"selectTaskByDynamicCriteria"
,
"selectTaskByDynamicCriteria_mysql"
);
addDatabaseSpecificStatement
(
"mysql"
,
"selectNextJobsToExecute"
,
"selectNextJobsToExecute_mysql"
);
}
protected
static
void
addDatabaseSpecificStatement
(
String
databaseName
,
String
activitiStatement
,
String
ibatisStatement
)
{
Map
<
String
,
String
>
specificStatements
=
null
;
if
(
databaseSpecificStatements
==
null
)
{
databaseSpecificStatements
=
new
HashMap
<
String
,
Map
<
String
,
String
>>();
specificStatements
=
new
HashMap
<
String
,
String
>();
databaseSpecificStatements
.
put
(
databaseName
,
specificStatements
);
}
else
{
specificStatements
=
databaseSpecificStatements
.
get
(
databaseName
);
}
specificStatements
.
put
(
activitiStatement
,
ibatisStatement
);
}
protected
String
databaseName
;
protected
SqlSessionFactory
sqlSessionFactory
;
protected
IdGenerator
idGenerator
;
protected
Map
<
String
,
String
>
databaseStatements
;
protected
VariableTypes
variableTypes
;
public
void
configurationCompleted
(
ProcessEngineConfiguration
processEngineConfiguration
)
{
this
.
variableTypes
=
processEngineConfiguration
.
getVariableTypes
();
this
.
idGenerator
=
processEngineConfiguration
.
getIdGenerator
();
this
.
databaseName
=
processEngineConfiguration
.
getDatabaseName
();
DataSource
dataSource
=
processEngineConfiguration
.
getDataSource
();
if
(
dataSource
==
null
)
{
String
jdbcDriver
=
processEngineConfiguration
.
getJdbcDriver
();
String
jdbcUrl
=
processEngineConfiguration
.
getJdbcUrl
();
String
jdbcUsername
=
processEngineConfiguration
.
getJdbcUsername
();
String
jdbcPassword
=
processEngineConfiguration
.
getJdbcPassword
();
if
(
(
jdbcDriver
==
null
)
||
(
jdbcUrl
==
null
)
||
(
jdbcUsername
==
null
)
)
{
throw
new
ActivitiException
(
"DataSource or JDBC properties have to be specified in a process engine configuration"
);
}
dataSource
=
new
PooledDataSource
(
Thread
.
currentThread
().
getContextClassLoader
(),
jdbcDriver
,
jdbcUrl
,
jdbcUsername
,
jdbcPassword
);
}
TransactionFactory
transactionFactory
=
null
;
if
(
processEngineConfiguration
.
isLocalTransactions
())
{
transactionFactory
=
new
JdbcTransactionFactory
();
}
else
{
transactionFactory
=
new
ManagedTransactionFactory
();
}
sqlSessionFactory
=
createSessionFactory
(
dataSource
,
transactionFactory
);
}
protected
SqlSessionFactory
createSessionFactory
(
DataSource
dataSource
,
TransactionFactory
transactionFactory
)
{
try
{
initializeDatabaseStatements
(
databaseName
);
ClassLoader
classLoader
=
Thread
.
currentThread
().
getContextClassLoader
();
InputStream
inputStream
=
classLoader
.
getResourceAsStream
(
"org/activiti/db/ibatis/activiti.ibatis.mem.conf.xml"
);
// update the jdbc parameters to the configured ones...
Environment
environment
=
new
Environment
(
"default"
,
transactionFactory
,
dataSource
);
Reader
reader
=
new
InputStreamReader
(
inputStream
);
XMLConfigBuilder
parser
=
new
XMLConfigBuilder
(
reader
);
Configuration
configuration
=
parser
.
getConfiguration
();
configuration
.
setEnvironment
(
environment
);
configuration
.
getTypeHandlerRegistry
().
register
(
Type
.
class
,
JdbcType
.
VARCHAR
,
new
IbatisVariableTypeHandler
(
variableTypes
));
configuration
.
setObjectFactory
(
new
ActivitiObjectFactory
(
variableTypes
));
configuration
=
parser
.
parse
();
return
new
DefaultSqlSessionFactory
(
configuration
);
}
catch
(
Exception
e
)
{
throw
new
ActivitiException
(
"Error while building ibatis SqlSessionFactory: "
+
e
.
getMessage
(),
e
);
}
}
// database statements //////////////////////////////////////////////////////
protected
void
initializeDatabaseStatements
(
String
databaseName
)
{
databaseStatements
=
new
HashMap
<
String
,
String
>();
for
(
String
defaultStatement
:
statements
)
{
databaseStatements
.
put
(
defaultStatement
,
defaultStatement
);
}
Map
<
String
,
String
>
specificStatements
=
databaseSpecificStatements
.
get
(
databaseName
);
if
(
specificStatements
!=
null
)
{
databaseStatements
.
putAll
(
specificStatements
);
}
}
public
String
statement
(
String
statement
)
{
return
databaseStatements
.
get
(
statement
);
}
public
Session
openSession
()
{
SqlSession
sqlSession
=
sqlSessionFactory
.
openSession
();
return
new
IbatisPersistenceSession
(
sqlSession
,
idGenerator
,
databaseStatements
);
}
// getters and setters //////////////////////////////////////////////////////
public
SqlSessionFactory
getSqlSessionFactory
()
{
return
sqlSessionFactory
;
}
public
IdGenerator
getIdGenerator
()
{
return
idGenerator
;
}
@SuppressWarnings
(
"unchecked"
)
private
static
class
ActivitiObjectFactory
implements
ObjectFactory
{
private
ObjectFactory
delegate
=
new
DefaultObjectFactory
();
private
final
VariableTypes
variableTypes
;
public
ActivitiObjectFactory
(
VariableTypes
variableTypes
)
{
this
.
variableTypes
=
variableTypes
;
}
public
Object
create
(
Class
type
,
List
<
Class
>
constructorArgTypes
,
List
<
Object
>
constructorArgs
)
{
return
delegate
.
create
(
type
,
constructorArgTypes
,
constructorArgs
);
}
public
Object
create
(
Class
type
)
{
if
(
type
==
ProcessDefinitionEntity
.
class
)
{
return
new
ProcessDefinitionEntity
(
variableTypes
);
}
return
delegate
.
create
(
type
);
}
public
void
setProperties
(
Properties
properties
)
{
delegate
.
setProperties
(
properties
);
}
}
}
modules/activiti-engine/src/main/java/org/activiti/impl/persistence/
Persistenc
eSession.java
→
modules/activiti-engine/src/main/java/org/activiti/impl/persistence/
Runtim
eSession.java
浏览文件 @
d824d9ee
...
...
@@ -44,17 +44,11 @@ import org.activiti.impl.history.HistoricProcessInstanceImpl;
* @author Tom Baeyens
* @author Joram Barrez
*/
public
interface
Persistenc
eSession
extends
Session
{
public
interface
Runtim
eSession
extends
Session
{
void
commit
();
void
rollback
();
byte
[]
getByteArrayBytes
(
String
byteArrayId
);
ByteArrayImpl
findByteArrayById
(
String
byteArrayValueId
);
void
insert
(
PersistentObject
persistentObject
);
void
delete
(
PersistentObject
persistentObject
);
/* Execution */
DbExecutionImpl
findExecution
(
String
executionId
);
List
<
DbExecutionImpl
>
findProcessInstancesByProcessDefintionId
(
String
processDefinitionId
);
...
...
@@ -70,18 +64,6 @@ public interface PersistenceSession extends Session {
List
<
VariableInstance
>
findVariablesByTaskId
(
String
id
);
void
addDeserializedObject
(
Object
deserializedObject
,
byte
[]
bytes
,
VariableInstance
variableInstance
);
/* Task */
TaskEntity
findTask
(
String
taskId
);
List
<
TaskEntity
>
findTasksByExecution
(
String
executionId
);
List
<
Task
>
findTasksByAssignee
(
String
assignee
);
List
<
Task
>
findCandidateTasks
(
String
userId
,
List
<
String
>
groupIds
);
List
<
Task
>
dynamicFindTasks
(
Map
<
String
,
Object
>
params
,
Page
page
);
long
dynamicFindTaskCount
(
Map
<
String
,
Object
>
params
);
/* TaskInvolvement */
List
<
TaskInvolvement
>
findTaskInvolvementsByTask
(
String
taskId
);
/* Job */
JobImpl
findJobById
(
String
jobId
);
List
<
JobImpl
>
findJobs
();
...
...
@@ -93,34 +75,4 @@ public interface PersistenceSession extends Session {
List
<
Job
>
dynamicFindJobs
(
Map
<
String
,
Object
>
params
,
Page
page
);
long
dynamicJobCount
(
Map
<
String
,
Object
>
params
);
/* User */
void
saveUser
(
UserImpl
user
);
UserImpl
findUser
(
String
userId
);
List
<
UserImpl
>
findUsersByGroup
(
String
groupId
);
void
deleteUser
(
String
userId
);
boolean
isValidUser
(
String
userId
);
/* Group */
void
saveGroup
(
GroupImpl
group
);
GroupImpl
findGroup
(
String
groupId
);
List
<
GroupImpl
>
findGroupsByUser
(
String
userId
);
List
<
GroupImpl
>
findGroupsByUserAndType
(
String
userId
,
String
groupType
);
void
deleteGroup
(
String
groupId
);
/* Membership */
void
createMembership
(
String
userId
,
String
groupId
);
void
deleteMembership
(
String
userId
,
String
groupId
);
/* Management */
Map
<
String
,
Long
>
getTableCount
();
TablePage
getTablePage
(
String
tableName
,
int
offset
,
int
maxResults
,
String
sortColumn
,
SortOrder
sortOrder
);
TableMetaData
getTableMetaData
(
String
tableName
);
/* History */
void
saveHistoricProcessInstance
(
HistoricProcessInstanceImpl
historicProcessInstance
);
HistoricProcessInstanceImpl
findHistoricProcessInstance
(
String
processInstanceId
);
void
deleteHistoricProcessInstance
(
String
processInstanceId
);
void
saveHistoricActivityInstance
(
HistoricActivityInstanceImpl
historicActivityInstance
);
HistoricActivityInstanceImpl
findHistoricActivityInstance
(
String
activityId
,
String
processInstanceId
);
void
deleteHistoricActivityInstance
(
String
activityId
,
String
processInstanceId
);
}
}
modules/activiti-engine/src/main/java/org/activiti/impl/persistence/
Persistenc
eSessionFactory.java
→
modules/activiti-engine/src/main/java/org/activiti/impl/persistence/
Runtim
eSessionFactory.java
浏览文件 @
d824d9ee
...
...
@@ -18,6 +18,6 @@ import org.activiti.engine.impl.interceptor.SessionFactory;
/**
* @author Tom Baeyens
*/
public
interface
Persistenc
eSessionFactory
extends
SessionFactory
{
public
interface
Runtim
eSessionFactory
extends
SessionFactory
{
}
modules/activiti-engine/src/main/java/org/activiti/impl/repository/DeployerManager.java
浏览文件 @
d824d9ee
...
...
@@ -17,7 +17,7 @@ import java.util.ArrayList;
import
java.util.List
;
import
org.activiti.engine.impl.persistence.repository.Deployer
;
import
org.activiti.impl.persistence.
Persistenc
eSession
;
import
org.activiti.impl.persistence.
Runtim
eSession
;
/**
...
...
@@ -29,7 +29,7 @@ public class DeployerManager implements Serializable {
List
<
Deployer
>
deployers
=
new
ArrayList
<
Deployer
>();
public
void
deploy
(
DeploymentImpl
deployment
,
PersistenceSession
persistenc
eSession
)
{
public
void
deploy
(
DeploymentImpl
deployment
,
RuntimeSession
runtim
eSession
)
{
for
(
Deployer
deployer:
deployers
)
{
//deployer.deploy(deployment, persistenceSession);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录