The aim of OpenCMIS is to make CMIS simple for Java client and server developers.
It hides the binding details and provides APIs and SPIs on different abstraction levels.
Chemistry also has testing tools for content repository (CVS) developers and client application developers.
OpenCMIS is subdivided into these major components.
1. CMIS Client
OpenCMIS provides two CMIS client APIs that are called Client API and Client Bindings API.
The Client API is a high-level, object orientated API and suitable for most use cases.
It sits on top of the Client Bindings API. The Client Bindings API reflects the CMIS domain model.
It allows fine-grained control which makes the interfaces a bit clunky.
2. CMIS Server
The OpenCMIS Server Framework handles both CMIS bindings on the server side and maps them to a common set of Java interfaces.
Repository vendors just need to implement those interfaces and don't need to worry about the protocol on the wire.
There are two repository implementations based on the Server Framework that are handy test tools for client developers. The InMemory Test Repository stores all data in main memory.
The FileShare Test Repository turns a branch of your file system into a CMIS repository.
3. Test and Tools
In order to make the implementation of CMIS clients and server even simpler OpenCMIS comes with a set of tests and tools.
CMIS libraries are available for:
- OpenCMIS 0.10.0 fixes key issues affecting 0.9.0 and is compatible with
- CMIS 1.1.