Archive for February, 2010

List of CMIS clients

Thursday, February 18th, 2010

If you want to develop an application that need to interact with a CMIS server, you might want to reuse an existing client library. We compiled for you a list of library and client. Most of them are Open Source.

Android:

  • android-cmis-browser: The Android CMIS Browser enables the user to browse and search a CMIS content repository.

Firefox plugin:

  • developing a CMIS client for firefox: This article presents an overview of a new proposed standard for accessing content, namely Content Management Interoperability Services (CMIS), and provides an example of how to use these services using Mozilla Firefox.

Flex/air:

  • CMIS spaces: CMIS Spaces RIA clients (Flex+AIR, Flex+Browser) are for ECM / CMS servers supporting the Content Management Interoperability Services standard.
  • cmis-explorer: An Adobe AIR application for browsing CMIS compliant repositories.

Java:

  • Apache Chemistry:Apache Chemistry is an effort to provide a Java implementation of the CMIS , consisting of a high-level API for developers wanting to manipulate documents, a low-level SPI close to the CMIS protocol for developers wanting to implement a client or a server, and default implementations for all of the above.
  • CMIS fileshare: CMIS FileShare comes with a simple CMIS Browser that is able to browse repositories with a CMIS AtomPub interface.

Javascript:

  • JQuery-cmis: A Javascript client for parsing response from a CMIS server using JQuery.

.Net:

  • NCMIS: Dotnet library that will implement the core of the Content Management Interoperability Services standards proposal (CMIS) along with a toolbox for building your own implementations of CMIS.
  • CMIS4Sharepoint: open source implementation of CMIS standards for SharePoint Platform (WSS3.0 & MOSS2007).

PHP:

  • CMIS API of drupal: The CMIS API project aims to provide a generic API for integrating with CMIS compliant Enterprise CMS systems.

Python:

  • CMIS lib: Provides a CMIS client library for Python that can be used to work with CMIS-compliant repositories

Shell:

  • CMIS shell: Command line client for CMIS (made in java)

Web UI:

  • Cara: web application that provides a single interface to Documentum, SharePoint and Alfresco.
  • WeWebU OpenWorkdesk: (CMIS not released yet, Q2) Suite of application on top of JSR170 and CMIS

If I forgot any library or client, ping me on twitter @jeremi or in the comments. I’m going to try to keep this list up to date.

Open Source CMIS implementation from eXo Platform released: xCMIS

Tuesday, February 16th, 2010

Last week we announced that eXo Platform has built an open source implementation of OASIS’s Content Management Interoperability Services CMIS specification.  We licensed this under the LGPL license, and released it officially as xCMIS 1.0 beta1.

This release includes CMIS server with all the services implemented according to Content Management Interoperability Services (CMIS) Version 1.0 Committee Draft 06 for REST AtomPub and Web Services (SOAP/WSDL) protocol bindings. The project is hosted on the Google Code forge, check it out on http://code.google.com/p/xcmis/.  I wanted to take a few minutes to answer some of the most common questions from developers about the new xCMIS project.

What is the xCMIS project, and what does it do?

  • xCMIS is an open source, server side Java CMIS implementation that is able to expose the content in existing content repositories according to the protocols defined in the CMIS spec
  • xCMIS will give developers a way to make their content repositories “pluggable” on the server side – thanks to an internal Storage Provider Interface and additional protocol on-demand bindings
  • xCMIS will provide (several) CMIS client frameworks for repository-application and repository-repository interactions. The programming language and supported protocol can be selected by the user.  (For example, the reasonable choice for use with web applications, gadgets, and/or mashups is JavaScript or GWT over REST AtomPub, while for inter-repository exchange it may be Java over Web Services, i.e. WSDL/SOAP.)
  • Both the server and client sides of xCMIS are easily integrated in the eXo Platform 3.0 infrastructure. In particular, xCMIS exposes the eXo JCR content repository and provides a framework for building web applications and gadgets for the GateIn portal

Enough talk already!  How do I download and start to play with xCMIS on my local workstation?

The xCMIS server is packaged as a J2EE Web archive xcmis.war, which you can download and install on any Java servlet container.  Or, you can build it on your own from the source code by following these simple instructions.  Finally, the easiest option might be to use the “download and go” version that we prepared – it’s basically Apache Tomcat bundled with an xCMIS server on /xcmis context path.

By default the xCMIS server includes both REST AtomPub and Web Services (SOAP/WSDL) protocol bindings.

The xCMIS bundle includes one CMIS repository with an empty eXo JCR and JCR WebDAV server inside.  The name of the JCR repository is “repository” :) and the name of JCR workspace is “cmis”. So, it is possible to obtain access to the same content using WebDAV URL

http://localhost:8080/xcmis/rest/jcr/repository/cmis/

If you want to save time, you can download the xCMIS server with a full-featured CMIS GWT UI gadget inside (loaded remotely from xcmis.org site). It can be run the same way as a bare server; then you can go to http://localhost:8080/xcmis/xcmis-demo-gadget/GadgetWrapper.html to check out the CMIS visually.  It should look like this:

The interface is pretty simple and intuitive, and includes a toolbar, right-button context menu, drag-and-drop features, etc.

How do I use xCMIS remotely?

We created the dedicated resource xcmix.org that has xCMIS deployed on the GateIn portal. Here you can find and use the CMIS Expert gadget, and a really cool CMIS Zoho gadget. This one demonstrates multiple CMIS implementations (xCMIS, Alfresco CMIS and Nuxeo CMIS) in action.  You can browse the different CMIS repositories, see the content stored within them, and most importantly – you can view and modify files in Zoho editor.

Feel free to build GateIn yourself and add a local xCMIS server as described in the wiki, or use a remote one (http://xcmis.org/rest/cmisatom – for REST AtomPub protocol).  However, you might want to note that xCMIS beta1 uses eXo JCR 1.12 CR1, so make sure you use an appropriate version of GateIn.  It should be at least as recent as GateIn 3.0 beta 5 (as of the Feb 11, 2010 release, only GateIn built using trunk is suitable!).

And, of course, it is possible to use third-party CMIS clients such as IBM CMIS Firefox Connector, CMIS Spaces Flex+AIR and (I am pretty sure) other clients that are compatible with CMIS 1.0, all in the same way described in the xCMIS wiki (just using a remote server).

What’s next for xCMIS?

  • The CMIS specification is close to the final state, so that means we’re close as well  - once CMIS is officially out, we’ll put out the final xCMIS release shortly after that :)
  • Open the source code for the GWT CMIS framework and move it to xCMIS project
  • Finalize the Storage Provider Interface architecture
  • Refactor the search engine, decoupling it from JCR storage
  • Refactor a CMIS configuration to make it more clear (trying different types of configurations for different IoC containers)
  • Add federated search between several types of CMIS repositories
  • Check out other types of clients
  • And other cool stuff… :)

We’d love to hear your feedback.  If you want to discuss the project, talk about new ideas, make suggestions for improving the documentation, or anything else, please get involved!

To learn more, check out the project Wiki: http://code.google.com/p/xcmis/w/list
To see the source code: http://code.google.com/p/xcmis/source/checkout
To download the binaries: http://code.google.com/p/xcmis/downloads/list
To play with the latest demos: http://xcmis.org/portal/public/classic/CMISExpert

eXo Webinar on Febrary 24th – Extending Your Content-Based Applications with xCMIS

Monday, February 15th, 2010

Join eXo Platform for a free one-hour webinar on 24 February, 2010, when we will provide a quick overview of the CMIS spec, an intro to the features of xCMIS, and a step-by-step tutorial for creating gadgets that can make your newly-unlocked content even more useful.

The CMIS specification promises great benefits for application developers – your content applications no longer have to be tied to their respective content repositories. When building new applications, you can now access content in multiple repositories, without concern for the development platform and language dependencies of these separate content systems. eXo Platform is adding to these interoperability benefits with xCMIS, the new CMIS implementation from eXo Platform.

Go to the complete webinar overview and Register now!

Add code quality metrics to your GateIn Dashboard with Sonar

Thursday, February 11th, 2010

Sonar is an open source platform to manage code quality. It enables to collect, analyze and report metrics on source code. At eXo Platform, we use Sonar to manage and monitor the quality of our codebase. As Arnaud Heritier (our Software Development Manager) pointed out:

The inherent challenge to developing software is maintaining and improving the quality of the code as you add features and expand the codebase over time.
To manage our code quality, we rely on Sonar. Sonar provides us views ranging from a high level global dashboard down to the most granular detail about individual lines of code – from these we can extract quality indicators from our code development.

GateIn, the new portal that eXo is co-developing with JBoss, provides a dashboard where you can install gadget and customize them. So we wrote gadgets that you can add to your dashboard and customize to your needs. As Gadget is a standard, it’s also working in Jira. Arnaud explain more about this:

Managing a product isn’t only about focusing on quality. We also have to deliver on time, meet our subscription customers’ requirements, and incorporate as many community feature requests as possible. To keep an eye on everything, we wanted to leverage the flexible interface of the GateIn portal framework. By integrating Sonar’s gadgets, we’ll be able to quickly create our own set of customized dashboards to track all the metrics we need, like the activity of our teams, development roadblocks, tasks and issues on products, and a lot more. We’re even able to reuse Jira Gadgets in GateIn – it saves us a lot of time and is definitely more effective.

Sonar Gadget in GateIn Dashboard:

sonar Gadget in GateIn Dashboard

Sonar Gadget in Jira4:

sonar Gadget in Jira4 Dashboard

If you want to try these gadgets in your own development environment, you can grab them from Google App Gallery. They can work in any standard OpenSocial/gadget container, and they’ve been tested with GateIn and Jira.

If you want to look under the hood, go to the Sonar gadget repository on github or download them. You can also easily add your own metrics to the gadgets.

Links: