Update of /var/cvs/src/org/mmbase/module/core
In directory james.mmbase.org:/tmp/cvs-serv12859

Modified Files:
      Tag: MMBase-1_8
        MMBase.java 
Log Message:
ported getDataDir from HEAD


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/module/core


Index: MMBase.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/module/core/MMBase.java,v
retrieving revision 1.200.2.12
retrieving revision 1.200.2.13
diff -u -b -r1.200.2.12 -r1.200.2.13
--- MMBase.java 12 Apr 2008 10:43:05 -0000      1.200.2.12
+++ MMBase.java 16 Apr 2008 12:20:29 -0000      1.200.2.13
@@ -46,7 +46,7 @@
  * @author Pierre van Rooden
  * @author Johannes Verelst
  * @author Ernst Bunders
- * @version $Id: MMBase.java,v 1.200.2.12 2008/04/12 10:43:05 nklasens Exp $
+ * @version $Id: MMBase.java,v 1.200.2.13 2008/04/16 12:20:29 michiel Exp $
  */
 public class MMBase extends ProcessorModule {
 
@@ -1493,5 +1493,56 @@
         }
     }
 
+    /**
+     * A setting 'datadir' can be specified in mmbaseroot.xml (and hence in 
your context xml). This
+     * serves as a default for the 'blobs on disk' directory, but it can be 
used on other spots as well.
+     * @since MMBase-1.8.6
+     */
+    public File getDataDir() {
+        String dataDirString = getInitParameter("datadir");
+
+        javax.servlet.ServletContext sc = MMBaseContext.getServletContext();
+        if (dataDirString == null || dataDirString.equals("")) {
+            if (sc == null) {
+                dataDirString = "data";
+            } else {
+                dataDirString = "WEB-INF/data";
+            }
+        }
+        File dataDir = new File(dataDirString);
+
+        if (! dataDir.isAbsolute()) {
+            if (sc != null) {
+                dataDir = new File(sc.getRealPath("/" + dataDirString));
+            } else {
+                dataDir = new File(System.getProperty("user.dir"), 
dataDirString);
+            }
+        }
+
+        if (! dataDir.exists()) {
+            try {
+                if (dataDir.mkdirs()) {
+                    log.info("Created " + dataDir);
+                }
+            } catch (SecurityException  se) {
+                log.warn(se);
+            }
+        }
+
+        if (! dataDir.isDirectory()) {
+            log.warn("Datadir " + dataDir + " is not a directory");
+        }
+        if (! dataDir.canRead()) {
+            log.warn("Datadir " + dataDir + " is not readable");
+        }
+        if (! dataDir.canWrite()) {
+            log.warn("Datadir " + dataDir + " is not writable");
+        }
+
+        log.info("MMBase data dir: " + dataDir);
+        return dataDir;
+
+    }
+
 
 }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to