From 2f9e6f69f48dcefc5d41d49faf6d1e74be74d451 Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed> Date: Tue, 21 Mar 2017 11:45:42 +0000 Subject: [PATCH] Javascript aufgeteilt --- src/java/de/uhilger/filecms/web/Initialiser.java | 104 ++++++++++++++++----------------------------------- 1 files changed, 33 insertions(+), 71 deletions(-) diff --git a/src/java/de/uhilger/filecms/web/Initialiser.java b/src/java/de/uhilger/filecms/web/Initialiser.java index 05b2d89..ac25f00 100644 --- a/src/java/de/uhilger/filecms/web/Initialiser.java +++ b/src/java/de/uhilger/filecms/web/Initialiser.java @@ -18,8 +18,7 @@ package de.uhilger.filecms.web; -import de.uhilger.filecms.api.FileMgr; -import de.uhilger.filesystem.FileRef; +import de.uhilger.wbx.WbxUtils; import java.io.File; import java.util.logging.Logger; import javax.servlet.ServletContext; @@ -27,8 +26,7 @@ import javax.servlet.ServletContextListener; /** - * - * @author ulrich + * Initialisieren der Dateiverwaltung */ public class Initialiser implements ServletContextListener { @@ -36,81 +34,45 @@ public static final String FILE_BASE = "filebase"; - - // http://localhost:8097/file-cms/rpc/de.uhilger.filecms.api.FileMgr/getBase/JSONNICE - private FileRef getBase() { - FileRef ref = null; - //String fileBase = getServletContext().getInitParameter(FILE_BASE); - // -Dfilecms.base=/pfad/zu/daten - //String fileBase = System.getProperty("filecms.base"); - //File file = new File(fileBase); - //logger.info(file.getAbsolutePath()); - //logger.info(getWebappsDir().getAbsolutePath()); + public static final String DATENABLAGE = "datenAblage"; - /* - file = new File("."); liefert - /home/ulrich/dev/lib/java/tomcat/tomcat2-8.5.9/bin/. - - ..auf der WebBox aber - /home/ulrich/srv/wbx_probe/. - ..weil das Startskript dort liegt - - der Tomcat der WebBox ist unter - sys/jrs/tomcat/bin - - also z.B. - /home/ulrich/srv/wbx_probe/sys/jrs/tomcat/bin - - das Datenverzeichnis ist z.B. auf - /home/ulrich/srv/wbx_probe/daten - - dann ist das Datenverzeichnis unter - ../../../daten - - Der Ausdruck file = new File("."); liefert stets den - Ort von dem aus der Java-Prozess gestartet wurde. - - Die unten folgende Bestimmung des Datenverzeichnisses - ist beschraenkt auf das Datenverzeichnis der WebBox, - entweder relativ zum Startskript der WebBox oder - dem Startskript von Tomcat, wie es aus Netbeans heraus - waehrend der Entwicklung genutzt wird. - - Besser ware vielleicht eine Bestimmung ueber einen - Systemparameter -Dfilecms.base=... wie weiter oben - auskommentiert. Damit liesse sich das file-cms auch - ohne WebBox einsetzen. Allerdings muss dann das - Datenverzeichnis im Start-Skript gebildet werden, - also ausserhalb von Java, wenn es dynamisch aus - einem Pfad relativ zum Start-Skript erzeugt werden - soll. - */ - - File file = new File("."); - logger.info(file.getAbsolutePath()); - String path = file.getAbsolutePath(); - path = path.substring(0, path.length() - 1); - file = new File(path); - if(path.endsWith("bin")) { - file = file.getParentFile().getParentFile().getParentFile(); - } else { - - } - file = new File(file, "daten/"); - ref = new FileRef(file.getAbsolutePath(), file.isDirectory()); - logger.info(ref.getAbsolutePath()); - return ref; - } - /* ----- ServletContextListener Implementation ----- */ @Override public void contextInitialized(ServletContextEvent sce) { // hier kann etwas initialisiert werden ServletContext ctx = sce.getServletContext(); - ctx.setAttribute(FILE_BASE, getBase()); + ablageErmitteln(ctx); } - + + /** + * 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 + */ + private 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()); + } + } + @Override public void contextDestroyed(ServletContextEvent sce) { // hier wird alles wieder aufgeraeumt -- Gitblit v1.9.3