Hi all,
Currently each module in DOSGi has its own utility methods and classes, and I recently did some refactoring to extract a few more of them out of the business logic. However, there is some duplication between them which is bad for structure an maintenance (e.g. 5 different versions of getting a String+ service property). There is also currently a runtime dependency of the discovery-distributed bundle on the discovery-local bundle due to import of its utils. As I see it, there are 3 main options:
1. Keep the bundles independent with duplicate code (and decide whether to leave the existing discovery modules' dependency or remove that one too via duplication).
2. Create a separate util module but without a runtime dependency between bundles, by adding the util package to the Private-Package bundle configuration of the other bundles (which causes the classes from that package to be copied into the other generated bundle jars).
3. Create a separate util module with its own bundle that the other bundles depend on at runtime.
I'm undecided between #2 and #3, but prefer to move away from the current situation (#1).
I figured I'd open it up for discussion here - what do you all think? Any other ideas?
Amichai