[Yanel-commits] rev 28183 - public/yanel/trunk/src/core/java/org/wyona/yanel/core/map

michi at wyona.com michi at wyona.com
Sat Oct 27 00:29:17 CEST 2007


Author: michi
Date: 2007-10-27 00:29:16 +0200 (Sat, 27 Oct 2007)
New Revision: 28183

Modified:
   public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java
Log:
allow overwriting the IdentityManagerImpl

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java	2007-10-26 22:26:52 UTC (rev 28182)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java	2007-10-26 22:29:16 UTC (rev 28183)
@@ -127,14 +127,29 @@
         }
 
 
+        // Set IdentityManager for this realm
+        repoConfigElement = config.getChild("ac-identities", false);
+        if (repoConfigElement != null) {
+            repoConfig = FileUtil.resolve(getConfigFile(), new File(repoConfigElement.getValue()));
+            RepositoryFactory identitiesRepoFactory = yanel.getRepositoryFactory("ACIdentitiesRepositoryFactory");
+            Repository identitiesRepo = identitiesRepoFactory.newRepository(getID(), repoConfig);
+            
+            IdentityManagerFactory imFactory = null;
+            try {
+            	String customIdentityManagerFactoryImplClassName = repoConfigElement.getAttribute("class");
+            	imFactory = (IdentityManagerFactory) Class.forName(customIdentityManagerFactoryImplClassName).newInstance();
+            } catch (ConfigurationException e) {
+            	imFactory = (IdentityManagerFactory) yanel.getBeanFactory().getBean("IdentityManagerFactory");
+            	log.warn("Default IdentityManager will be used for realm: " + getName());
+            }
+            IdentityManager identityManager = imFactory.newIdentityManager(identitiesRepo);
+            setIdentityManager(identityManager);
+        }
 
+        
 
-
-        IdentityManagerFactory imFactory = (IdentityManagerFactory) yanel.getBeanFactory().getBean("IdentityManagerFactory");
-
         RepositoryFactory repoFactory = yanel.getRepositoryFactory("DefaultRepositoryFactory");
         RepositoryFactory rtiRepoFactory = yanel.getRepositoryFactory("RTIRepositoryFactory");
-        RepositoryFactory identitiesRepoFactory = yanel.getRepositoryFactory("ACIdentitiesRepositoryFactory");
         RepositoryFactory extraRepoFactory = yanel.getRepositoryFactory("ExtraRepositoryFactory");
 
         String repoConfigSrc = config.getChild("data", false).getValue();
@@ -146,14 +161,8 @@
         setRTIRepository(rtiRepoFactory.newRepository(getID(), repoConfig));
         
         
-        repoConfigElement = config.getChild("ac-identities", false);
-        if (repoConfigElement != null) {
-            repoConfig = FileUtil.resolve(getConfigFile(), new File(repoConfigElement.getValue()));
-            Repository identitiesRepo = identitiesRepoFactory.newRepository(getID(), repoConfig);
-            IdentityManager identityManager = imFactory.newIdentityManager(identitiesRepo);
-            setIdentityManager(identityManager);
-        }
         
+        
         Configuration configElement = config.getChild("default-language", false);
         if (configElement != null) {                       
             setDefaultLanguage(configElement.getValue());



More information about the Yanel-commits mailing list