with fortress & friends released, next up is getting cornerstone into shape. Since it is currently still somewhat unreleased (and messy), it makes sense to make all the tough decisions now.
Summary
-------
Proposal: create cvs repository avalon-components, put in place maven build, put most valuable cornerstone packages in there (list is below), change package and directory structure but keep the cornerstone name around, release after that.
I am volunteering to do everything excluding releases (not saying I don't want to do releases, but not volunteering right now :D) in roughly the same way I've done for fortress & framework.
the rest of this e-mail is ramblings about alternatives and what made me choose the above.
Repository reorganisation
-------------------------
We can do this in a few ways. One thing I want to do is split up into multiple packages (ie seperate source dirs for seperate components). Another thing I want to do is enforce api/impl seperation in directory structure (ie src/api/ and src/impl/). Yet another thing I want to do is convert the build to maven.
I think everyone is okay with the above, some people more than willing to help, everyone also okay with me just doing all that :D
Repository consolidation
------------------------
We have 2 component repositories: avalon-excalibur and avalon-cornerstone. The division makes sense because one contains components that run inside phoenix and the other contains components that run inside ecm. Except that it doesn't make sense to have components that run in one container and not in the other when it is relatively easy to make them quite portable, we now have many more containers than before, so the division is purely historical. We have a few options:
1) new cvs repository avalon-components
(so you get avalon-components/cornerstone-datasource)
2) new location avalon/cornerstone
(so you get avalon/cornerstone/datasource)
3) new location avalon/excalibur
(so you get avalon/excalibur/cornerstone-datasource)
4) new location avalon-excalibur
(so you get avalon-excalibur/cornerstone-datasource)
5) same location
(so you get avalon-cornerstone/datasource)Now, I think merging everything into the single avalon/ repository is not good as we've decided that we want to give out access to cocoon people (and james people, potentially, and other people) to maintain components but not mess with "core" stuff, and commit priviledge partitioning is only possible on a per-repository basis. That rules out #2 and #3.
I also think that we should have a single repository (with single build structure, single website, etc etc) for all our components. So I'd like to rule out #5 too. Leaving me with #1 and #4.
The advantage of #1 is that it "feels" all new, we have no existing repo history so very little cruft, and the name is more obvious to casual visitors. The disadvantage is that, unless we refactor package names to remove the name "cornerstone" alltogether, it is going to totally stop making sense to those visitors that anything is named "cornerstone". Furthermore when/if we refactor excalibur as well, that can happen in the new repo so work interruption would generally be less.
Package name refactoring ------------------------ Going even further, we could actually refactor code as well, giving us
sockets/src/api/org/apache/excalibur/sockets sockets/src/impl/org/apache/excalibur/sockets
or at least
cornerstone-sockets/src/api/org/apache/avalon/cornerstone/sockets cornerstone-sockets/src/impl/org/apache/avalon/cornerstone/sockets
instead of
cornerstone/src/java/org/apache/avalon/cornerstone/services/sockets cornerstone/src/java/org/apache/avalon/cornerstone/blocks/sockets
I've really grown to dislike the cornerstone package structure. Of course, this might hit some users hard.
Releases -------- Conclusions from the "cornerstone cleanup" thread:
These are in use by James and other projects and will be readied for release ASAP:
cornerstone-sockets
cornerstone-store
cornerstone-connection
cornerstone-threads
cornerstone-datasource(s)
cornerstone-scheduler (1)These should move into avalon-sandbox, into a location consistent with whatever we decide for repo structure, until they are more mature:
cornerstone-dom
cornerstone-event
cornerstone-rmification
cornerstone-saxThese are unused and unmaintained so they should be removed from cvs:
cornerstone-channels
cornerstone-packet
cornerstone-soapification
IMNSHO ------
1) we should create a brand-new repository avalon-components, with a maven build structure and a directory structure similar to what I have put in place for the avalon repository
2) we should move the packages in list (1) there
3) we should keep the "cornerstone" name and package name around because it has been around so long
4) we should "refactor mercilessly" and remove the (unclean, dated) "services"/"blocks" package split in favor of split source structures and jar files
5) once this is done, we should do an immediate beta1 release, followed by a beta2 about 2 weeks later, followed by a beta3 yet another 2 weeks later, followed by a final release (which will be voted upon) yet another 2 weeks later (though there may be some summer holidays in between ;)
- Leo
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
