WebBox Klassenbibliothek
ulrich
2018-04-03 5ebac825d99fb9b6bed2edeeb4c15ba34e8b6350
src/de/uhilger/wbx/WbxUtils.java
@@ -19,7 +19,11 @@
package de.uhilger.wbx;
import java.io.File;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletContext;
/**
@@ -28,6 +32,44 @@
public class WbxUtils {
  
  private static final Logger logger = Logger.getLogger(WbxUtils.class.getName());
  public static final String JNDI_CTX_NAME = "java:comp/env";
  public static final String NOT_FOUND = " nicht gefunden";
  public static final String NO_STRING = " ist kein String";
  public static final String EMPTY_STRING = "";
  //public static final String FILE_BASE = "filebase";
  //public static final String DATENABLAGE = "datenAblage";
  public int getJNDIInt(String paramName, int defaultVal) {
    String jndiStr = getJNDIParameter(paramName, Integer.toString(defaultVal));
    try {
      return Integer.parseInt(jndiStr);
    } catch(NumberFormatException ex) {
      logger.log(Level.FINE, ex.getMessage());
      return defaultVal;
    }
  }
  public String getJNDIParameter(String pname, String defaultVal) {
    try {
      // unseren environment naming context ermitteln
      Context initCtx = new InitialContext();
      Context envCtx = (Context) initCtx.lookup(JNDI_CTX_NAME);
      // unseren Parameter lesen
      Object o = envCtx.lookup(pname);
      if(o instanceof String) {
        return o.toString();
      } else {
        return defaultVal;
      }
    } catch (NamingException ex) {
      logger.log(Level.FINE, ex.getMessage());
      return defaultVal;
    }
  }
  
  /**
   * Bei der WebBox ist das Datenverzeichnis relativ zum Verzeichnis 
@@ -51,14 +93,52 @@
   * 
   * @return Verzeichnis 'daten' der WebBox
   */
  /*
  public static File getWbxDataDir(ServletContext ctx) {
    File file = getWbxDir(ctx);
    file = new File(file, "daten/");
    logger.fine("WebBox Datenbasis: " + file.getAbsolutePath());
    return file;
  }
  public static File getWbxDir(ServletContext ctx) {
    String path = ctx.getRealPath("/");
    logger.fine("getRealPath: " + path); // file-cms in webapps
    File file = new File(path);
    file = file.getParentFile().getParentFile().getParentFile().getParentFile();    
    file = new File(file, "daten/");
    logger.fine("Basis: " + file.getAbsolutePath());
    logger.fine("WebBox: " + file.getAbsolutePath());
    return file;
  }
  */
  /**
   * Die Dateiablage wird entweder auf einen absoluten Pfad gesetzt,
   * der im Deployment Descriptor hinterlegt werden kann oder, wenn
   * dort nichts eingetragen ist, auf den hart kodierten Pfad
   * der WebBox.
   *
   * @param ctx der ServletContext, in den die Angabe eingetragen wird. Dort
   * ist anschliessend die Angabe unter Initialiser.FILE_BASE abrufbar
   */
  /*
  public static void ablageErmitteln(ServletContext ctx) {
    Object o = ctx.getInitParameter(DATENABLAGE);
    try {
      if(o instanceof String) {
        String pfad = o.toString();
        if(pfad.trim().length() > 0) {
          ctx.setAttribute(FILE_BASE, pfad);
          logger.fine("Basis: " + pfad);
        } else {
          ctx.setAttribute(FILE_BASE, WbxUtils.getWbxDataDir(ctx).getAbsolutePath());
        }
      } else {
        ctx.setAttribute(FILE_BASE, WbxUtils.getWbxDataDir(ctx).getAbsolutePath());
      }
    } catch(Exception ex) {
      ctx.setAttribute(FILE_BASE, WbxUtils.getWbxDataDir(ctx).getAbsolutePath());
    }
  }
  */
}