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);
}
}