Proposal for new project JCR
Accepted by the incubator PMC on August 28, 2004.
The Content Repository API for Java Technology (JCR) is being developed within the Java Community Process as JSR-170 http://www.jcp.org/en/jsr/detail?id=170, with Day Software http://www.day.com/ as specification lead. It recently passed public review and is incorporating the public comments. The reference implementation has been developed by Day under the proposals subdirectory of the Jakarta Slide http://jakarta.apache.org/slide/index.html project's CVS http://cvs.apache.org/viewcvs.cgi/jakarta-slide/proposals/jcrri/. JCR currently uses several utilities within Java commons and is expected to be used (eventually) by Jakarta Slide, Cocoon, Lenya, and possibly as an interface to various DB projects.
The purpose of this proposal is to move the JCR code out of the Slide proposals area and into a neutral podling where it can attract additional committers from other Apache projects and from the various JSR-170 expert group companies, learn the Apache way of doing things, and allow the mailing list subscribers to focus on this interface/implementation rather than all of the existing projects that might want to use it. We hope to improve collaboration on the code base by moving all of the active developers and authors to Apache, bring in as many of the Apache veterans as wish to get involved, and open it up to all of the 22 expert group companies. Development of the RI and TCK will occur in this project -- Day Software will export the official (binary) RI and TCK releases from public tag names within apache.org CVS, in accordance with JSPA 2.6 restrictions, allowing developers to test against the open source versions as well as the official versions.
In the process, the reference implementation will become a useful package for other Apache projects wishing to incorporate the JCR interface. The code was originally proposed as the back-end for some future version of Slide, which may still happen at some point, and we anticipate future integrations with Lenya, Cocoon, XML Indexing, Axion, and Derby. We are also looking at integration with projects such as Beehive, Maven, and Portals.
We are not certain of the destination PMC at the current time, though Slide (if it becomes a TLP), Lenya, Cocoon, DB, or some future framework/CMS TLP are all candidates. Since we believe this should be based on the people who show up to do the work, we would prefer to "re-start" within incubator and let the nascent Apache community decide once the choices become more clear. As such, we are requesting that the incubator PMC accept the podling with a vote, even though it was earlier accepted as a proposal by Slide committers.
We plan to do everything possible to encourage an environment that supports a meritocracy. The committer list for this proposal includes people who will specifically be responsible for doing the work necessary to foster a meritocracy.
JSR-170's expert group consists of all of the big companies that have traditionally supported Apache project work, and quite a few small ones as well. Our focus will be to get the individuals comfortable with the Apache development process and seek out new contributors.
Currently Day employees, though this will change as soon as we get a chance to invite more people to join this effort. Stefano Mazzocchi and Remy Maucherat have been representing Apache within the JSR-170 expert group. The initial committers listed below include Apache veterans from many different projects.
The initial code base is targeted to run on any compliant Servlet or J2EE container. Ant is currently used as the build method. Some of the Jakarta Commons utilities are used internally.
This is an active project within Day Software and will be the basis of ongoing standards work, the RI and TCK, and the core of Day's own content management products.
Inexperience with open source
Many of the committers have experience working on open source projects and several are veterans at Apache.
The initial list of committers includes developers from six different countries, with more to come. They are experienced with working in a distributed environment.
Reliance on salaried developers
JSR 170 is supported by over 22 independent companies. It is hoped that they will all want to participate in this project as well once incubation is under way. The initial committers include individuals from seven independent organizations.
No ties to other Apache products
This work has been envisioned from its beginning to become an Apache project, within the constraints imposed by the Java Community Process (argh!). We have kept the RI development visible through parallel commits to the Slide CVS. As described above, we expect this implementation to be used by several existing Apache projects. A software grant will be signed to allow Apache to distribute the entire code base under the Apache License 2.0.
A fascination with the Apache brand
The committers are intent on developing a strong open source community around JCR. Apache was chosen because of the people involved and the emphasis on collaboration. Day Software is committed to supporting the future open source development of JCR and to distributing the result of that development as the official RI and TCK for JSR-170.
Scope of the subprojects
RI, TCK, related tools, and website.
Identify the initial source from which the subproject is to be populated
All code is currently licensed under the Day RI License 2.0, the same addendums to the Apache License 2.0 that have been discussed on Apache licensing lists. The code base will be licensed to the ASF using a software grant from Day, allowing Apache to relicense as pure Apache License 2.0 code. A factual notice should be added to the distribution to indicate that only the official version of the TCK can be used to "pass the TCK", but that will not be a condition on the software grant.
Identify the ASF resources to be created
- jcr-ppmc via incubator.apache.org (with moderated subscriptions)
- jcr-dev via incubator.apache.org
- jcr-commits via incubator.apache.org
- JCR project with categories for RI, TCK, Tools, Docs
Identify the initial set of committers
Roy T. Fielding
ASF, httpd, APR, incubator
ASF, Board, Cocoon, Gump
ASF, Cocoon, Xindice
ASF, Cocoon, Avalon
Identify Apache sponsoring individual
- Roy T. Fielding, champion and mentor for the project,