Now added support for ProvidedInterfaces in Container.
[utils] / security / src / main / java / org / wamblee / usermgt / UserAdministrationComponent.java
index 9c11c1b4d98c2ab1bb40f49c91985b6b758d544a..e073442a7c2626d3800d54fccd4d8cbd43ba7416 100644 (file)
@@ -19,42 +19,58 @@ import java.io.IOException;
 
 import javax.sql.DataSource;
 
-import org.hibernate.cache.EhCacheProvider;
+import org.springframework.orm.hibernate3.HibernateTemplate;
 import org.springframework.transaction.PlatformTransactionManager;
+import org.wamblee.cache.EhCache;
 import org.wamblee.system.adapters.DefaultContainer;
 import org.wamblee.system.core.Component;
 import org.wamblee.system.core.DefaultProvidedInterface;
 import org.wamblee.system.core.DefaultRequiredInterface;
+import org.wamblee.system.core.ProvidedInterface;
+import org.wamblee.system.core.Scope;
 import org.wamblee.usermgt.hibernate.UsermgtHibernateMappingFiles;
 
 public class UserAdministrationComponent extends DefaultContainer {
 
+    private ProvidedInterface TRANSACTION_MGR = new DefaultProvidedInterface(
+            "transactionManager", PlatformTransactionManager.class);
+    private ProvidedInterface USER_CACHE = new DefaultProvidedInterface(
+            "userCache", EhCache.class);
+    private ProvidedInterface HIBERNATE_TEMPLATE = new DefaultProvidedInterface(
+            "hibernateTemplate", HibernateTemplate.class);
+    private ProvidedInterface USER_MGT = new DefaultProvidedInterface(
+            "usermgt", UserAdministration.class);
+
+    private Component<?> _hibernate;
+    private Component<?> _repository;
+    private Component<?> _usermgt;
+
+    private boolean _exposeInternals;
+
     public UserAdministrationComponent(String aName, boolean aExposeInternals)
             throws IOException {
         super(aName);
+        _exposeInternals = aExposeInternals;
+
         addComponent("mappingFiles", new UsermgtHibernateMappingFiles());
-        Component<?> hibernate = new HibernateComponent("hibernate");
-        addComponent(hibernate);
 
-        Component<?> repository = new UserGroupRepositoryComponent(
-                "usersgroups");
-        addComponent(repository);
+        _hibernate = new HibernateComponent("hibernate");
+        addComponent(_hibernate);
+
+        _repository = new UserGroupRepositoryComponent("usersgroups");
+        addComponent(_repository);
 
-        Component<?> usermgt = new UserAdministrationLightComponent(
-                "usermgtlight");
-        addComponent(usermgt);
+        _usermgt = new UserAdministrationLightComponent("usermgtlight");
+        addComponent(_usermgt);
 
         addRequiredInterface(new DefaultRequiredInterface("datasource",
                 DataSource.class));
 
         if (aExposeInternals) {
-            addProvidedInterface(new DefaultProvidedInterface(
-                    "transactionManager", PlatformTransactionManager.class));
-            addProvidedInterface(new DefaultProvidedInterface("userCache",
-                    EhCacheProvider.class));
+            addProvidedInterface(TRANSACTION_MGR);
+            addProvidedInterface(USER_CACHE);
+            addProvidedInterface(HIBERNATE_TEMPLATE);
         }
-        addProvidedInterface(new DefaultProvidedInterface("usermgt",
-                UserAdministration.class));
-
+        addProvidedInterface(USER_MGT);
     }
 }