Author: michiel
Date: 2010-01-22 01:40:16 +0100 (Fri, 22 Jan 2010)
New Revision: 40673

Modified:
   mmbase/trunk/core/src/main/java/org/mmbase/module/core/MMBase.java
   mmbase/trunk/core/src/main/java/org/mmbase/module/core/MMBaseContext.java
   
mmbase/trunk/core/src/main/java/org/mmbase/util/NodeURLStreamHandlerFactory.java
   mmbase/trunk/core/src/main/java/org/mmbase/util/ResourceLoader.java
   mmbase/trunk/core/src/main/java/org/mmbase/util/ResourceWatcher.java
Log:
removed dependency on ResourceWatcher of ResourceLoader

Modified: mmbase/trunk/core/src/main/java/org/mmbase/module/core/MMBase.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/module/core/MMBase.java  
2010-01-22 00:39:25 UTC (rev 40672)
+++ mmbase/trunk/core/src/main/java/org/mmbase/module/core/MMBase.java  
2010-01-22 00:40:16 UTC (rev 40673)
@@ -409,9 +409,9 @@
 
         MMObjectBuilder resources = getBuilder("resources");
         if (resources != null && 
resources.getClass().getName().equals("org.mmbase.module.builders.Resources")) {
-            ResourceLoader.setResourceBuilder("resources");
+            org.mmbase.util.ResourceWatcher.setResourceBuilder("resources");
         } else {
-            ResourceLoader.setResourceBuilder(null);
+            org.mmbase.util.ResourceWatcher.setResourceBuilder(null);
         }
 
         
EventManager.getInstance().addEventListener(org.mmbase.cache.NodeCache.getCache());

Modified: 
mmbase/trunk/core/src/main/java/org/mmbase/module/core/MMBaseContext.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/module/core/MMBaseContext.java   
2010-01-22 00:39:25 UTC (rev 40672)
+++ mmbase/trunk/core/src/main/java/org/mmbase/module/core/MMBaseContext.java   
2010-01-22 00:40:16 UTC (rev 40673)
@@ -97,7 +97,9 @@
             initOutputfile(outputFile);
 
             ResourceLoader.init(sx);
+            org.mmbase.util.ResourceWatcher.reinitWatchers();
 
+
             // Init logging.
             initLogging();
             initialized = true;

Modified: 
mmbase/trunk/core/src/main/java/org/mmbase/util/NodeURLStreamHandlerFactory.java
===================================================================
--- 
mmbase/trunk/core/src/main/java/org/mmbase/util/NodeURLStreamHandlerFactory.java
    2010-01-22 00:39:25 UTC (rev 40672)
+++ 
mmbase/trunk/core/src/main/java/org/mmbase/util/NodeURLStreamHandlerFactory.java
    2010-01-22 00:40:16 UTC (rev 40673)
@@ -28,7 +28,7 @@
  * @since MMBase-2.0
  * @author Michiel Meeuwissen
  */
-class NodeURLStreamHandlerFactory extends 
ResourceLoader.URLStreamHandlerFactory {
+public class NodeURLStreamHandlerFactory extends 
ResourceLoader.URLStreamHandlerFactory {
 
     private static Logger log = 
Logging.getLoggerInstance(NodeURLStreamHandlerFactory.class);
     // these should perhaps be configurable:
@@ -62,10 +62,10 @@
      * @since MMBase-1.9.2
      */
     static NodeManager getResourceBuilder() {
-        if (ResourceLoader.resourceBuilder == null) return null;
+        if (ResourceWatcher.resourceBuilder == null) return null;
         if (resourceNodeManager == null) {
             Cloud cloud = 
ContextProvider.getDefaultCloudContext().getCloud("mmbase", "class", null);
-            resourceNodeManager = 
cloud.getNodeManager(ResourceLoader.resourceBuilder);
+            resourceNodeManager = 
cloud.getNodeManager(ResourceWatcher.resourceBuilder);
         }
         return resourceNodeManager;
     }
@@ -228,7 +228,7 @@
             getResourceNode();
             return
                 (node != null && node.mayWrite()) ||
-                (ResourceLoader.resourceBuilder != null && 
ContextProvider.getDefaultCloudContext().getCloud("mmbase", "class", 
null).getNodeManager(ResourceLoader.resourceBuilder).mayCreateNode());
+                (ResourceWatcher.resourceBuilder != null && 
ContextProvider.getDefaultCloudContext().getCloud("mmbase", "class", 
null).getNodeManager(ResourceWatcher.resourceBuilder).mayCreateNode());
         }
 
         @Override
@@ -243,10 +243,10 @@
         @Override
         public OutputStream getOutputStream() throws IOException {
             if (getResourceNode() == null) {
-                if (ResourceLoader.resourceBuilder == null) return null;
+                if (ResourceWatcher.resourceBuilder == null) return null;
 
                 Cloud cloud = 
ContextProvider.getDefaultCloudContext().getCloud("mmbase", "class", null);
-                NodeManager nm = 
cloud.getNodeManager(ResourceLoader.resourceBuilder);
+                NodeManager nm = 
cloud.getNodeManager(ResourceWatcher.resourceBuilder);
                 node = nm.createNode();
                 node.setContext(DEFAULT_CONTEXT);
                 String resourceName = (parent.getContext().getPath() + 
name).substring(1);

Modified: mmbase/trunk/core/src/main/java/org/mmbase/util/ResourceLoader.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/util/ResourceLoader.java 
2010-01-22 00:39:25 UTC (rev 40672)
+++ mmbase/trunk/core/src/main/java/org/mmbase/util/ResourceLoader.java 
2010-01-22 00:40:16 UTC (rev 40673)
@@ -169,11 +169,6 @@
         public abstract ResourceLoader get();
     }
 
-
-    // This should perhaps be a member (too) to allow for better authorisation 
support.
-    static String resourceBuilder = null;
-
-
     /**
      * The URLStreamHandler for 'mm' URL's.
      */
@@ -230,29 +225,8 @@
         // reset both roots, they will be redetermined using servletContext.
         configRootNeedsInit = true;
         webRootNeedsInit    = true;
-        ResourceWatcher.reinitWatchers();
     }
 
-    /**
-     * Sets the MMBase builder which must be used for resource.
-     * The builder must have an URL and a HANDLE field.
-     * This method can be called only once.
-     * @param b An String (this may be <code>null</code> if no such builder 
available)
-     * @throws RuntimeException if builder was set already.
-     */
-    public static void setResourceBuilder(String b) {
-        if (ResourceWatcher.resourceWatchers == null) {
-            throw new RuntimeException("A resource builder was set already: " 
+ resourceBuilder);
-        }
-        resourceBuilder = b;
-        // must be informed to existing ResourceWatchers.
-        ResourceWatcher.setResourceBuilder(); // this will also set 
ResourceWatcher.resourceWatchers to null.
-        if (b != null) {
-            log.info("The resources builder '" + b  + "' is available.");
-        } else {
-            log.debug("No resources builder");
-        }
-    }
 
 
     /**
@@ -446,21 +420,6 @@
         for (PathURLStreamHandler o : cl.roots) {
             // hmm, don't like this code, but don't know how else to copy the 
inner object.
             roots.add(o.createSubHandler(this));
-            /*
-            if (o instanceof FileURLStreamHandler) {
-                roots.add(new FileURLStreamHandler(this, 
(FileURLStreamHandler) o));
-            } else if (o instanceof ApplicationContextFileURLStreamHandler) {
-                roots.add(new ApplicationContextFileURLStreamHandler(this));
-            } else if (o instanceof NodeURLStreamHandler) {
-                roots.add(new NodeURLStreamHandler(this, 
(NodeURLStreamHandler) o));
-            } else if (o instanceof ServletResourceURLStreamHandler) {
-                roots.add(new ServletResourceURLStreamHandler(this, 
(ServletResourceURLStreamHandler) o));
-            } else if (o instanceof ClassLoaderURLStreamHandler) {
-                roots.add(new ClassLoaderURLStreamHandler(this, 
(ClassLoaderURLStreamHandler) o));
-            } else {
-                assert false;
-            }
-            */
         }
         parent  = cl;
     }
@@ -545,6 +504,7 @@
      */
     public List<URL> getResourceList(final String name) {
         try {
+            List<URL> r = Collections.list(getResources(name));
             return Collections.list(getResources(name));
         } catch (IOException io) {
             log.warn(io);
@@ -1745,7 +1705,7 @@
     }
 
 
-        private static Comparator<URL> urlComparator;
+    private static Comparator<URL> urlComparator;
     private static Comparator<URL> getUrlComparator() {
         if (urlComparator == null) {
             urlComparator = new Comparator<URL>() {
@@ -1858,7 +1818,7 @@
                 URL n = e.nextElement();
                 result.add(n);
             }
-            return result;
+             return result;
         }
 
         @Override

Modified: mmbase/trunk/core/src/main/java/org/mmbase/util/ResourceWatcher.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/util/ResourceWatcher.java        
2010-01-22 00:39:25 UTC (rev 40672)
+++ mmbase/trunk/core/src/main/java/org/mmbase/util/ResourceWatcher.java        
2010-01-22 00:40:16 UTC (rev 40673)
@@ -34,18 +34,32 @@
 public abstract class ResourceWatcher implements NodeEventListener  {
     private static final Logger log = 
Logging.getLoggerInstance(ResourceWatcher.class);
 
+
+    // This should perhaps be a member (too) to allow for better authorisation 
support.
+    static String resourceBuilder = null;
+
+
     /**
      * All instantiated ResourceWatchers.
      */
     static final Map<ResourceWatcher, Object> resourceWatchers = 
Collections.synchronizedMap(new WeakHashMap<ResourceWatcher, Object>());
 
     /**
+     * Sets the MMBase builder which must be used for resource.
+     * The builder must have an URL and a HANDLE field.
+     * This method can be called only once.
      * Considers all resource-watchers. Perhaps onChange must be called, 
because there is a node for this resource available now.
+     * @param b An String (this may be <code>null</code> if no such builder 
available)
+     * @throws RuntimeException if builder was set already.
      */
-    static void setResourceBuilder() {
+    public static void setResourceBuilder(String builder) {
+        if (resourceWatchers == null) {
+            throw new RuntimeException("A resource builder was set already: " 
+ resourceBuilder);
+        }
+        resourceBuilder = builder;
         synchronized(resourceWatchers) {
             for (ResourceWatcher rw : resourceWatchers.keySet()) {
-                if (ResourceLoader.resourceBuilder != null) {
+                if (resourceBuilder != null) {
 
                     if (rw.running) {
                         EventManager.getInstance().addEventListener(rw);
@@ -60,14 +74,19 @@
                 }
             }
             reinitWatchers();
+        }
 
+        if (builder != null) {
+            log.info("The resources builder '" + builder  + "' is available.");
+        } else {
+            log.debug("No resources builder");
         }
     }
 
     /**
      * @since MMBase-1.9.2
      */
-    static void reinitWatchers() {
+    public static void reinitWatchers() {
         synchronized(resourceWatchers) {
             for (ResourceWatcher rw : resourceWatchers.keySet()) {
                 log.debug("Reinitting watcher " + rw);

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to