Download presentation
Presentation is loading. Please wait.
1
Apache Chemistry face-to-face meeting April 2010
2
OpenCMIS Overview
3
OpenCMIS Commons Interfaces, classes, enums and exceptions used across all other modules JAXB classes are generated and packaged here
4
OpenCMIS Client API Object Oriented API Easy adoption Easy consumption Session Concept Persistent Session Transient Session * Caching Exception Handling * Eventing for Extension Handling * Session based Configuration Context Iterator based Paging Support
5
OpenCMIS Session Concept Persistent Session Application Controlled Lifetime Support Read Cache Isolation Level: Read Committed Composite Application Support Transient Session Supports Save/Cancel Scenarios Cached Write Operations Meta Data in Memory Content in Shadow Repository
6
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 API Caches repository infos and types Caches AtomPub links and Web Services port objects
7
OpenCMIS Provider (2) Serializable and thread-safe Authentication: WS-Security UsernameTokens and HTTP basic auth out-of-box Hooks for custom authentication code AtomPub: StAX + JAX-B Web Services: JAX-WS RI
8
OpenCMIS Server (1) CMIS binding implementations – server side AtomPub: StAX + JAX-B Web Services: JAX-WS RI Calls are processed and mapped to interfaces that a repository connector has to implement SPI inspired by the CMIS specification
9
OpenCMIS Server (2) Authentication: WS-Security UsernameTokens and HTTP basic auth out-of-box Hooks for custom authentication code
10
OpenCMIS Server Support Convenience classes and wrappers for repository connectors Examples: Required parameters that are not provided by the client are caught and an appropriate error is returned Optional 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
11
OpenCMIS InMemory Repository A simple implementation of a CMIS repository based on an in-memory store Testing-only, no real persistence Fast No 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 all Type creation supported by Java code
12
InMemory Repository Impl Scope Implemented: Type validation Repository Service Object 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, Policies Potential use case: Implement internal interfaces using real persistence layer Very experimental, enforces specific document model
13
OpenCMIS File System Repository A simple repository implementation that uses the file system as back-end Only for testing! Supports everything a file system can support plus metadata handling No versioning, no policies, no relationships, no query, no rendition, read-only ACLs, no content changes,... Types can be defined via XML file
14
OpenCMIS Tests and Tools Object Generator Automatic creation of folders and documents Java interface and command line tool Simple browser for AtomPub repositories Web based Straight forward XSLT transformation
15
OpenCMIS Full Integration Tests Tests the whole stack: JUnit tests Client API Provider API Network (Atom/SOAP) CMIS server (on Jetty) InMemory repository Executed as part of a regular build This will eventually become the home of most tests
16
SAP UseCase (1) – EPM Attachments
17
SAP Use Case (2) - uPods
18
SAP Use Case (3) - Development
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.