changeset 983:4ea5f5a2284e

Ajusted datacage to use the SQL infrastructure from the artifact database. flys-artifacts/trunk@2413 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 28 Jul 2011 13:32:27 +0000
parents 66b3f2f064de
children 2b05c4a0c6fd
files flys-artifacts/ChangeLog flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/DBConfig.java flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/DBConnection.java flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java flys-artifacts/src/main/resources/datacage-sql/org-h2-driver.properties
diffstat 5 files changed, 135 insertions(+), 111 deletions(-) [+]
line wrap: on
line diff
--- a/flys-artifacts/ChangeLog	Wed Jul 27 14:04:03 2011 +0000
+++ b/flys-artifacts/ChangeLog	Thu Jul 28 13:32:27 2011 +0000
@@ -1,3 +1,17 @@
+2011-07-27  Sascha L. Teichmann <sascha.teichmann@intevation.de>
+
+	* src/main/java/de/intevation/flys/artifacts/datacage/DBConnection.java:
+	  Deleted. This stuff comes from the artifact database now.
+
+	* src/main/java/de/intevation/flys/artifacts/datacage/DBConfig.java:
+	  New. The db config of the datacage database.
+
+	* src/main/resources/datacage-sql/org-h2-driver.properties: New.
+	  The SQL statements needed for the datacage.
+
+	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
+	  Make use of the db config.
+
 2011-07-27  Sascha L. Teichmann <sascha.teichmann@intevation.de>
 
 	* src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/DBConfig.java	Thu Jul 28 13:32:27 2011 +0000
@@ -0,0 +1,108 @@
+package de.intevation.flys.artifacts.datacage;
+
+import de.intevation.artifacts.common.utils.Config;
+
+import de.intevation.artifactdatabase.db.SQL;
+import de.intevation.artifactdatabase.db.DBConnection;
+
+import org.apache.log4j.Logger;
+
+public class DBConfig
+{ 
+    private static Logger logger = Logger.getLogger(DBConnection.class);
+
+     /**
+     * XPath to access the database driver within the global configuration.
+     */
+    public static final String DB_DRIVER =
+        "/artifact-database/datacage/driver/text()";
+    /**
+     * XPath to access the database URL within the global configuration.
+     */
+    public static final String DB_URL =
+        "/artifact-database/datacage/url/text()";
+    /**
+     * XPath to access the database use within the global configuration.
+     */
+    public static final String DB_USER =
+        "/artifact-database/datacage/user/text()";
+    /**
+     * XPath to access the database password within the global configuration.
+     */
+    public static final String DB_PASSWORD =
+        "/artifact-database/datacage/password/text()";
+
+    /**
+     * The default database driver: H2
+     */
+    public static final String DEFAULT_DRIVER =
+        "org.h2.Driver";
+
+    /**
+     * The default database user: ""
+     */
+    public static final String DEFAULT_USER = "";
+
+    /**
+     * The default database password: ""
+     */
+    public static final String DEFAULT_PASSWORD = "";
+
+
+    public static final String DEFAULT_URL =
+        "jdbc:h2:mem;INIT=RUNSCRIPT FROM '${artifacts.config.dir}/datacage.sql'";
+
+    public static final String RESOURCE_PATH = "/datacage-sql";
+
+    private static DBConfig instance;
+
+    protected DBConnection dbConnection;
+    protected SQL          sql;
+
+    public DBConfig() {
+    }
+
+    public DBConfig(DBConnection dbConnection, SQL sql) {
+        this.dbConnection = dbConnection;
+        this.sql          = sql;
+    }
+
+    public static synchronized DBConfig getInstance() {
+        if (instance == null) {
+            instance = createInstance();
+        }
+        return instance;
+    }
+
+    protected static DBConfig createInstance() {
+        String driver = Config.getStringXPath(
+            DB_DRIVER, DEFAULT_DRIVER);
+
+        String url = Config.getStringXPath(
+            DB_URL, DEFAULT_URL);
+
+        url = Config.replaceConfigDir(url);
+
+        String user = Config.getStringXPath(
+            DB_USER, DEFAULT_USER);
+
+        String password = Config.getStringXPath(
+            DB_PASSWORD, DEFAULT_PASSWORD);
+
+        DBConnection dbConnection = new DBConnection(
+            driver, url, user, password);
+
+        SQL sql = new SQL(DBConfig.class, RESOURCE_PATH, driver);
+
+        return new DBConfig(dbConnection, sql);
+    }
+
+    public DBConnection getDBConnection() {
+        return dbConnection;
+    }
+
+    public SQL getSQL() {
+        return sql;
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/DBConnection.java	Wed Jul 27 14:04:03 2011 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-package de.intevation.flys.artifacts.datacage;
-
-import de.intevation.artifacts.common.utils.Config;
-
-import java.sql.SQLException;
-
-import javax.sql.DataSource;
-
-import org.apache.commons.dbcp.BasicDataSource;
-
-import org.apache.log4j.Logger;
-
-public class DBConnection
-{ 
-    private static Logger logger = Logger.getLogger(DBConnection.class);
-
-     /**
-     * XPath to access the database driver within the global configuration.
-     */
-    public static final String DB_DRIVER =
-        "/artifact-database/datacage/driver/text()";
-    /**
-     * XPath to access the database URL within the global configuration.
-     */
-    public static final String DB_URL =
-        "/artifact-database/datacage/url/text()";
-    /**
-     * XPath to access the database use within the global configuration.
-     */
-    public static final String DB_USER =
-        "/artifact-database/datacage/user/text()";
-    /**
-     * XPath to access the database password within the global configuration.
-     */
-    public static final String DB_PASSWORD =
-        "/artifact-database/datacage/password/text()";
-
-    /**
-     * The default database driver: H2
-     */
-    public static final String DEFAULT_DRIVER =
-        "org.h2.Driver";
-
-    /**
-     * The default database user: ""
-     */
-    public static final String DEFAULT_USER = "";
-
-    /**
-     * The default database password: ""
-     */
-    public static final String DEFAULT_PASSWORD = "";
-
-
-    public static final String DEFAULT_URL =
-        "jdbc:h2:mem;INIT=RUNSCRIPT FROM '${artifacts.config.dir}/datacage.sql'";
-
-    private static BasicDataSource dataSource;
-
-    private DBConnection() {
-    }
-
-    private static final void addShutdownHook() {
-        Runtime.getRuntime().addShutdownHook(new Thread() {
-            @Override
-            public void run() {
-                if (dataSource != null) {
-                    try {
-                        dataSource.close();
-                    }
-                    catch (SQLException sqle) {
-                    }
-                    dataSource = null;
-                }
-            }
-        });
-
-    }
-
-    public static synchronized DataSource getDataSource() {
-        if (dataSource == null) {
-            dataSource = new BasicDataSource();
-
-            String driver = Config.getStringXPath(
-                DB_DRIVER, DEFAULT_DRIVER);
-
-            String url = Config.getStringXPath(
-                DB_URL, DEFAULT_URL);
-
-            url = Config.replaceConfigDir(url);
-
-            String user = Config.getStringXPath(
-                DB_USER, DEFAULT_USER);
-
-            String password = Config.getStringXPath(
-                DB_PASSWORD, DEFAULT_PASSWORD);
-
-            logger.info("database driver: " + driver);
-            logger.info("database url: " + url);
-
-            dataSource.setDriverClassName(driver);
-            dataSource.setUsername(user);
-            dataSource.setPassword(password);
-            dataSource.setUrl(url);
-            addShutdownHook();
-        }
-
-        return dataSource;
-    }
-}
-// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java	Wed Jul 27 14:04:03 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java	Thu Jul 28 13:32:27 2011 +0000
@@ -2,6 +2,9 @@
 
 import de.intevation.artifacts.GlobalContext;
 
+import de.intevation.artifactdatabase.db.SQL;
+import de.intevation.artifactdatabase.db.SQLExecutor;
+
 import de.intevation.artifactdatabase.LifetimeListener;
 
 import org.apache.log4j.Logger;
@@ -13,12 +16,21 @@
 {
     private static Logger log = Logger.getLogger(Datacage.class);
 
+    protected SQLExecutor sqlExecutor;
+
     public Datacage() {
     }
 
     @Override
     public void setup(Document document) {
         log.debug("setup");
+        DBConfig config = DBConfig.getInstance();
+        setupSQL(config.getSQL());
+        sqlExecutor = new SQLExecutor(config.getDBConnection());
+    }
+
+    protected void setupSQL(SQL sql) {
+        log.debug("implement me!");
     }
 
     @Override
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/resources/datacage-sql/org-h2-driver.properties	Thu Jul 28 13:32:27 2011 +0000
@@ -0,0 +1,1 @@
+# WRITE ME!

http://dive4elements.wald.intevation.org