Clover Coverage Report - SmartWeb
Coverage timestamp: Sun Jun 8 2008 21:20:12 CEST
../../../../img/srcFileCovDistChart0.png 29% of files have more coverage
9   78   3   9
2   31   0,33   1
1     3  
1    
14,3% of code in this file is excluded from these metrics.
 
  TomcatConfigurationStrategy       Line # 43 9 3 0% 0.0
 
No Tests
 
1    /*
2    * The SmartWeb Framework
3    * Copyright (C) 2004-2006
4    *
5    * This library is free software; you can redistribute it and/or
6    * modify it under the terms of the GNU Lesser General Public
7    * License as published by the Free Software Foundation; either
8    * version 2.1 of the License, or (at your option) any later version.
9    *
10    * This library is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this library; if not, write to the Free Software
17    * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18    *
19    * For further informations on the SmartWeb Framework please visit
20    *
21    * http://smartweb.sourceforge.net
22    */
23    package net.smartlab.web.config;
24   
25    import java.net.URL;
26    import java.util.Map;
27    import java.util.TreeMap;
28    import org.apache.commons.logging.Log;
29    import org.apache.commons.logging.LogFactory;
30    import org.hibernate.SessionFactory;
31    import org.hibernate.cfg.Configuration;
32    import net.smartlab.web.BusinessObjectFactory;
33    import net.smartlab.web.Domain;
34   
35    /**
36    * The Hibernate configuration file used must reside into the
37    * <code>META-INF</code> directory of the topmost packaging archive and should
38    * be named <code>smartweb.jar.hcf</code> or have the name of the JAR file
39    * containing the subclass followed by the <code>.hcf</code> suffix.
40    *
41    * @author rlogiacco
42    */
 
43    public class TomcatConfigurationStrategy implements FactoryConfigurationStrategy {
44   
45    /**
46    * TODO documentation
47    */
48    private Map factories = new TreeMap();
49   
50    /**
51    * Provides logging capabilities to the strategy.
52    */
53    protected final Log logger = LogFactory.getLog(TomcatConfigurationStrategy.class);
54   
55   
56    /**
57    * @see net.smartlab.web.config.FactoryConfigurationStrategy#getSessionFactory(net.smartlab.web.BusinessObjectFactory)
58    */
 
59  0 toggle public SessionFactory getSessionFactory(BusinessObjectFactory bof) {
60  0 synchronized (BusinessObjectFactory.class) {
61  0 String archive = Domain.getLastArchiveName(bof.getClass());
62  0 URL file = Domain.getResource(bof.getClass(), new String[] {"/META-INF/" + archive + ".hcf",
63    "/META-INF/smartweb.jar.hcf"});
64  0 try {
65  0 if (!factories.containsKey(file.toString())) {
66    // Session factory not found in cache
67  0 logger.warn("getSessionFactory() - configure hibernate without JNDI");
68  0 SessionFactory factory = new Configuration().configure(file).buildSessionFactory();
69  0 factories.put(file.toString(), factory);
70    }
71  0 return (SessionFactory)factories.get(file.toString());
72    } catch (Exception e) {
73    logger.error("getSessionFactory() - error", e);
74    return null;
75    }
76    }
77    }
78    }