Dateiverwaltung für die WebBox
ulrich
2017-02-17 ea719308e3b76f63ca503f07442ccff503e3e8e8
commit | author | age
c7c502 1 package de.uhilger.filecms.api;
U 2
3 import de.uhilger.filesystem.FileRef;
8e51b7 4 import de.uhilger.transit.web.RequestKontext;
c7c502 5 import de.uhilger.transit.web.WebKontext;
8e51b7 6 import java.io.File;
U 7 import java.util.logging.Logger;
c7c502 8 import javax.servlet.ServletContext;
8e51b7 9 import javax.servlet.http.HttpServletRequest;
c7c502 10
U 11 /**
12  *
13  * @author ulrich
14  */
8e51b7 15 public class FileMgr implements WebKontext, RequestKontext {
U 16   private static final Logger logger = Logger.getLogger(FileMgr.class.getName());
c7c502 17   
U 18   public static final String FILE_BASE = "fileBase";
19   
20   private ServletContext ctx;
8e51b7 21   private HttpServletRequest req;
c7c502 22   
ea7193 23   public String hallo() {
U 24     return "Hallo Welt!";
25   }
26   
27   // http://localhost:8097/file-cms/rpc/de.uhilger.filecms.api.FileMgr/getBase/JSONNICE
c7c502 28   public FileRef getBase() {
U 29     FileRef ref = null;
8e51b7 30     //String fileBase = getServletContext().getInitParameter(FILE_BASE);
U 31     // -Dfilecms.base=/pfad/zu/daten
ea7193 32     //String fileBase = System.getProperty("filecms.base");
U 33     //File file = new File(fileBase);
34     //logger.info(file.getAbsolutePath());
35     //logger.info(getWebappsDir().getAbsolutePath());
36     
37     /* 
38         file = new File("."); liefert 
39         /home/ulrich/dev/lib/java/tomcat/tomcat2-8.5.9/bin/.
40     
41         ..auf der WebBox aber
42         /home/ulrich/srv/wbx_probe/.
43         ..weil das Startskript dort liegt
44     
45         der Tomcat der WebBox ist unter
46         sys/jrs/tomcat/bin
47     
48         also z.B.
49         /home/ulrich/srv/wbx_probe/sys/jrs/tomcat/bin
50
51         das Datenverzeichnis ist z.B. auf
52         /home/ulrich/srv/wbx_probe/daten
53     
54         dann ist das Datenverzeichnis unter
55         ../../../daten
56     
57         Der Ausdruck file = new File("."); liefert stets den 
58         Ort von dem aus der Java-Prozess gestartet wurde.
59     
60         Die unten folgende Bestimmung des Datenverzeichnisses 
61         ist beschraenkt auf das Datenverzeichnis der WebBox, 
62         entweder relativ zum Startskript der WebBox oder 
63         dem Startskript von Tomcat, wie es aus Netbeans heraus 
64         waehrend der Entwicklung genutzt wird.
65     
66         Besser ware vielleicht eine Bestimmung ueber einen 
67         Systemparameter -Dfilecms.base=... wie weiter oben 
68         auskommentiert. Damit liesse sich das file-cms auch 
69         ohne WebBox einsetzen. Allerdings muss dann das 
70         Datenverzeichnis im Start-Skript gebildet werden, 
71         also ausserhalb von Java, wenn es dynamisch aus 
72         einem Pfad relativ zum Start-Skript erzeugt werden 
73         soll.
74     */
75     
76     File file = new File(".");
77     String path = file.getAbsolutePath();
78     path = path.substring(0, path.length() - 1);
79     file = new File(path);
80     if(path.endsWith("bin")) {
81       file = file.getParentFile().getParentFile().getParentFile();
82     } else {
83       
84     }
85     file = new File(file, "daten/");
8e51b7 86     ref = new FileRef(file.getAbsolutePath(), file.isDirectory());
c7c502 87     return ref;
8e51b7 88   }
U 89   
ea7193 90   public FileRef saveTextFile(String relPath, String fileName, String contents) {
U 91     FileRef savedFile = null;
92     return savedFile;
93   }
94   
8e51b7 95   private File getWebappsDir() {
U 96     File cfile = new File(this.getClass().getResource(this.getClass().getSimpleName() + ".class").getFile());
97     String path = cfile.getAbsolutePath();
98     return new File(path.substring(0, path.indexOf(req.getContextPath())));
c7c502 99   }
U 100
101   @Override
102   public ServletContext getServletContext() {
103     return ctx;
104   }
105
106   @Override
107   public void setServletContext(ServletContext servletContext) {
108     this.ctx = servletContext;
109   }
110
8e51b7 111   @Override
U 112   public HttpServletRequest getRequest() {
113     return req;
114   }
115
116   @Override
117   public void setRequest(HttpServletRequest r) {
118     this.req = r;
119   }
120
c7c502 121   
U 122 }