From b12c95e1d53caed954314ed5e42f0e54730df5cd Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed> Date: Tue, 03 Apr 2018 07:40:16 +0000 Subject: [PATCH] Dateiablage als JNDI-Parameter eingebaut --- src/java/de/uhilger/filecms/web/Initialiser.java | 32 +++++++++++++++++++++++++++++++- 1 files changed, 31 insertions(+), 1 deletions(-) diff --git a/src/java/de/uhilger/filecms/web/Initialiser.java b/src/java/de/uhilger/filecms/web/Initialiser.java index eece13c..764c585 100644 --- a/src/java/de/uhilger/filecms/web/Initialiser.java +++ b/src/java/de/uhilger/filecms/web/Initialiser.java @@ -18,11 +18,15 @@ package de.uhilger.filecms.web; +import de.uhilger.wbx.WbxUtils; import java.io.File; +import java.io.IOException; +import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; +import org.apache.commons.io.FileUtils; /** * Initialisieren der Dateiverwaltung @@ -33,6 +37,7 @@ public static final String FILE_BASE = "filebase"; public static final String DATENABLAGE = "datenAblage"; + public static final String WBX_FILE_BASE = "wbxFileBase"; /** * Bei der WebBox ist das Datenverzeichnis relativ zum Verzeichnis @@ -82,7 +87,9 @@ * ist anschliessend die Angabe unter Initialiser.FILE_BASE abrufbar */ protected void ablageErmitteln(ServletContext ctx) { - Object o = ctx.getInitParameter(DATENABLAGE); + //Object o = ctx.getInitParameter(DATENABLAGE); + WbxUtils wu = new WbxUtils(); + Object o = wu.getJNDIParameter(WBX_FILE_BASE, WbxUtils.EMPTY_STRING); try { if(o instanceof String) { String pfad = o.toString(); @@ -99,11 +106,34 @@ ctx.setAttribute(FILE_BASE, getWbxDataDir(ctx).getAbsolutePath()); } } + + protected void ablageInitialisieren(ServletContext ctx) { + Object o = ctx.getAttribute(FILE_BASE); + if(o instanceof String) { + String targetDirName = (String) o; + File dataDir = new File(targetDirName, "www"); + if(!dataDir.exists()) { + String srcPath = ctx.getRealPath("/"); // file-cms in webapps + File srcDir = new File(srcPath, "/META-INF/daten/www"); + dataDir = new File(targetDirName); + try { + FileUtils.copyDirectoryToDirectory(srcDir, dataDir); + srcDir = new File(srcPath, "/META-INF/daten/home"); + FileUtils.copyDirectoryToDirectory(srcDir, dataDir); + srcDir = new File(srcPath, "/META-INF/daten/dav"); + FileUtils.copyDirectoryToDirectory(srcDir, dataDir); + } catch (IOException ex) { + logger.log(Level.SEVERE, null, ex); + } + } + } + } @Override public void contextInitialized(ServletContextEvent sce) { ServletContext ctx = sce.getServletContext(); ablageErmitteln(ctx); + ablageInitialisieren(ctx); } @Override -- Gitblit v1.9.3