In a previous blog I talked about CMIS in general and showed you what importance it does have in ECM World. In fact, I already experienced CMIS in a project with Documentum and Alfresco involved! The goal was to make the same operations on both ECM from a single interface, so CMIS was the solution. In this blog, I will talk about CMIS with Documentum.

Preparation

Is CMIS deployed on Content Server by default?

Old versions (6.7 and older) has the CMIS on the Content Server, which is not the case of later versions. So, having CS 7.3 I had to follow the below procedure to deploy and configure CMIS.

Application archive

To deploy CMIS, you will need to have one of the following files:

  • emc-cmis.war: For Apache Tomcat, JBoss
  • emc-cmis-weblogic.ear: For WebLogic

I must confess that I didn’t find these archives on OpenText website, so I had to ask the OpenText support to share the WebLogic one.

JVM Configuration

You have to provide adequate heap space and PermGen space for the CMIS application, for my test case I used the following JVM settings:

  • -Xms512m
  • -Xms512m
  • -XX:MaxPermSize=128m

The JVM settings are very important for a CMIS smooth running, like any other application.

Using urandom generators on Linux systems

In fact, there are some issues with implementation of peudo-random number generators on Linux. For more efficient randomization, Linux systems should use urandom generators that are faster but less secure!
To change the source of secure random numbers from random to urandom, set the system property as follows:

-Djava.security.egd=file:///dev/urandom

For my test case, I set this option in WebLogic start script.

DFC Configuration file

Like any other client (DA, D2, D2-Config), you have to configure the DFC in the dfc.properties file, it provides property settings for the Documentum Foundation Classes. This file is located in APP-INF/classes if you are deploying an EAR file, or in WEB-INF/classes if you are deploying a WAR file.

You can find below the most important properties to adapt:

  • dfc.docbroker.host: The fully qualified hostname for the Docbroker.
  • dfc.docbroker.port: 1489 by default, specify it if you want to use another port.
  • dfc.globalregistry.repository: The name of the Global Registry.
  • dfc.globalregistry.username: dm_bof_registry by default.
  • dfc.globalregistry.password: An encrypted password for the global registry user.

Deployment

On WebLogic

Having the emc-cmis-weblogic.ear configured as explained before, you have only one thing to do before you deploy the CMIS application:

Authentication configuration
In fact, for WebLogic Server, client requests that use HTTP BASIC authentication must pass WebLogic Server authentication, even if access control is not enabled on the target resource. The setting of the Security Configuration enforce-valid-basic-auth-credentials determines this behavior. It specifies whether or not the system should allow requests with invalid HTTP BASIC authentication credentials to access unsecured resources.
So, you have tow solutions:

  • Disable the WebLogic HTTP Basic authentication:
    I used it for my test case to write this Blog, but is NOT recommended! You have to be careful with this setting as this affects the complete domain. If you explicitly set the enforce-valid-basic-auth-credentials flag to false, WebLogic Server does not perform authentication for HTTP BASIC authentication client requests which is dangerous from a security view.
  • Create a user (WebLogic or LDAP) and use it to connect:
    This solution is highly recommended, don’t hesitate to ask if you need more information regarding how to do it. I will be happy to share with you what we did in our project.

As said, for my test case I disabled the WebLogic HTTP Basic authentication, so I edited the following WebLogic config.xml file directly:
$WLS_HOME/domains/$DOMAIN_NAME/config/config.xml

In the section, if the enforce-valid-basic-auth-credentials is already defined then change its value to false. Otherwise, add the following line at the end of the section:

<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>

Once done restart the WebLogic Server, then deploy the CMIS application using the WebLogic Console.

Post Deployment

On successful deployment you should be able to access the CMIS using below URL:

http://<host>:<port>/<contextPath>


The application context path will vary depending on your deployment.

RESTful AtomPub service
The service defining the RESTful AtomPub can be obteined from this URL:

http://<host>:<port>/<contextPath>/resources

Or you can click on the button “RESTful AtomPub Binding”

Web service
You can view WSDL for the repository service via the URL:

http://<host>:<port>/<contextPath>/services/RepositoryService?wsdl

Or you can click on the button “Web Services Binding”

Welcome to the CMIS world with Documentum, test it you will see what can it be useful if you want to have common interface. Any questions? As usual, feel free to ask.