{"id":37025,"date":"2010-02-16T18:19:56","date_gmt":"2010-02-17T01:19:56","guid":{"rendered":"http:\/\/localhost\/exoblog\/?p=1906"},"modified":"2010-02-16T18:19:56","modified_gmt":"2010-02-17T01:19:56","slug":"open-source-cmis-implementation-from-exo-platform-released-xcmis","status":"publish","type":"post","link":"https:\/\/www.exoplatform.com\/blog\/open-source-cmis-implementation-from-exo-platform-released-xcmis\/","title":{"rendered":"Open Source CMIS implementation from eXo Platform released: xCMIS"},"content":{"rendered":"<p>Last week we announced that eXo Platform has built an open source implementation of OASIS&#8217;s <a href=\"http:\/\/www.oasis-open.org\/committees\/tc_home.php?wg_abbrev=cmis\" target=\"_blank\" rel=\"nofollow noopener\" class=\"broken_link\">Content Management Interoperability Services <\/a> <strong>CMIS<\/strong> specification. &nbsp;We licensed this under the LGPL license, and released it officially as&nbsp;<strong>xCMIS 1.0 beta1<\/strong>.<\/p>\n<p>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\/. &nbsp;I wanted to take a few minutes to answer some of the most common questions from developers about the new xCMIS project.<\/p>\n<p><strong>What is the xCMIS project, and what does it do?<\/strong><\/p>\n<ul>\n<li>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<\/li>\n<li><span id=\"result_box\"><span style=\"background-color: #ffffff;\">xCMIS will give developers a way to make their content repositories &#8220;pluggable&#8221; on the server side &#8211; thanks to an internal Storage Provider Interface and additional protocol on-demand<\/span><\/span> <span id=\"xnxz\"><span style=\"background-color: #ffffff;\">bindings<\/span><\/span><\/li>\n<li>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. &nbsp;(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.)<\/li>\n<li>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<\/li>\n<\/ul>\n<p><strong>Enough talk already! &nbsp;How do I download and start to play with xCMIS on my local workstation?<\/strong><\/p>\n<p>The xCMIS server is packaged as a J2EE Web archive <a href=\"https:\/\/github.com\/exoplatform\/xcmis\" target=\"_blank\" rel=\"nofollow noopener\">xcmis.war<\/a>, which you can download and install on any Java servlet container. &nbsp;Or, you can build it on your own from the source code by following these simple <a id=\"bx3r\" title=\"instruction\" href=\"http:\/\/code.google.com\/p\/xcmis\/wiki\/xCMISBuild\" target=\"_blank\" rel=\"noopener\">instruction<\/a>s. &nbsp;Finally, the easiest option might be to use the <a href=\"http:\/\/code.google.com\/p\/xcmis\/downloads\/detail?name=xcmis-server-tomcat-1.0-Beta01.zip\" target=\"_blank\" rel=\"nofollow noopener\">&#8220;download and go&#8221;<\/a> version that we prepared &#8211; it&#8217;s basically Apache Tomcat bundled with an xCMIS server on \/xcmis context path.<\/p>\n<p>By default the xCMIS server includes both REST AtomPub and Web Services (SOAP\/WSDL) protocol bindings.<\/p>\n<ul>\n<li>A Web Services (SOAP\/WSDL) entry point can be accessed on http:\/\/localhost:8080\/xcmis\/cmisws.<\/li>\n<li>REST AtomPub is accessible on http:\/\/localhost:8080\/xcmis\/rest\/cmisatom &#8211; this is the URL of RepositoryService&#8217;s getRepository method. For more info about the CMIS services and methods in <a id=\"b.j.\" title=\"WADL format\" href=\"https:\/\/www.w3.org\/Submission\/wadl\/\" target=\"_blank\" rel=\"noopener\" class=\"broken_link\">WADL format<\/a> that are accessible via AtomPub protocol, go to http:\/\/localhost:8080\/xcmis\/wadl.html.<\/li>\n<li>If you really wanted to get &#8220;under the hood&#8221;, you can explore the capabilities of xCMIS using curl or <a id=\"b0ip\" title=\"Poster FireFox add-on\" href=\"http:\/\/code.google.com\/p\/poster-extension\/\" target=\"_blank\" rel=\"noopener\">Poster FireFox add-on<\/a>, or just try using the information from a WADL file.<\/li>\n<\/ul>\n<p>The xCMIS bundle includes one CMIS repository with an empty eXo JCR and JCR WebDAV server inside. &nbsp;The name of the JCR repository is &#8220;repository&#8221; \ud83d\ude42 and the name of JCR workspace is &#8220;cmis&#8221;. So, it is possible to obtain access to the same content using WebDAV URL<br \/>\nhttp:\/\/localhost:8080\/xcmis\/rest\/jcr\/repository\/cmis\/<\/p>\n<p>If you want to save time, you can&nbsp;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 localhost:8080\/xcmis\/xcmis-demo-gadget\/GadgetWrapper.html to check out the CMIS visually. &nbsp;It should look like this:<\/p>\n<div id=\"d.op\" style=\"text-align: left;\"><\/div>\n<div style=\"text-align: left;\"><\/div>\n<div style=\"text-align: left;\"><\/div>\n<div style=\"text-align: left;\">\n<p>The interface is pretty simple and intuitive, and includes a toolbar, right-button context menu, drag-and-drop features, etc.<\/p>\n<p><strong>How do I use xCMIS remotely?<\/strong><\/p>\n<p>We created the dedicated resource xcmix.org that has xCMIS deployed on the&nbsp;<a id=\"k:48\" title=\"GateIn portal\" href=\"http:\/\/www.jboss.org\/gatein\/\" target=\"_blank\" rel=\"noopener\" class=\"broken_link\">GateIn portal<\/a>. Here you can find and use the&nbsp;CMIS Expert gadget, and a really cool&nbsp;CMIS Zoho gadget. This one demonstrates multiple CMIS implementations (xCMIS, Alfresco CMIS and Nuxeo CMIS) in action. &nbsp;You can browse the different CMIS repositories, see the content stored within them, and most importantly &#8211; you can view and modify files in Zoho editor.<\/p>\n<p>Feel free to build GateIn yourself and add a local xCMIS server as described in the&nbsp;<a id=\"cw-3\" title=\"wiki\" href=\"http:\/\/code.google.com\/p\/xcmis\/wiki\/xCMISGateIn\" target=\"_blank\" rel=\"noopener\">wiki<\/a>, or use a remote one (xcmis.org\/rest\/cmisatom &#8211; for REST AtomPub protocol). &nbsp;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. &nbsp;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!).<\/p>\n<p>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 <a id=\"n5_e\" title=\"xCMIS wiki\" href=\"http:\/\/code.google.com\/p\/xcmis\/wiki\/xCMISthirdPartyClients\" target=\"_blank\" rel=\"noopener\">xCMIS wiki<\/a> (just using a remote server).<\/p>\n<p>What&#8217;s next for xCMIS?<\/p>\n<ul>\n<li>The CMIS specification is close to the final state, so that means we&#8217;re close as well &nbsp;&#8211; once CMIS is officially out, we&#8217;ll put out the final xCMIS release shortly after that \ud83d\ude42<\/li>\n<li>Open the source code for the GWT CMIS framework and move it to xCMIS project<\/li>\n<li>Finalize the Storage Provider Interface architecture<\/li>\n<li>Refactor the search engine, decoupling it from JCR storage<\/li>\n<li>Refactor a CMIS configuration to make it more clear (trying different types of configurations for different IoC containers)<\/li>\n<li>Add federated search between several types of CMIS repositories<\/li>\n<li>Check out other types of clients<\/li>\n<li>And other cool stuff&#8230; \ud83d\ude42<\/li>\n<\/ul>\n<p>We&#8217;d love to hear your feedback. &nbsp;If you want to discuss the project, talk about new ideas, make suggestions for improving the documentation, or anything else, please get involved!<\/p>\n<p>To learn more, check out the project Wiki: http:\/\/code.google.com\/p\/xcmis\/w\/list<br \/>\nTo see the source code: http:\/\/code.google.com\/p\/xcmis\/source\/checkout<br \/>\nTo download the binaries: http:\/\/code.google.com\/p\/xcmis\/downloads\/list<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"Last week we announced that eXo Platform has built an open source implementation of OASIS&#8217;s Content Management Interoperability Services CMIS specification. &nbsp;We licensed this under the LGPL license, and released it officially as&nbsp;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 [&hellip;]","protected":false},"author":7,"featured_media":12746,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"image","meta":[],"categories":[705],"tags":[765,647],"lang":"en","translations":{"en":37025},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts\/37025"}],"collection":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/comments?post=37025"}],"version-history":[{"count":0,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/posts\/37025\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/media?parent=37025"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/categories?post=37025"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.exoplatform.com\/blog\/wp-json\/wp\/v2\/tags?post=37025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}