Похоже, вы загружаете только пакет API, я думаю, вы хотите установить другие реализации для реализации? Большинство людей тогда загружают директора или около того:
for ( File b : bundles.listFiles() ) {
ctx.installBundle( b.toURI().toURL() );
}
Каждый из этих пакетов должен выглядеть (используя DS):
@Component
public class Impl implements API {
public whatever() { ... }
}
Пакет, собирающий услуги, может выглядеть следующим образом:
@Component
public class Collector {
@Reference(type='*')
void addAPI( API api ) { ... }
void removeAPI( API api ) { ... }
}
Это делается с помощью аннотаций bnd для DS (примеры приведены в bndtools). Однако вы также можете внедрить / собрать сервисы в Blueprint, iPojo и многих других помощниках.