As described in chapter Implementing a Provider for arbitrary Repository Technologies, Infinity provides an interface IRepositoryProvider to implement arbitrary repository technologies.
To allow different content management systems to share their information, IPP also provides a CMIS (Content Management Interoperability System) DMS provider, which implements the IRepositoryProvider interface.
The CMIS DMS provider is an optional module, which is not included in our archetypes
by default. It is published as Maven artifact including the source jars. To include the module,
add the following dependency to your
<dependency> <groupId>com.infinity.bpm</groupId> <artifactId>ipp-engine-cmis</artifactId> <version>9.2.0</version> </dependency>
Please refer to chapter Creating a Runtime Environment with Apache Maven in the Installation Guide for details on how to retrieve dependencies from the artifactory.
If you like to have a closer look at the provided CMIS classes and structure,
download the sources by using
<dependency> <groupId>com.infinity.bpm</groupId> <artifactId>ipp-engine-cmis</artifactId> <version>9.2.0</version> <classifier>sources</classifier> </dependency>
The IPP CMIS Provider SPI implements the following DocumentManagementService methods:
The following DocumentManagementService methods are not implemented:
Note that the createNewRevision flag of the
updateDocument methods is ignored since versioning in CMIS is defined by the
object type. If the object type is versionable, a new version is created with the update
call. In case it is not versionable, the document is overwritten.
The AuthenticationProvider SPI of OpenCMIS allows specifying custom HTTP and SOAP headers for authentication or simply setting username and password including other session properties like OAuth tokens etc.
A custom authentication can be implemented by extending the following Apache Chemistry CMIS classes:
AbstractAuthenticationProvider and StandardAuthenticationProvider.
The current IPP DMS User can be retrieved by the following line, which allows to use special authentication means for each user on a per call basis:
User user = org.eclipse.stardust.engine.core.spi.dms.UserContext.getInstance().getUser();
To use the IPP CMIS DMS provider, you have to specify authentication and bind a repository as described below.
First, specify authentication via your server-side
You can either specify a global username and password or an AuthenticationProvider
implementation. The server-side properties are listed in below table:
|Property Name||Default Value||Description|
|CMISRepositoryProvider.AuthenticationProviderClass||null||Implementation class for fine grained authentication|
|CMISRepositoryProvider.Username||null||specifies a global username used for all CMIS instances|
|CMISRepositoryProvider.Password||null||specifies a global password used for all CMIS instances|
If you have integrated the CMIS Provider as described above, a repository can be bound in the Infinity Portal or via the DocumentManagementService API.
In the Infinity Portal you can bind a repository in the Document Repository view of the Administration perspective. If the CMIS Provider is selected, binding properties can be added accordingly. For details on binding the CMIS DMS Provider repository, please refer to section Binding the IPP CMIS DMS Provider of chapter Viewing and Managing Document Repository Resources in the End User Handbook.
For details on how to bind a repository via the DocumentManagementService, please refer to section Binding a new Repository Instance of chapter Managing Document Repositories.