public class JCRLocalCMISDrive
extends org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive
| Modifier and Type | Class and Description |
|---|---|
protected class |
JCRLocalCMISDrive.Connect
Connect algorithm for Template drive.
|
protected class |
JCRLocalCMISDrive.DocumentContent |
protected class |
JCRLocalCMISDrive.FileAPI
CloudFileAPI implementation. |
protected static interface |
JCRLocalCMISDrive.LocalFile |
protected class |
JCRLocalCMISDrive.Sync
A facade
SyncCommand implementation. |
org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.AbstractCommand, org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.AbstractFileAPI, org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.CommandCallable, org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.ConnectCommand, org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.DriveState, org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.ExoJCREnvironment, org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.ExoJCRSettings, org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.FileChange, org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.JCRListener, org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.NoConnectCommand, org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.NoSyncCommand, org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.SyncCommand, org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.SyncFilesCommand| Modifier and Type | Field and Description |
|---|---|
protected AtomicLong |
changeIdSequencer |
protected String |
exoURL
Platform server host URL, used for preview URL generation.
|
static long |
FULL_SYNC_PERIOD
Period to perform
FullSync as a next sync request. |
accentsConverter, actionDrive, ALREADY_DONE, commandEnv, CURRENT_LOCALFORMAT, currentChangeId, currentConnect, currentSync, DUMMY_DATA, ECD_CLOUDDRIVE, ECD_CLOUDFILE, ECD_CLOUDFILERESOURCE, ECD_CLOUDFOLDER, ECD_IGNORED, ECD_LOCALFORMAT, EXO_DATETIME, EXO_MODIFY, EXO_THUMBNAIL, EXO_THUMBNAILS, EXO_TRASHFOLDER, fileAPI, fileChanges, fileChangeSequencer, fileCopies, fileHistory, fileRemovals, fileSynchronizers, fileTrash, finder, HISTORY_EXPIRATION, HISTORY_MAX_LENGTH, jcrListener, mimeTypes, MIX_REFERENCEABLE, noConnect, noSyncCommand, NT_FILE, NT_FOLDER, NT_RESOURCE, NT_UNSTRUCTURED, repository, rootNodeHolder, rootUUID, rootWorkspace, sessionProviders, state, syncFilesMessages, syncLock, updating, user, USER_NODEPATH, USER_SESSIONPROVIDER, USER_WORKSPACE, workerExecutor| Modifier | Constructor and Description |
|---|---|
protected |
JCRLocalCMISDrive(CMISConnector.API apiBuilder,
javax.jcr.Node driveNode,
org.exoplatform.services.jcr.ext.app.SessionProviderService sessionProviders,
org.exoplatform.clouddrive.jcr.NodeFinder finder,
org.exoplatform.clouddrive.utils.ExtendedMimeTypeResolver mimeTypes,
String exoURL) |
protected |
JCRLocalCMISDrive(CMISUser user,
javax.jcr.Node driveNode,
org.exoplatform.services.jcr.ext.app.SessionProviderService sessionProviders,
org.exoplatform.clouddrive.jcr.NodeFinder finder,
org.exoplatform.clouddrive.utils.ExtendedMimeTypeResolver mimeTypes,
String exoURL) |
| Modifier and Type | Method and Description |
|---|---|
protected String |
createContentLink(String path,
String fileId)
Create a link to get this file content via eXo REST service as a proxy to remote CMIS.
|
protected org.exoplatform.clouddrive.CloudFileAPI |
createFileAPI() |
protected String |
editLink(javax.jcr.Node fileNode) |
protected void |
ensureSame(org.exoplatform.clouddrive.CloudUser user,
javax.jcr.Node driveNode) |
protected String |
findMimetype(org.apache.chemistry.opencmis.client.api.Document file,
String localType)
Find MIME type of given CMIS document.
|
protected String |
findMimetype(String fileName,
String fileType)
Determine a MIME type of given file name if given file type is
null or a default value as
defined by ExtendedMimeTypeResolver.getDefaultMimeType(). |
protected String |
findMimetype(String fileName,
String fileType,
String alternativeType)
Determine a MIME type for given file name if given file type is
null or a default value as
defined by ExtendedMimeTypeResolver.getDefaultMimeType(). |
protected String |
getChangeToken(javax.jcr.Node localNode)
Read CMIS change token of a file.
Override this method to apply vendor specific logic (id type etc). |
protected org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.ConnectCommand |
getConnectCommand() |
ContentReader |
getFileContent(String fileId) |
protected org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.SyncCommand |
getSyncCommand() |
CMISUser |
getUser() |
protected void |
initCMISItem(javax.jcr.Node localNode,
org.apache.chemistry.opencmis.client.api.CmisObject item)
Initialize CMIS specifics of files and folders.
|
protected void |
initFile(javax.jcr.Node localNode,
String title,
String id,
String type,
String link,
String previewLink,
String thumbnailLink,
String author,
String lastUser,
Calendar created,
Calendar modified) |
protected static CMISUser |
loadUser(CMISConnector.API apiBuilder,
javax.jcr.Node driveNode)
Load user from the drive Node.
|
protected String |
previewLink(javax.jcr.Node fileNode) |
protected Long |
readChangeId() |
protected void |
refreshAccess() |
protected void |
saveAccess(javax.jcr.Node driveNode,
String password,
String serviceURL,
String repositoryId)
Save user credentials in local drive.
|
protected void |
saveChangeId(Long id) |
protected void |
setChangeToken(javax.jcr.Node localNode,
String changeToken)
Initialize CMIS Change Token of a file.
Override this method to apply vendor specific logic (id type etc). |
protected void |
updateAccess(org.exoplatform.clouddrive.CloudUser newUser) |
protected org.exoplatform.clouddrive.jcr.JCRLocalCloudFile |
updateItem(CMISAPI api,
org.apache.chemistry.opencmis.client.api.CmisObject item,
javax.jcr.Node parent,
javax.jcr.Node node)
Update or create a local node of Cloud File.
|
addJCRListener, addUpdating, checkNotTrashed, cleanName, cleanNode, cleanRemoved, cleanup, cleanUpdated, commitChanges, configure, connect, copyNode, create, disconnect, fileNode, findNode, findNodes, getChangeId, getConnectDate, getFile, getId, getInitDate, getLink, getLocalUser, getOrCleanFileNode, getPath, getState, getTitle, hasFile, hasRemoved, hasUpdated, ignore, initCommon, initCopy, initDrive, initFolder, initRemove, initUpdating, isConnected, isDrive, isDrive, isIgnored, isInDrive, isLocal, isNew, isNewOrUpdating, isSameDrive, isUpdating, link, listFiles, listFiles, listFiles, loadHistory, migrateName, moveFile, nextChangeId, openFile, openFolder, readFile, readNode, readNodes, removeJCRListener, removeUpdating, rollback, rollbackAllChanges, rollbackChanges, rootNode, saveChanges, savedChanges, session, setChangeId, synchronize, systemSession, thumbnailLink, title, unignorepublic static final long FULL_SYNC_PERIOD
FullSync as a next sync request. See implementation of
getSyncCommand().protected final AtomicLong changeIdSequencer
protected final String exoURL
protected JCRLocalCMISDrive(CMISUser user, javax.jcr.Node driveNode, org.exoplatform.services.jcr.ext.app.SessionProviderService sessionProviders, org.exoplatform.clouddrive.jcr.NodeFinder finder, org.exoplatform.clouddrive.utils.ExtendedMimeTypeResolver mimeTypes, String exoURL) throws org.exoplatform.clouddrive.CloudDriveException, javax.jcr.RepositoryException
user - driveNode - sessionProviders - org.exoplatform.clouddrive.CloudDriveExceptionjavax.jcr.RepositoryExceptionprotected JCRLocalCMISDrive(CMISConnector.API apiBuilder, javax.jcr.Node driveNode, org.exoplatform.services.jcr.ext.app.SessionProviderService sessionProviders, org.exoplatform.clouddrive.jcr.NodeFinder finder, org.exoplatform.clouddrive.utils.ExtendedMimeTypeResolver mimeTypes, String exoURL) throws javax.jcr.RepositoryException, org.exoplatform.clouddrive.CloudDriveException
javax.jcr.RepositoryExceptionorg.exoplatform.clouddrive.CloudDriveExceptionprotected static CMISUser loadUser(CMISConnector.API apiBuilder, javax.jcr.Node driveNode) throws javax.jcr.RepositoryException, CMISException, org.exoplatform.clouddrive.CloudDriveException
apiBuilder - CMISConnector.API API builderdriveNode - Node root of the driveCMISUserjavax.jcr.RepositoryExceptionCMISExceptionorg.exoplatform.clouddrive.CloudDriveExceptionprotected void saveAccess(javax.jcr.Node driveNode,
String password,
String serviceURL,
String repositoryId)
throws org.exoplatform.clouddrive.CloudDriveException
updateAccess(CloudUser).protected org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.ConnectCommand getConnectCommand()
throws org.exoplatform.clouddrive.DriveRemovedException,
javax.jcr.RepositoryException
getConnectCommand in class org.exoplatform.clouddrive.jcr.JCRLocalCloudDriveorg.exoplatform.clouddrive.DriveRemovedExceptionjavax.jcr.RepositoryExceptionprotected org.exoplatform.clouddrive.jcr.JCRLocalCloudDrive.SyncCommand getSyncCommand()
throws org.exoplatform.clouddrive.DriveRemovedException,
org.exoplatform.clouddrive.SyncNotSupportedException,
javax.jcr.RepositoryException
getSyncCommand in class org.exoplatform.clouddrive.jcr.JCRLocalCloudDriveorg.exoplatform.clouddrive.RefreshAccessExceptionorg.exoplatform.clouddrive.DriveRemovedExceptionorg.exoplatform.clouddrive.SyncNotSupportedExceptionjavax.jcr.RepositoryExceptionprotected org.exoplatform.clouddrive.CloudFileAPI createFileAPI()
throws org.exoplatform.clouddrive.DriveRemovedException,
org.exoplatform.clouddrive.SyncNotSupportedException,
javax.jcr.RepositoryException
createFileAPI in class org.exoplatform.clouddrive.jcr.JCRLocalCloudDriveorg.exoplatform.clouddrive.DriveRemovedExceptionorg.exoplatform.clouddrive.SyncNotSupportedExceptionjavax.jcr.RepositoryExceptionprotected Long readChangeId() throws javax.jcr.RepositoryException, org.exoplatform.clouddrive.CloudDriveException
readChangeId in class org.exoplatform.clouddrive.jcr.JCRLocalCloudDrivejavax.jcr.RepositoryExceptionorg.exoplatform.clouddrive.CloudDriveExceptionprotected void saveChangeId(Long id) throws org.exoplatform.clouddrive.CloudDriveException, javax.jcr.RepositoryException
saveChangeId in class org.exoplatform.clouddrive.jcr.JCRLocalCloudDriveorg.exoplatform.clouddrive.CloudDriveExceptionjavax.jcr.RepositoryExceptionpublic CMISUser getUser()
getUser in class org.exoplatform.clouddrive.CloudDriveprotected void refreshAccess()
throws org.exoplatform.clouddrive.CloudDriveException
refreshAccess in class org.exoplatform.clouddrive.CloudDriveorg.exoplatform.clouddrive.CloudDriveExceptionprotected void updateAccess(org.exoplatform.clouddrive.CloudUser newUser)
throws org.exoplatform.clouddrive.CloudDriveException,
javax.jcr.RepositoryException
updateAccess in class org.exoplatform.clouddrive.CloudDriveorg.exoplatform.clouddrive.CloudDriveExceptionjavax.jcr.RepositoryExceptionprotected void initCMISItem(javax.jcr.Node localNode,
org.apache.chemistry.opencmis.client.api.CmisObject item)
throws javax.jcr.RepositoryException,
CMISException
localNode - Nodeitem - CmisObjectjavax.jcr.RepositoryExceptionCMISExceptionprotected void initFile(javax.jcr.Node localNode,
String title,
String id,
String type,
String link,
String previewLink,
String thumbnailLink,
String author,
String lastUser,
Calendar created,
Calendar modified)
throws javax.jcr.RepositoryException
initFile in class org.exoplatform.clouddrive.jcr.JCRLocalCloudDrivejavax.jcr.RepositoryExceptionprotected void setChangeToken(javax.jcr.Node localNode,
String changeToken)
throws javax.jcr.RepositoryException,
CMISException
localNode - NodechangeToken - Stringjavax.jcr.RepositoryExceptionCMISExceptionprotected String getChangeToken(javax.jcr.Node localNode) throws javax.jcr.RepositoryException, CMISException
localNode - NodeStringjavax.jcr.RepositoryExceptionCMISExceptionprotected org.exoplatform.clouddrive.jcr.JCRLocalCloudFile updateItem(CMISAPI api, org.apache.chemistry.opencmis.client.api.CmisObject item, javax.jcr.Node parent, javax.jcr.Node node) throws javax.jcr.RepositoryException, org.exoplatform.clouddrive.CloudDriveException
null then it will be open on the
given parent and created if not already exists.api - CMISAPIitem - CmisObjectparent - Nodenode - Node, can be nullJCRLocalCloudFilejavax.jcr.RepositoryException - for storage errorsorg.exoplatform.clouddrive.CloudDriveException - for drive or format errorsprotected String createContentLink(String path, String fileId) throws org.exoplatform.clouddrive.DriveRemovedException, javax.jcr.RepositoryException
protected String previewLink(javax.jcr.Node fileNode) throws javax.jcr.RepositoryException
previewLink in class org.exoplatform.clouddrive.jcr.JCRLocalCloudDrivejavax.jcr.RepositoryExceptionprotected String editLink(javax.jcr.Node fileNode)
editLink in class org.exoplatform.clouddrive.jcr.JCRLocalCloudDriveprotected String findMimetype(org.apache.chemistry.opencmis.client.api.Document file, String localType)
null or a default value as
defined by ExtendedMimeTypeResolver.getDefaultMimeType(), then most relevant type will be
determined and if nothing found an existing local type will be returned. Otherwise a default type will be
returned as defined by ExtendedMimeTypeResolver.getDefaultMimeType().protected String findMimetype(String fileName, String fileType)
null or a default value as
defined by ExtendedMimeTypeResolver.getDefaultMimeType(). If required, a MIME type will be
guessed by ExtendedMimeTypeResolver.getMimeType(String) and
returned if found. Otherwise a default type will be returned (
ExtendedMimeTypeResolver.getDefaultMimeType()).protected String findMimetype(String fileName, String fileType, String alternativeType)
null or a default value as
defined by ExtendedMimeTypeResolver.getDefaultMimeType(). Otherwise this method returns the given
file type.ExtendedMimeTypeResolver.getMimeType(String) and
returned if found. If not, and given alternative type not null, the alternative type
will be returned. Otherwise a default type will be returned (
ExtendedMimeTypeResolver.getDefaultMimeType()).protected void ensureSame(org.exoplatform.clouddrive.CloudUser user,
javax.jcr.Node driveNode)
throws javax.jcr.RepositoryException,
org.exoplatform.clouddrive.CannotConnectDriveException
ensureSame in class org.exoplatform.clouddrive.jcr.JCRLocalCloudDrivejavax.jcr.RepositoryExceptionorg.exoplatform.clouddrive.CannotConnectDriveExceptionpublic ContentReader getFileContent(String fileId) throws CMISException, org.exoplatform.clouddrive.NotFoundException, org.exoplatform.clouddrive.CloudDriveAccessException, org.exoplatform.clouddrive.DriveRemovedException, javax.jcr.RepositoryException
CMISExceptionorg.exoplatform.clouddrive.NotFoundExceptionorg.exoplatform.clouddrive.CloudDriveAccessExceptionorg.exoplatform.clouddrive.DriveRemovedExceptionjavax.jcr.RepositoryExceptionCopyright © 2003–2014 eXo Platform SAS. All rights reserved.