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é 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;).
* You should escape & 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