Dateiverwaltung für die WebBox
ulrich
2018-02-13 02f7b11199fbf601807c8cb856e68ecd155f3cab
Datenordner initialisieren
1 files modified
4 files added
113 ■■■■■ changed files
src/java/de/uhilger/filecms/web/Initialiser.java 23 ●●●●● patch | view | raw | blame | history
web/META-INF/daten/home/WEB-INF/lib/readme.txt 1 ●●●● patch | view | raw | blame | history
web/META-INF/daten/home/WEB-INF/web.xml 44 ●●●●● patch | view | raw | blame | history
web/META-INF/daten/www/WEB-INF/lib/readme.txt 1 ●●●● patch | view | raw | blame | history
web/META-INF/daten/www/WEB-INF/web.xml 44 ●●●●● patch | view | raw | blame | history
src/java/de/uhilger/filecms/web/Initialiser.java
@@ -19,10 +19,13 @@
package de.uhilger.filecms.web;
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
@@ -99,11 +102,31 @@
      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");
        try {
          FileUtils.copyDirectoryToDirectory(srcDir, new File(targetDirName));
          srcDir = new File(srcPath, "/META-INF/daten/home");
          FileUtils.copyDirectoryToDirectory(srcDir, new File(targetDirName));
        } catch (IOException ex) {
          logger.log(Level.SEVERE, null, ex);
        }
      }
    }
  }
  @Override
  public void contextInitialized(ServletContextEvent sce) {
    ServletContext ctx = sce.getServletContext();
    ablageErmitteln(ctx);
    ablageInitialisieren(ctx);
  }
  @Override
web/META-INF/daten/home/WEB-INF/lib/readme.txt
New file
@@ -0,0 +1 @@
Hier abgelegte Klassenbibliotheken werden von der WebBox fuer das Verzeichnis home verwendet. Hier gehoert z.B. auch ein Filter hin, der Inhalte nur ausgibt, wenn der Benutzer angemeldet ist und ein Verzeichnis aufruft, das 'ihm gehoert'.
web/META-INF/daten/home/WEB-INF/web.xml
New file
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <description>Benutzerverzeichnis der WebBox</description>
    <display-name>home</display-name>
    <filter>
        <filter-name>HomeFilter</filter-name>
        <filter-class>de.uhilger.wbx.web.HomeFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>HomeFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <servlet>
        <servlet-name>view</servlet-name>
        <servlet-class>de.uhilger.wbx.web.ViewServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
    </servlet>
    <servlet>
        <servlet-name>TNServlet</servlet-name>
        <servlet-class>de.uhilger.wbx.web.TNServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>view</servlet-name>
        <url-pattern>*.htmi</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>TNServlet</servlet-name>
        <url-pattern>*.png</url-pattern>
        <url-pattern>*.gif</url-pattern>
        <url-pattern>*.jpeg</url-pattern>
        <url-pattern>*.jpg</url-pattern>
    </servlet-mapping>
    <mime-mapping>
        <extension>htmi</extension>
        <mime-type>text/html</mime-type>
    </mime-mapping>
</web-app>
web/META-INF/daten/www/WEB-INF/lib/readme.txt
New file
@@ -0,0 +1 @@
Hier abgelegte Klassenbibliotheken werden von der WebBox fuer das Verzeichnis data verwendet. Hier gehoert z.B. auch ein Servlet hin, das die Ausgabe unvollstaendiger HTML-Seiten uebernimmt.
web/META-INF/daten/www/WEB-INF/web.xml
New file
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <description>Oeffentliches Verzeichnis der WebBox</description>
    <display-name>data</display-name>
    <filter>
        <filter-name>MarkdownFilter</filter-name>
        <filter-class>de.uhilger.wbx.web.MarkdownFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>MarkdownFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <servlet>
        <servlet-name>view</servlet-name>
        <servlet-class>de.uhilger.wbx.web.ViewServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
    </servlet>
    <servlet>
        <servlet-name>TNServlet</servlet-name>
        <servlet-class>de.uhilger.wbx.web.TNServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>view</servlet-name>
        <url-pattern>*.htmi</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>TNServlet</servlet-name>
        <url-pattern>*.png</url-pattern>
        <url-pattern>*.gif</url-pattern>
        <url-pattern>*.jpeg</url-pattern>
        <url-pattern>*.jpg</url-pattern>
    </servlet-mapping>
    <mime-mapping>
        <extension>htmi</extension>
        <mime-type>text/html</mime-type>
    </mime-mapping>
</web-app>