@Override
protected ModuleSpec findModule(ModuleIdentifier moduleIdentifier) throws ModuleLoadException {
ServiceController<ModuleSpec> controller = (ServiceController<ModuleSpec>) serviceContainer
.getService(moduleSpecServiceName(moduleIdentifier));
if (controller == null) {
throw new ModuleLoadException("Could not load module " + moduleIdentifier
+ " as corresponding module spec service " + moduleIdentifier + " was not found");
}
ModuleSpecLoadListener listener = new ModuleSpecLoadListener();
controller.addListener(listener);
if (listener.getModuleSpec() == null) {
throw new ModuleLoadException("Could not load module " + moduleIdentifier
+ " as corresponding module spec service " + moduleIdentifier + " was not up. State: "
+ listener.getState());
}
return listener.getModuleSpec();
}