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

Reply via email to