Hi, There are multiple ways to reach our goals:
a) refactor in very small steps b) replace piece by piece c) replace all code we have in one huge step As far as I understand, you are afraid that c) would take too long? A bit simplified, for a) you always have a stable version, but it takes a very long time until you are fully done. Plus, you tend to have a large number of 'temporary hacks', and all developers need to fully understand the current code. With c) you have the longest delay until you get new features, but the smallest amount of total work. Plus there is a bigger risk management cancels the project before it's done (but I guess the risk is lower for open source). I would probably try to do b). The problem is: what are the pieces? Maybe "Core", "RMI", "DavEx". Maybe "Search" is part of "Core", maybe not (not sure). Maybe "Versioning" and "Security" could easily be re-used from the current core. If we anyway want to replace "Core" later on (what you call Jackrabbit NG?), some of your refactorings on the current trunk would be "lost" later on. Basically we would do the work twice: first refactor the current core, and later on replace the current core. In my view, some changes are not worth doing twice (more flexible repository configuration, storing search indexes inside the repository), but maybe I'm wrong. Regards, Thomas
