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

Modified Files:
        Framework.java ComponentRepository.java 
Log Message:
bugfix, after change of a component xml, the blocktype settings in 
framework.xml were lost


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.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- Framework.java      21 Mar 2008 16:08:16 -0000      1.48
+++ Framework.java      22 Mar 2008 09:12:59 -0000      1.49
@@ -27,7 +27,7 @@
  *
  * @author Johannes Verelst
  * @author Pierre van Rooden
- * @version $Id: Framework.java,v 1.48 2008/03/21 16:08:16 michiel Exp $
+ * @version $Id: Framework.java,v 1.49 2008/03/22 09:12:59 michiel Exp $
  * @since MMBase-1.9
  */
 public abstract class Framework {
@@ -47,6 +47,8 @@
         XMLEntityResolver.registerSystemID(NAMESPACE + ".xsd", XSD, 
Framework.class);
     }
 
+
+
     /**
      * Return the framework, or null if there is no framework defined in 
mmbaseroot.xml
      * @return the framework
@@ -68,16 +70,7 @@
                                     framework = (Framework) 
Instantiator.getInstance(el);
                                 }
                             }
-                            org.w3c.dom.NodeList blockTypes = 
fwConfiguration.getDocumentElement().getElementsByTagName("blocktype");
-                            for (int i = 0; i < blockTypes.getLength(); i++) {
-                                org.w3c.dom.Element element = 
(org.w3c.dom.Element) blockTypes.item(i);
-                                String classification = 
element.getAttribute("name");
-                                int weight = 
Integer.parseInt(element.getAttribute("weight"));
-                                for (Block.Type t : 
Block.Type.getClassification(classification, true)) {
-                                    t.setWeight(weight);
-                                    t.getTitle().fillFromXml("title", element);
-                                }
-                            }
+
                         } catch (Exception e) {
                             log.error(e.getMessage(), e);
                             framework = new 
org.mmbase.framework.basic.BasicFramework();


Index: ComponentRepository.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/ComponentRepository.java,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- ComponentRepository.java    21 Mar 2008 09:26:33 -0000      1.31
+++ ComponentRepository.java    22 Mar 2008 09:12:59 -0000      1.32
@@ -23,7 +23,7 @@
  * This (singleton) class maintains all compoments which are registered in the 
current MMBase.
  *
  * @author Michiel Meeuwissen
- * @version $Id: ComponentRepository.java,v 1.31 2008/03/21 09:26:33 fpunt Exp 
$
+ * @version $Id: ComponentRepository.java,v 1.32 2008/03/22 09:12:59 michiel 
Exp $
  * @since MMBase-1.9
  */
 public class ComponentRepository {
@@ -131,19 +131,44 @@
         clear();
     }
     protected void clear() {
+
         Block.Type.ROOT.subs.clear();
         Block.Type.ROOT.blocks.clear();
         Block.Type.NO.subs.clear();
         Block.Type.NO.blocks.clear();
+        readBlockTypes();
+
         rep.clear();
         failed.clear();
     }
 
     /**
+     * @todo Is it a bit odd that this uses the framework.xml?
+     */
+    private void readBlockTypes() {
+        try {
+            org.w3c.dom.Document fwConfiguration = 
ResourceLoader.getConfigurationRoot().getDocument("framework.xml", true, 
Framework.class);
+            org.w3c.dom.NodeList blockTypes = 
fwConfiguration.getDocumentElement().getElementsByTagName("blocktype");
+            for (int i = 0; i < blockTypes.getLength(); i++) {
+                org.w3c.dom.Element element = (org.w3c.dom.Element) 
blockTypes.item(i);
+                String classification = element.getAttribute("name");
+                int weight = Integer.parseInt(element.getAttribute("weight"));
+                for (Block.Type t : 
Block.Type.getClassification(classification, true)) {
+                    t.setWeight(weight);
+                    t.getTitle().fillFromXml("title", element);
+                }
+            }
+        } catch (Exception e) {
+            log.error(e);
+        }
+    }
+
+    /**
      * Reads all component xmls
      */
     protected void readConfiguration(String child) {
         clear();
+
         ResourceLoader loader =  
ResourceLoader.getConfigurationRoot().getChildResourceLoader(child);
         Collection<String> components = 
loader.getResourcePaths(ResourceLoader.XML_PATTERN, true /* recursive*/);
         log.info("In " + loader + " the following components XML's were found 
" + components);
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to