<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3575225008808749689</id><updated>2011-04-21T15:35:06.725-06:00</updated><category term='DMS'/><category term='WCM'/><category term='OSGi'/><category term='Java'/><category term='JSR-170'/><category term='ECM'/><category term='JSR-168'/><category term='Eclipse'/><category term='CMS'/><title type='text'>So Limited</title><subtitle type='html'>&lt;br&gt;"Genius may have its limitations, but stupidity is not thus handicapped."&lt;br&gt;&lt;br&gt;--Elbert Hubbard</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.solimited.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.solimited.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Alex</name><uri>http://www.blogger.com/profile/01258114296884697307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3575225008808749689.post-2179562059246431187</id><published>2008-03-18T02:14:00.007-06:00</published><updated>2008-03-18T03:34:49.910-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JSR-170'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='ECM'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='WCM'/><category scheme='http://www.blogger.com/atom/ns#' term='JSR-168'/><title type='text'>Nuxeo 5 for Developers</title><content type='html'>This post contains content migrated from &lt;a href="http://www.blogger.com/2008/01/nuxeo-5-at-glance.html"&gt;my Nuxeo 5 overview&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://www.nuxeo.org/sections/community/"&gt;outline page&lt;/a&gt; describes how to get involved with Nuxeo 5 development. Here is a &lt;a href="http://www.nuxeo.org/sections/about/roadmap/"&gt;roadmap&lt;/a&gt; for upcoming releases. The &lt;span&gt;Nuxeo EP 5.2 release slated for December 2007 seemed important in that&lt;/span&gt; it includes Portlet integration, WebDAV, WCM, and uses Seam 2.0 and the latest Jackrabbit release. This release has been delayed and is unlikely to be generally available before February 2008 per the last unofficial response from a lead developer.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;UPDATE:&lt;/span&gt; A new Nuxeo &lt;a href="http://blogs.nuxeo.com/sections/blogs/fermigier/2008_01_15_upcoming-nuxeo-5-1-3-release-updated-roadmap"&gt;blog article&lt;/a&gt; and the &lt;a href="http://www.nuxeo.org/sections/about/roadmap/"&gt;updated roadmap&lt;/a&gt; reference the pending release and a March 2008 release target for Nuxeo 5.2. The article announced that the next 5.1.3 release would add support for useful features like WebDAV and Portlets, which it did.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://doc.nuxeo.org/current/reference/html/getting-started.html"&gt;Getting Started&lt;/a&gt; reference describes how to setup a development environment for working on Nuxeo EP in an Eclipse environment. There are more detailed notes &lt;a href="http://doc.nuxeo.org/current/reference/html/dev-environment-installation.html"&gt;outlined here&lt;/a&gt; or &lt;a href="http://svn.nuxeo.org/trac/nuxeo/browser/doc/nuxeo5-dev-quickstart-howto.txt"&gt;here&lt;/a&gt;. The &lt;a href="https://svn.nuxeo.org/trac/nuxeo/wiki"&gt;developers wiki&lt;/a&gt; also contains useful information.&lt;br /&gt;&lt;br /&gt;An overview of their source repository is &lt;a href="http://maven.nuxeo.org/source-repository.html"&gt;available here&lt;/a&gt;. A web view of the Nuxeo Subversion source repository &lt;a href="http://svn.nuxeo.org/trac/nuxeo/browser"&gt;is available here&lt;/a&gt;. The main SVN trunk can be &lt;a href="http://svn.nuxeo.org/trac/nuxeo/browser/nuxeo-ep/trunk"&gt;browsed here&lt;/a&gt;. The 5.2 branch can be &lt;a href="http://svn.nuxeo.org/trac/nuxeo/browser/nuxeo-ep/branches/5.2-seam2?rev=27710"&gt;viewed here&lt;/a&gt;. Nightly snapshots are &lt;a href="http://svn.nuxeo.org/snapshots/"&gt;available here&lt;/a&gt;, but there is not currently any snapshot of the Seam2 source, which can be checked out here:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;$ svn checkout http://svn.nuxeo.org/nuxeo/nuxeo-ep/branches/5.2-seam2-v2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;These reference links cover Nuxeo taglibs and third-party integration options:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://maven.nuxeo.org/nuxeo-platform-parent/nuxeo-platform-ui-web/tlddoc/index.html"&gt;Nuxeo Tag library documentation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://doc.nuxeo.org/current/reference/html/nuxeo-core-reference.html#d1698e4817"&gt;Nuxeo Core Public API&lt;/a&gt; should allow any client to connect to a Nuxeo Repository&lt;/li&gt;&lt;li&gt;&lt;a href="http://doc.nuxeo.org/current/reference/html/nuxeo-core-io.html"&gt;Nuxeo Core Import/Export API&lt;/a&gt; including info on working with blobs&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://doc.nuxeo.org/current/reference/html/nuxeo-restlet-api.html"&gt;Nuxeo Restlet API&lt;/a&gt; defines 3 differents types of restlets: Stateless (standard) restlets as documented at &lt;a href="http://www.restlet.org/"&gt;www.restlet.org&lt;/a&gt;, Seam aware restlets (supports @In to access           Seam context), and Conversation aware restlet&lt;/li&gt;&lt;li&gt;&lt;a href="http://doc.nuxeo.org/current/reference/html/nuxeo-http-client.html"&gt;Nuxeo http client&lt;/a&gt; encapsulates Restlet http client library and Nuxeo authentication&lt;/li&gt;&lt;li&gt;&lt;a href="http://doc.nuxeo.org/current/reference/html/nuxeo-portlets.html"&gt;Nuxeo JSR 168 Integration&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://doc.nuxeo.org/current/reference/html/nuxeo-webdav-interface.html"&gt;Nuxeo WebDav interface&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://doc.nuxeo.org/current/reference/html/metadataextraction-service.html"&gt;Meta-Data Extraction&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maven.nuxeo.org/nuxeo-platform-parent/nuxeo-platform-forms-layout-client/dependencies.html"&gt;Nuxeo Project Dependencies&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Some Nuxeo add-ons of interest:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://doc.nuxeo.org/current/reference/html/vnavigation.html#virtual-navigation"&gt;Virtual Navigation&lt;/a&gt;: provides navigation built on meta-data that can be tailored to the domain, i.e. more user friendly or intuitive&lt;/li&gt;&lt;/ul&gt;Nuxeo mailing list threads of interest. It seems like the topics of using/integrating Nuxeo and a Seam web app started coming up from users in December 2007.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Any production sites using Nuxeo 5 yet? &lt;a href="http://lists.nuxeo.com/pipermail/ecm/2007-December/003571.html"&gt;more...&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;how to deploy Nuxeo and Seam site and let them communicate &lt;a href="http://lists.nuxeo.com/pipermail/ecm/2007-December/003618.html"&gt;more...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;How can I use JBoss Seam and Nuxeo 5 together? &lt;a href="http://lists.nuxeo.com/pipermail/ecm/2007-December/003608.html"&gt;more...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;JBoss Portal &amp;amp; Nuxeo Portlets &lt;a href="http://lists.nuxeo.com/pipermail/ecm/2007-December/003654.html"&gt;more...&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;S0me recent feedback from the developers:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;[on WCM support] there are no public websites running on Nuxeo 5  since our focus was not on WCM (for instance our own websites, nuxeo.com and nuxeo.org, still run on CPS - but we're running our  &lt;/span&gt;&lt;span style="font-style: italic;"&gt;internal document management application on Nuxeo 5, of course). I have uploaded a &lt;a href="http://www.slideshare.net/sfermigier/nuxeo-business-and-technical-roadmap-dec-2007"&gt;presentation yesterday on SlideShare&lt;/a&gt; that highlights a few recent projects...&lt;br /&gt;&lt;br /&gt;[on current limitation for co-locating Nuxeo with Seam 2.0 app] Nuxeo 5.1.2 uses Seam 1.1.5...&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;Other articles of interest:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blogs.nuxeo.com/sections/blogs/eric_barroca/2006_09_27_nuxeo-runtime-1-0-extension-points-for-java-ee-osgi-for-jboss-as"&gt;Nuxeo Runtime 1.0: Extension Points for Java EE and OSGi for JBossAS&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Nuxeo's R&amp;amp;D Manager asks &lt;a href="http://blogs.nuxeo.com/sections/blogs/florent_guillaume/2006_10_18_what-s-point-jcr"&gt;What's the point of JCR?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://doc.nuxeo.org/current/reference/html/nuxeo-portlets.html"&gt;Nuxeo JSR 168 Integration&lt;/a&gt; documentation&lt;/li&gt;&lt;li&gt;&lt;a href="http://doc.nuxeo.org/current/reference/html/nuxeo-http-client.html"&gt;Nuxeo http client&lt;/a&gt; (restlet) documentation&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.nuxeo.com/sections/blogs/anahide_tchertchian/2007_09_04_how-to-invoke-method-expressions-with-parameters-in-jsf"&gt;How to invoke method expressions with parameters in JSF?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.nuxeo.com/sections/blogs/eric_barroca/2007_09_12_nuxeo-runtime-adds-support-for-scripting-languages"&gt;Nuxeo Runtime adds support for scripting languages&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://doc.nuxeo.org/current/reference/html/administration.html#admin-database-configuration"&gt;RDBMS Storage and Database Configuration&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How to customize &lt;a href="http://doc.nuxeo.org/current/reference/html/theme-service.html"&gt;look and feel&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://svn.nuxeo.org/trac/nuxeo/wiki/UsingDifferentPorts"&gt;Using a non-standard IP address and ports&lt;/a&gt;, also discussed &lt;a href="http://doc.nuxeo.org/current/reference/html/administration.html#admin-specific_IP_binding-configuration"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://doc.nuxeo.org/current/reference/html/getting-started.html#archetypes-nuxeo-simple"&gt;Generating sample project&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Switch From Subversion to Mercurial&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In March of 2008, the Nuxeo team switched from using Subversion to the distributed &lt;a href="http://www.selenic.com/mercurial/wiki/"&gt;Mercurial&lt;/a&gt;. Performance was the primary reason cited for the switch.&lt;br /&gt;&lt;br /&gt;Steps to support this change:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Install Mercurial -- I used Mac Ports: &lt;span style="font-style: italic;"&gt;$ port install mercurial&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;Install the &lt;a href="http://www.selenic.com/mercurial/wiki/index.cgi/ForestExtension"&gt;ForestExtension&lt;/a&gt;: &lt;span style="font-style: italic;"&gt;$ hg clone http://hg.akoha.org/hgforest/&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Configure your .hgrc to reference the ForestExtension&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Grab the Nuxeo forest: &lt;span style="font-style: italic;"&gt;$ hg fclone http://hg.nuxeo.org/nuxeo&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3575225008808749689-2179562059246431187?l=blog.solimited.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.solimited.com/feeds/2179562059246431187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3575225008808749689&amp;postID=2179562059246431187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default/2179562059246431187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default/2179562059246431187'/><link rel='alternate' type='text/html' href='http://blog.solimited.com/2008/03/nuxeo-5-for-developers.html' title='Nuxeo 5 for Developers'/><author><name>Alex</name><uri>http://www.blogger.com/profile/01258114296884697307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3575225008808749689.post-8266364529788437502</id><published>2008-03-17T03:17:00.002-06:00</published><updated>2008-03-18T02:20:33.466-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JSR-170'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='ECM'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='WCM'/><category scheme='http://www.blogger.com/atom/ns#' term='JSR-168'/><title type='text'>Nuxeo 5 at a Glance</title><content type='html'>&lt;a href="http://www.nuxeo.org/"&gt;Nuxeo 5&lt;/a&gt; is a standards-based, open source platform for building ECM applications. The &lt;a href="http://www.nuxeo.com/en/"&gt;corporate site&lt;/a&gt; details commercial offerings. Nuxeo has been offering an ECM solution since 2001.&lt;br /&gt;&lt;br /&gt;Initially a Python/Zope offering, the CPS Platform, they &lt;a href="http://contenthere.blogspot.com/2006/09/nuxeo-cps-switching-to-java.html"&gt;announced plans&lt;/a&gt; to switch to Java in September 2006. They outline their reasoning in this &lt;a href="http://www.nuxeo.org/sections/about/java-switch/"&gt;switch FAQ&lt;/a&gt; and in more technologist-specific details &lt;a href="http://www.nuxeo.org/sections/about/java-switch/about-nuxeo5/"&gt;here&lt;/a&gt;, e.g.:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;For the last two years, our business has grown and our customers’ requirements too. Our software must fit seamlessly in their global information systems. They also need to deliver critical applications that can offer concurrently high-performances, high-availability and manage huge data volume (&gt; 5 TB). To achieve these goals, we improved the Zope infrastructure a lot, but feel we reached its limit with CPS 4, to the point where two of its most critical components, the content repository and the search engine, are actually Java-based (respectively, Jackrabbit and Lucene).&lt;br /&gt;&lt;br /&gt;JBoss JEMS is the leading open source Java EE application server in the corporate world today and the only one at this point to support all the recent Java EE features we need for the development of Nuxeo 5, mainly: EJB3 and JSF. Moreover JBoss Inc. (now a division of Red Hat) can provide support for the middleware infrastructure at the level we require so that we can offer an integrated high-level support to our customers.&lt;br /&gt;&lt;br /&gt;Some JBoss third-party products, like Seam, JRules and jBPM are also key parts of our architecture. While they should be running on other J2EE platforms, we believe it to be more natural, in a first phase, to use them on top of JBoss AS.&lt;br /&gt;&lt;br /&gt;To achieve application server independence and deep extensibility we wrote Nuxeo Runtime, a powerful component management framework running on top of a host platform. Nuxeo Runtime consumes OSGi bundles or XML descriptors and deploys them dynamically to the host platform (JBoss, OSGi, Objectweb's JOnAS, Apache's Geronimo, etc. — you just need to write another adapter to support a new platform). Nuxeo components are dynamically adapted to the native host platform components (like MBean, OSGi services, etc.) giving you the full benefits of the underlying platform's capabilities.&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;The first generally available 5.0 release shipped in February 2007 as announced &lt;a href="http://www.nuxeo.org/sections/news/release-nuxeo-ep-5-0-0/"&gt;here&lt;/a&gt; and also covered &lt;a href="http://underlap.blogspot.com/2007/02/nuxeo-ep-based-on-osgi.html"&gt;here&lt;/a&gt; (touching on OSGi use). The latest stable release is 5.1.3.2 made available in February 2008.&lt;br /&gt;&lt;br /&gt;Products integrated in Nuxeo 5:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;JBoss AS as the target application server&lt;/li&gt;&lt;li&gt;JBoss Seam as web application framework (and AJAX support framework)&lt;/li&gt;&lt;li&gt;JBoss jBPM as business process management engine&lt;/li&gt;&lt;li&gt;JBoss Cache as cache system&lt;/li&gt;&lt;li&gt;Apache MyFaces as JSF engine&lt;/li&gt;&lt;li&gt;Apache Lucene as indexing engine&lt;/li&gt;&lt;li&gt;Apache Jackrabbit as content storage&lt;/li&gt;&lt;li&gt;PostgreSQL 8 and MySQL 5 as default target RDBMS&lt;/li&gt;&lt;/ul&gt;Nuxeo 5 is licensed under the business-friendly open source LGPL. Some jointly-developed components will use the Eclipse Public License and the Apache License. The software is developed and delivered using the open source model, with zero-cost licenses and a subscription model based around deployments, not numbers of users.&lt;br /&gt;&lt;br /&gt;An online tour is &lt;a href="http://www.nuxeo.com/en/products/ep/"&gt;available here&lt;/a&gt; and the latest user guide is &lt;a href="http://doc.nuxeo.org/current/reference/html-single/user-book.html"&gt;available here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Nuxeo 5 Projects&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.nuxeo.org/sections/projects/runtime/"&gt;Nuxeo Runtime&lt;/a&gt; is the foundation of the Nuxeo 5 infrastructure. It handles deployment and extensibility of components to target platforms. This component allows the whole Nuxeo 5 infrastructure to be easily ported between Java platforms (Java EE, OSGi, etc.).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nuxeo.org/sections/projects/core/"&gt;Nuxeo Core&lt;/a&gt; is an embeddable document management core, based on Nuxeo Runtime. It provides all necessary low-level services to define, store, manage, audit, request and search content. It is the kernel of Nuxeo 5 and can also be embedded in third-party applications to provide advanced content management features.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nuxeo.org/sections/projects/ep/"&gt;Nuxeo Enterprise Platform&lt;/a&gt; (EP), based on the above projects, provides a coherent set of components addressing the whole ECM scope. Nuxeo EP is built on two layers: &lt;a href="http://www.nuxeo.org/sections/projects/ep/foundation/"&gt;Nuxeo Foundations&lt;/a&gt; and &lt;a href="http://www.nuxeo.org/sections/projects/ep/enterprise-components/"&gt;Nuxeo Enterprise Components&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Nuxeo Rich Client Platform (RCP) is described in &lt;a href="http://www.nuxeo.org/sections/about/slides/apogee-nuxeo-rcp-from"&gt;the slides of the talk&lt;/a&gt; presented at the 2006 Eclipse Summit Europe. This project aims at building a framework to create ECM-oriented desktop applications, independent from vendor or technologies.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Rich Client Platform&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;While the Eclipse platform is designed to serve as an open tools platform, it is architected so that its components could be used to build just about any client application. The minimal set of plug-ins needed to build a rich client application is collectively known as the &lt;a href="http://wiki.eclipse.org/index.php/Rich_Client_Platform"&gt;Rich Client Platform&lt;/a&gt;. See the &lt;a href="http://wiki.eclipse.org/RCP_FAQ#What_is_the_Eclipse_Rich_Client_Platform.3F"&gt;RCP FAQ&lt;/a&gt; for more information.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Developer Information&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The developer focused section has outgrown this article, and has &lt;a href="/2008/03/nuxeo-5-for-developers.html"&gt;moved to a separate post&lt;/a&gt;.&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;Operations Information&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nuxeo supports and certifies the following hardware and         software likely to be used on this project.&lt;br /&gt;&lt;br /&gt;Hardware: &lt;div class="itemizedlist"&gt;               &lt;ul&gt;&lt;li&gt;Intel/AMD 32-bit &amp;amp; 64-bit&lt;/li&gt;&lt;li&gt;SPARC 32-bit &amp;amp; 64-bit&lt;/li&gt;&lt;/ul&gt;Operating Systems: &lt;/div&gt;&lt;div class="itemizedlist"&gt;               &lt;ul&gt;&lt;li&gt;RedHat 3.x, 4.x, 5.x &lt;/li&gt;&lt;li&gt;Debian 4.0, Ubuntu Server 6.06 LTS and 7.04&lt;/li&gt;&lt;li&gt;Solaris 10&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;RDBMS: &lt;/p&gt;&lt;div class="itemizedlist"&gt;               &lt;ul&gt;&lt;li&gt;PostgreSQL 8.x&lt;/li&gt;&lt;li&gt;Oracle Database 9i, Oracle Database 10g&lt;/li&gt;&lt;/ul&gt;             &lt;/div&gt;&lt;p&gt;Java Runtime Environment: &lt;/p&gt;&lt;div class="itemizedlist"&gt;               &lt;ul&gt;&lt;li&gt;1.5.0 (update 11 recommended)             &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;Java EE application servers: &lt;/p&gt;&lt;div class="itemizedlist"&gt;               &lt;ul&gt;&lt;li&gt;JBoss AS 4.0.4 GA and 4.0.5 GA &lt;/li&gt;&lt;li&gt;JBoss AS 4.2.0 GA (in progress)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3575225008808749689-8266364529788437502?l=blog.solimited.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.solimited.com/feeds/8266364529788437502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3575225008808749689&amp;postID=8266364529788437502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default/8266364529788437502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default/8266364529788437502'/><link rel='alternate' type='text/html' href='http://blog.solimited.com/2008/01/nuxeo-5-at-glance.html' title='Nuxeo 5 at a Glance'/><author><name>Alex</name><uri>http://www.blogger.com/profile/01258114296884697307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3575225008808749689.post-2953397089916800480</id><published>2008-03-01T16:53:00.000-07:00</published><updated>2008-03-18T02:06:20.506-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JSR-170'/><category scheme='http://www.blogger.com/atom/ns#' term='ECM'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='WCM'/><category scheme='http://www.blogger.com/atom/ns#' term='JSR-168'/><title type='text'>Mapping the Java CMS Space</title><content type='html'>&lt;span style="font-size:130%;"&gt;The Open Source CMS Landscape&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Online comparisons of CMS alternatives in Java and other languages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://cmsmatrix.org/matrix"&gt;CMS Matrix&lt;/a&gt; - supports side-by-side CMS comparisons&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://java-source.net/open-source/content-managment-systems"&gt;Open Source CMS in Java&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.packtpub.com/2007-open-source-cms-award-finalists"&gt;2007 Open Source CMS Award Finalists&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;I've put together &lt;a href="http://spreadsheets.google.com/pub?key=p4s5TGJRcr8knWY3zMCkcMw"&gt;a comparison (Excel .xls)&lt;/a&gt; based on the CMS Matrix database comparing the leading open source Java CMS solutions to the Zope-based Nuxeo CPS as well as &lt;a href="http://www.joomla.org/"&gt;Joomla!&lt;/a&gt; and &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt;, the most &lt;span style="font-style: italic;"&gt;popular&lt;/span&gt; PHP-based open source CMS solutions. This comparison would benefit from being updated to reflect Magnolia 3.5 and Nuxeo 5.&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;CMS, ECM, WCM, DMS, JCR and Portlets&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Enterprise_content_management"&gt;Enterprise Content Management&lt;/a&gt; (ECM) platforms cover broader functional and technical scope than basic CMS, but most robust solutions appear to be moving in this direction:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Document Management&lt;/li&gt;&lt;li&gt;Collaborative work&lt;/li&gt;&lt;li&gt;Records Management &amp;amp; Digital Asset Management&lt;/li&gt;&lt;li&gt;Business Process Management&lt;/li&gt;&lt;li&gt;Retention Management&lt;/li&gt;&lt;li&gt;Compliance Management&lt;/li&gt;&lt;li&gt;Archiving&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;There is also in industry distinction between ECM and &lt;a href="http://en.wikipedia.org/wiki/Web_content_management_system"&gt;Web Content Management&lt;/a&gt; (WCM or WCMS). Some ECM solutions also target WCM, but not all do and WCM is more tailored for managing public web content.&lt;br /&gt;&lt;br /&gt;Other terms encountered in relation to Content Management Systems include &lt;a href="http://en.wikipedia.org/wiki/Java_Content_Repository"&gt;Java Content Repository&lt;/a&gt; (JCR or &lt;a href="http://jcp.org/aboutJava/communityprocess/review/jsr170/"&gt;JSR-170&lt;/a&gt;) and &lt;a href="http://en.wikipedia.org/wiki/Document_management_system"&gt;Document Management System&lt;/a&gt; (DMS).&lt;br /&gt;&lt;br /&gt;Apache Jackrabbit is the leading open source JCR, but others include Alfresco's &lt;a href="http://wiki.alfresco.com/wiki/Introducing_the_Alfresco_Java_Content_Repository_API"&gt;implementation&lt;/a&gt; and Day Software's &lt;a href="http://www.day.com/site/en/index/products/content-centric_infrastructure/content_repository.html"&gt;CRX&lt;/a&gt;. The &lt;a href="http://en.wikipedia.org/wiki/Java_Portlet_specification"&gt;Java Portlet Specification&lt;/a&gt; (&lt;a href="http://jcp.org/aboutJava/communityprocess/review/jsr168/"&gt;JSR-168&lt;/a&gt;) defines the interface between portlet containers and portlets, and is used in many cases to integrate JCR and a CMS portal.&lt;br /&gt;&lt;br /&gt;A DMS is used to track and store electronic documents and works at the document level, and has some overlap with CMS concepts. It is often a component of an ECM, but is not a substitute for management at the discrete content level. The jLibrary DMS project below claims to provide CMS functionality.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Open Source Java CMS&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Based on those high-level comparison and the discussions/articles below, I took a closer look at the following CMS-related Java projects.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A &lt;a href="http://raibledesigns.com/rd/entry/java_cms_systems"&gt;March 2007 discussion&lt;/a&gt; mentioning OpenCms, Alfresco and Magnolia&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.apoorv.info/2006/01/07/from-vignette-to-opencms/"&gt;Posting&lt;/a&gt; and &lt;a href="http://contenthere.blogspot.com/2006/01/from-vignette-to-opencms.html"&gt;commentary&lt;/a&gt; on migrating to OpenCms, also referencing Magnolia and Jackrabbit/JCR&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Alfresco&lt;/span&gt; (WCM/ECM)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://alfresco.com/"&gt;Alfresco&lt;/a&gt; is an open source ECM with DMS features, built by a core teams from Documentum and Interwoven with 15 years ECM experience and founded by a co-founder of Documentum. Is this a good thing? Initially released in September 2006. There is also a more basic Web Content Management (WCM) package. Downloads can be &lt;a href="http://www.alfresco.com/products/ecm/enttrial/all/"&gt;found here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It is built using Spring, Hibernate, Lucene, MyFaces, JSR 168, JSR 170 and JSE5. Alfresco's Content Repository is a custom JCR which they claim has the fastest benchmarks. There is an &lt;a href="http://forge.alfresco.com/projects/jcr-rmi/"&gt;alpha project&lt;/a&gt; to integrate with a Jackrabbit JCR.&lt;br /&gt;&lt;br /&gt;The GPL'd &lt;a href="http://wiki.alfresco.com/wiki/Download_Alfresco_Community_Network"&gt;Community release&lt;/a&gt; is freely available, with &lt;a href="http://alfresco.com/products/docs/releases/2.1_community/"&gt;2.1 recently released&lt;/a&gt; with new Web 2.0 UI and a REST architecture. Information on the different licenses (OEM Program vs Commercial License) is &lt;a href="http://www.alfresco.com/legal/licensing/"&gt;available here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Alfresco &lt;a href="http://www.jboss.com/services/online_education#alfresco"&gt;uses JBoss Portal per this screencast&lt;/a&gt; which demos the integration and use cases. There is some mention of some initial Seam re-use, but that appears to be limited to jBPM and jPDL. This &lt;a href="http://wiki.alfresco.com/wiki/Facebook"&gt;wiki article&lt;/a&gt; discusses surfacing Alfresco content in Facebook.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Apache Jackrabbit&lt;/span&gt; (JCR)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://solimited.blogspot.com/2008/01/jackrabbit-101.html"&gt;Apache Jackrabbit&lt;/a&gt; replaced Jakarta Slide and is used by or integrates with jLibrary, Nuxeo 5 and other Java CMS offerings. See my &lt;a href="http://solimited.blogspot.com/2008/01/jackrabbit-101.html"&gt;introductory article&lt;/a&gt; for more information on Jackrabbit.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Apache Lenya&lt;/span&gt; (CMS)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lenya.apache.org/"&gt;Apache Lenya&lt;/a&gt; seemed to have a promising future several years ago, but the long promised 2.0 release was under development for an extended period.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;UPDATE: &lt;/span&gt;Lenya 2.0 was &lt;a href="http://www.apachenews.org/archives/001098.html"&gt;finally released&lt;/a&gt; in January 2008, but is still based on &lt;a href="http://cocoon.apache.org/"&gt;Apache Cocoon&lt;/a&gt; with a proprietary content repository and minimal JCR integration.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Hippo CMS&lt;/span&gt; (CMS)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hippocms.org/display/CMS/About+Hippo+CMS"&gt;Hippo CMS&lt;/a&gt; is an open source information centered CMS targeted at medium to large organisations managing content for web sites and intranets. Consists of the Hippo Repository, Hippo CMS and one or more Apache Cocoon instances as &lt;a href="http://www.hippocms.org/display/CMS/Technical+Architecture"&gt;outlined here&lt;/a&gt;. The Hippo content repository is based on the retired Jakarta Slide retired project. Does not appear to have complete integration for JCR support.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Jahia&lt;/span&gt; (WCM/ECM)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.magnolia.info/"&gt;&lt;/a&gt;The &lt;a href="http://www.jahia.org/jahia/page712.html"&gt;Jahia Community Edition&lt;/a&gt; is advertised as "a powerful Java-based web content management system coupled to a JSR168 compliant Corporate Portal Server" and is available for download &lt;a href="http://www.jahia.net/jahia/page558.html"&gt;here&lt;/a&gt;. Referenced by a Nuxeo partner and others attempting to integrate Nuxeo portlets into it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;JBoss Portal&lt;/span&gt; (Portal)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jboss.org/products/platforms/portals"&gt;JBoss Portal&lt;/a&gt; replaced &lt;a href="http://blogs.jboss.com/blog/nfleury/?permalink=JBoss+Launches+Nukes+1.0.html"&gt;&lt;span&gt;Nukes on JBoss&lt;/span&gt;&lt;/a&gt; which is also discussed &lt;a href="http://news.zdnet.co.uk/software/0,1000000121,39119292,00.htm"&gt;here&lt;/a&gt; and &lt;a href="http://www.onjava.com/pub/a/onjava/2003/06/04/nukes.html"&gt;here&lt;/a&gt;. Documentation is &lt;a href="http://labs.jboss.com/jbossportal/docs/index.html"&gt;linked here&lt;/a&gt; and downloads &lt;a href="http://labs.jboss.com/jbossportal/download/index.html"&gt;here&lt;/a&gt;. The current &lt;a href="http://www.theserverside.com/news/thread.tss?thread_id=46019"&gt;Portal release 2.6&lt;/a&gt; is compatible with JBoss 4.2.&lt;br /&gt;&lt;br /&gt;Portlets can be implemented using JBoss Seam although its unclear how mature this support is given &lt;a href="http://blog.jboss-portal.org/2007/11/seam-20-portlet-example.html"&gt;this recent posting&lt;/a&gt; on a tech preview.&lt;br /&gt;&lt;br /&gt;Content management is based on JCR with an &lt;a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=PortalCMSOverview"&gt;overview here&lt;/a&gt;. It appears to have been &lt;a href="http://labs.jboss.com/authors/articles/portal/whatsnew22/"&gt;introduced in Portal release 2.2&lt;/a&gt;, using Jackrabbit. Using CMSPortlet to serve JCR content is &lt;a href="http://docs.jboss.com/jbportal/v2.4/reference-guide/en/html/cmsPortlet.html"&gt;described here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;jLibrary&lt;/span&gt; (DMS)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jlibrary.org/"&gt;jLibrary&lt;/a&gt; is a newer open source DMS. It claims to take a &lt;span style="font-style: italic;"&gt;double approach&lt;/span&gt; also tackling CMS concerns and making it a unique product for pure open source. With jLibrary, you can classify your documents, videos, or any other media type.&lt;br /&gt;&lt;br /&gt;Version 1.1 was released in June 2007 so the project may be immature. Some of the lead developer's comments can be &lt;a href="http://www.jroller.com/mpermar/category/jLibrary"&gt;found here&lt;/a&gt; and &lt;a href="http://www.jroller.com/mpermar/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Magnolia&lt;/span&gt; (WCM/ECM/DMS)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.magnolia.info/"&gt;Magnolia&lt;/a&gt; bills itself as Simple ECM, with WCM and &lt;a href="http://documentation.magnolia.info/docs/en/editor/dms.html"&gt;DMS features&lt;/a&gt;. It is billed as the first and still one of the few that uses JCR as a basis, not as an add-on, of its system architecture. This makes it easy to start with the default Jackrabbit repository and switch at any time to a more sophisticated implementation like CRX, should your needs demand it. It supports portal integration in the Enterprise edition. The Community edition only appears to support standards-based templating in JSP and Servlets, with a custom tag library to speed development.&lt;br /&gt;&lt;br /&gt;The latest &lt;a href="http://www.magnolia.info/en/about-magnolia/news-room/magnolia-3-5-enterprise-edition-final.html"&gt;3.5.2 release&lt;/a&gt; was made available in December 2007. This blog posting discusses a recent &lt;a href="http://contenthere.blogspot.com/2007/11/magnolia-community-edition-35-rc1.html"&gt;3.5 release candidate&lt;/a&gt;. The &lt;a href="http://www.magnolia.info/wiki/Wiki.jsp?page=Magnolia3.0"&gt;last stable release is 3.0&lt;/a&gt; is over a year old and is compared in the spreadsheet linked above.&lt;br /&gt;&lt;br /&gt;The Magnolia Enterprise and Community Editions are available for download &lt;a href="http://www.magnolia.info/en/download.html"&gt;here&lt;/a&gt;. The Community license was recently &lt;a href="http://www.magnolia.info/en/about-magnolia/news-room/magnolia-adopts-gplv3.html"&gt;transitioned to GPLv3&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://www.magnolia.info/wiki/Wiki.jsp?page=WhyUsingMagnolia"&gt;wiki page&lt;/a&gt; does a poor job of comparing Magnolia and OpenCms, but serves as a bookmark for further research. This &lt;a href="http://www.theserverside.com/news/thread.tss?thread_id=41010#212134"&gt;3.0 release article&lt;/a&gt; includes some debate on Magnolia versus Alfresco.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nuxeo&lt;/span&gt; 5 (WCM/ECM)&lt;br /&gt;&lt;br /&gt;See my &lt;a href="http://solimited.blogspot.com/2008/01/nuxeo-5-at-glance.html"&gt;introductory article&lt;/a&gt; for more information on Nuxeo 5. It appears that WCM support is pending in the pending 5.2 release.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OpenCms&lt;/span&gt; (CMS/WCM)&lt;br /&gt;&lt;br /&gt;See my &lt;a href="http://solimited.blogspot.com/2008/01/jackrabbit-101.html"&gt;introductory article&lt;/a&gt; for more information on OpenCms.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3575225008808749689-2953397089916800480?l=blog.solimited.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.solimited.com/feeds/2953397089916800480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3575225008808749689&amp;postID=2953397089916800480' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default/2953397089916800480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default/2953397089916800480'/><link rel='alternate' type='text/html' href='http://blog.solimited.com/2008/01/open-source-cms.html' title='Mapping the Java CMS Space'/><author><name>Alex</name><uri>http://www.blogger.com/profile/01258114296884697307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3575225008808749689.post-2306428376439432067</id><published>2008-01-01T16:03:00.000-07:00</published><updated>2008-01-02T04:11:13.001-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSGi'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Apache Sling at a Glance</title><content type='html'>&lt;a href="http://incubator.apache.org/sling/site/index.html"&gt;Apache Sling's&lt;/a&gt; main goal is to develop a content-centric Web Application framework for JCR-based data stores. The default implementation for &lt;a href="http://solimited.blogspot.com/2008/01/jackrabbit-101.html"&gt;Apache Jackrabbit&lt;/a&gt; is provided out of the box, which is why it was of some interest to me. No project binaries were generally available at the time of the last article update.&lt;br /&gt;&lt;br /&gt;Sling is implemented as a series of &lt;a href="http://www.osgi.org/"&gt;OSGi&lt;/a&gt; Bundles and makes extensive use of the OSGi functionality, such as lifecycle management and the service layer. OSGi technology originally targeted embedded devices and home services gateways, but claims to be suited for any project that is interested in principles of modularity, component-oriented, and/or service-orientation. OSGi technology combines aspects of these principles to define a dynamic service deployment framework that supports remote management. The OSGi Alliance maintains detailed specifications describing the features and capabilities of its OSGi Service Platform, which can be freely implemented by anyone.&lt;br /&gt;&lt;br /&gt;While Sling does not require a specific OSGi framework implementation to run in, Sling is being developed using &lt;a href="http://felix.apache.org/site/index.html"&gt;Apache Felix&lt;/a&gt; as the OSGi framework implementation. Felix is a community effort to implement the OSGi R4 Service Platform, which includes the OSGi framework and standard services. The ultimate goal is to provide a completely compliant implementation of the OSGi framework and standard services, and to support a community around this technology.&lt;br /&gt;&lt;br /&gt;OSGi technology is also used in the Eclipse &lt;a href="http://www.eclipse.org/equinox/"&gt;Equinox&lt;/a&gt; and &lt;a href="http://www.eclipse.org/corona/"&gt;Corona&lt;/a&gt; projects. Equinox is an implementation of the &lt;a href="http://osgi.org/osgi_technology/download_specs.asp?section=2#Release4"&gt;OSGi R4 core framework specification&lt;/a&gt;. the goal of the Equinox project is to be a first class OSGi community and foster the vision of Eclipse as a landscape of bundles. As part of this, it is responsible for developing and delivering the OSGi framework implementation used for all of Eclipse. OSGi foundations are partially attributed for the successful annual coordinated releases of different Eclipse projects: Callisto in 2006 (10 projects) and Europa in 2007 (21 projects).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3575225008808749689-2306428376439432067?l=blog.solimited.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.solimited.com/feeds/2306428376439432067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3575225008808749689&amp;postID=2306428376439432067' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default/2306428376439432067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default/2306428376439432067'/><link rel='alternate' type='text/html' href='http://blog.solimited.com/2008/01/apache-sling-at-glance.html' title='Apache Sling at a Glance'/><author><name>Alex</name><uri>http://www.blogger.com/profile/01258114296884697307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3575225008808749689.post-8133084432085571136</id><published>2007-12-20T16:48:00.000-07:00</published><updated>2008-01-21T15:27:02.180-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='WCM'/><title type='text'>OpenCms at a Glance</title><content type='html'>&lt;a href="http://www.opencms.org/"&gt;OpenCms&lt;/a&gt; is a mature open source CMS and WCM solution based on J2EE technology. It is distributed by Alkacon Software under an open source license. The current version at the time of the last article update was 7.0.3, and the first open source version was released in 2000.&lt;br /&gt;&lt;br /&gt;From a post on an &lt;a href="http://tomasvarsavsky.com/2007/09/21/evaluating-opencms-alfresco-and-liferay/"&gt;evaluation of OpenCms, Alfresco and Liferay&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;[on OpenCms 7] I found changing the look and feel and layout non intuitive at first but it was ok once I worked out that my site was based on the “templateone” module and most of the styling and layout could be driven from properties in the document tree. OpenCms supports XML content that you can define and author through an automatically generated web form and then access from JSPs. The bundled documentation is good and finding help online is easy.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;[on Alfresco Community 2.1] Even something basic like installation instructions are incomplete and all over the place. Alfresco is more feature rich than OpenCms and with that comes extra complexity which led to frustrating attempts at implementing more complex things like XML based web content. Overall I was quite impressed with Alfresco and can see the potential to do some really cool stuff in it. Unfortunately, due to the learning curve, lacklustre documentation and short amount of disposable time I abandoned Alfresco as an option. I will re-visit it when I have more time.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;In the end I chose OpenCms as “the simplest thing that works” and spent 2.5 days spiking an Intranet on it.&lt;br /&gt;&lt;br /&gt;[follow up comment] Anyway OpenCms will remain as the best LightWeight Open Source Enterprise WCMS and the upcoming OpenCms JSR168 Module Contribution from China will add the desired portal capabilities to her rich feature list.&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;From a post regarding &lt;a href="http://contenthere.blogspot.com/2007/11/retail-therapy-for-opencms.html"&gt;OpenCms/eCommerce integration&lt;/a&gt;:&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;What caught my eye, however, is the amount of momentum OpenCms seems to be having. With two, high impact, big releases (v6 and v7), OpenCms has brought itself back into the limelight after losing mind-share to the new generation of Java based WCM platforms (Magnolia, Jahia, Alfresco).&lt;br /&gt;&lt;br /&gt;Plus, OpenCms is considerably less expensive (there is no "Enterprise" version to buy. All the revenue comes from support). Support packages from Alkacon are relatively inexpensive and provide enough of a safety net to molify the risk averse CIO.&lt;/blockquote&gt;From a post regarding an &lt;a href="http://contenthere.blogspot.com/2007/07/alfrescoopencms-integration.html"&gt;Alfresco/OpenCms Integration component&lt;/a&gt;:&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;Perhaps the key value to this component is that it allows you manage content within Alfresco's sophisticated repository and leverage OpenCms's more mature web content delivery functionality. For example, maybe you use Alfresco for internal collaboration and document sharing and then you publish some assets to your OpenCms powered corporate web site.&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;No JCR Integration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;OpenCms does not currently support JCR integration. This has been requested several times on the mailing list and is included in the &lt;a href="http://opencms-wiki.org/Wishlist"&gt;wish list&lt;/a&gt; , but is not noted in the public development roadmap.&lt;br /&gt;&lt;br /&gt;OpenCms uses a file system metaphor to manage content, rather than a link-based metaphor. It creates a proprietary Virtual File System (VFS) from the information in the database, and stores all content within it. The VFS is part of the OpenCms database and is not a normal file system like NTFS or ext3 as &lt;a href="http://opencms-wiki.org/Introduction_to_the_OpenCms_application_structure_and_tools"&gt;outlined here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Accessing the VFS using WebDAV is &lt;a href="http://opencms-wiki.org/WebDAV_access_to_the_OpenCms_VFS"&gt;outlined here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Other Resources&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;OpenCms &lt;a href="http://www.opencms.org/en/development/installation/index.html"&gt;installation overview&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;OpenCms &lt;a href="http://opencms-wiki.org/Main_Page"&gt;wiki&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;OpenCms &lt;a href="http://www.opencms-forum.de/opencms-forum/index"&gt;discussion forums&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Managing &amp;amp; Customizing OpenCms 6 &lt;a href="http://www.codedroids.com/en/opencms/packt-opencms-review.html"&gt;book review&lt;/a&gt;&lt;/li&gt;&lt;li&gt;OpenCms 6.0 &lt;a href="http://www.cmswatch.com/Feature/152-OpenCms-6"&gt;software review&lt;/a&gt;&lt;/li&gt;&lt;li&gt;OpenCms &lt;a href="http://en.wikipedia.org/wiki/OpenCms"&gt;Wikipedia article&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3575225008808749689-8133084432085571136?l=blog.solimited.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.solimited.com/feeds/8133084432085571136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3575225008808749689&amp;postID=8133084432085571136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default/8133084432085571136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default/8133084432085571136'/><link rel='alternate' type='text/html' href='http://blog.solimited.com/2008/01/opencms-at-glance.html' title='OpenCms at a Glance'/><author><name>Alex</name><uri>http://www.blogger.com/profile/01258114296884697307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3575225008808749689.post-6627421672505610529</id><published>2007-12-19T13:55:00.000-07:00</published><updated>2008-01-21T23:24:02.894-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JSR-170'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><title type='text'>Apache Jackrabbit 101</title><content type='html'>&lt;a href="http://jackrabbit.apache.org/"&gt;Apache Jackrabbit&lt;/a&gt; is a full featured content repository that claims to implement all of the JCR API. The current version at the time of the last article update was 1.3.3.&lt;br /&gt;&lt;br /&gt;JCR is the acronym of &lt;a href="http://jcp.org/en/jsr/detail?id=170"&gt;JSR 170: Content Repository for Java technology API&lt;/a&gt;, a standard interface for accessing content repositories. A content repository is an information management system that provides various services for storing, accessing, and managing content. In addition to storage, common services offered are versioning, access control, search, and event monitoring.&lt;br /&gt;&lt;br /&gt;A content repository is&lt;span style="font-weight: bold;"&gt; not&lt;/span&gt; a content management system, although most of CMSs contain a custom content repository implementation. A CMS uses a content repository as an underlying component for presentation, business logic, and other features.&lt;br /&gt;&lt;br /&gt;These definitions are lifted from the Jackrabbit FAQ, but it is my intent to dig deeper.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Meeting the Challenge&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;From a &lt;a href="http://www.cmswatch.com/Feature/123"&gt;CMS Watch article in 2005&lt;/a&gt; on JCR:&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;Today almost every content management application ships with its own (frequently proprietary) "content repository." This repository usually extends a storage layer such as a relational database with the various service facilities that almost any modern content application requires. These "repository services" -- for example versioning, driven by legal compliance -- are implemented differently by nearly every vendor, each exposing different terminologies and different programming interfaces.&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-size:130%;"&gt;Getting Started&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://jackrabbit.apache.org/doc/firststeps.html"&gt;First Hops&lt;/a&gt; page gets you started on the road to JCR heaven.&lt;br /&gt;&lt;br /&gt;Jackrabbit supports a variety of deployment models, with three possibilities &lt;a href="http://jackrabbit.apache.org/doc/deploy.html"&gt;outlined here&lt;/a&gt; including co-locating with each J2EE web app, shared as an app server Resource Adapter, or on a separate repository server often co-located with the database.&lt;br /&gt;&lt;br /&gt;Jackrabbit's use of node types is &lt;a href="http://jackrabbit.apache.org/doc/nodetype/index.html"&gt;outlined here&lt;/a&gt;. Each node in a Jackrabbit workspace tree has a type that defines the child nodes and properties it may (or must) have. Developers can use node types to define a custom content model for their application domain. Jackrabbit will enforce the constraints of that model at the repository level.&lt;br /&gt;&lt;br /&gt;You can download JARs and source from &lt;a href="http://jackrabbit.apache.org/downloads.cgi"&gt;this page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Access Control&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Jackrabbit uses the Java Authentication and Authorization Service (JAAS) for authenticating users. You should be able to use any JAAS LoginModule implementation. The Jackrabbit SimpleAccessManager class only supports three access levels: anonymous, normal, and system. Anonymous users have read access while normal and system users have full read-write access. You need to implement a custom AccessManager class to get more fine-grained access control.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Persistence &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A persistence manager (PM) component handles the storage of content nodes and properties. Each workspace of a Jackrabbit content repository uses a separate persistence manager to store the content in that workspace. The persistence manager sits at the very bottom layer of the Jackrabbit system architecture. Reliability, integrity and performance of the PM are crucial to the overall stability and performance of the repository.  See this comparison of &lt;a href="http://jackrabbit.apache.org/faq.html#pm-available"&gt;available PM components&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A file system (FS) component implements standard file system operations on top of some underlying storage mechanism (a normal file system, a database, a webdav server, or a custom file format). File systems are used in Jackrabbit both as subcomponents of the persistence managers and for general storage needs (for example to store the full text indexes). See this comparison of &lt;a href="http://jackrabbit.apache.org/faq.html#fs-available"&gt;available FS components&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;More Information&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://jackrabbit.apache.org/doc/components/webdav.html"&gt;WebDAV Library component&lt;/a&gt; provides interfaces and common utility classes used for building a WebDAV server or client, including basic WebDAV, DeltaV Versioning Extensions, and DAV Searching and Locating.&lt;br /&gt;&lt;br /&gt;Articles and applications built on JCR and Jackrabbit:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://solimited.blogspot.com/2008/01/apache-sling-at-glance.html"&gt;Sling&lt;/a&gt; - "a Web application framework based on REST principles that provides easy development of content-oriented applications."&lt;/li&gt;&lt;li&gt;&lt;a href="http://solimited.blogspot.com/2008/01/nuxeo-5-at-glance.html"&gt;Nuxeo 5&lt;/a&gt; and &lt;a href="http://www.magnolia.info/"&gt;Magnolia&lt;/a&gt; - open source frameworks for ECM applications&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.jlibrary.org/"&gt;jLibrary&lt;/a&gt; - open source DMS&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cmswatch.com/Trends/1104-BEA,-the-Patent-Office,-and-the-Future-of-JCR"&gt;The Future of JCR&lt;/a&gt; - concerns about a BEA patent filing and the future of JCR&lt;/li&gt;&lt;li&gt;&lt;a href="http://sourceforge.net/projects/jcrbrowser/"&gt;JCR Browser&lt;/a&gt; - Plug-in to visualize the content of a JSR-170 compliant Java content repository in Eclipse.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.apache.org/jackrabbit/JcrLinks"&gt;more...&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Some Jackrabbit &lt;a href="http://jackrabbit.apache.org/faq.html"&gt;FAQ&lt;/a&gt; and &lt;a href="http://wiki.apache.org/jackrabbit/FrontPage"&gt;Wiki&lt;/a&gt; highlights:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;solutions to common problems related to Apache Jackrabbit and the JCR API &lt;a href="http://wiki.apache.org/jackrabbit/ExamplesPage"&gt;more...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.apache.org/jackrabbit/DavidsModel"&gt;David's Model&lt;/a&gt;: A guide for blissful content modeling&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Jackrabbit on JBoss &lt;a href="http://www.blogger.com/Jackrabbit%20on%20JBoss"&gt;more...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Jackrabbit through the WebDAV &lt;a href="http://wiki.apache.org/jackrabbit/WebDAV"&gt;more...&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Also will be checking the &lt;a href="http://mail-archives.apache.org/mod_mbox/jackrabbit-users/"&gt;users@ mailing list&lt;/a&gt; to see how active and responsive the Jackrabbit community is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3575225008808749689-6627421672505610529?l=blog.solimited.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.solimited.com/feeds/6627421672505610529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3575225008808749689&amp;postID=6627421672505610529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default/6627421672505610529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default/6627421672505610529'/><link rel='alternate' type='text/html' href='http://blog.solimited.com/2008/01/jackrabbit-101.html' title='Apache Jackrabbit 101'/><author><name>Alex</name><uri>http://www.blogger.com/profile/01258114296884697307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3575225008808749689.post-4919258429378505140</id><published>2007-12-18T23:00:00.000-07:00</published><updated>2008-01-21T15:25:41.656-07:00</updated><title type='text'>What's in a Name?</title><content type='html'>Welcome to my online "developer's notebook" where I will share my thoughts with colleagues and customers, and hopefully other folks interested in the topics and technologies I'll dig into.&lt;br /&gt;&lt;br /&gt;I'm normally a &lt;span style="font-weight: bold;"&gt;wiki&lt;/span&gt; kind of guy.  I have a Google Apps Premium account for my consulting business, and wanted to leverage that for collaboration when a new consulting project came up. Unfortunately, Google still does not offer a gWiki and their &lt;a href="http://www.jot.com/"&gt;recently acquired&lt;/a&gt; Jotspot is not accepting new accounts.&lt;br /&gt;&lt;br /&gt;I don't actively blog, but Google's web page app is &lt;span style="font-weight: bold;"&gt;really anemic&lt;/span&gt; so that was a non-starter. Nor did I want to collaborate via a 20th century word processing and spreadsheet metaphor -- cool as Google Docs is compared to MS Office bloatware! So I decided to stay in the Google family and try out Blogger.&lt;br /&gt;&lt;br /&gt;Which brings me to this site's name.&lt;br /&gt;&lt;br /&gt;My business partner was not impressed with my choice. Maybe I have a limited imagination. Our consulting company is named &lt;span style="font-weight: bold;"&gt;Solihull Systems Limited&lt;/span&gt; (aka "SSL"). Doesn't exactly roll off the tongue, but I needed a unique name when I was filling out government forms online. I had remembered to play the domain name game before submitting the form, not wanting to end up with a company name that was domain parked to death. There's a back story regarding my choice of Solihull (and "SSL" was a bonus), but I won't dwell on that now.&lt;br /&gt;&lt;br /&gt;Imagine my shock -- no one had registered &lt;span style="font-style: italic;"&gt;solihullsystemslimited.com&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;I added a few oddball domains while I was at it. Was looking for the shortest possible play on the company name, but since &lt;span style="font-style: italic;"&gt;ssl.com&lt;/span&gt; was taken, &lt;span style="font-style: italic;"&gt;solimited.com&lt;/span&gt; was as good as it got.&lt;br /&gt;&lt;br /&gt;When it came time to type a name into the Blogger signup page, skipping &lt;span style="font-style: italic;"&gt;solihullsystemslimited.blogger.com&lt;/span&gt; was a no brainer -- and the rest is history.&lt;br /&gt;&lt;br /&gt;What do you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3575225008808749689-4919258429378505140?l=blog.solimited.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.solimited.com/feeds/4919258429378505140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3575225008808749689&amp;postID=4919258429378505140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default/4919258429378505140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3575225008808749689/posts/default/4919258429378505140'/><link rel='alternate' type='text/html' href='http://blog.solimited.com/2008/01/whats-in-name.html' title='What&apos;s in a Name?'/><author><name>Alex</name><uri>http://www.blogger.com/profile/01258114296884697307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
