As a follow-up to the recent discussion with Geir about repository layout, I've been thinking a bit more about the componentization of the class library, and in particular about how day-to-day development would progress.
The 'interesting' attribute of the components is that there are circular dependencies between some of them. For example, SECURITY depends upon LUNI, and vice versa. I briefly discussed some options for resolving the circularities earlier, but the point is that this is a bootstrapping issue -- once we have implementations of SECURITY and LUNI then each can be built independently against the compiled version of the others. So I propose that we make a clear distinction between the initial bootstrap build, and the subsequent component builds. The build.xml that exists today (.../classlib/trunk/make/build.xml) invokes a 'global' i.e. cross-component compilation to avoid circularities. The results are put into .../trunk/deploy/jre/lib/boot. I say we keep this build.xml as the bootstrap build, then create build scripts within each component that build only that component against the jre/lib/boot jars thereby giving localized builds. We can also write the component build scripts to use the deployed JRE to run ant and the compiler to be self-hosting! Unless anyone objects or has a better idea I'll do the minor restructuring of classlib required (likely next week now). Regards, Tim -- Tim Ellison ([EMAIL PROTECTED]) IBM Java technology centre, UK.
