Hi Roy, Thanks for helping me crystallize my thoughts and trying to sharpen my statements ;)
That is why each of the core developers has veto power over the code. If we want to ensure that every line is adequately reviewed, then ask for the core code to be governed by the RTC (review-then-commit) rule. Note, however, that such a requirement will extend to all commits on that part of the code.
I would never doubt that the ASF has all the machinery in place to ensure code quality on levels that are way beyond what Jackrabbit might ever reach. I think an open source landmark project like the HTTP Server is proving this in a very impressive way.
I don't think you understand. This is an Apache project and anyone can contribute to any part of it.
I would like to apologize, it was not my intention to imply or suggest anything different. Let me try to rephrase my personal feeling on this subject as follows: Inherently in any piece of software there are certain areas of the code that are used and run more frequently and others that are used less frequently. In my experience the pieces that are at the core of any piece of software have a greater impact on the overall stability and performance and changes may have a side effects that are far reaching. Also the core pieces tend to be the most mature code, in many cases some of those source files have been updated more frequently. Within the realm and maturity of the Jackrabbit codebase I think the best maintained and most mature code that we have is in the core. Which is both obvious and good. (And just to be clear, "well maintained" and "mature" do not imply an architectural statement) The essence of my post should have expressed (and we may very well disagree on that) is that biggest stumbling blocks in the uptake of Jackrabbit adoption are not complexities or deficiencies in the core architecture, but the issues that Dave mentioned in his post earlier in this thread and I wanted to find out if others have a different opinion on that.
The degree of review we require of those contributions is decided by the PMC (our committers). We can increase the requirements on review of the core code and we can separate compatible and incompatible changes into versioned branches, but we cannot ask of others what we do not accept of ourselves.
Agreed.
In my opinion, the core code continues to evolve as people try to do larger and more expressive things with Jackrabbit and apply JCR to real problem sets. We need to welcome that and change things based on their technical merits, not any preconceived notions of how much a person knows about the current (highly opaque) core architecture. Most likely, this will mean simplifying the core by removing or refactoring some of the spaghetti dependencies.
When I read your comment, I wondered what I may have said that made you think that I am opposed to that. I realized that I completely failed to share my thoughts about "the SPI" and how that might stimulate a more modular and more transparent architecture of the core. I will (re-)initiate a separate thread on that. Sorry for the confusion.
One of those things that will change is the degree of extensibility, since that is the heart of any successful open source project and Jackrabbit isn't even halfway there yet. I am sure that others with fresh energy will see new ways to solve the same problem that will not be burdened with the legacy decisions that we made for one reason or another. When those ideas are presented, they will be subject to intense scrutiny and adopted based only on their proven benefits. They will not be judged based on who wrote them or how much time they spent writing the initial core code.
I couldn't agree more. regards, david