KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exoplatform > services > database > impl > HibernateServiceContainerImpl


1 /***************************************************************************
2  * Copyright 2001-2003 The eXo Platform SARL All rights reserved. *
3  * Please look at license.txt in info directory for more license detail. *
4  **************************************************************************/

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 /**
15  * @author Tuan Nguyen (tuan08@users.sourceforge.net)
16  * @since Oct 29, 2004
17  * @version $Id: HibernateServiceContainerImpl.java,v 1.1 2004/10/30 02:27:52 tuan08 Exp $
18  */

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 JavaDoc {
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 JavaDoc 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 JavaDoc 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