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

Modified Files:
        BasicFramework.java BasicUrlConverter.java 
        ChainedUrlConverter.java MMBaseUrlConverter.java 
        UrlConverter.java 
Log Message:
made it so that 'getUrl' on UrlConvertor may return null (for chaining). 
Framework may however _not_ return nul (so getUrl always works). getInteralUrl 
may give null in both cases. /version?<argument> works again now


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


Index: BasicFramework.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/BasicFramework.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- BasicFramework.java 12 Apr 2008 12:58:20 -0000      1.15
+++ BasicFramework.java 18 Apr 2008 13:47:13 -0000      1.16
@@ -33,7 +33,7 @@
  * configured with an XML 'framework.xml'.
  *
  * @author Michiel Meeuwissen
- * @version $Id: BasicFramework.java,v 1.15 2008/04/12 12:58:20 michiel Exp $
+ * @version $Id: BasicFramework.java,v 1.16 2008/04/18 13:47:13 michiel Exp $
  * @since MMBase-1.9
  */
 public class BasicFramework extends Framework {
@@ -52,6 +52,7 @@
     public static final Parameter<String> ACTION     = new 
Parameter<String>("action", String.class);
 
     protected final ChainedUrlConverter urlConverter = new 
ChainedUrlConverter();
+    protected final UrlConverter fallbackConverter   = new 
BasicUrlConverter(this);
 
     protected final LocalizedString description      = new 
LocalizedString("description");
 
@@ -62,13 +63,18 @@
         configure(el);
     }
     public BasicFramework() {
-        urlConverter.add(new BasicUrlConverter(this));
+
     }
 
 
     public String getUrl(String path, Map<String, Object> parameters,
                          Parameters frameworkParameters, boolean escapeAmps) 
throws FrameworkException {
-        return urlConverter.getUrl(path, parameters, frameworkParameters, 
escapeAmps);
+        String url = urlConverter.getUrl(path, parameters, 
frameworkParameters, escapeAmps);
+        if (url == null) {
+            return fallbackConverter.getUrl(path, parameters, 
frameworkParameters, escapeAmps);
+        } else {
+            return url;
+        }
     }
 
 
@@ -117,10 +123,12 @@
         } catch (Exception e) {
             log.error(e.getMessage(), e);
         }
+        /*
         BasicUrlConverter buc = new BasicUrlConverter(this);
         if (! urlConverter.contains(buc)) {
             urlConverter.add(buc);
         }
+        */
         log.info("Configured BasicFramework: " + this);
 
     }
@@ -368,8 +376,7 @@
     }
 
     public <C> C loadSettingValue(Setting<C> setting) {
-        String v = 
SystemProperties.getComponentProperty(setting.getComponent().getName(),
-                setting.getName());
+        String v = 
SystemProperties.getComponentProperty(setting.getComponent().getName(), 
setting.getName());
         if (v != null) {
             return setting.getDataType().cast(v, null, null);
         }
@@ -377,7 +384,6 @@
     }
 
     public <C> void saveSettingValue(Setting<C> setting, C value) {
-        SystemProperties.setComponentProperty(setting.getComponent().getName(),
-                setting.getName(), value.toString());
+        
SystemProperties.setComponentProperty(setting.getComponent().getName(), 
setting.getName(), value.toString());
     }
 }


Index: BasicUrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/BasicUrlConverter.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- BasicUrlConverter.java      11 Apr 2008 10:23:58 -0000      1.15
+++ BasicUrlConverter.java      18 Apr 2008 13:47:13 -0000      1.16
@@ -26,7 +26,7 @@
  *
  *
  * @author Michiel Meeuwissen
- * @version $Id: BasicUrlConverter.java,v 1.15 2008/04/11 10:23:58 michiel Exp 
$
+ * @version $Id: BasicUrlConverter.java,v 1.16 2008/04/18 13:47:13 michiel Exp 
$
  * @since MMBase-1.9
  */
 public final class BasicUrlConverter implements UrlConverter {
@@ -35,6 +35,8 @@
     private static final CharTransformer PARAM_ESCAPER= new Url(Url.ESCAPE);
 
 
+
+
     /**
      * General utility function to create an Url
      *


Index: ChainedUrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/ChainedUrlConverter.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- ChainedUrlConverter.java    22 Feb 2008 14:05:57 -0000      1.6
+++ ChainedUrlConverter.java    18 Apr 2008 13:47:13 -0000      1.7
@@ -25,7 +25,7 @@
  * outcome of a converter can be added to the outcome of its preceder.
  *
  * @author Andr&eacute; van Toly
- * @version $Id: ChainedUrlConverter.java,v 1.6 2008/02/22 14:05:57 michiel 
Exp $
+ * @version $Id: ChainedUrlConverter.java,v 1.7 2008/04/18 13:47:13 michiel 
Exp $
  * @since MMBase-1.9
  */
 public class ChainedUrlConverter implements UrlConverter {
@@ -64,34 +64,26 @@
                          Map<String, Object> params,
                          Parameters frameworkParameters, boolean escapeAmps) 
throws FrameworkException {
 
-        String p = path;
         for (UrlConverter uc : uclist) {
-            String b = uc.getUrl(p, params, frameworkParameters, escapeAmps);
+            String b = uc.getUrl(path, params, frameworkParameters, 
escapeAmps);
             if (b != null) {
                 return b;
             }
-            //p = b;
         }
-        //log.debug("ChainedUrlConverter has: " + b);
-
-        return p;   // this seems incorrect (what if nothing is resolved by 
one of the uc's? then params etc. are lost)
+        return null;
     }
 
     public String getProcessUrl(String path,
                                 Map<String, Object> params,
                                 Parameters frameworkParameters, boolean 
escapeAmps) throws FrameworkException {
 
-        String p = path;
         for (UrlConverter uc : uclist) {
-            String b = uc.getProcessUrl(p, params, frameworkParameters, 
escapeAmps);
+            String b = uc.getProcessUrl(path, params, frameworkParameters, 
escapeAmps);
             if (b != null) {
                 return b;
             }
-            //p = b;
         }
-        //log.debug("ChainedUrlConverter has: " + b);
-
-        return p;   // this seems incorrect (what if nothing is resolved by 
one of the uc's? then params etc. are lost)
+        return null;
     }
 
 
@@ -101,14 +93,12 @@
     public String getInternalUrl(String path,
                                         Map<String, Object> params,
                                         Parameters frameworkParameters) throws 
FrameworkException {
-        String p = new String(path);
         for (UrlConverter uc : uclist) {
-            String b = uc.getInternalUrl(p.toString(), params, 
frameworkParameters);
+            String b = uc.getInternalUrl(path, params, frameworkParameters);
             log.debug("ChainedUrlConverter has: " + b);
             if (b != null) return b;
-            //p = b;
         }
-        return p;   // this seems incorrect (what if nothing is resolved by 
one of the uc's? then params etc. are lost)
+        return null;
     }
 
     public String toString() {


Index: MMBaseUrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/MMBaseUrlConverter.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- MMBaseUrlConverter.java     12 Apr 2008 12:58:20 -0000      1.6
+++ MMBaseUrlConverter.java     18 Apr 2008 13:47:13 -0000      1.7
@@ -20,7 +20,7 @@
  * was configured for this prefix).
  *
  * @author Michiel Meeuwissen
- * @version $Id: MMBaseUrlConverter.java,v 1.6 2008/04/12 12:58:20 michiel Exp 
$
+ * @version $Id: MMBaseUrlConverter.java,v 1.7 2008/04/18 13:47:13 michiel Exp 
$
  * @since MMBase-1.9
  */
 public class MMBaseUrlConverter implements UrlConverter {
@@ -56,7 +56,7 @@
     }
 
     public Parameter[] getParameterDefinition() {
-        return new Parameter[] {CATEGORY, COMPONENT, BLOCK};
+        return new Parameter[] {Parameter.REQUEST, CATEGORY, COMPONENT, BLOCK};
     }
 
     protected String getUrl(String path,
@@ -212,6 +212,7 @@
     }
     public String getInternalUrl(String page, Map<String, Object> params, 
Parameters frameworkParameters) {
         HttpServletRequest request = 
frameworkParameters.get(Parameter.REQUEST);
+        if (request == null) return null;
         if (page == null) throw new IllegalArgumentException();
         if (page.startsWith(dir)) {
             String sp = FrameworkFilter.getPath(request);


Index: UrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/UrlConverter.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- UrlConverter.java   25 Mar 2008 21:00:24 -0000      1.6
+++ UrlConverter.java   18 Apr 2008 13:47:13 -0000      1.7
@@ -23,7 +23,7 @@
  * They will be chained one after another.
 
  * @author Michiel Meeuwissen
- * @version $Id: UrlConverter.java,v 1.6 2008/03/25 21:00:24 nklasens Exp $
+ * @version $Id: UrlConverter.java,v 1.7 2008/04/18 13:47:13 michiel Exp $
  * @since MMBase-1.9
  */
 public interface UrlConverter {
@@ -40,7 +40,8 @@
      * @param escapeAmps <code>true</code> if parameters should be added with 
an escaped &amp; (&amp;amp;).
      *                   You should escape &amp; when a URL is exposed (i.e. 
in HTML), but not if the url is
      *                   for some reason called directly.
-     * @return An URL relative to the root of this web application (i.e. 
without a context path),
+     * @return An URL relative to the root of this web application (i.e. 
without a context
+     * path). <code>null</code> if not determinable.
      * @throws FrameworkException thrown when something goes wrong in the 
Framework
      */
     String getUrl(String path,
@@ -48,6 +49,9 @@
                   Parameters frameworkParameters,
                   boolean escapeAmps) throws FrameworkException;
 
+    /**
+     * @return An URL relative to the root of this web application (i.e. 
without a context  path). Never <code>null</code>
+     */
     String getProcessUrl(String path,
                          Map<String, Object> parameters,
                          Parameters frameworkParameters,
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to