public class NuxeoDriveManagerImpl extends DefaultComponent implements NuxeoDriveManager
Modifier and Type | Field and Description |
---|---|
static String |
CHANGE_FINDER_EP |
static String |
DOCUMENT_CHANGE_LIMIT_PROPERTY |
static String |
DRIVE_SUBSCRIPTIONS_PROPERTY |
static String |
NUXEO_DRIVE_FACET |
static TimeZone |
UTC |
LOCALLY_EDITED_COLLECTION_NAME
Constructor and Description |
---|
NuxeoDriveManagerImpl() |
Modifier and Type | Method and Description |
---|---|
void |
activate(ComponentContext context)
Activates the component.
|
void |
addToLocallyEditedCollection(CoreSession session,
DocumentModel doc)
Adds the given
DocumentModel to the NuxeoDriveManager.LOCALLY_EDITED_COLLECTION_NAME collection. |
void |
applicationStarted(ComponentContext context)
Sorts the contributed factories according to their order.
|
void |
deactivate(ComponentContext context)
Deactivates the component.
|
FileSystemChangeFinder |
getChangeFinder()
Gets the
FileSystemChangeFinder member. |
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. |
FileSystemChangeSummary |
getChangeSummaryIntegerBounds(Principal principal,
Map<String,Set<IdRef>> lastSyncRootRefs,
long lowerBound)
Uses the
AuditChangeFinder to get the summary of document changes for the given user and lower bound. |
Map<String,Set<String>> |
getCollectionSyncRootMemberIds(Principal principal)
Fetch all the collection sync root member ids for a given user.
|
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 |
invalidateCollectionSyncRootMemberCache()
Invalidate the collection sync root member cache for all users so as to query the repository next time
NuxeoDriveManager.getCollectionSyncRootMemberIds(Principal) is called. |
void |
invalidateCollectionSyncRootMemberCache(String userName)
Invalidate the collection sync root member cache for a given user so as to query the repository next time
NuxeoDriveManager.getCollectionSyncRootMemberIds(Principal) is called. |
void |
invalidateSynchronizationRootsCache(String userName)
Invalidate the synchronization roots cache for a given user so as to query the repository next time
NuxeoDriveManager.getSynchronizationRoots(Principal) is called. |
boolean |
isSynchronizationRoot(Principal principal,
DocumentModel doc)
Checks if the given
DocumentModel is a synchronization root for the given user. |
void |
registerContribution(Object contribution,
String extensionPoint,
ComponentInstance contributor) |
void |
registerSynchronizationRoot(Principal principal,
DocumentModel newRootContainer,
CoreSession session) |
void |
setChangeFinder(FileSystemChangeFinder changeFinder)
Deprecated.
|
void |
unregisterContribution(Object contribution,
String extensionPoint,
ComponentInstance contributor) |
void |
unregisterSynchronizationRoot(Principal principal,
DocumentModel rootContainer,
CoreSession session) |
getAdapter, getApplicationStartedOrder, getLastModified, registerExtension, setLastModified, unregisterExtension
public static final String CHANGE_FINDER_EP
public static final String NUXEO_DRIVE_FACET
public static final String DRIVE_SUBSCRIPTIONS_PROPERTY
public static final String DOCUMENT_CHANGE_LIMIT_PROPERTY
public static final TimeZone UTC
public void invalidateSynchronizationRootsCache(String userName)
NuxeoDriveManager
NuxeoDriveManager.getSynchronizationRoots(Principal)
is called.invalidateSynchronizationRootsCache
in interface NuxeoDriveManager
userName
- the principal name of the user to invalidate the cache for.public void invalidateCollectionSyncRootMemberCache(String userName)
NuxeoDriveManager
NuxeoDriveManager.getCollectionSyncRootMemberIds(Principal)
is called.invalidateCollectionSyncRootMemberCache
in interface NuxeoDriveManager
userName
- the principal name of the user to invalidate the cache for.public void invalidateCollectionSyncRootMemberCache()
NuxeoDriveManager
NuxeoDriveManager.getCollectionSyncRootMemberIds(Principal)
is called.invalidateCollectionSyncRootMemberCache
in interface NuxeoDriveManager
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 synchronizationlastSuccessfulSync
- 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 by FileSystemChangeSummary.getSyncDate()
of the previous call to
NuxeoDriveManager.getChangeSummary(Principal, Map, long)
or 0 for catching every event since
the repository initialization.ClientException
public FileSystemChangeSummary getChangeSummaryIntegerBounds(Principal principal, Map<String,Set<IdRef>> lastSyncRootRefs, long lowerBound) throws ClientException
AuditChangeFinder
to get the summary of document changes for the given user and lower bound.
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 lowerBound
is missing (i.e. set to a negative value), the
filesystem change summary is empty but the returned upper bound is set to the greater event log id so that the
client can reuse it as a starting id for a future incremental diff request.
getChangeSummaryIntegerBounds
in interface NuxeoDriveManager
lastSyncRootRefs
- the map keyed by repository names of document refs for the synchronization roots that
were active during last synchronizationlowerBound
- the lower bound sent by the user's device. Typically set to the value returned by
FileSystemChangeSummary.getUpperBound()
of the previous call to
NuxeoDriveManager.getChangeSummaryIntegerBounds(Principal, Map, 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 Map<String,Set<String>> getCollectionSyncRootMemberIds(Principal principal) throws ClientException
NuxeoDriveManager
getCollectionSyncRootMemberIds
in interface NuxeoDriveManager
principal
- the user to fetch the ids 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 FileSystemChangeFinder getChangeFinder()
NuxeoDriveManager
FileSystemChangeFinder
member.getChangeFinder
in interface NuxeoDriveManager
@Deprecated public void setChangeFinder(FileSystemChangeFinder changeFinder)
NuxeoDriveManager
FileSystemChangeFinder
member.setChangeFinder
in interface NuxeoDriveManager
public void addToLocallyEditedCollection(CoreSession session, DocumentModel doc) throws ClientException
NuxeoDriveManager
DocumentModel
to the NuxeoDriveManager.LOCALLY_EDITED_COLLECTION_NAME
collection.addToLocallyEditedCollection
in interface NuxeoDriveManager
ClientException
public void registerContribution(Object contribution, String extensionPoint, ComponentInstance contributor)
registerContribution
in class DefaultComponent
public void unregisterContribution(Object contribution, String extensionPoint, ComponentInstance contributor)
unregisterContribution
in class DefaultComponent
public void activate(ComponentContext context)
Component
This method is called by the runtime when a component is activated.
activate
in interface Component
activate
in class DefaultComponent
context
- the runtime contextpublic void deactivate(ComponentContext context)
Component
This method is called by the runtime when a component is deactivated.
deactivate
in interface Component
deactivate
in class DefaultComponent
context
- the runtime contextpublic void applicationStarted(ComponentContext context)
applicationStarted
in interface Component
applicationStarted
in class DefaultComponent
Copyright © 2015 Nuxeo SA. All rights reserved.