Proposal for new project JCMS
Accepted by the Portals PMC on September 27, 2004.
Rationale
JCMS offers a complete platform for creating, managing, and publishing content in your portal. JCMS integrates content repositories, workflow, collaboration and personalization via existing open source projects and powerful standards like WEBDAV, JCR [JcrProposal], ... . It includes features like taxonomy, content versioning, fine grained access control, collaborative editing, publication workflow, scheduling, indexing, searching and more. It will support many document types like XML, HTML, PDF, MS Office, Open office, ect. JCMS is specifically focussed on content services for portals but can also be used for a web based content management system or a document management application.
The JCMS engine groups together different content stores into the same virtual content tree. In this way, the portal application can access to heterogenous content servers based on different technologies (WEBDAV, JCR [JcrProposal] or proprietary content stores). The JCMS content model is a high level object model giving an abstraction on the underlying technology used by the content store. The core object model is composed of "Document", "Folder","Link", A specific application can inherit this model and extend it to fit any specific purpose.
JCMS is also proposed as the default CMS service for Jetspeed 2 http://portals.apache.org/jetspeed-2/. In order to have a complete portal integration, the JCMS project will offer a series of JSR-168 http://www.jcp.org/en/jsr/detail?id=168 portlets like content browser, editors and content administration portlets.
Criteria
Meritocracy
The community around JCMS is not yet fully defined so no formal community rules are formally enforced, however given the committers ties and experience with current Apache projects, all common Apache community rules and guidelines are ccurrently used de facto and will be applied within the JCMS community.
Community
There is not yet a JCMS community but there is a huge amount of demands on the Jetspeed mailing for this kind of tools. So, we can expect that the JCMS community will be mainly the current Jetspeed community. Due to the fact that JCMS will support Webdav, a lot of Slide users will be also interested by JCMS.
Core Developers
Currently, there are 2 developpers, one of them having a large experience at Apache.
Alignment
The initial code base is targeted to run within Jetspeed, but the goal is to allow the framework to run on any JSR-168 compliant portal solution and any kind of java application like web services, .... The services can be running on any Spring or PicoContainer applications and the JCMS portlets will be JSR-168 compatible.
Warning Signs
Orphaned products
The framework being proposed is an evolution of 2 different works made by Christophe Lombart and David Sean Taylor. Last year, David build a CMS solution for the BBC and Which Online in the UK and at the same time, Christophe build a document management application for the European Commission.
After some discussions, they realised the interest to build a common version of their work and publish it to the open source community.
Inexperience with open source
Both developers have experience working with open source projects. David Sean Taylor has experience as committer on other Apache projects and PMC member of Apache Portals.
Homogenous developers
The current list of committers includes developers from different companies. The committers are geographically distributed across the U.S. and Europe. They are experienced with working in a distributed environment.
Reliance on salaried developers
Christophe Lombart working for Sword Technologies plan to use JCMS in the last year quarter. David Sean Taylor is self-employed, with no current contracts using JCMS. However he plans to integrate JCMS into J2 to build out of the box CMS solutions at Jetspeed.
No ties to other Apache products
As described in the Alignment section, this framework already has ties to many Apache products. The framework is also already license-compatible with Apache products; in fact, it is currently licensed under the Apache License 2.0.
A fascination with the Apache brand
The committers are intent on developing a strong open source community around the JCMS framework; Given its close relationship with Jetspeed-2 and Pluto and reliance on Slide, we believe that hosting this community within Apache Portals TLP will provide the best synergies.
Scope of the subprojects
The JCMS project can be split into 3 subprojects :
- The JCMS services : all JCMS services are simple POJO components
which can be running into different containers.
The core JCMS services are :
- The Model Service.
- The Version Service.
- The Security Service.
- The Search Service.
- The Index Service.
- The Workflow Service.
- The Event handler Service.
The persistence service (this is the key component which will map the JCMS object model into the underlying model used to access a specific content store).
2. The JCMS engines : The target of this subproject is provided nice integration with existing container frameworks like Spring, PicoContainer, EJB, ...
3. The JCMS portlets : This target will provide a set of JSR-168 compatible portlets grouped into different portlet categories : content browser, content viewer, editor & content administration.
Identify the initial source from which the subproject is to be populated
The initial source will be donated by Christophe and David. A snapshot can be found here:
http://www.bluesunrise.com/jetspeed-2/jcms2.zip
Identify the ASF resources to be created
mailing list(s)
- jcms-ppmc via incubator.apache.org (with moderated subscriptions)
- jcms-dev via incubator.apache.org
- jcms-user via incubator.apache.org
Subversion repositories
- incubator/jcms
Jira
- JCMS project with categories for Core, Engines, Portlets, Docs
Identify the initial set of committers
Raphaël Luta |
Aptiwan |
ASF, Portals |
David S. Taylor |
Bluesunrise |
Portals |
Christophe Lombart |
Sword Technologies |
|
Identify Apache sponsoring individual
- Raphaël Luta, champion and mentor for the project, (as defined in http://incubator.apache.org/incubation/Roles_and_Responsibilities.html)