Yair Zaslavsky has posted comments on this change. Change subject: 9. [WIP] core: Introducing configuration loader ......................................................................
Patch Set 16: (3 comments) http://gerrit.ovirt.org/#/c/24365/16/backend/manager/modules/extension-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ConfigurationLoader.java File backend/manager/modules/extension-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ConfigurationLoader.java: Line 29: private static final String NAME = "ovirt.engine.extension.name"; Line 30: private static final String SERVICE = "ovirt.engine.extension.service"; Line 31: private static final String ENABLED = "ovirt.engine.extension.enabled"; Line 32: private static final String MODULE = "ovirt.engine.extension.module"; Line 33: private static final String TYPE = "ovirt.engine.extension.type"; > so why do oyu need the service? When i look at your examples (for instance - the authz) you have - ovirt.engine.extension.service = org.ovirt.engine.core.authorization I don't think this is enough, i would need another entry to indicate the class name of the extension that implements the authorization service. Please look at the usage at AuthenticationProfileRepository.createProfiles where I get all the extensions that are authn. So I need to have both what service this is (authn or authz) and what is the class of the service. I'll upload my fixes to the other comments, and I hope it will be more clear. Line 34: Line 35: public class ExtensionEntry { Line 36: private File file; Line 37: private boolean enabled; Line 65: loadedModules.put(moduleSpec, module); Line 66: ServiceLoader<? extends Extension> serviceLoader = Line 67: ServiceLoader.load(Extension.class, module.getClassLoader()); Line 68: for (Extension extension : serviceLoader) { Line 69: extensionsByType.put(extension.getClass().getName(), extension.getClass()); > we talked about this, please simplify, use the ServiceRegistry with filter Done Line 70: } Line 71: } catch (ModuleLoadException exception) { Line 72: throw new ConfigurationException(String.format("The module '%1$s' cannot be loaded.", moduleSpec), Line 73: exception); Line 81: config.getString(TYPE))); Line 82: } Line 83: this.extension = extensionClass.newInstance(); Line 84: this.extension.setName(name); Line 85: this.extension.setConfigurationProperties(config.getProperties()); > why do you need this here? Not sure I follow, why do i need what here? At this point I have the extensionClass , I instantiate the extension and set the name and the configuration for it. Why do you think it's wrong? Line 86: Line 87: } catch (InstantiationException | IllegalAccessException | IllegalArgumentException e) { Line 88: throw new ConfigurationException(String.format("Error in instantitating extension based on tye type '%1$'", Line 89: config.getString(TYPE))); -- To view, visit http://gerrit.ovirt.org/24365 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I182904177ec088e62b35bde870ec79725fabc4e4 Gerrit-PatchSet: 16 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com> Gerrit-Reviewer: Alon Bar-Lev <alo...@redhat.com> Gerrit-Reviewer: Martin Peřina <mper...@redhat.com> Gerrit-Reviewer: Yair Zaslavsky <yzasl...@redhat.com> Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches