public class NuxeoDriveManagerImpl extends DefaultComponent implements NuxeoDriveManager
Modifier and Type | Field and Description |
---|---|
static String |
DOCUMENT_CHANGE_LIMIT_PROPERTY |
static String |
DRIVE_SUBSCRIPTIONS_PROPERTY |
static String |
NUXEO_DRIVE_FACET |
Constructor and Description |
---|
NuxeoDriveManagerImpl() |
Modifier and Type | Method and Description |
---|---|
FileSystemChangeSummary |
getChangeSummary(Principal principal,
Map<String,Set<IdRef>> lastSyncRootRefs,
long lastSuccessfulSync)
Uses the
AuditChangeFinder to get the summary of document changes
for the given user and last successful synchronization date. |
Set<IdRef> |
getSynchronizationRootReferences(CoreSession session)
Fetch the list of synchronization root refs for a given user and a given
session repository.
|
Map<String,SynchronizationRoots> |
getSynchronizationRoots(Principal principal)
Fetch all the synchronization root references and paths for a given user.
|
void |
handleFolderDeletion(IdRef deleted)
Method to be called by a CoreEvent listener monitoring documents
deletions to cleanup references to recently deleted documents and
invalidate the caches.
|
void |
invalidateSynchronizationRootsCache(String userName)
Invalidate the synchronization roots cache for a given user so as to
query the repository next time
getSynchronizationRoots is called. |
boolean |
isSynchronizationRoot(Principal principal,
DocumentModel doc)
Checks if the given
DocumentModel is a synchronization root for
the given user. |
void |
registerSynchronizationRoot(Principal principal,
DocumentModel newRootContainer,
CoreSession session) |
void |
setChangeFinder(FileSystemChangeFinder changeFinder)
Sets the
FileSystemChangeFinder member. |
void |
unregisterSynchronizationRoot(Principal principal,
DocumentModel rootContainer,
CoreSession session) |
activate, applicationStarted, deactivate, getAdapter, getApplicationStartedOrder, getLastModified, registerContribution, registerExtension, setLastModified, unregisterContribution, unregisterExtension
public static final String NUXEO_DRIVE_FACET
public static final String DRIVE_SUBSCRIPTIONS_PROPERTY
public static final String DOCUMENT_CHANGE_LIMIT_PROPERTY
public void invalidateSynchronizationRootsCache(String userName)
NuxeoDriveManager
getSynchronizationRoots
is called.invalidateSynchronizationRootsCache
in interface NuxeoDriveManager
userName
- the principal name of the user to invalidate the cache
for.public void registerSynchronizationRoot(Principal principal, DocumentModel newRootContainer, CoreSession session) throws ClientException
registerSynchronizationRoot
in interface NuxeoDriveManager
principal
- the Nuxeo Drive usernewRootContainer
- the folderish document to be used as
synchronization root: must be bound to an active sessionClientException
public void unregisterSynchronizationRoot(Principal principal, DocumentModel rootContainer, CoreSession session) throws ClientException
unregisterSynchronizationRoot
in interface NuxeoDriveManager
principal
- the Nuxeo Drive userrootContainer
- the folderish document that should no longer be used
as a synchronization rootClientException
public Set<IdRef> getSynchronizationRootReferences(CoreSession session) throws ClientException
NuxeoDriveManager
getSynchronizationRootReferences
in interface NuxeoDriveManager
session
- active CoreSession instance to the repository hosting the
roots.ClientException
#getSynchronizationRootPaths(String, CoreSession)
public void handleFolderDeletion(IdRef deleted) throws ClientException
NuxeoDriveManager
handleFolderDeletion
in interface NuxeoDriveManager
ClientException
public FileSystemChangeSummary getChangeSummary(Principal principal, Map<String,Set<IdRef>> lastSyncRootRefs, long lastSuccessfulSync) throws ClientException
AuditChangeFinder
to get the summary of document changes
for the given user and last successful synchronization date.
The DOCUMENT_CHANGE_LIMIT_PROPERTY
Framework property is used as
a limit of document changes to fetch from the audit logs. Default value
is 1000.
If lastSuccessfulSync is missing (i.e. set to a negative value), the
filesystem change summary is empty but the returned sync date is set to
the actual server timestamp so that the client can reuse it as a starting
timestamp for a future incremental diff request.
getChangeSummary
in interface NuxeoDriveManager
lastSyncRootRefs
- the map keyed by repository names of document
refs for the synchronization roots that were active during
last synchornizationlastSuccessfulSync
- the last successful synchronization date of the
user's device. This time is expected to be in milliseconds
since 1970-01-01 UTC as measured on the Nuxeo server clock,
typically set to the value returned
DocumentChangeSummary#getSyncDate()
of the previous
call to
NuxeoDriveManager#getDocumentChangeSummary(boolean, String, CoreSession, long)
or 0 for catching every event since the repository
initialization.ClientException
public Map<String,SynchronizationRoots> getSynchronizationRoots(Principal principal) throws ClientException
NuxeoDriveManager
getSynchronizationRoots
in interface NuxeoDriveManager
principal
- the user to fetch the roots forClientException
public boolean isSynchronizationRoot(Principal principal, DocumentModel doc) throws ClientException
NuxeoDriveManager
DocumentModel
is a synchronization root for
the given user.isSynchronizationRoot
in interface NuxeoDriveManager
ClientException
public void setChangeFinder(FileSystemChangeFinder changeFinder)
NuxeoDriveManager
FileSystemChangeFinder
member.
TODO: make it overridable with an extension point and remove setter.
setChangeFinder
in interface NuxeoDriveManager
Copyright © 2013 Nuxeo SA. All Rights Reserved.