Yair Zaslavsky has uploaded a new change for review. Change subject: aaa: Chages to ExtensionsManager ......................................................................
aaa: Chages to ExtensionsManager The following changes are introduced: 1. ExtensionsManager is no longer singleton. 2. For engine related modules - EngineExtensionsManager is a singleton wrapper that also initilizes ExtensionsManager with the proper application name Change-Id: I1c914df29a0dbf52ff6d2f8149687b31b4faffe1 topic: AAA Signed-off-by: Yair Zaslavsky <[email protected]> --- M backend/manager/modules/aaa/pom.xml M backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/AuthenticationProfileRepository.java M backend/manager/modules/aaa/src/main/modules/org/ovirt/engine/core/aaa/main/module.xml M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java M backend/manager/modules/extensions-manager/pom.xml M backend/manager/modules/extensions-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ExtensionsManager.java M backend/manager/modules/extensions-manager/src/main/modules/org/ovirt/engine/core/extensions-manager/main/module.xml M backend/manager/modules/pom.xml M backend/manager/modules/utils/pom.xml M backend/manager/modules/utils/src/main/modules/org/ovirt/engine/core/utils/main/module.xml 10 files changed, 40 insertions(+), 36 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/85/27785/1 diff --git a/backend/manager/modules/aaa/pom.xml b/backend/manager/modules/aaa/pom.xml index 8995bc2..dd143a6 100644 --- a/backend/manager/modules/aaa/pom.xml +++ b/backend/manager/modules/aaa/pom.xml @@ -29,6 +29,12 @@ <artifactId>extensions-manager</artifactId> <version>${engine.version}</version> </dependency> + <dependency> + <groupId>${engine.groupId}</groupId> + <artifactId>utils</artifactId> + <version>${engine.version}</version> + </dependency> + <dependency> <groupId>org.ovirt.engine.api</groupId> diff --git a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/AuthenticationProfileRepository.java b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/AuthenticationProfileRepository.java index 40f9a17..e6810c7 100644 --- a/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/AuthenticationProfileRepository.java +++ b/backend/manager/modules/aaa/src/main/java/org/ovirt/engine/core/aaa/AuthenticationProfileRepository.java @@ -10,7 +10,7 @@ import org.ovirt.engine.api.extensions.aaa.Authn; import org.ovirt.engine.core.extensions.mgr.ConfigurationException; import org.ovirt.engine.core.extensions.mgr.ExtensionProxy; -import org.ovirt.engine.core.extensions.mgr.ExtensionsManager; +import org.ovirt.engine.core.utils.extensionsmgr.EngineExtensionsManager; public class AuthenticationProfileRepository { @@ -78,14 +78,14 @@ // Get the extensions that correspond to authn (authentication) service. // For each extension - get the relevant authn extension. - for (ExtensionProxy authnExtension : ExtensionsManager.getInstance().getProvidedExtensions(AUTHN_SERVICE)) { + for (ExtensionProxy authnExtension : EngineExtensionsManager.getInstance().getProvidedExtensions(AUTHN_SERVICE)) { registerProfile( new AuthenticationProfile( authnExtension, - ExtensionsManager.getInstance().getExtensionByName( + EngineExtensionsManager.getInstance().getExtensionByName( authnExtension.getContext().<Properties>get(Base.ContextKeys.CONFIGURATION).getProperty(AUTHN_AUTHZ_PLUGIN) ), - ExtensionsManager.getInstance().getExtensionByName( + EngineExtensionsManager.getInstance().getExtensionByName( authnExtension.getContext().<Properties>get(Base.ContextKeys.CONFIGURATION).getProperty(AUTHN_MAPPING_PLUGIN) ) ) diff --git a/backend/manager/modules/aaa/src/main/modules/org/ovirt/engine/core/aaa/main/module.xml b/backend/manager/modules/aaa/src/main/modules/org/ovirt/engine/core/aaa/main/module.xml index 2b08a37..904c770 100644 --- a/backend/manager/modules/aaa/src/main/modules/org/ovirt/engine/core/aaa/main/module.xml +++ b/backend/manager/modules/aaa/src/main/modules/org/ovirt/engine/core/aaa/main/module.xml @@ -12,6 +12,7 @@ <module name="org.apache.commons.lang"/> <module name="org.ovirt.engine.core.common"/> <module name="org.ovirt.engine.core.extensions-manager"/> + <module name="org.ovirt.engine.core.utils"/> <module name="org.ovirt.engine.api.ovirt-engine-extensions-api"/> <module name="org.slf4j"/> </dependencies> diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java index 9da433a..5606590 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitBackendServicesOnStartupBean.java @@ -34,8 +34,8 @@ import org.ovirt.engine.core.common.utils.customprop.VmPropertiesUtils; import org.ovirt.engine.core.common.utils.exceptions.InitializationException; import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.extensions.mgr.ExtensionsManager; import org.ovirt.engine.core.utils.customprop.DevicePropertiesUtils; +import org.ovirt.engine.core.utils.extensionsmgr.EngineExtensionsManager; import org.ovirt.engine.core.utils.threadpool.ThreadPoolUtil; import org.ovirt.engine.core.vdsbroker.ResourceManager; import org.slf4j.Logger; @@ -65,10 +65,7 @@ createInternalAAAConfigurations(); createKerberosLdapAAAConfigurations(); - ExtensionsManager.getInstance().dump(); - ExtensionsManager.getInstance() - .getGlobalContext() - .put(Base.GlobalContextKeys.APPLICATION_NAME, Base.ApplicationNames.OVIRT_ENGINE_AAA_EXTENSION_TOOL); + EngineExtensionsManager.getInstance().dump(); AuthenticationProfileRepository.getInstance(); DbUserCacheManager.getInstance().init(); AsyncTaskManager.getInstance().initAsyncTaskManager(); @@ -134,7 +131,7 @@ authConfig.put("config.authn.user.name", Config.<String> getValue(ConfigValues.AdminUser)); authConfig.put("config.authn.user.password", Config.<String> getValue(ConfigValues.AdminPassword)); authConfig.put(Base.ConfigKeys.SENSITIVE_KEYS, "config.authn.user.password)"); - ExtensionsManager.getInstance().load(authConfig); + EngineExtensionsManager.getInstance().load(authConfig); Properties dirConfig = new Properties(); dirConfig.put(Base.ConfigKeys.NAME, "internal"); @@ -146,7 +143,7 @@ dirConfig.put("config.authz.user.id", "fdfc627c-d875-11e0-90f0-83df133b58cc"); dirConfig.put("config.query.filter.size", Config.<Integer> getValue(ConfigValues.MaxLDAPQueryPartsNumber)); - ExtensionsManager.getInstance().load(dirConfig); + EngineExtensionsManager.getInstance().load(dirConfig); } private void createKerberosLdapAAAConfigurations() { @@ -185,7 +182,7 @@ authConfig.put("ovirt.engine.aaa.authn.authz.plugin", domain); authConfig.put("config.change.password.url", blankIfNull(passwordChangeUrlPerDomain.get(domain))); authConfig.put("config.change.password.msg", blankIfNull(passwordChangeMsgPerDomain.get(domain))); - ExtensionsManager.getInstance().load(authConfig); + EngineExtensionsManager.getInstance().load(authConfig); Properties dirConfig = new Properties(); dirConfig.put(Base.ConfigKeys.NAME, domain); @@ -196,7 +193,7 @@ "org.ovirt.engine.extensions.aaa.builtin.kerberosldap.KerberosLdapAuthz"); dirConfig.put("config.query.filter.size", Config.<Integer> getValue(ConfigValues.MaxLDAPQueryPartsNumber)); - ExtensionsManager.getInstance().load(dirConfig); + EngineExtensionsManager.getInstance().load(dirConfig); } } } diff --git a/backend/manager/modules/extensions-manager/pom.xml b/backend/manager/modules/extensions-manager/pom.xml index d92f615..1da1563 100644 --- a/backend/manager/modules/extensions-manager/pom.xml +++ b/backend/manager/modules/extensions-manager/pom.xml @@ -29,11 +29,6 @@ <version>${engine.version}</version> </dependency> <dependency> - <groupId>${engine.groupId}</groupId> - <artifactId>utils</artifactId> - <version>${engine.version}</version> - </dependency> - <dependency> <groupId>org.ovirt.engine.api</groupId> <artifactId>ovirt-engine-extensions-api</artifactId> <version>${org.ovirt.engine.api.ovirt-engine-extensions-api.version}</version> diff --git a/backend/manager/modules/extensions-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ExtensionsManager.java b/backend/manager/modules/extensions-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ExtensionsManager.java index 9a23e11..ba6c9fe 100644 --- a/backend/manager/modules/extensions-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ExtensionsManager.java +++ b/backend/manager/modules/extensions-manager/src/main/java/org/ovirt/engine/core/extensions/mgr/ExtensionsManager.java @@ -19,7 +19,6 @@ import org.jboss.modules.ModuleIdentifier; import org.jboss.modules.ModuleLoadException; import org.jboss.modules.ModuleLoader; -import org.ovirt.engine.core.utils.EngineLocalConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -118,21 +117,11 @@ private static final Logger log = LoggerFactory.getLogger(ExtensionsManager.class); private static final Logger traceLog = LoggerFactory.getLogger(ExtensionsManager.class.getName() + ".trace"); - private static volatile ExtensionsManager instance = null; private Map<String, BindingsLoader> bindingsLoaders = new HashMap<>(); private Map<String, ExtensionEntry> loadedEntries = new HashMap<>(); private ExtMap globalContext = new ExtMap().mput(Base.GlobalContextKeys.EXTENSIONS, new ArrayList<ExtMap>()); - public static ExtensionsManager getInstance() { - if (instance == null) { - synchronized (ExtensionsManager.class) { - if (instance == null) { - instance = new ExtensionsManager(); - } - } - } - return instance; - } + private Properties configProperties = new Properties(); public ExtMap getGlobalContext() { return globalContext; @@ -157,11 +146,12 @@ return result; } - private ExtensionsManager() { - + public ExtensionsManager(Map<String, String> properties, List<File> extensionsDirectories, String applicationName) { bindingsLoaders.put(Base.ConfigBindingsMethods.JBOSSMODULE, new JBossBindingsLoader()); + this.configProperties.putAll(properties); + globalContext.put(Base.GlobalContextKeys.APPLICATION_NAME, applicationName); - for (File directory : EngineLocalConfig.getInstance().getExtensionsDirectories()) { + for (File directory : extensionsDirectories) { if (!directory.exists()) { log.warn(String.format("The directory '%1$s' cotaning configuration files does not exist.", directory.getAbsolutePath())); @@ -235,7 +225,8 @@ } loadedEntries.put(entry.name, entry); entry.enabled = - EngineLocalConfig.getInstance().getBoolean(ENGINE_EXTENSION_ENABLED + entry.name, entry.enabled); + Boolean.parseBoolean(configProperties.getProperty(ENGINE_EXTENSION_ENABLED + entry.name, + Boolean.toString(entry.enabled))); //Activate the extension if (entry.enabled && entry.extension == null) { try { diff --git a/backend/manager/modules/extensions-manager/src/main/modules/org/ovirt/engine/core/extensions-manager/main/module.xml b/backend/manager/modules/extensions-manager/src/main/modules/org/ovirt/engine/core/extensions-manager/main/module.xml index 6699e76..8cfc742 100644 --- a/backend/manager/modules/extensions-manager/src/main/modules/org/ovirt/engine/core/extensions-manager/main/module.xml +++ b/backend/manager/modules/extensions-manager/src/main/modules/org/ovirt/engine/core/extensions-manager/main/module.xml @@ -11,8 +11,8 @@ <module name="javax.servlet.api"/> <module name="org.apache.commons.lang"/> <module name="org.jboss.modules"/> - <module name="org.ovirt.engine.core.utils"/> <module name="org.ovirt.engine.api.ovirt-engine-extensions-api"/> + <module name="org.ovirt.engine.core.utils"/> <module name="org.slf4j"/> </dependencies> diff --git a/backend/manager/modules/pom.xml b/backend/manager/modules/pom.xml index d4938c8..2064daf 100644 --- a/backend/manager/modules/pom.xml +++ b/backend/manager/modules/pom.xml @@ -18,6 +18,7 @@ <module>extensions-api-root</module> <module>uutils</module> <module>compat</module> + <module>extensions-manager</module> <module>utils</module> <module>common</module> <module>dal</module> @@ -26,7 +27,6 @@ <module>scheduler</module> <module>searchbackend</module> <module>aaa</module> - <module>extensions-manager</module> <module>bll</module> <module>restapi</module> <module>root</module> diff --git a/backend/manager/modules/utils/pom.xml b/backend/manager/modules/utils/pom.xml index a9b4ec2..f0e942e 100644 --- a/backend/manager/modules/utils/pom.xml +++ b/backend/manager/modules/utils/pom.xml @@ -11,8 +11,14 @@ <packaging>jar</packaging> <name>Common utilities</name> + <dependencies> + <dependency> + <groupId>org.ovirt.engine.api</groupId> + <artifactId>ovirt-engine-extensions-api</artifactId> + <version>${org.ovirt.engine.api.ovirt-engine-extensions-api.version}</version> + </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> @@ -65,6 +71,13 @@ <type>test-jar</type> <scope>test</scope> </dependency> + <dependency> + <groupId>${engine.groupId}</groupId> + <artifactId>extensions-manager</artifactId> + <version>${engine.version}</version> + </dependency> + + <dependency> <groupId>javax.transaction</groupId> diff --git a/backend/manager/modules/utils/src/main/modules/org/ovirt/engine/core/utils/main/module.xml b/backend/manager/modules/utils/src/main/modules/org/ovirt/engine/core/utils/main/module.xml index 33b75f0..328737f 100644 --- a/backend/manager/modules/utils/src/main/modules/org/ovirt/engine/core/utils/main/module.xml +++ b/backend/manager/modules/utils/src/main/modules/org/ovirt/engine/core/utils/main/module.xml @@ -24,6 +24,7 @@ <module name="org.ovirt.engine.core.common"/> <module name="org.ovirt.engine.core.compat"/> <module name="org.ovirt.engine.core.dal"/> + <module name="org.ovirt.engine.core.extensions-manager"/> <module name="org.ovirt.engine.core.uutils"/> <module name="org.infinispan"/> <module name="org.springframework"/> -- To view, visit http://gerrit.ovirt.org/27785 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1c914df29a0dbf52ff6d2f8149687b31b4faffe1 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yair Zaslavsky <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
