Hi,

On Jan 14, 2008 10:28 AM, Felix Meschberger <[EMAIL PROTECTED]> wrote:
> Am Sonntag, den 13.01.2008, 16:21 +0200 schrieb Jukka Zitting:
> > JCR (the current Jira project)
> > [...]
>
> Wow ! I think this should still be split:

I don't see how you could end up with a manageable number of
subprojects if you want to split down this one. I used the vague
number of past cross-component issues as a way to group things
together, and this core cluster came up as the most interdependent set
of components. We probably should strive to split it down at some
point, but only after we've first done the required refactoring work.

As mentioned in my previous message, I want our codebase to drive the
organizational boundaries, not the other way around.

>   * jackrabbit-jcr-commons: Is very much API like, so we could move it
>        to the API cluster, right ?

Not really. There's lots of implementation classes (with
implementation bugs) there and traditionally the component has been
tightly coupled with jackrabbit-core. Much of it's original contents
(the name, util, uuid, and value packages) are essentially just parts
of jackrabbit-core that could be extracted to a separate component due
to having no dependencies to other parts of the core. I think much of
that code is much better located in spi-commons where it actually can
and will be reused by multiple backends.

The new stuff in o.a.j.commons has IMHO a clearer architectural
separation to jackrabbit-core and thus could warrant separate
releases, but until we have deprecated and removed the rest of the
component I don't think we should take separate jcr-commons too far
from core.

>   * jackrabbit-spi-commons, -jcr2spi, -spi2jcr: These are the SPI
> cluster

I was actually even considering including jackrabbit-spi in the core
cluster as an internal component until it's more stabilized (at some
point we need to start considering backwards compatibility for all spi
changes). The spi implementation components (at least spi-commons and
jcr2spi) are code-wise quite related to core and jcr-commons, and
quite recently we were still moving large chunks of code between these
components. I don't think we've yet reached an architecturally stable
componentization there and we still should make core depend on jcr2spi
to avoid duplicate code, so IMHO it's premature to split these SPI
components to a separate subproject.

>   * jackrabbit-classloader: There isn't much work going on here, apart
> from bugfixing. So there will be no reasons for new releases !

Even bug fixes need to be released. Are you suggesting we just drop
the component?

>   * jackrabbit-text-extractors: Is this a movable target ? Otherwise, I
>        don't see much release work here ...

We need to keep text-extractors around until we can replace the
functionality with Apache Tika or something like that. We had one
change (JCR-1247) to text-extractors in 1.4, and there might well be
bug fixes or other minor changes that we need to do before we can drop
the component.

>   * jackrabbit-jcr-tests: Some fixes now and then ... I would make this
> a separate cluster

Quite a few actually, jcr-tests is one of our more actively developed
components.

Architecturally it would warrant it's own subproject (like JCRTCK),
but I pooled it in the core project to keep the number of subprojects
manageable. There is also little end-user demand for jcr-tests.

But yes, if we want to split down the core JCR subproject, I would
first go with JCRTCK and only after that start considering any other
splittings.

> > JCRWEB
>
> I would separate these, too: -jcr-server and -webdav in one cluster,
> -jcr-servlet and -webapp in another one.

That may make sense architecturally, but again we should keep the
number of subprojects down to a manageable level.

BR,

Jukka Zitting

Reply via email to