View Javadoc

1   package org.inigma.waragent.crud;
2   
3   import java.io.IOException;
4   import java.sql.Connection;
5   import java.sql.SQLException;
6   import java.util.Properties;
7   
8   import org.inigma.iniglet.Configuration;
9   
10  public abstract class AbstractCrud {
11      private static Properties properties = null;
12      protected static Connection connection = null;
13      protected static Configuration configuration = null;
14  
15      public synchronized static void initialize(Configuration config) {
16          if (configuration == null) {
17              configuration = config;
18          }
19          if (connection == null) {
20              connection = config.getConnection();
21              config.initializeSchema(
22                      AbstractCrud.class.getResourceAsStream("/org/inigma/waragent/000_up_war-agent.sql")
23              );
24          }
25      }
26  
27      protected synchronized static Properties getConfig(String type) {
28          if (properties == null) {
29              properties = new Properties();
30              try {
31                  properties.load(AbstractCrud.class.getResourceAsStream("/org/inigma/waragent/cache.properties"));
32              } catch (IOException e) {
33                  throw new RuntimeException("Unable to load cache configurations");
34              }
35          }
36          Properties config = new Properties();
37          config.setProperty("ttl", properties.getProperty(type + ".ttl"));
38          config.setProperty("idle", properties.getProperty(type + ".idle"));
39          config.setProperty("access", properties.getProperty(type + ".access"));
40          config.setProperty("loader", properties.getProperty(type + ".loader"));
41          return config;
42      }
43  
44      public static void commit() {
45          if (connection != null) {
46              try {
47                  connection.commit();
48              } catch (SQLException ignore) {
49              }
50          }
51      }
52  }