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

Modified Files:
        MMBase.java 
Log Message:
dealing a bit more elegantly with builder xml which are found more than once


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.251
retrieving revision 1.252
diff -u -b -r1.251 -r1.252
--- MMBase.java 13 Aug 2008 08:11:22 -0000      1.251
+++ MMBase.java 28 Aug 2008 11:45:17 -0000      1.252
@@ -45,7 +45,7 @@
  * @author Pierre van Rooden
  * @author Johannes Verelst
  * @author Ernst Bunders
- * @version $Id: MMBase.java,v 1.251 2008/08/13 08:11:22 michiel Exp $
+ * @version $Id: MMBase.java,v 1.252 2008/08/28 11:45:17 michiel Exp $
  */
 public class MMBase extends ProcessorModule {
 
@@ -920,11 +920,27 @@
      */
     public BuilderReader getBuilderReader(String builderName) {
         try {
-            java.net.URL url = getBuilderLoader().getResource(builderName + 
".xml");
-            if (url == null) return null;
+            BuilderReader r = null;
+            String protocol = null;
+            for (java.net.URL url : 
getBuilderLoader().getResourceList(builderName + ".xml")) {
+                if (! url.openConnection().getDoInput()) continue;
+                if (protocol != null && ! url.getProtocol().equals(protocol)) {
+                    log.service(url + " less important than " + 
r.getSystemId() + " breaking now");
+                    break;
+                }
             org.w3c.dom.Document doc = ResourceLoader.getDocument(url, true, 
BuilderReader.class);
-            BuilderReader r = new BuilderReader(doc, this);
-            r.setSystemId(url.toString());
+                BuilderReader prop = new BuilderReader(doc, this);
+                prop.setSystemId(url.toString());
+                if (r == null) {
+                    r = prop;
+                    protocol = url.getProtocol();
+                } else if (prop.getVersion() > r.getVersion()) {
+                    log.service(url.toString() + " has a higher version than " 
+ r.getSystemId() + " so, using that in stead");
+                    r = prop;
+                } else {
+                    log.service(url.toString() + " has a lower or equals 
version than " + r.getSystemId() + ". Ignoring it.");
+                }
+            }
             return r;
         } catch (SAXException se) {
             log.error(se);
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to