View Javadoc

1   package com.atlassian.config.db;
2   
3   import com.atlassian.config.ApplicationConfiguration;
4   
5   import java.util.Properties;
6   
7   /**
8    * Wrapper around ApplicationConfiguration to provide easy access to Hibernate configuration info
9    */
10  public class HibernateConfig
11  {
12      public static final String HIBERNATE_SETUP = "hibernate.setup";
13      public static final String HIBERNATE_CONFIG_PREFIX = "hibernate.";
14  
15      private ApplicationConfiguration applicationConfig;
16  
17      /**
18       * Do not construct. Do not take orally. Consult a doctor if pain persists.
19       */
20      public HibernateConfig() {
21      }
22  
23      public void setApplicationConfig(ApplicationConfiguration applicationConfiguration)
24      {
25          this.applicationConfig = applicationConfiguration;
26      }
27  
28      public boolean isHibernateSetup() {
29          return (applicationConfig.getBooleanProperty(HibernateConfig.HIBERNATE_SETUP));
30      }
31  
32      /**
33       * Gets all hibernate properties from the config starting 'hibernate.'
34       * @return all hibernate properties in a Properties map
35       */
36      public Properties getHibernateProperties()
37      {
38          Properties props = new Properties();
39          props.putAll(applicationConfig.getPropertiesWithPrefix(HIBERNATE_CONFIG_PREFIX));
40          return props;
41      }
42  
43      /**
44       * Since MySQL needs to be isolated from _real_ databases.
45       */
46      public boolean isMySql()
47      {
48          return isHibernateSetup() &&
49                  ((String) applicationConfig.getProperty("hibernate.dialect")).endsWith("MySQLDialect");
50      }
51  
52      public boolean isOracle()
53      {
54          return isHibernateSetup() &&
55                  ((String) applicationConfig.getProperty("hibernate.dialect")).endsWith("OracleDialect");
56      }
57  
58      public boolean isHSQL()
59      {
60          return isHibernateSetup() &&
61                  ((String) applicationConfig.getProperty("hibernate.dialect")).endsWith("HSQLDialect");
62      }
63  
64  }