org.eclipse.stardust.engine.api.runtime
Interface DocumentManagementService

All Superinterfaces:
org.eclipse.stardust.engine.api.runtime.Service

public interface DocumentManagementService
extends org.eclipse.stardust.engine.api.runtime.Service

The DocumentManagementService provides all functionality for DMS operations in a CARNOT runtime environment.

This includes:

Version:
$Revision$
Author:
rsauer

Method Summary
 void bindRepository(IRepositoryConfiguration configuration)
          Binds a new repository instance.
 Document createDocument(String folderId, DocumentInfo document)
          Creates document in a folder described by the document info.
 Document createDocument(String folderId, DocumentInfo document, byte[] content, String encoding)
          Creates document in a folder described by the document info.
 Folder createFolder(String parentFolderId, FolderInfo folder)
          Creates document in a folder described by the document info.
 Documents findDocuments(DocumentQuery query)
          Retrieves all documents satisfying the criteria specified in the provided query.
 List<Document> findDocuments(String xpathQuery)
          Deprecated. 
 List<Document> findDocumentsByName(String namePattern)
          Deprecated. 
 List<Folder> findFolders(String xpathQuery, int levelOfDetail)
          Deprecated. 
 List<Folder> findFoldersByName(String namePattern, int levelOfDetail)
          Deprecated. 
 Set<org.eclipse.stardust.engine.api.runtime.AccessControlPolicy> getApplicablePolicies(String resourceId)
          Returns the IAccessControlPolicy objects that can be set for the resource denoted by resourceId.
 String getDefaultRepository()
          Allows to identify the currently set default repository.
 Document getDocument(String documentId)
          Gets the document by ID or path.
 List<Document> getDocuments(List<String> documentIds)
          Gets multiple documents by ID or path.
 List<Document> getDocumentVersions(String documentId)
          Gets all versions of the document by document ID (of any of its version).
 Set<org.eclipse.stardust.engine.api.runtime.AccessControlPolicy> getEffectivePolicies(String resourceId)
          Returns the IAccessControlPolicy objects that currently are in effect on the resource denoted by resourceId (cumulated).
 Folder getFolder(String folderId)
          Retrieves a folder and lists its members.
 Folder getFolder(String folderId, int levelOfDetail)
          Retrieves a folder.
 List<Folder> getFolders(List<String> folderIds, int levelOfDetail)
          Gets multiple folders by ID or path.
 Set<org.eclipse.stardust.engine.api.runtime.AccessControlPolicy> getPolicies(String resourceId)
          Returns the IAccessControlPolicy objects that are currently set for the resource denoted by resourceId.
 Set<org.eclipse.stardust.engine.api.runtime.Privilege> getPrivileges(String resourceId)
          Returns the privileges the session has for the resource denoted by resourceId, which must exist.
 List<IRepositoryInstanceInfo> getRepositoryInstanceInfos()
          Provides information about all bound repositories.
 List<IRepositoryProviderInfo> getRepositoryProviderInfos()
          Provides information about all available repository providers.
 byte[] getSchemaDefinition(String schemaLocation)
          Retrieves the XSD schema for the specified schema location from the Document Repository serialized into a byte[].
 RepositoryMigrationReport migrateRepository(int batchSize, boolean evaluateTotalCount)
          Migrates resources in the repository.
 RepositoryMigrationReport migrateRepository(int batchSize, boolean evaluateTotalCount, String repositoryId)
           
 Document moveDocument(String documentId, String targetPath)
          Moves the document to the target path.
 void removeDocument(String documentId)
          Removes document.
 void removeDocumentVersion(String documentId, String documentRevisionId)
          Removes a version of a document.
 void removeFolder(String folderId, boolean recursive)
          Removes folder.
 String requestDocumentContentDownload(String documentId)
          Initiates document content download via DmsContentServlet.
 String requestDocumentContentUpload(String documentId)
          Initiates document content upload via DmsContentServlet.
 byte[] retrieveDocumentContent(String documentId)
          Retrieves the content of the document identified by documentId.
 void setDefaultRepository(String repositoryId)
           Allows to set a bound repository as default repository.
 void setPolicy(String resourceId, org.eclipse.stardust.engine.api.runtime.AccessControlPolicy policy)
          Binds the policy to the resource denoted by resourceId (overwrites the old version of the policy) If the policy does not contain any IAccessControlEntry then this policy is removed from the resource.
 void unbindRepository(String repositoryId)
          Unbinds a previously bound repository.
 Document updateDocument(Document document, boolean createNewRevision, String versionLabel, boolean keepLocked)
          Deprecated. since 7.0 use updateDocument(Document, boolean, String, String, boolean)
 Document updateDocument(Document document, boolean createNewRevision, String versionComment, String versionLabel, boolean keepLocked)
          Updates document (except document content).
 Document updateDocument(Document document, byte[] content, String encoding, boolean createNewRevision, String versionLabel, boolean keepLocked)
          Deprecated. since 7.0 use updateDocument(Document, byte[], String, boolean, String, String, boolean)
 Document updateDocument(Document document, byte[] content, String encoding, boolean createNewRevision, String versionComment, String versionLabel, boolean keepLocked)
          Updates document.
 Folder updateFolder(Folder folder)
          Updates folder.
 Document versionDocument(String documentId, String versionLabel)
          Deprecated. since 7.0 use versionDocument(String, String, String)
 Document versionDocument(String documentId, String versionComment, String versionLabel)
          Creates a new version of the document.
 

Method Detail

getDocument

@ExecutionPermission
Document getDocument(String documentId)
                     throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Gets the document by ID or path.

Parameters:
documentId - the ID or path of the document.
Returns:
the document or null if no document with such ID (or path) exists.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

getDocumentVersions

@ExecutionPermission
List<Document> getDocumentVersions(String documentId)
                                   throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Gets all versions of the document by document ID (of any of its version).

Parameters:
documentId - the ID (any version) or path of the document.
Returns:
list of document versions found.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

getDocuments

@ExecutionPermission
List<Document> getDocuments(List<String> documentIds)
                            throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Gets multiple documents by ID or path.

Parameters:
documentIds - list of document IDs or paths.
Returns:
list of documents found.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

findDocumentsByName

@ExecutionPermission
@Deprecated
List<Document> findDocumentsByName(String namePattern)
                                   throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Deprecated. 

Gets documents based on the name pattern search.

Parameters:
namePattern - the name pattern to search for.
Returns:
list of documents found.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

findDocuments

@ExecutionPermission
@Deprecated
List<Document> findDocuments(String xpathQuery)
                             throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Deprecated. 

Gets documents based on the XPath query.

Parameters:
xpathQuery - the XPath query.
Returns:
list of documents found.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

findDocuments

@ExecutionPermission
Documents findDocuments(DocumentQuery query)
Retrieves all documents satisfying the criteria specified in the provided query.

Parameters:
query - the document query.
Returns:
a List of Document objects.

retrieveDocumentContent

@ExecutionPermission
byte[] retrieveDocumentContent(String documentId)
                               throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Retrieves the content of the document identified by documentId.

Warning: this method should only be used for documents of reasonable size as the full content will be materialized in memory both on the server as well as on the client. It is recommended to us the facilities provided by DmsContentServlet for memory efficient content access.

Parameters:
documentId - The ID or path of the document content should be retrieved for.
Returns:
A byte array containing the document content. This byte array will be encoded according to the document's Document.getEncoding() attribute.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors
See Also:
requestDocumentContentDownload(String)

requestDocumentContentDownload

@ExecutionPermission
String requestDocumentContentDownload(String documentId)
                                      throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Initiates document content download via DmsContentServlet. The returned token should be used as relative URI for the content Servlet and will be valid as long as the session associated with this service is alive.

Parameters:
documentId - The ID or path of the document content should be retrieved for.
Returns:
A download token valid for the lifetime of this service's session.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

getFolder

@ExecutionPermission
Folder getFolder(String folderId)
                 throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Retrieves a folder and lists its members.

Parameters:
folderId - The ID or path expression identifying the folder to be retrieved.
Returns:
The resolved folder if no folder with such ID (or path) exists.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors
See Also:
Folder.LOD_LIST_MEMBERS

getFolder

@ExecutionPermission
Folder getFolder(String folderId,
                                     int levelOfDetail)
                 throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Retrieves a folder. Level of detail of information returned is controlled by levelOfDetail.

Parameters:
folderId - ID or path of the folder.
levelOfDetail - one of Folder.LOD_NO_MEMBERS, Folder.LOD_LIST_MEMBERS or Folder.LOD_LIST_MEMBERS_OF_MEMBERS.
Returns:
the folder or null if no folder with such ID (or path) exists.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors
See Also:
Folder.LOD_LIST_MEMBERS

getFolders

@ExecutionPermission
List<Folder> getFolders(List<String> folderIds,
                                            int levelOfDetail)
                        throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Gets multiple folders by ID or path.

Parameters:
folderIds - list of IDs or paths.
levelOfDetail - one of Folder.LOD_NO_MEMBERS, Folder.LOD_LIST_MEMBERS or Folder.LOD_LIST_MEMBERS_OF_MEMBERS.
Returns:
list of folders found.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

findFoldersByName

@ExecutionPermission
@Deprecated
List<Folder> findFoldersByName(String namePattern,
                                                              int levelOfDetail)
                               throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Deprecated. 

Gets folders based on the name pattern search.

Parameters:
namePattern - the name pattern to search for.
levelOfDetail - one of Folder.LOD_NO_MEMBERS, Folder.LOD_LIST_MEMBERS or Folder.LOD_LIST_MEMBERS_OF_MEMBERS.
Returns:
list of folders found.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

findFolders

@ExecutionPermission
@Deprecated
List<Folder> findFolders(String xpathQuery,
                                                        int levelOfDetail)
                         throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Deprecated. 

Gets folders based on the name XPath query.

Parameters:
xpathQuery - the XPath query.
levelOfDetail - one of Folder.LOD_NO_MEMBERS, Folder.LOD_LIST_MEMBERS or Folder.LOD_LIST_MEMBERS_OF_MEMBERS.
Returns:
list of folders found.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

createDocument

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
Document createDocument(String folderId,
                                                                      DocumentInfo document)
                        throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Creates document in a folder described by the document info. The new document will have no content.

Parameters:
folderId - ID or path of the folder to create the document in. Value "/" designates the top-level folder.
document - an instance of DocumentInfo that describs the document.
Returns:
the new document.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

createDocument

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
Document createDocument(String folderId,
                                                                      DocumentInfo document,
                                                                      byte[] content,
                                                                      String encoding)
                        throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Creates document in a folder described by the document info.

For the content an encoding can be specified e.g. (UTF-8, UTF-16). The encoding can take any value and can be used to decode the content byte[] after retrieving it via retrieveDocumentContent(String).

Warning: this method should only be used for documents of reasonable size as the full content will be materialized in memory both on the server as well as on the client. It is recommended to us the facilities provided by DmsContentServlet for memory efficient content access.

Parameters:
folderId - ID or path of the folder to create the document in. Value "/" designates the top-level folder
document - an instance of DocumentInfo that describes the document.
content - the content of the new document.
encoding - encoding of the new document content.
Returns:
the new document.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors
See Also:
requestDocumentContentUpload(String)

versionDocument

@Deprecated
@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
Document versionDocument(String documentId,
                                                                                  String versionLabel)
                         throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Deprecated. since 7.0 use versionDocument(String, String, String)

Creates a new version of the document.

Parameters:
documentId - ID or path of the document to be versioned
versionLabel - label for the new revision. The label must be unique per document.
Returns:
document describing the new document version
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

versionDocument

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
Document versionDocument(String documentId,
                                                                       String versionComment,
                                                                       String versionLabel)
                         throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Creates a new version of the document.

Parameters:
documentId - ID or path of the document to be versioned
versionComment - comment for the new revision
versionLabel - label for the new revision. The label must be unique per document.
Returns:
document describing the new document version
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

removeDocumentVersion

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
void removeDocumentVersion(String documentId,
                                                                         String documentRevisionId)
                           throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Removes a version of a document. At least one version has to remain.
A call to remove the last remaining version leads to a DocumentManagementServiceException.
If the document exists but the documentRevisionId cannot be resolved to a version of the document a DocumentManagementServiceException will be thrown.
An invalid documentId will lead to a DocumentManagementServiceException.

Parameters:
documentId - ID or path of the document.
documentRevisionId - The revisionId of the document version to be removed.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

moveDocument

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
Document moveDocument(String documentId,
                                                                    String targetPath)
                      throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Moves the document to the target path.

If the targetPath or folderId points to a different repository than the source document is located in only the latest version is moved to the targeted repository.

Parameters:
documentId - The document to be moved.
targetPath - The path or folderId to move the document to.
Returns:
The moved Document.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

updateDocument

@Deprecated
@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
Document updateDocument(Document document,
                                                                                 boolean createNewRevision,
                                                                                 String versionLabel,
                                                                                 boolean keepLocked)
                        throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Deprecated. since 7.0 use updateDocument(Document, boolean, String, String, boolean)

Updates document (except document content).

Parameters:
document - document to update.
createNewRevision - if true, new revision of the document will be created
versionLabel - if createNewRevision is true, the new revision will be labeled with this label. The label must be unique per document.
keepLocked - if true, the document will be kept locked after update.
Returns:
the updated document
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

updateDocument

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
Document updateDocument(Document document,
                                                                      boolean createNewRevision,
                                                                      String versionComment,
                                                                      String versionLabel,
                                                                      boolean keepLocked)
                        throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Updates document (except document content).

Parameters:
document - document to update.
createNewRevision - if true, new revision of the document will be created
versionComment - can be specified to comment the version operation.
versionLabel - if createNewRevision is true, the new revision will be labeled with this label. The label must be unique per document.
keepLocked - if true, the document will be kept locked after update.
Returns:
the updated document
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

updateDocument

@Deprecated
@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
Document updateDocument(Document document,
                                                                                 byte[] content,
                                                                                 String encoding,
                                                                                 boolean createNewRevision,
                                                                                 String versionLabel,
                                                                                 boolean keepLocked)
                        throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Deprecated. since 7.0 use updateDocument(Document, byte[], String, boolean, String, String, boolean)

Updates document.

Warning: this method should only be used for documents of reasonable size as the full content will be materialized in memory both on the server as well as on the client. It is recommended to us the facilities provided by DmsContentServlet for memory efficient content access.

Parameters:
document - document to update.
content - new document content.
encoding - encoding of the new document content.
createNewRevision - if true, new revision of the document will be created
versionLabel - if createNewRevision is true, the new revision will be labeled with this label. The label must be unique per document.
keepLocked - if true, the document will be kept locked after update.
Returns:
the updated document
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors
See Also:
requestDocumentContentUpload(String)

updateDocument

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
Document updateDocument(Document document,
                                                                      byte[] content,
                                                                      String encoding,
                                                                      boolean createNewRevision,
                                                                      String versionComment,
                                                                      String versionLabel,
                                                                      boolean keepLocked)
                        throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Updates document.

Warning: this method should only be used for documents of reasonable size as the full content will be materialized in memory both on the server as well as on the client. It is recommended to us the facilities provided by DmsContentServlet for memory efficient content access.

Parameters:
document - document to update.
content - new document content.
encoding - encoding of the new document content.
createNewRevision - if true, new revision of the document will be created
versionComment - can be specified to comment the version operation.
versionLabel - if createNewRevision is true, the new revision will be labeled with this label. The label must be unique per document.
keepLocked - if true, the document will be kept locked after update.
Returns:
the updated document
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors
See Also:
requestDocumentContentUpload(String)

requestDocumentContentUpload

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
String requestDocumentContentUpload(String documentId)
                                    throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Initiates document content upload via DmsContentServlet. The returned token should be used as relative URI for the content Servlet and will be valid as long as the session associated with this service is alive.

Parameters:
documentId - The ID/path of the document content should be retrieved for.
Returns:
An upload token valid for the lifetime of this service's session.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

removeDocument

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
void removeDocument(String documentId)
                    throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Removes document.

Parameters:
documentId - ID or path of the document to remove.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

createFolder

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
Folder createFolder(String parentFolderId,
                                                                  FolderInfo folder)
                    throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Creates document in a folder described by the document info. The new document will have no content.

Parameters:
parentFolderId - ID or path of the folder to create the folder in. Value "/" designates the top-level folder.
folder - an instance of FolderInfo that describs the folder.
Returns:
the new folder.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

updateFolder

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
Folder updateFolder(Folder folder)
                    throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Updates folder.

Parameters:
folder - folder to be updated.
Returns:
the updated folder.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

removeFolder

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
void removeFolder(String folderId,
                                                                boolean recursive)
                  throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Removes folder.

Parameters:
folderId - ID or path of the folder to remove.
recursive - if true, documents and subfolders will be removed also (applies to all the children). If false, only the folder itself will be removed.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - on DMS specific errors

getPrivileges

@ExecutionPermission
Set<org.eclipse.stardust.engine.api.runtime.Privilege> getPrivileges(String resourceId)
Returns the privileges the session has for the resource denoted by resourceId, which must exist.

Parameters:
resourceId - absolute path or ID of a file or folder

getEffectivePolicies

@ExecutionPermission
Set<org.eclipse.stardust.engine.api.runtime.AccessControlPolicy> getEffectivePolicies(String resourceId)
Returns the IAccessControlPolicy objects that currently are in effect on the resource denoted by resourceId (cumulated). Returned objects can not be modified, they represent a read-only view of effective policies.

Parameters:
resourceId - absolute path or ID of a file or folder

getPolicies

@ExecutionPermission
Set<org.eclipse.stardust.engine.api.runtime.AccessControlPolicy> getPolicies(String resourceId)
Returns the IAccessControlPolicy objects that are currently set for the resource denoted by resourceId. Returned objects can be changed, changes take effect after calling setPolicy()

Parameters:
resourceId - absolute path or ID of a file or folder

getApplicablePolicies

@ExecutionPermission
Set<org.eclipse.stardust.engine.api.runtime.AccessControlPolicy> getApplicablePolicies(String resourceId)
Returns the IAccessControlPolicy objects that can be set for the resource denoted by resourceId. Returned objects can be changed, and used as arguments to setPolicy() in order to add a new policy.

Parameters:
resourceId - absolute path or ID of a file or folder

setPolicy

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
void setPolicy(String resourceId,
                                                             org.eclipse.stardust.engine.api.runtime.AccessControlPolicy policy)
Binds the policy to the resource denoted by resourceId (overwrites the old version of the policy) If the policy does not contain any IAccessControlEntry then this policy is removed from the resource. If the policy was obtained using getApplicablePolicies(), the policy will be added, if it was obtained using getPolicies(), the policy will replace its old version.

Parameters:
resourceId - absolute path or ID of a file or folder
policy -

migrateRepository

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
RepositoryMigrationReport migrateRepository(int batchSize,
                                                                                          boolean evaluateTotalCount)
                                            throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Migrates resources in the repository. This migration process works sequential from the current version to the next higher version. The count of resources migrated in one execution is limited by the parameter batchSize.
Subsequent calls will migrate further resources if there are resources for migration available. After all resources for the migration from one version to the next are processed subsequent calls will start the migration to the next higher repository structure version.
The migration is complete when the two current version (vfs internal and engine structure) reach the respective target version.

Important Note Please ensure there is no other write access on the repository to avoid race conditions! Since there is no locking mechanism this should be run in read-only maintenance window!

The MigrationReport returned by each call contains information about: Total resources that need migration to the next version, resources already migrated, current version, next version and target version of the repository structure.

There are two different versions, internal versions are migrated first.
The vfs internal version called repositoryVersion. RepositoryMigrationReport.getTargetRepositoryVersion()
The engine's structure version called repositoryStructureVersion. RepositoryMigrationReport.getTargetRepositoryStructureVersion()

Parameters:
batchSize - count of resources to be migrated in this call. A value of 0 will return a MigrationReport without migrating.
evaluateTotalCount - if set to true the total count of resources that need processing in this migration step is evaluated. Setting this parameter to false saves performance.
Returns:
a report containing information about the migration batch execution.
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException - if there are problems in repository access or the user is not an administrator.

getSchemaDefinition

@ExecutionPermission
byte[] getSchemaDefinition(String schemaLocation)
                           throws org.eclipse.stardust.common.error.ObjectNotFoundException
Retrieves the XSD schema for the specified schema location from the Document Repository serialized into a byte[].

Parameters:
schemaLocation - the document type's schema location
Returns:
XSD schema of this document type
Throws:
org.eclipse.stardust.common.error.ObjectNotFoundException - if the specified schema location cannot be found

bindRepository

@ExecutionPermission
void bindRepository(IRepositoryConfiguration configuration)
Binds a new repository instance.

The repository id supplied via IRepositoryConfiguration.REPOSITORY_ID can be freely chosen but has to differ from currently bound repository ids.
The provider id supplied via IRepositoryConfiguration.PROVIDER_ID has to match a registered repository provider.

A template IRepositoryConfiguration can be retrieved from IRepositoryProviderInfo.getConfigurationTemplate().
This template contains keys and template values that are required for the configuration of an new repository instance.

Parameters:
configuration - The configuration for the repository to bind.

unbindRepository

@ExecutionPermission
void unbindRepository(String repositoryId)
Unbinds a previously bound repository.

Parameters:
repositoryId - The id of the repository instance to unbind.

getRepositoryInstanceInfos

@ExecutionPermission
List<IRepositoryInstanceInfo> getRepositoryInstanceInfos()
Provides information about all bound repositories.

Returns:
Repository instance information.

getRepositoryProviderInfos

@ExecutionPermission
List<IRepositoryProviderInfo> getRepositoryProviderInfos()
Provides information about all available repository providers.

The IRepositoryProviderInfo.getProviderId() is used to select a repository provider when binding a new repository instance with bindRepository(IRepositoryConfiguration).

Returns:
Repository provider information.

setDefaultRepository

@ExecutionPermission
void setDefaultRepository(String repositoryId)

Allows to set a bound repository as default repository.

Path based access targets the default repository.
Id based access targets the repository contained in the id. An id provided by the system is always prefixed with a repository id. If the id is not provided by the system and is not prefixed with a repository id the default repository is targeted.

Parameters:
repositoryId - The id of the repository instance.

getDefaultRepository

@ExecutionPermission
String getDefaultRepository()
Allows to identify the currently set default repository.

Returns:
The id of the currently set default repository.

migrateRepository

@ExecutionPermission(id=modifyDmsData,
                     defaults=ALL)
RepositoryMigrationReport migrateRepository(int batchSize,
                                                                                          boolean evaluateTotalCount,
                                                                                          String repositoryId)
                                            throws org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException
Throws:
org.eclipse.stardust.engine.api.runtime.DocumentManagementServiceException


Copyright © 2016 SunGard CSA LLC. All Rights Reserved.