Proposal for new project JCR


The Content Repository API for Java Technology (JCR) is being developed within the Java Community Process as JSR-170 [], with Day Software [] 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 [] project's CVS []. 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 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.

Core Developers

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 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.

Warning Signs

Orphaned products

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. One of them co-founded Apache.

Homogenous developers

The current list of committers includes developers from different continents... more to come.They are experienced with working in a distributed environment.

Reliance on salaried developers


No ties to other Apache products

This work was envisioned from its very 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 codebase 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

mailing list(s)

CVS repositories


Identify the initial set of committers

Identify Apache sponsoring individual