Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

This document is outdated!
The former Chemistry library and OpenCMIS were merged into one Java library (OpenCMIS).
Chemistry is the name of the Apache CMIS implementation project, while OpenCMIS is the name of Chemistry's Java implementation.

Chemistry's goal is to provide general purposes libraries for interaction using CMIS between a server and a client.

...

The following modules are available in Chemistry. The title is a link to a more detailed description of each module.

Chemistry API

There are two API levels:

...

Both levels of APIs are based on a common set of low-level constants and enums tied to the CMIS domain model (property types, capabilities, etc.).

Chemistry Commons

Several reusable pieces of codes are hosted under this module:

...

  • an ANTLR3 parser for CMISQL that turns a CMISQL query string into an AST (Abstract Syntax Tree) that can be reused by different backends, and is used by the in-memory implementation.

Chemistry AtomPub

This module holds some base constants and classes useful both for the AtomPub client and server.

Chemistry AtomPub Server

This module is the AtomPub implementation of the API/SPI. It receives AtomPub requests, converts them into SPI calls, then marshals then answer back into AtomPub responses.

This server can be bound either as a servlet, or as a JAX-RS resource.

Chemistry AtomPub Client

This module is the client implementation of the API/SPI. It turns Java calls into AtomPub requests to a remote server, reads the answer, and turns it back into Java objects.

Chemistry WS

These are the Java JAX-WS classes that are automatically generated from the WSDL and used by the SOAP server and client.

Chemistry SOAP Server

This module is the SOAP implementation of the API/SPI. It receives SOAP requests, converts them into SPI calls, then marshals then answer back into SOAP responses.

Chemistry SOAP Client

This module is not yet written. It would turn Java calls into SOAP requests to a remote server, read the answer, and turn it back into Java objects.

Chemistry JCR

This module is an implementation of the API/SPI for the JCR. It turns Java calls to the Chemistry API/SPI into calls to a JCR store, using Jackrabbit in the current implementation.

Chemistry Shell

This module is a command-line shell that can be used to quickly and simply make requests to a remove CMIS AtomPub server. It can browse documents, make queries, etc.

Chemistry Tests

This module contains unit tests that stress both the client and server parts of the API/SPI, either by direct calls, or using round-trips through HTTP for the AtomPub implementation.

There is also a simple AtomPub servlet bound to the in-memory implementation that can be started so that third-party tools can quickly test against a running CMIS AtomPub server.

Chemistry Abdera

This module is a set of Abdera classes that are designed for CMIS.

Chemistry TCK AtomPub

This module is a Technology Compatibility Kit that can be run against a CMIS AtomPub server in order to test its compliance with the standard. Its code base is independent of the other Chemistry modules above except for Chemistry Abdera.

...