Chapter 61. CMIS Component

Available as of Camel version 2.11

The cmis component uses the Apache Chemistry client API and allows you to add/read nodes to/from a CMIS compliant content repositories.

61.1. URI Format

cmis://cmisServerUrl[?options]

You can append query options to the URI in the following format, ?options=value&option2=value&…​

61.2. CMIS Options

The CMIS component supports 2 options which are listed below.

NameDescriptionDefaultType

sessionFacadeFactory (common)

To use a custom CMISSessionFacadeFactory to create the CMISSessionFacade instances

 

CMISSessionFacade Factory

resolveProperty Placeholders (advanced)

Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders.

true

boolean

The CMIS endpoint is configured using URI syntax:

cmis:cmsUrl

with the following path and query parameters:

61.2.1. Path Parameters (1 parameters):

NameDescriptionDefaultType

cmsUrl

Required URL to the cmis repository

 

String

61.2.2. Query Parameters (13 parameters):

NameDescriptionDefaultType

pageSize (common)

Number of nodes to retrieve per page

100

int

readContent (common)

If set to true, the content of document node will be retrieved in addition to the properties

false

boolean

readCount (common)

Max number of nodes to read

 

int

repositoryId (common)

The Id of the repository to use. If not specified the first available repository is used

 

String

bridgeErrorHandler (consumer)

Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.

false

boolean

query (consumer)

The cmis query to execute against the repository. If not specified, the consumer will retrieve every node from the content repository by iterating the content tree recursively

 

String

exceptionHandler (consumer)

To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored.

 

ExceptionHandler

exchangePattern (consumer)

Sets the exchange pattern when the consumer creates an exchange.

 

ExchangePattern

queryMode (producer)

If true, will execute the cmis query from the message body and return result, otherwise will create a node in the cmis repository

false

boolean

sessionFacadeFactory (advanced)

To use a custom CMISSessionFacadeFactory to create the CMISSessionFacade instances

 

CMISSessionFacade Factory

synchronous (advanced)

Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).

false

boolean

password (security)

Password for the cmis repository

 

String

username (security)

Username for the cmis repository

 

String

61.3. Usage

61.3.1. Message headers evaluated by the producer

HeaderDefault ValueDescription

CamelCMISFolderPath

/

The current folder to use during the execution. If not specified will use the root folder

CamelCMISRetrieveContent

false

In queryMode this header will force the producer to retrieve the content of document nodes.

CamelCMISReadSize

0

Max number of nodes to read.

cmis:path

null

If CamelCMISFolderPath is not set, will try to find out the path of the node from this cmis property and it is name

cmis:name

null

If CamelCMISFolderPath is not set, will try to find out the path of the node from this cmis property and it is path

cmis:objectTypeId

null

The type of the node

cmis:contentStreamMimeType

null

The mimetype to set for a document

61.3.2. Message headers set during querying Producer operation

HeaderTypeDescription

CamelCMISResultCount

Integer

Number of nodes returned from the query.

The message body will contain a list of maps, where each entry in the map is cmis property and its value. If CamelCMISRetrieveContent header is set to true, one additional entry in the map with key CamelCMISContent will contain InputStream of the document type of nodes.

61.4. Dependencies

Maven users will need to add the following dependency to their pom.xml.

pom.xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-cmis</artifactId>
    <version>${camel-version}</version>
</dependency>

where ${camel-version} must be replaced by the actual version of Camel (2.11 or higher).

61.5. See Also

  • Configuring Camel
  • Component
  • Endpoint
  • Getting Started