Geir Magnusson Jr wrote: > On Dec 25, 2005, at 5:13 PM, Tim Ellison wrote: >> Stefano Mazzocchi wrote: >> >>> Maybe I'm missing something, but if A depends on B and B depends on A, >>> isn't the separation between A and B something to reconsider? >> >> I agree that we should be minimizing these circular dependencies, but if >> you make their avoidance a hard rule then you soon end up dragging lots >> of code into a single massive-component. > > Is that really true? The component can be a packaging artifact, can't > it? build a pile of class files in the easiest way possible, and then > package as you need to...
That's what I'm saying really. So consider build-time and runtime separately. At buildtime such cyclical dependencies likely mean that you want to build everything together so that all references can be resolved, and package them up into separate bundles (=JARs). This means that the unit of compilation is a single massive component, and is the approach we have got at the moment in the classlib/trunk/make/build.xml. We should aim to have the components separate at runtime (those different bundles) otherwise we would end up back at a monolithic rt.jar. Now the rt.jar has some advantages, but if you want the runtime modularitity benefits of the OSGi framework then you have to go down the path of separate bundle JARs. Minimizing the dependencies between the bundles will enhance the benefits of the bundle componentization. p.s. It is too bad that the OSGi bundles are so closely tied to the physical packaging of the code in JAR files -- but I don't see that changing anytime soon. Regards, Tim -- Tim Ellison ([EMAIL PROTECTED]) IBM Java technology centre, UK.
