jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jukka Zitting" <jukka.zitt...@gmail.com>
Subject [VOTE] Create the JCR Commons subproject
Date Tue, 06 Jan 2009 13:40:00 GMT

As recently discussed, I would like us to create a Jackrabbit
subproject called Apache JCR Commons for developing and maintaining
selected Jackrabbit components that are not tightly coupled with our
content repository implementation.  See the full proposal below.

Please vote on creating the proposed subproject. The vote is open for
the next 72 hours and the votes from Jackrabbit PMC members are

    [ ] +1 Create the JCR Commons subproject
    [ ] -1 Don't create the JCR Commons subproject

Here's my +1.


Jukka Zitting



The JCR Commons subproject would take over the development and
maintenance of the following components:

  * jackrabbit-parent
  * jackrabbit-jcr-tests
  * jackrabbit-jcr-benchmark
  * jackrabbit-jcr-rmi
  * jackrabbit-jcr-servlet
  * jackrabbit-classloader
  * jackrabbit-ocm (including ocm-nodemanagement)

Most notably (and a bit surprisingly), the jcr-commons component would
remain with the core project for now to avoid complicating the
development workflow for issues that may range over component
boundaries. We may need to split the jcr-commons component to be able
to move parts of the code to the proposed subproject, but that's a
separate discussion that we don't need to solve now.

Similarly, the jcr-server and webdav components will be kept with core
for now until we have better idea about what to do there (see

I also decided to put the jackrabbit-parent component into the commons
subproject. The parent POM does contain some core-specific parts, but
I believe we can move those back to the core components and make the
parent POM contain only truly Jackrabbit-wide information and

For comparison, the following components would remain as the core
Jackrabbit project:

   * jackrabbit-api
   * jackrabbit-core
   * jackrabbit-text-extractors
   * jackrabbit-webdav
   * jackrabbit-jcr-server
   * jackrabbit-webapp
   * jackrabbit-jca
   * jackrabbit-spi
   * jackrabbit-spi-commons
   * jackrabbit-jcr2spi
   * jackrabbit-spi2jcr
   * jackrabbit-standalone


* Committers: For now there will be just a single set of Jackrabbit
committers. Later on we may want to consider adopting a "subproject
committer" concept for making it easier to grant someone committership
to just the commons components.

* PMC: The Jackrabbit PMC will govern also this new subproject.

* Apache Commons: We will work with the Apache Commons project to find
whether and how these JCR Commons components could be included in the
recently proposed "federated commons" concept. This would likely mean
us following some Apache Commons practices and having a link to the
JCR Commons site listed somewhere on the Apache Commons web site.


* Initial code: The initial code for the new subproject would come
from the selected existing components in Jackrabbit trunk.

* Releases: Each component within the new subproject would have it's
own independent release cycle. To avoid confusion with the existing
1.x releases, the release numbering of the moved components would
start at 2.0. Since all these components are relatively small and
tightly scoped, it would probably be useful to keep their version
numbering down to just two levels, i.e. use x.y instead of x.y.z as
the numbering scheme.


* Web site: The subproject will have its own web site at
http://jackrabbit.apache.org/commons/. We might want to follow the
example of Apache Commons in organizing this web site.

* Mailing lists: We will use the existing
{user,dev,commits}@jackrabbit.apache.org mailing lists for the new
subproject. To make it easier to track topics about selected commons
components, we should adopt a practice of prefixing related email
subjects, for example using [rmi] for messages about JCR-RMI.

* Subversion: We create a new asf/jackrabbit/commons directory that
will contain all the code of the new subproject. Each component will
have it's own {trunk,branches,tags} structure within this subtree. For
example, the JCR-RMI component would be developed in
asf/jackrabbit/commons/jcr-rmi/trunk. All Jackrabbit committers will
have write access to this subtree. Notifications of commits to this
subtree will be sent to the commits@jackrabbit list.

* Issue tracker: We create separate Jira projects for each component
in the subproject. These projects will be grouped using the
"Jackrabbit" category in Jira. Update messages will be sent to the
dev@jackrabbit list.

View raw message