= CMIS Component
:doctitle: CMIS
:shortname: cmis
:artifactid: camel-cmis
:description: Read and write data from to/from a CMIS compliant content repositories.
:since: 2.11
:supportlevel: Stable
:component-header: Both producer and consumer are supported
//Manually maintained attributes
:camel-spring-boot-name: cmis

*Since Camel {since}*

*{component-header}*

The cmis component uses the
http://chemistry.apache.org/java/opencmis.html[Apache Chemistry] client
API and allows you to add/read nodes to/from a CMIS compliant content
repositories.

== URI Format

------------------------------
cmis://cmisServerUrl[?options]
------------------------------

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


// component-configure options: START

// component-configure options: END

// component options: START
include::partial$component-configure-options.adoc[]
include::partial$component-endpoint-options.adoc[]
// component options: END

// endpoint options: START

// endpoint options: END


== Usage

=== Message headers evaluated by the producer

[width="100%",cols="10%,10%,80%",options="header",]
|=======================================================================
|Header |Default Value |Description

|`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
|=======================================================================

=== Message headers set during querying Producer operation

[width="100%",cols="10%,10%,80%",options="header",]
|=======================================================================
|Header |Type |Description

|`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.

== Dependencies

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

*pom.xml*

[source,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.



include::spring-boot:partial$starter.adoc[]
