JBoss Community Archive (Read Only)

ModeShape 5

CMIS connector

This connector exposes the content of a CMIS repository.

The Content Management Interoperability Services (CMIS) standard defines a domain model and Web Services, Restful AtomPub and browser (JSON) bindings that can be used by applications to work with one or more Content Management repositories/systems.

The CMIS connector is designed to be layered on top of existing Content Management systems. It is intended to use Apache Chemistry API to access services provided by Content Management system and incorporate those services into Modeshape content repository.

The connector class name is "org.modeshape.connector.cmis.CmisConnector", and there are several attributes that should be configured on each external source:

Attribute Name

Description

aclService

URL of the Access list service binding entry point. The ACL Services are used to discover and manage Access Control Lists.

discoveryService

URL of the Discovery service binding entry point. Discovery service executes a CMIS query statement against the contents of the repository.

multifilingService

URL of the Multi-filing service binding entry point. The Multi-filing Services are used to file/un-file objects into/from folders.

navigationService

URL of the Navigation service binding entry point. The Navigation service gets the list of child objects contained in the specified folder.

objectService

URL of the Object service binding entry point. Creates a document object of the specified type (given by the cmis:objectTypeId property) in the (optionally) specified location

policyService

URL of the Policy service binding entry point. Applies a specified policy to an object.

relationshipService

URL of the Relationship service binding entry point. Gets all or a subset of relationships associated with an independent object.

repositoryService

URL of the Repository service binding entry point. Returns a list of CMIS repositories available from this CMIS service endpoint.

versioningService

URL of the Policy service binding entry point. Create a private working copy (PWC) of the document.

readOnly

A boolean flag that specifies whether this source can create/modify/remove files and directories on the file system to reflect changes in the JCR content. By default, sources are not read-only.

cacheable

Optional property that if a node returned by this connector should be cached in the workspace cache or not. By default all nodes are cached, but you can set it to false for the connector to always read the latest version of the nodes

isQueryable

Optional property that specifies whether or not the content exposed by this connector should be indexed by the repository. This acts as a global flag, allowing a specific connector to mark it's entire content as non-queryable. By default, all content exposed by a connector is queryable.

Here is a sample configuration that projects the CMIS repository into the Modeshape repository under the "/cmis/" node

{
    ...
    "externalSources" : {
        "cmis" : {
            "classname" : "org.modeshape.connector.CmisConnector",
            "cacheTtlSeconds" : 5,
            "aclService" : "http://localhost:8090/services/ACLService?wsdl",
            "discoveryService" : "http://localhost:8090/services/DiscoveryService?wsdl",
            "multifilingService" : "http://localhost:8090/services/MultifilingService?wsdl",
            "navigationService" : "http://localhost:8090/services/NavigationService?wsdl",
            "objectService" : "http://localhost:8090/services/ObjectService?wsdl",
            "policyService" : "http://localhost:8090/services/PolicyService?wsdl",
            "relationshipService" : "http://localhost:8090/services/RelationshipService?wsdl",
            "repositoryService" : "http://localhost:8090/services/RepositoryService?wsdl",
            "versioningService" : "http://localhost:8090/services/VersioniongService?wsdl",
            "repositoryId" : "A1",
            "projections" : [ "default:/cmis => /" ]
        }
    }
    ...
}

Here is the same configuration except that a variable is used so that the actual URLs can be set with a system property:

{
    ...
    "externalSources" : {
        "cmis" : {
            "classname" : "org.modeshape.connector.CmisConnector",
            "cacheTtlSeconds" : 5,
            "aclService" : "${custom.cmis.services.url}/ACLService?wsdl",
            "discoveryService" : "${custom.cmis.services.url}/DiscoveryService?wsdl",
            "multifilingService" : "${custom.cmis.services.url}/MultifilingService?wsdl",
            "navigationService" : "${custom.cmis.services.url}/NavigationService?wsdl",
            "objectService" : "${custom.cmis.services.url}/ObjectService?wsdl",
            "policyService" : "${custom.cmis.services.url}/PolicyService?wsdl",
            "relationshipService" : "${custom.cmis.services.url}/RelationshipService?wsdl",
            "repositoryService" : "${custom.cmis.services.url}/RepositoryService?wsdl",
            "versioningService" : "${custom.cmis.services.url}/VersioniongService?wsdl",
            "repositoryId" : "A1",
            "projections" : [ "default:/cmis => /" ]
        }
    }
    ...
}

The Repository structure is defined as follows

Path

Description

/repository_info

The description of the CMIS repository

/filesAndFolders

The structure of the folders and files in the projected repository

Node types used by connectors are specified by JCR specifications or imported from CMIS repository itself. Most important node types are as follows:

Node Type

Description

nt:folder

The primary node type for the node representing CMIS folder

nt:file

The primary node type for the node representing CMIS document

nt:resource

The primary node type for the node representing binary content of the CMIS document

cmis:repository

The primary node type for the node representing information of CMIS repository itself

JBoss.org Content Archive (Read Only), exported from JBoss Community Documentation Editor at 2020-03-11 12:13:00 UTC, last content change 2016-04-07 07:42:41 UTC.