Package org.nuxeo.ecm.core.storage.sql
Class UnifiedCachingMapper
java.lang.Object
org.nuxeo.ecm.core.storage.sql.UnifiedCachingRowMapper
org.nuxeo.ecm.core.storage.sql.UnifiedCachingMapper
- All Implemented Interfaces:
CachingMapper,Mapper,RowMapper
A
Mapper that uses a UnifiedCachingRowMapper for row-related operation, and delegates to the
Mapper for others.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.nuxeo.ecm.core.storage.sql.Mapper
Mapper.IdentificationNested classes/interfaces inherited from interface org.nuxeo.ecm.core.storage.sql.RowMapper
RowMapper.CopyResult, RowMapper.IdWithTypes, RowMapper.NodeInfo, RowMapper.RowBatch, RowMapper.RowUpdate -
Field Summary
FieldsFields inherited from class org.nuxeo.ecm.core.storage.sql.UnifiedCachingRowMapper
cacheGetTimer, cacheHitCount, isXA, registry, sorGetTimer, sorRowsFields inherited from interface org.nuxeo.ecm.core.storage.sql.Mapper
CLOSE, GET_IDENTIFICATION -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintcleanupDeletedRows(int max, Calendar beforeTime) Cleans up (hard-delete) any rows that have been soft-deleted in the database.voidclose()voidcreateClusterNode(Serializable nodeId) Informs the cluster that this node exists.Gets the ids for all the ancestors of the given row ids.getClusterInvalidations(Serializable nodeId) Gets the invalidations from other cluster nodes.intReturns the repository id and mapper id assigned.Gets the root id for a given repository, if registered.intgetTableSize(String tableName) voidinitialize(String repositoryName, Model model, Mapper mapper, VCSInvalidationsPropagator invalidationsPropagator, Map<String, String> properties) Initialize the caching mapper instancevoidinsertClusterInvalidations(Serializable nodeId, VCSInvalidations invalidations) Inserts the invalidation rows for the other cluster nodes.voidmarkReferencedBlobs(BiConsumer<String, String> markerCallback) Marks the blobs in use by passing them to the provided callback (taking the blob key and the repository name).query(String query, String queryType, QueryFilter queryFilter, boolean countTotal) Makes a NXQL query to the database.query(String query, String queryType, QueryFilter queryFilter, long countUpTo) Makes a NXQL query to the database.queryAndFetch(String query, String queryType, QueryFilter queryFilter, boolean distinctDocuments, Object... params) Makes a query to the database and returns an iterable (which must be closed when done).queryProjection(String query, String queryType, QueryFilter queryFilter, boolean distinctDocuments, long countUpTo, Object... params) Makes a query to the database.voidvoidremoveClusterNode(Serializable nodeId) Removes this node from the cluster.Get the next batch of results containing id of documents, thescrollIdis part of the previousScrollResultresponse.Executes the given query and returns the first batch of results containing id of documents, next batch must be requested within thekeepAliveSecondsdelay.scroll(String query, QueryFilter queryFilter, int batchSize, int keepAliveSeconds) Executes the given query and returns the first batch of results containing id of documents, next batch must be requested within thekeepAliveSecondsdelay.voidsetRootId(Serializable repositoryId, Serializable id) Records the newly generated root id for a given repository.voidMethods inherited from class org.nuxeo.ecm.core.storage.sql.UnifiedCachingRowMapper
cacheGet, cachePut, cachePutAbsent, cachePutAbsentIfNull, cachePutAbsentIfRowId, cacheRemove, clearCache, copy, ehCacheGet, ehCacheGetSize, ehCachePut, ehCacheRemove, ehCacheRemoveAll, generateNewId, getBinaryFulltext, getCacheSize, getDescendantsInfo, hasTransaction, initialize, isAbsent, read, readCollectionRowArray, readSelectionRows, readSelectionsIds, readSimpleRow, receiveInvalidations, remove, rollback, sendInvalidations, setMetrics, sortACLRows, useEhCache, writeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.nuxeo.ecm.core.storage.sql.RowMapper
clearCache, copy, copy, generateNewId, getBinaryFulltext, getCacheSize, getDescendantsInfo, read, readCollectionRowArray, readSelectionRows, readSelectionsIds, readSimpleRow, receiveInvalidations, remove, rollback, sendInvalidations, write
-
Field Details
-
mapper
TheMapperto which operations are delegated.
-
-
Constructor Details
-
UnifiedCachingMapper
public UnifiedCachingMapper()
-
-
Method Details
-
initialize
public void initialize(String repositoryName, Model model, Mapper mapper, VCSInvalidationsPropagator invalidationsPropagator, Map<String, String> properties) Description copied from interface:CachingMapperInitialize the caching mapper instance- Specified by:
initializein interfaceCachingMapper
-
scroll
Description copied from interface:MapperExecutes the given query and returns the first batch of results containing id of documents, next batch must be requested within thekeepAliveSecondsdelay. -
scroll
public ScrollResult scroll(String query, QueryFilter queryFilter, int batchSize, int keepAliveSeconds) Description copied from interface:MapperExecutes the given query and returns the first batch of results containing id of documents, next batch must be requested within thekeepAliveSecondsdelay. -
scroll
Description copied from interface:MapperGet the next batch of results containing id of documents, thescrollIdis part of the previousScrollResultresponse. -
getIdentification
Description copied from interface:MapperReturns the repository id and mapper id assigned.This is used in remote stateless mode to be able to identify to which mapper an incoming connection is targeted, and from which repository instance.
- Specified by:
getIdentificationin interfaceMapper- Returns:
- the repository and mapper identification
-
close
public void close()- Specified by:
closein interfaceMapper- Overrides:
closein classUnifiedCachingRowMapper
-
getTableSize
- Specified by:
getTableSizein interfaceMapper
-
getRootId
Description copied from interface:MapperGets the root id for a given repository, if registered. -
setRootId
Description copied from interface:MapperRecords the newly generated root id for a given repository. -
query
public PartialList<Serializable> query(String query, String queryType, QueryFilter queryFilter, boolean countTotal) Description copied from interface:MapperMakes a NXQL query to the database. -
query
public PartialList<Serializable> query(String query, String queryType, QueryFilter queryFilter, long countUpTo) Description copied from interface:MapperMakes a NXQL query to the database.- Specified by:
queryin interfaceMapper- Parameters:
query- the queryqueryType- the query typequeryFilter- the query filtercountUpTo- if-1, count the total size without offset/limit.
If0, don't count the total size.
Ifn, count the total number if there are less than n documents otherwise set the size to-1.- Returns:
- the list of matching document ids
-
queryAndFetch
public IterableQueryResult queryAndFetch(String query, String queryType, QueryFilter queryFilter, boolean distinctDocuments, Object... params) Description copied from interface:MapperMakes a query to the database and returns an iterable (which must be closed when done).- Specified by:
queryAndFetchin interfaceMapper- Parameters:
query- the queryqueryType- the query typequeryFilter- the query filterdistinctDocuments- iftruethen a maximum of one row per document will be returnedparams- optional query-type-dependent parameters- Returns:
- an iterable, which must be closed when done
-
queryProjection
public PartialList<Map<String,Serializable>> queryProjection(String query, String queryType, QueryFilter queryFilter, boolean distinctDocuments, long countUpTo, Object... params) Description copied from interface:MapperMakes a query to the database.- Specified by:
queryProjectionin interfaceMapper- Parameters:
query- the queryqueryType- the query typequeryFilter- the query filterdistinctDocuments- iftruethen a maximum of one row per document will be returnedcountUpTo- if-1, also count the total size without offset/limit.
If0, don't count the total size.
Ifn, count the total number if there are less than n documents otherwise set the size to-1.params- optional query-type-dependent parameters- Returns:
- a projection
-
getAncestorsIds
Description copied from interface:MapperGets the ids for all the ancestors of the given row ids.- Specified by:
getAncestorsIdsin interfaceMapper- Parameters:
ids- the ids- Returns:
- the set of ancestor ids
-
updateReadAcls
public void updateReadAcls()- Specified by:
updateReadAclsin interfaceMapper
-
rebuildReadAcls
public void rebuildReadAcls()- Specified by:
rebuildReadAclsin interfaceMapper
-
getClusterNodeIdType
public int getClusterNodeIdType()- Specified by:
getClusterNodeIdTypein interfaceMapper
-
createClusterNode
Description copied from interface:MapperInforms the cluster that this node exists.- Specified by:
createClusterNodein interfaceMapper
-
removeClusterNode
Description copied from interface:MapperRemoves this node from the cluster.- Specified by:
removeClusterNodein interfaceMapper
-
insertClusterInvalidations
Description copied from interface:MapperInserts the invalidation rows for the other cluster nodes.- Specified by:
insertClusterInvalidationsin interfaceMapper
-
getClusterInvalidations
Description copied from interface:MapperGets the invalidations from other cluster nodes.- Specified by:
getClusterInvalidationsin interfaceMapper
-
markReferencedBlobs
Description copied from interface:MapperMarks the blobs in use by passing them to the provided callback (taking the blob key and the repository name).- Specified by:
markReferencedBlobsin interfaceMapper
-
cleanupDeletedRows
Description copied from interface:MapperCleans up (hard-delete) any rows that have been soft-deleted in the database.- Specified by:
cleanupDeletedRowsin interfaceMapper- Parameters:
max- the maximum number of rows to delete at a timebeforeTime- the maximum deletion time of the rows to delete- Returns:
- the number of rows deleted
-