Package org.nuxeo.ecm.core.storage.sql
Class UnifiedCachingRowMapper
java.lang.Object
org.nuxeo.ecm.core.storage.sql.UnifiedCachingRowMapper
- All Implemented Interfaces:
RowMapper
- Direct Known Subclasses:
UnifiedCachingMapper
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.nuxeo.ecm.core.storage.sql.RowMapper
RowMapper.CopyResult, RowMapper.IdWithTypes, RowMapper.NodeInfo, RowMapper.RowBatch, RowMapper.RowUpdate
-
Field Summary
Modifier and TypeFieldDescriptionprotected io.dropwizard.metrics5.Timer
protected io.dropwizard.metrics5.Counter
protected static boolean
protected final io.dropwizard.metrics5.MetricRegistry
Cache statisticsprotected io.dropwizard.metrics5.Timer
protected io.dropwizard.metrics5.Counter
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Row
protected void
protected void
cachePutAbsent
(RowId rowId) protected void
cachePutAbsentIfNull
(RowId rowId, Row row) protected void
cachePutAbsentIfRowId
(RowId rowId) protected void
cacheRemove
(RowId rowId) void
Clears the mapper's cache (if any)void
close()
copy
(RowMapper.IdWithTypes source, Serializable destParentId, String destName, Row overwriteRow, boolean excludeSpecialChildren, boolean excludeACL) Copies the hierarchy starting from a given row to a new parent with a new name.protected net.sf.ehcache.Element
ehCacheGet
(Serializable key) protected int
protected void
ehCachePut
(net.sf.ehcache.Element element) protected boolean
protected void
Computes a new unique id.getBinaryFulltext
(RowId rowId) Gets the fulltext extracted from the binary fields.long
Evaluate the cached elements sizegetDescendantsInfo
(Serializable rootId) Gets descendants infos from a given root node.protected boolean
void
initialize
(String repositoryName, Model model, RowMapper rowMapper, VCSInvalidationsPropagator invalidationsPropagator, Map<String, String> properties) protected static boolean
read
(Collection<RowId> rowIds, boolean cacheOnly) Reads a set of rows for the givenRowId
s.readCollectionRowArray
(RowId rowId) Gets an array for aCollectionFragment
from the database, given its table name and id.readSelectionRows
(SelectionType selType, Serializable selId, Serializable filter, Serializable criterion, boolean limitToOne) Reads the rows corresponding to a selection.readSelectionsIds
(SelectionType selType, List<Serializable> values) Gets all the selection ids for a given list of values.readSimpleRow
(RowId rowId) Gets a row for aSimpleFragment
from the database, given its table name and id.Processes and returns the invalidations queued for processing by the cache (if any).void
remove
(Serializable rootId, List<RowMapper.NodeInfo> nodeInfos) Deletes a hierarchy.void
rollback()
Rollback the transaction.void
sendInvalidations
(VCSInvalidations invalidations) Post-transaction invalidations notification.protected void
setMetrics
(String repositoryName) protected ACLRow[]
sortACLRows
(ACLRow[] acls) protected boolean
void
write
(RowMapper.RowBatch batch) Writes a set of rows.
-
Field Details
-
isXA
protected static boolean isXA -
registry
protected final io.dropwizard.metrics5.MetricRegistry registryCache statistics- Since:
- 5.7
-
cacheHitCount
protected io.dropwizard.metrics5.Counter cacheHitCount -
cacheGetTimer
protected io.dropwizard.metrics5.Timer cacheGetTimer -
sorRows
protected io.dropwizard.metrics5.Counter sorRows -
sorGetTimer
protected io.dropwizard.metrics5.Timer sorGetTimer
-
-
Constructor Details
-
UnifiedCachingRowMapper
public UnifiedCachingRowMapper()
-
-
Method Details
-
initialize
-
setMetrics
-
close
public void close() -
generateNewId
Description copied from interface:RowMapper
Computes a new unique id.- Specified by:
generateNewId
in interfaceRowMapper
- Returns:
- a new unique id
-
hasTransaction
protected boolean hasTransaction() -
useEhCache
protected boolean useEhCache() -
ehCachePut
protected void ehCachePut(net.sf.ehcache.Element element) -
ehCacheGet
-
ehCacheGetSize
protected int ehCacheGetSize() -
ehCacheRemove
-
ehCacheRemoveAll
protected void ehCacheRemoveAll() -
isAbsent
-
cachePut
-
sortACLRows
-
cachePutAbsent
-
cachePutAbsentIfNull
-
cachePutAbsentIfRowId
-
cacheGet
-
cacheRemove
-
receiveInvalidations
Description copied from interface:RowMapper
Processes and returns the invalidations queued for processing by the cache (if any).Called pre-transaction by session start or transactionless save;
- Specified by:
receiveInvalidations
in interfaceRowMapper
- Returns:
- the invalidations, or
null
-
sendInvalidations
Description copied from interface:RowMapper
Post-transaction invalidations notification.Called post-transaction by session commit/rollback or transactionless save.
- Specified by:
sendInvalidations
in interfaceRowMapper
- Parameters:
invalidations
- the known invalidations to send to others, ornull
-
clearCache
public void clearCache()Description copied from interface:RowMapper
Clears the mapper's cache (if any)Called after a rollback, or a manual clear through RepositoryStatus MBean.
- Specified by:
clearCache
in interfaceRowMapper
-
rollback
public void rollback()Description copied from interface:RowMapper
Rollback the transaction.This is in the
RowMapper
interface because on rollback the cache must be invalidated. -
read
Description copied from interface:RowMapper
-
write
Description copied from interface:RowMapper
Writes a set of rows. This includes creating, updating and deleting rows. -
readSimpleRow
Description copied from interface:RowMapper
Gets a row for aSimpleFragment
from the database, given its table name and id. If the row doesn't exist,null
is returned.- Specified by:
readSimpleRow
in interfaceRowMapper
- Parameters:
rowId
- the row id- Returns:
- the row, or
null
-
getBinaryFulltext
Description copied from interface:RowMapper
Gets the fulltext extracted from the binary fields.- Specified by:
getBinaryFulltext
in interfaceRowMapper
- Parameters:
rowId
- the row id- Returns:
- the fulltext string representation or
null
if unsupported
-
readCollectionRowArray
Description copied from interface:RowMapper
Gets an array for aCollectionFragment
from the database, given its table name and id. If no rows are found, an empty array is returned.- Specified by:
readCollectionRowArray
in interfaceRowMapper
- Parameters:
rowId
- the row id- Returns:
- the array
-
readSelectionRows
public List<Row> readSelectionRows(SelectionType selType, Serializable selId, Serializable filter, Serializable criterion, boolean limitToOne) Description copied from interface:RowMapper
Reads the rows corresponding to a selection.- Specified by:
readSelectionRows
in interfaceRowMapper
- Parameters:
selType
- the selection typeselId
- the selection id (parent id for a hierarchy selection)filter
- the filter value (name for a hierarchy selection)criterion
- an optional additional criterion depending on the selection type (complex prop flag for a hierarchy selection)limitToOne
- whether to stop after one row retrieved- Returns:
- the list of rows
-
readSelectionsIds
Description copied from interface:RowMapper
Gets all the selection ids for a given list of values.- Specified by:
readSelectionsIds
in interfaceRowMapper
-
copy
public RowMapper.CopyResult copy(RowMapper.IdWithTypes source, Serializable destParentId, String destName, Row overwriteRow, boolean excludeSpecialChildren, boolean excludeACL) Description copied from interface:RowMapper
Copies the hierarchy starting from a given row to a new parent with a new name.If the new parent is
null
, then this is a version creation, which doesn't recurse in regular children.If
overwriteRow
is passed, the copy is done onto this existing node as its root (version restore) instead of creating a new node in the parent.- Specified by:
copy
in interfaceRowMapper
- Parameters:
source
- the id, primary type and mixin types of the row to copydestParentId
- the new parent id, ornull
destName
- the new nameoverwriteRow
- when notnull
, the copy is done onto this existing row, and the values are set in hierarchyexcludeSpecialChildren
- the flag to exclude special children from copyexcludeACL
- the flag to exclude ACL from copy- Returns:
- info about the copy
-
getDescendantsInfo
Description copied from interface:RowMapper
Gets descendants infos from a given root node. This does not include information about the root node itself.- Specified by:
getDescendantsInfo
in interfaceRowMapper
- Parameters:
rootId
- the root node id from which to get descendants info- Returns:
- the list of descendant nodes info
-
remove
Description copied from interface:RowMapper
Deletes a hierarchy. -
getCacheSize
public long getCacheSize()Description copied from interface:RowMapper
Evaluate the cached elements size- Specified by:
getCacheSize
in interfaceRowMapper
-