ulrich
2017-02-11 1345f04c927a319d1f541d420250e94bb949fbdd
src/java/de/uhilger/um/web/Initialiser.java
@@ -18,10 +18,13 @@
package de.uhilger.um.web;
import de.uhilger.baselink.GenericRecord;
import de.uhilger.baselink.PersistenceManager;
import de.uhilger.baselink.Record;
import de.uhilger.um.api.UserMgr;
import de.uhilger.um.daten.User;
import de.uhilger.um.daten.UserData;
import de.uhilger.um.daten.UserRole;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
@@ -58,6 +61,10 @@
    
  /** Name des SQL-Befehls zum Pruefen, ob die Datenbank vorhanden ist */
  public static final String SQL_DB_VORHANDEN = "dbVorhanden";  
  public static final String MP_USER = "userMapper";
  public static final String MP_USER_DATA = "userDataMapper";
  public static final String MP_USER_ROLE = "userRoleMapper";
  
  /**
   * Diese Webanwendung initialisieren, also z.B. Elemente instantiieren, die
@@ -124,6 +131,7 @@
      PersistenceManager db = new PersistenceManager();
      db.setDataSourceName(servletContext.getInitParameter(P_DSNAME));
      servletContext.setAttribute(UserMgr.UM_DB, db);
      initMapper(servletContext);
      Properties sql = (Properties) servletContext.getAttribute(UserMgr.UM_SQL_PROPERTIES);
      if(!dbVorhanden(db, sql.getProperty(SQL_DB_VORHANDEN))) {
        logger.info("Datenbank ist nicht vorhanden");
@@ -143,6 +151,21 @@
    }
  }
  
  /**
   * Mapper erzeugen
   * @param servletContext der ServletContext dieser Webanwendung
   */
  /*
  TODO: das noch auf on demand anlegen: GenericRecord wird erst angelegt
   wenn er erstmals benoetigt wird. Ggf. auch einen Mechanismus zum entfernen
   laenger nicht benoetigter Mapper hinzufuegen
  */
  private void initMapper(ServletContext servletContext) {
    servletContext.setAttribute(UserMgr.MP_USER, new GenericRecord(User.class));
    servletContext.setAttribute(UserMgr.MP_USER_DATA, new GenericRecord(UserData.class));
    servletContext.setAttribute(UserMgr.MP_USER_ROLE, new GenericRecord(UserRole.class));
  }
  @SuppressWarnings("rawtypes")
  private boolean dbVorhanden(PersistenceManager pm, String sql) {
    boolean istVorhanden = false;