Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
开发团队
Flowable Engine
提交
0c15a98b
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,发现更多精彩内容 >>
提交
0c15a98b
编写于
8月 31, 2015
作者:
J
Joram Barrez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Giving PersistentObjectCache methods consistent names
上级
c437978f
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
72 addition
and
42 deletion
+72
-42
modules/activiti-engine/src/main/java/org/activiti/engine/impl/db/DbSqlSession.java
...c/main/java/org/activiti/engine/impl/db/DbSqlSession.java
+10
-10
modules/activiti-engine/src/main/java/org/activiti/engine/impl/history/DefaultHistoryManager.java
...g/activiti/engine/impl/history/DefaultHistoryManager.java
+2
-2
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/cache/CachedPersistentObject.java
...engine/impl/persistence/cache/CachedPersistentObject.java
+3
-3
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/cache/PersistentObjectCache.java
.../engine/impl/persistence/cache/PersistentObjectCache.java
+36
-6
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/cache/PersistentObjectCacheImpl.java
...ine/impl/persistence/cache/PersistentObjectCacheImpl.java
+16
-16
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/AbstractEntityManager.java
...engine/impl/persistence/entity/AbstractEntityManager.java
+5
-5
未找到文件。
modules/activiti-engine/src/main/java/org/activiti/engine/impl/db/DbSqlSession.java
浏览文件 @
0c15a98b
...
...
@@ -60,7 +60,7 @@ import org.activiti.engine.impl.context.Context;
import
org.activiti.engine.impl.db.upgrade.DbUpgradeStep
;
import
org.activiti.engine.impl.history.HistoryLevel
;
import
org.activiti.engine.impl.interceptor.Session
;
import
org.activiti.engine.impl.persistence.cache.CachedObject
;
import
org.activiti.engine.impl.persistence.cache.Cached
Persistent
Object
;
import
org.activiti.engine.impl.persistence.cache.PersistentObjectCache
;
import
org.activiti.engine.impl.persistence.entity.ExecutionEntity
;
import
org.activiti.engine.impl.persistence.entity.PropertyEntity
;
...
...
@@ -163,14 +163,14 @@ public class DbSqlSession implements Session {
}
insertedObjects
.
get
(
clazz
).
add
(
persistentObject
);
persistentObjectCache
.
cacheP
ut
(
persistentObject
,
false
);
persistentObjectCache
.
p
ut
(
persistentObject
,
false
);
}
// update
// ///////////////////////////////////////////////////////////////////
public
void
update
(
PersistentObject
persistentObject
)
{
persistentObjectCache
.
cacheP
ut
(
persistentObject
,
false
);
persistentObjectCache
.
p
ut
(
persistentObject
,
false
);
}
public
int
update
(
String
statement
,
Object
parameters
)
{
...
...
@@ -454,7 +454,7 @@ public class DbSqlSession implements Session {
@SuppressWarnings
(
"unchecked"
)
public
<
T
extends
PersistentObject
>
T
selectById
(
Class
<
T
>
entityClass
,
String
id
)
{
T
persistentObject
=
persistentObjectCache
.
cacheGet
(
entityClass
,
id
);
T
persistentObject
=
persistentObjectCache
.
findInCache
(
entityClass
,
id
);
if
(
persistentObject
!=
null
)
{
return
persistentObject
;
}
...
...
@@ -464,7 +464,7 @@ public class DbSqlSession implements Session {
if
(
persistentObject
==
null
)
{
return
null
;
}
persistentObjectCache
.
cacheP
ut
(
persistentObject
,
true
);
persistentObjectCache
.
p
ut
(
persistentObject
,
true
);
return
persistentObject
;
}
...
...
@@ -493,11 +493,11 @@ public class DbSqlSession implements Session {
* cache.
*/
protected
PersistentObject
cacheFilter
(
PersistentObject
persistentObject
)
{
PersistentObject
cachedPersistentObject
=
persistentObjectCache
.
cacheGet
(
persistentObject
.
getClass
(),
persistentObject
.
getId
());
PersistentObject
cachedPersistentObject
=
persistentObjectCache
.
findInCache
(
persistentObject
.
getClass
(),
persistentObject
.
getId
());
if
(
cachedPersistentObject
!=
null
)
{
return
cachedPersistentObject
;
}
persistentObjectCache
.
cacheP
ut
(
persistentObject
,
true
);
persistentObjectCache
.
p
ut
(
persistentObject
,
true
);
return
persistentObject
;
}
...
...
@@ -665,11 +665,11 @@ public class DbSqlSession implements Session {
public
List
<
PersistentObject
>
getUpdatedObjects
()
{
List
<
PersistentObject
>
updatedObjects
=
new
ArrayList
<
PersistentObject
>();
Map
<
Class
<?>,
Map
<
String
,
Cached
Object
>>
cachedObjects
=
persistentObjectCache
.
getAllCached
Objects
();
Map
<
Class
<?>,
Map
<
String
,
Cached
PersistentObject
>>
cachedObjects
=
persistentObjectCache
.
getAllCachedPersistent
Objects
();
for
(
Class
<?>
clazz
:
cachedObjects
.
keySet
())
{
Map
<
String
,
CachedObject
>
classCache
=
cachedObjects
.
get
(
clazz
);
for
(
CachedObject
cachedObject
:
classCache
.
values
())
{
Map
<
String
,
Cached
Persistent
Object
>
classCache
=
cachedObjects
.
get
(
clazz
);
for
(
Cached
Persistent
Object
cachedObject
:
classCache
.
values
())
{
PersistentObject
persistentObject
=
cachedObject
.
getPersistentObject
();
if
(!
isPersistentObjectToBeDeleted
(
persistentObject
))
{
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/history/DefaultHistoryManager.java
浏览文件 @
0c15a98b
...
...
@@ -709,7 +709,7 @@ public class DefaultHistoryManager extends AbstractManager implements HistoryMan
@Override
public
void
recordVariableUpdate
(
VariableInstanceEntity
variable
)
{
if
(
isHistoryLevelAtLeast
(
HistoryLevel
.
ACTIVITY
))
{
HistoricVariableInstanceEntity
historicProcessVariable
=
getPersistentObjectCache
().
cacheGet
(
HistoricVariableInstanceEntity
.
class
,
variable
.
getId
());
HistoricVariableInstanceEntity
historicProcessVariable
=
getPersistentObjectCache
().
findInCache
(
HistoricVariableInstanceEntity
.
class
,
variable
.
getId
());
if
(
historicProcessVariable
==
null
)
{
historicProcessVariable
=
Context
.
getCommandContext
().
getHistoricVariableInstanceEntityManager
().
findHistoricVariableInstanceByVariableInstanceId
(
variable
.
getId
());
}
...
...
@@ -912,7 +912,7 @@ public class DefaultHistoryManager extends AbstractManager implements HistoryMan
public
void
recordVariableRemoved
(
VariableInstanceEntity
variable
)
{
if
(
isHistoryLevelAtLeast
(
HistoryLevel
.
ACTIVITY
))
{
HistoricVariableInstanceEntity
historicProcessVariable
=
getPersistentObjectCache
()
.
cacheGet
(
HistoricVariableInstanceEntity
.
class
,
variable
.
getId
());
.
findInCache
(
HistoricVariableInstanceEntity
.
class
,
variable
.
getId
());
if
(
historicProcessVariable
==
null
)
{
historicProcessVariable
=
Context
.
getCommandContext
()
.
getHistoricVariableInstanceEntityManager
()
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/cache/CachedObject.java
→
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/cache/Cached
Persistent
Object.java
浏览文件 @
0c15a98b
...
...
@@ -17,7 +17,7 @@ import org.activiti.engine.impl.db.PersistentObject;
/**
* @author Joram Barrez
*/
public
class
CachedObject
{
public
class
Cached
Persistent
Object
{
/**
* The actual {@link PersistentObject} instance.
...
...
@@ -25,13 +25,13 @@ public class CachedObject {
protected
PersistentObject
persistentObject
;
/**
* Represents the 'persistence state' at the moment this {@link CachedObject} instance was created.
* Represents the 'persistence state' at the moment this {@link Cached
Persistent
Object} instance was created.
* It is used later on to determine if a {@link PersistentObject} has been updated, by comparing
* the 'persistent state' at that moment with this instance here.
*/
protected
Object
originalPersistentState
;
public
CachedObject
(
PersistentObject
persistentObject
,
boolean
storeState
)
{
public
Cached
Persistent
Object
(
PersistentObject
persistentObject
,
boolean
storeState
)
{
this
.
persistentObject
=
persistentObject
;
if
(
storeState
)
{
this
.
originalPersistentState
=
persistentObject
.
getPersistentState
();
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/cache/PersistentObjectCache.java
浏览文件 @
0c15a98b
...
...
@@ -27,18 +27,48 @@ import org.activiti.engine.impl.interceptor.Session;
*/
public
interface
PersistentObjectCache
extends
Session
{
Map
<
Class
<?>,
Map
<
String
,
CachedObject
>>
getAllCachedObjects
();
/**
* Returns all cached {@link PersistentObject} instances as a map
* with following structure: { entityClassName, {entityId, PersistentObject} }
*/
Map
<
Class
<?>,
Map
<
String
,
CachedPersistentObject
>>
getAllCachedPersistentObjects
();
<
T
>
T
cacheGet
(
Class
<
T
>
entityClass
,
String
id
);
/**
* Adds the gives {@link PersistentObject} to the cache.
*
* @param persistentObject The {@link PersistentObject} instance
* @param storeState If true, the current state {@link PersistentObject#getPersistentState()} will be stored for future diffing.
*/
CachedPersistentObject
put
(
PersistentObject
persistentObject
,
boolean
storeState
);
CachedObject
cachePut
(
PersistentObject
persistentObject
,
boolean
storeState
);
/**
* Returns the cached {@link PersistentObject} instance of the given class with the provided id.
* Returns null if such a {@link PersistentObject} cannot be found.
*/
<
T
>
T
findInCache
(
Class
<
T
>
entityClass
,
String
id
);
/**
* Returns all cached {@link PersistentObject} instances of a given type.
* Returns an empty list if no instances of the given type exist.
*/
<
T
>
List
<
T
>
findInCache
(
Class
<
T
>
entityClass
);
/**
* Returns all cached {@link PersistentObject} instances of a given types.
* Returns an empty list if no instances of the given type exist.
*/
<
T
>
List
<
T
>
findInCache
(
List
<
Class
<
T
>>
entityClasses
);
<
T
>
List
<
T
>
findInCache
(
Class
<
T
>
entityClass
);
<
T
>
Collection
<
CachedObject
>
findInCacheAsCachedObjects
(
Class
<
T
>
entityClass
);
/**
* Returns all {@link CachedPersistentObject} instances for the given type.
* The difference with {@link #findInCache(Class)} is that here the whole {@link CachedPersistentObject}
* is returned, which gives access to the persistent state at the moment of putting it in the cache.
*/
<
T
>
Collection
<
CachedPersistentObject
>
findInCacheAsCachedObjects
(
Class
<
T
>
entityClass
);
/**
* Removes the {@link PersistentObject} of the given type with the given id from the cache.
*/
void
cacheRemove
(
Class
<?>
persistentObjectClass
,
String
persistentObjectId
);
}
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/cache/PersistentObjectCacheImpl.java
浏览文件 @
0c15a98b
...
...
@@ -26,25 +26,25 @@ import org.activiti.engine.impl.db.PersistentObject;
*/
public
class
PersistentObjectCacheImpl
implements
PersistentObjectCache
{
protected
Map
<
Class
<?>,
Map
<
String
,
Cached
Object
>>
cachedObjects
=
new
HashMap
<
Class
<?>,
Map
<
String
,
Cached
Object
>>();
protected
Map
<
Class
<?>,
Map
<
String
,
Cached
PersistentObject
>>
cachedObjects
=
new
HashMap
<
Class
<?>,
Map
<
String
,
CachedPersistent
Object
>>();
@Override
public
Cached
Object
cacheP
ut
(
PersistentObject
persistentObject
,
boolean
storeState
)
{
Map
<
String
,
CachedObject
>
classCache
=
cachedObjects
.
get
(
persistentObject
.
getClass
());
public
Cached
PersistentObject
p
ut
(
PersistentObject
persistentObject
,
boolean
storeState
)
{
Map
<
String
,
Cached
Persistent
Object
>
classCache
=
cachedObjects
.
get
(
persistentObject
.
getClass
());
if
(
classCache
==
null
)
{
classCache
=
new
HashMap
<
String
,
CachedObject
>();
classCache
=
new
HashMap
<
String
,
Cached
Persistent
Object
>();
cachedObjects
.
put
(
persistentObject
.
getClass
(),
classCache
);
}
Cached
Object
cachedObject
=
new
Cached
Object
(
persistentObject
,
storeState
);
Cached
PersistentObject
cachedObject
=
new
CachedPersistent
Object
(
persistentObject
,
storeState
);
classCache
.
put
(
persistentObject
.
getId
(),
cachedObject
);
return
cachedObject
;
}
@Override
@SuppressWarnings
(
"unchecked"
)
public
<
T
>
T
cacheGet
(
Class
<
T
>
entityClass
,
String
id
)
{
CachedObject
cachedObject
=
null
;
Map
<
String
,
CachedObject
>
classCache
=
cachedObjects
.
get
(
entityClass
);
public
<
T
>
T
findInCache
(
Class
<
T
>
entityClass
,
String
id
)
{
Cached
Persistent
Object
cachedObject
=
null
;
Map
<
String
,
Cached
Persistent
Object
>
classCache
=
cachedObjects
.
get
(
entityClass
);
if
(
classCache
!=
null
)
{
cachedObject
=
classCache
.
get
(
id
);
}
...
...
@@ -56,7 +56,7 @@ public class PersistentObjectCacheImpl implements PersistentObjectCache {
@Override
public
void
cacheRemove
(
Class
<?>
persistentObjectClass
,
String
persistentObjectId
)
{
Map
<
String
,
CachedObject
>
classCache
=
cachedObjects
.
get
(
persistentObjectClass
);
Map
<
String
,
Cached
Persistent
Object
>
classCache
=
cachedObjects
.
get
(
persistentObjectClass
);
if
(
classCache
==
null
)
{
return
;
}
...
...
@@ -64,8 +64,8 @@ public class PersistentObjectCacheImpl implements PersistentObjectCache {
}
@Override
public
<
T
>
Collection
<
CachedObject
>
findInCacheAsCachedObjects
(
Class
<
T
>
entityClass
)
{
Map
<
String
,
CachedObject
>
classCache
=
cachedObjects
.
get
(
entityClass
);
public
<
T
>
Collection
<
Cached
Persistent
Object
>
findInCacheAsCachedObjects
(
Class
<
T
>
entityClass
)
{
Map
<
String
,
Cached
Persistent
Object
>
classCache
=
cachedObjects
.
get
(
entityClass
);
if
(
classCache
!=
null
)
{
return
classCache
.
values
();
}
...
...
@@ -75,10 +75,10 @@ public class PersistentObjectCacheImpl implements PersistentObjectCache {
@Override
@SuppressWarnings
(
"unchecked"
)
public
<
T
>
List
<
T
>
findInCache
(
Class
<
T
>
entityClass
)
{
Map
<
String
,
CachedObject
>
classCache
=
cachedObjects
.
get
(
entityClass
);
Map
<
String
,
Cached
Persistent
Object
>
classCache
=
cachedObjects
.
get
(
entityClass
);
if
(
classCache
!=
null
)
{
List
<
T
>
entities
=
new
ArrayList
<
T
>(
classCache
.
size
());
for
(
CachedObject
cachedObject
:
classCache
.
values
())
{
for
(
Cached
Persistent
Object
cachedObject
:
classCache
.
values
())
{
entities
.
add
((
T
)
cachedObject
.
getPersistentObject
());
}
return
entities
;
...
...
@@ -92,12 +92,12 @@ public class PersistentObjectCacheImpl implements PersistentObjectCache {
List
<
T
>
entities
=
null
;
for
(
Class
<
T
>
entityClass
:
entityClasses
)
{
Map
<
String
,
CachedObject
>
classCache
=
cachedObjects
.
get
(
entityClass
);
Map
<
String
,
Cached
Persistent
Object
>
classCache
=
cachedObjects
.
get
(
entityClass
);
if
(
classCache
!=
null
)
{
if
(
entities
==
null
)
{
entities
=
new
ArrayList
<
T
>(
classCache
.
size
());
}
for
(
CachedObject
cachedObject
:
classCache
.
values
())
{
for
(
Cached
Persistent
Object
cachedObject
:
classCache
.
values
())
{
entities
.
add
((
T
)
cachedObject
.
getPersistentObject
());
}
}
...
...
@@ -110,7 +110,7 @@ public class PersistentObjectCacheImpl implements PersistentObjectCache {
return
Collections
.
emptyList
();
}
public
Map
<
Class
<?>,
Map
<
String
,
Cached
Object
>>
getAllCached
Objects
()
{
public
Map
<
Class
<?>,
Map
<
String
,
Cached
PersistentObject
>>
getAllCachedPersistent
Objects
()
{
return
cachedObjects
;
}
...
...
modules/activiti-engine/src/main/java/org/activiti/engine/impl/persistence/entity/AbstractEntityManager.java
浏览文件 @
0c15a98b
...
...
@@ -12,7 +12,7 @@ import org.activiti.engine.impl.context.Context;
import
org.activiti.engine.impl.db.PersistentObject
;
import
org.activiti.engine.impl.persistence.AbstractManager
;
import
org.activiti.engine.impl.persistence.CachedPersistentObjectMatcher
;
import
org.activiti.engine.impl.persistence.cache.CachedObject
;
import
org.activiti.engine.impl.persistence.cache.Cached
Persistent
Object
;
/**
* @author Joram Barrez
...
...
@@ -108,7 +108,7 @@ public class AbstractEntityManager<Entity extends PersistentObject> extends Abst
if
(
checkCache
)
{
Collection
<
CachedObject
>
cachedObjects
=
getPersistentObjectCache
().
findInCacheAsCachedObjects
(
getManagedPersistentObject
());
Collection
<
Cached
Persistent
Object
>
cachedObjects
=
getPersistentObjectCache
().
findInCacheAsCachedObjects
(
getManagedPersistentObject
());
if
(
(
cachedObjects
!=
null
&&
cachedObjects
.
size
()
>
0
)
||
getManagedPersistentObjectSubClasses
()
!=
null
)
{
...
...
@@ -121,7 +121,7 @@ public class AbstractEntityManager<Entity extends PersistentObject> extends Abst
// Cache entities
if
(
cachedObjects
!=
null
)
{
for
(
CachedObject
cachedObject
:
cachedObjects
)
{
for
(
Cached
Persistent
Object
cachedObject
:
cachedObjects
)
{
Entity
cachedEntity
=
(
Entity
)
cachedObject
.
getPersistentObject
();
if
(
retainEntityCondition
.
isRetained
(
cachedEntity
))
{
entityMap
.
put
(
cachedEntity
.
getId
(),
cachedEntity
);
// will overwite db version with newer version
...
...
@@ -131,9 +131,9 @@ public class AbstractEntityManager<Entity extends PersistentObject> extends Abst
if
(
getManagedPersistentObjectSubClasses
()
!=
null
)
{
for
(
Class
<?
extends
Entity
>
entitySubClass
:
getManagedPersistentObjectSubClasses
())
{
Collection
<
CachedObject
>
subclassCachedObjects
=
getPersistentObjectCache
().
findInCacheAsCachedObjects
(
entitySubClass
);
Collection
<
Cached
Persistent
Object
>
subclassCachedObjects
=
getPersistentObjectCache
().
findInCacheAsCachedObjects
(
entitySubClass
);
if
(
subclassCachedObjects
!=
null
)
{
for
(
CachedObject
subclassCachedObject
:
subclassCachedObjects
)
{
for
(
Cached
Persistent
Object
subclassCachedObject
:
subclassCachedObjects
)
{
Entity
cachedSubclassEntity
=
(
Entity
)
subclassCachedObject
.
getPersistentObject
();
if
(
retainEntityCondition
.
isRetained
(
cachedSubclassEntity
))
{
entityMap
.
put
(
cachedSubclassEntity
.
getId
(),
cachedSubclassEntity
);
// will overwite db version with newer version
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录