1 5 package org.exoplatform.services.database.impl; 6 7 import java.util.* ; 8 9 import org.exoplatform.services.database.*; 10 import org.exoplatform.services.log.LogService; 11 12 import org.exoplatform.commons.exception.ExoMessageException; 13 import org.exoplatform.container.configuration.*; 14 19 public class HibernateServiceContainerImpl implements HibernateServiceContainer { 20 private HibernateService defaultService_ ; 21 private Map services_ ; 22 23 public HibernateServiceContainerImpl(DatabaseService dbService, 24 LogService lservice, 25 HibernateService defaultService, 26 ConfigurationManager confService) throws Exception { 27 defaultService_ = defaultService ; 28 services_ = new HashMap() ; 29 ServiceConfiguration sconf = 30 confService.getServiceConfiguration(HibernateServiceContainer.class) ; 31 Iterator i = sconf.values().iterator() ; 32 while(i.hasNext()) { 33 PropertiesParam param = (PropertiesParam) i.next() ; 34 String name = param.getName() ; 35 if(name.equals(defaultService_.getServiceName())) { 36 throw new ExoMessageException("HibernateServiceContainer.duplciate-service-name") ; 37 } 38 HibernateServiceImpl service = new HibernateServiceImpl(dbService, lservice) ; 39 service.configure(param.getName(), param.getProperties()) ; 40 services_.put(name, service) ; 41 } 42 } 43 44 public HibernateService getHibernateService() { return defaultService_ ; } 45 46 public HibernateService getHibernateService(String name) { 47 return (HibernateService)services_.get(name); 48 } 49 50 public void closeAllSessions(){ 51 defaultService_.closeSession(); 52 Collection values = services_.values(); 53 for (Iterator iter = values.iterator(); iter.hasNext();) { 54 HibernateService service = (HibernateService) iter.next(); 55 service.closeSession(); 56 } 57 } 58 } 59 | Popular Tags |