I have a big tree of bundles which use other bundles. For example:
Is it correct to let the base bundle also export the api packages?
I did this because now users only have to add the base bundle to their build path and the base + api bundle is found by bndtools. Otherwise users using the base bundle need to figure out that the base bundle uses the api bundle, which they need to add to the buildpath.
You can export the API packages but you have to make sure that you also import the packages. So the OSGi framework can decide which packages it actually wires. This is important if at some point you have two bundles exporting the same packages.
Btw. Normally you should not export the base package bundles. You do not gain real decoupling if the user of the API still has to know the impl. Instead you can export the impl class as a service with the API interface.