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?
OSGi Developer Mail List