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