From 6240cdca43495122d436de8488395bf7fd5eae12 Mon Sep 17 00:00:00 2001
From: ulrich <not disclosed>
Date: Tue, 27 Dec 2016 16:39:26 +0000
Subject: [PATCH] Tomcat-spezifischen Digester in eine Schnittstelle ausgelagert und per Deployment Descriptor konfigurierbar eingebunden

---
 src/java/de/uhilger/um/App.java |   26 ++++++++++++++++++++++++--
 1 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/src/java/de/uhilger/um/App.java b/src/java/de/uhilger/um/App.java
index 0ea50cf..61c44d7 100644
--- a/src/java/de/uhilger/um/App.java
+++ b/src/java/de/uhilger/um/App.java
@@ -20,7 +20,8 @@
  * Hauptklasse der Anwendung Nutzerverwaltung
  * 
  * Hier wird u.a. geprüft, ob die Datenbank vorhanden ist und diese 
- * angelegt, falls nicht.
+ * angelegt, falls nicht. Das SQL zur Anlage der Datenbank findet 
+ * sich in WEB-INF/create_database.sql
  * 
  * @author Ulrich Hilger
  */
@@ -37,14 +38,30 @@
   /** Name des Parameters, unter dem der Name der DataSource im Deployment Descritpor zu finden ist */
   public static final String P_DSNAME = "dsname";
   
+  public static final String P_DIGESTER = "digester";
+  
   /** Name des SQL-Befehls zum Pruefen, ob die Datenbank vorhanden ist */
   public static final String SQL_DB_VORHANDEN = "dbVorhanden";  
   
+  /** Boolean-Konstante zur Kennzeichnung von Datenbankergebnissen mit/ohne Blobs */
   public static final boolean WITHOUT_BLOBS = false;
 
-  
+  /** Anwendungsweite Referenz zur Datenbank */
   private static PersistenceManager db;
+  
+  /** Anwendungsweite Referenz zu den SQL-Befehlen */
   private static Properties sql;
+  
+  private static Digester digester;
+  
+  private void initApp(ServletContext servletContext) {
+    try {
+      String digesterClassName = servletContext.getInitParameter(P_DIGESTER);
+      digester = (Digester) Class.forName(digesterClassName).newInstance();
+    } catch (Exception ex) {
+      logger.log(Level.SEVERE, null, ex);
+    }
+  }
   
  /**
    * Ein Eigenschaften-Objekt mit den SQL-Statements initialisieren, 
@@ -91,6 +108,10 @@
    */
   public static String getSqlStatement(String id) {
     return sql.getProperty(id);
+  }
+  
+  public static Digester getDigester() {
+    return digester;
   }
   
   /* ----------------- Logik zur Datenbank-Erzeugung ------------ */
@@ -164,6 +185,7 @@
     ServletContext servletContext = sce.getServletContext();
     initSql(servletContext);
     initDb(servletContext);
+    initApp(servletContext);
   }
 
   @Override

--
Gitblit v1.9.3