Update of /var/cvs/src/org/mmbase/framework
In directory james.mmbase.org:/tmp/cvs-serv7448

Modified Files:
        Framework.java ComponentRepository.java 
Log Message:
if only components configurion changed, the framework could end up in 
inconsistent state, so also reinitalize the framework if components 
configuration changed


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/framework


Index: Framework.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/Framework.java,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -b -r1.61 -r1.62
--- Framework.java      20 Oct 2008 17:10:53 -0000      1.61
+++ Framework.java      3 Nov 2008 16:43:48 -0000       1.62
@@ -13,6 +13,7 @@
 import java.util.*;
 import org.mmbase.bridge.Node;
 import org.mmbase.util.*;
+import org.mmbase.util.ResourceWatcher;
 import org.mmbase.util.xml.Instantiator;
 import org.mmbase.util.functions.*;
 import org.mmbase.util.logging.Logger;
@@ -29,7 +30,7 @@
  * @author Michiel Meeuwissen
  * @author Nico Klasens
  * @author André van Toly
- * @version $Id: Framework.java,v 1.61 2008/10/20 17:10:53 michiel Exp $
+ * @version $Id: Framework.java,v 1.62 2008/11/03 16:43:48 michiel Exp $
  * @since MMBase-1.9
  */
 public abstract class Framework {
@@ -38,10 +39,10 @@
 
     /**
      * Reference to the Framework singleton.
-     * @since MMBase-1.9
      */
     static Framework framework = null;
 
+    private static ResourceWatcher frameworkWatcher;
 
     public static final String XSD = "framework.xsd";
     public static final String NAMESPACE = 
"http://www.mmbase.org/xmlns/framework";;
@@ -70,7 +71,8 @@
      */
     public static Framework getInstance() {
         if (framework == null) {
-            org.mmbase.util.ResourceWatcher frameworkWatcher = new 
org.mmbase.util.ResourceWatcher() {
+            if (frameworkWatcher == null) {
+                frameworkWatcher = new org.mmbase.util.ResourceWatcher() {
                     public void onChange(String resourceName) {
                         try {
                             ComponentRepository.getInstance();
@@ -95,6 +97,7 @@
             frameworkWatcher.add("framework.xml");
             frameworkWatcher.setDelay(10 * 1000); // check every 10 secs if 
config changed
             frameworkWatcher.start();
+            }
             frameworkWatcher.onChange();
         }
         return framework;


Index: ComponentRepository.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/ComponentRepository.java,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- ComponentRepository.java    9 Oct 2008 13:00:28 -0000       1.44
+++ ComponentRepository.java    3 Nov 2008 16:43:48 -0000       1.45
@@ -25,7 +25,7 @@
  * Components can be configured by placing their configuration in 
'config/components/'.
  *
  * @author Michiel Meeuwissen
- * @version $Id: ComponentRepository.java,v 1.44 2008/10/09 13:00:28 michiel 
Exp $
+ * @version $Id: ComponentRepository.java,v 1.45 2008/11/03 16:43:48 michiel 
Exp $
  * @since MMBase-1.9
  */
 public class ComponentRepository {
@@ -55,6 +55,8 @@
         ResourceWatcher rw = new ResourceWatcher() {
                 public void onChange(String r) {
                     getInstance().readConfiguration(r);
+                    Framework.framework = null; // invalidate also the 
framework configuration,
+                                                // because e.g. UrlConverters 
may have referrences to components
                 }
             };
         rw.add("components");
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to