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

Reply via email to