Package separation is IMHO the most important thing. If your packages are separate then you can bundle code/API wherever you want. Further, separating API and SPI is essential to your consumers. API and SPI consumers are typically quite different people so clearly stating what they should be using is quite important.
The debate over bundling API separate from implementation has raged repeatedly over the past few years with good arguments on both sides. Personally I tend towards bundling them together. That is not a hard rule as the benefits and drawbacks depend somewhat on expected usage patterns. For exmapel, it is easier to manage/build fewer bundles and there are some runtime efficiencies (fewer bundles, classloaders, ...) but on the other hand, lumping things together can make it harder to unobtrusively update the system. A judgement call I'm afraid. Jeff > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:osgi-dev- > [EMAIL PROTECTED] On Behalf Of Peter Niederwieser > Sent: Monday, June 02, 2008 9:07 AM > To: osgi-dev@mail.osgi.org > Subject: [osgi-dev] Put API/SPI/implementation into separate bundles? > > When building an OSGi-based system, do you recommend to put a > component's API/SPI/implementation into separate bundles, or is it > good enough to put them into separate packages (exporting only API and > SPI)? Has the "separate bundle" approach advantages when it comes to > updating/replacing bundles at runtime? Do you even recommend to > separate API and SPI on package level? > > Cheers, > Peter Niederwieser > _______________________________________________ > OSGi Developer Mail List > osgi-dev@mail.osgi.org > https://mail.osgi.org/mailman/listinfo/osgi-dev _______________________________________________ OSGi Developer Mail List osgi-dev@mail.osgi.org https://mail.osgi.org/mailman/listinfo/osgi-dev