Apache Chemistry face-to-face meeting April 2010.

18
OpenCMIS Apache Chemistry face-to-face meeting April 2010

Transcript of Apache Chemistry face-to-face meeting April 2010.

Page 1: Apache Chemistry face-to-face meeting April 2010.

OpenCMISApache Chemistry face-to-face meeting April

2010

Page 2: Apache Chemistry face-to-face meeting April 2010.

OpenCMIS Overview

Page 3: Apache Chemistry face-to-face meeting April 2010.

OpenCMIS Commons

Interfaces, classes, enums and exceptions used across all other modules

JAXB classes are generated and packaged here

Page 4: Apache Chemistry face-to-face meeting April 2010.

OpenCMIS Client APIObject Oriented API

Easy adoptionEasy consumption

Session ConceptPersistent SessionTransient Session *

CachingException Handling *

Eventing for Extension Handling *

Session based Configuration Context

Iterator based Paging Support

Page 5: Apache Chemistry face-to-face meeting April 2010.

OpenCMIS Session ConceptPersistent SessionApplication

Controlled Lifetime Support

Read CacheIsolation Level: Read

CommittedComposite

Application Support

Transient SessionSupports

Save/Cancel Scenarios

Cached Write OperationsMeta Data in

MemoryContent in Shadow

Repository

Page 6: Apache Chemistry face-to-face meeting April 2010.

OpenCMIS Provider (1)CMIS binding implementations – client side

Exposes an API that is very close the CMIS specification and the CMIS schema

Fine grained control including getting and setting extension data

Completely independent of the client APICaches repository infos and typesCaches AtomPub links and Web Services port

objects

Page 7: Apache Chemistry face-to-face meeting April 2010.

OpenCMIS Provider (2)Serializable and thread-safe

Authentication:WS-Security UsernameTokens and HTTP basic

auth out-of-boxHooks for custom authentication code

AtomPub: StAX + JAX-BWeb Services: JAX-WS RI

Page 8: Apache Chemistry face-to-face meeting April 2010.

OpenCMIS Server (1)CMIS binding implementations – server side

AtomPub: StAX + JAX-BWeb Services: JAX-WS RICalls are processed and mapped to interfaces

that a repository connector has to implementSPI inspired by the CMIS specification

Page 9: Apache Chemistry face-to-face meeting April 2010.

OpenCMIS Server (2)Authentication:

WS-Security UsernameTokens and HTTP basic auth out-of-box

Hooks for custom authentication code

Page 10: Apache Chemistry face-to-face meeting April 2010.

OpenCMIS Server SupportConvenience classes and wrappers for repository

connectors

Examples:Required parameters that are not provided by the

client are caught and an appropriate error is returnedOptional parameters that are not provided by the

client are set with the default value defined in CMIS specification

None CMIS exceptions are caught and translated into CMIS exceptions

Helpers to quickly build a connector prototype

Page 11: Apache Chemistry face-to-face meeting April 2010.

OpenCMIS InMemory RepositoryA simple implementation of a CMIS repository

based on an in-memory storeTesting-only, no real persistenceFastNo dependencies(Future: Base for experimental spec

enhancements)Based on a huge static HashMap plus internal

interfaces and impl.Covers major aspects of CMIS spec, but not allType creation supported by Java code

Page 12: Apache Chemistry face-to-face meeting April 2010.

InMemory Repository Impl ScopeImplemented:

Type validationRepository ServiceObject Service (Documents, Folders, object read+write,

metadata, content, unfiling, multi-filing)Navigation Service (Folder navigation, tree and descendents)Versioning Service (simple linear versioning model with

majors, minors)Not (yet)implemented:

Relations, Renditions, Query, ACLs, PoliciesPotential use case:

Implement internal interfaces using real persistence layerVery experimental, enforces specific document model

Page 13: Apache Chemistry face-to-face meeting April 2010.

OpenCMIS File System RepositoryA simple repository implementation that uses

the file system as back-end

Only for testing!Supports everything a file system can support

plus metadata handlingNo versioning, no policies, no relationships,

no query, no rendition, read-only ACLs, no content changes,...

Types can be defined via XML file

Page 14: Apache Chemistry face-to-face meeting April 2010.

OpenCMIS Tests and ToolsObject Generator

Automatic creation of folders and documentsJava interface and command line tool

Simple browser for AtomPub repositoriesWeb basedStraight forward XSLT transformation

Page 15: Apache Chemistry face-to-face meeting April 2010.

OpenCMIS Full Integration TestsTests the whole stack:

JUnit tests Client API Provider APINetwork (Atom/SOAP) CMIS server (on Jetty) InMemory repository

Executed as part of a regular build

This will eventually become the home of most tests

Page 16: Apache Chemistry face-to-face meeting April 2010.

SAP UseCase (1) – EPM Attachments

Page 17: Apache Chemistry face-to-face meeting April 2010.

SAP Use Case (2) - uPods

Page 18: Apache Chemistry face-to-face meeting April 2010.

SAP Use Case (3) - Development