-
Language:
English
-
Language:
English
Red Hat Training
A Red Hat training course is available for Red Hat JBoss Data Virtualization
10.3. 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 the hierarchical database 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-ï¬Âling Services are used to ï¬Âle/un-ï¬Âle 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 speciï¬Âed folder.
|
objectService
|
URL of the Object service binding entry point. Creates a document object of the speciï¬Âed type (given by the cmis:objectTypeId property) in the (optionally) speciï¬Âed location
|
policyService
|
URL of the Policy service binding entry point. Applies a speciï¬Âed 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.
|
cacheTtlSeconds
|
Optional property that specifies the default maximum number of seconds (i.e., time to live) that a node returned by this connector should be cached in the workspace cache before being expired. By default, the connector will not set a special value, and the repository will determine how long the node is cached in the workspace cache.
|
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 its 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:8080/services/ACLService?wsdl", "discoveryService" : "http://localhost:8080/services/DiscoveryService?wsdl", "multifilingService" : "http://localhost:8080/services/MultifilingService?wsdl", "navigationService" : "http://localhost:8080/services/NavigationService?wsdl", "objectService" : "http://localhost:8080/services/ObjectService?wsdl", "policyService" : "http://localhost:8080/services/PolicyService?wsdl", "relationshipService" : "http://localhost:8080/services/RelationshipService?wsdl", "repositoryService" : "http://localhost:8080/services/RepositoryService?wsdl", "versioningService" : "http://localhost:8080/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
|