Update of /var/cvs/src/org/mmbase/framework/basic
In directory james.mmbase.org:/tmp/cvs-serv10667/basic
Modified Files:
BasicFramework.java ChainedUrlConverter.java
DirectoryUrlConverter.java State.java
Log Message:
if 'filtered' by a specified url converter, don't jump to another one.
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.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- BasicFramework.java 1 Sep 2008 08:12:40 -0000 1.33
+++ BasicFramework.java 1 Sep 2008 21:05:02 -0000 1.34
@@ -34,7 +34,7 @@
* are configured is the order in which they are processed.
*
* @author Michiel Meeuwissen
- * @version $Id: BasicFramework.java,v 1.33 2008/09/01 08:12:40 michiel Exp $
+ * @version $Id: BasicFramework.java,v 1.34 2008/09/01 21:05:02 michiel Exp $
* @since MMBase-1.9
*/
public class BasicFramework extends Framework {
@@ -234,7 +234,9 @@
}
state.render(actualRenderer);
+
setBlockParametersForRender(state, blockParameters);
+
RenderHints hints = new RenderHints(actualRenderer, windowState,
state.getId(), getComponentClass());
actualRenderer.render(blockParameters, w, hints);
} catch (FrameworkException fe) {
Index: ChainedUrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/ChainedUrlConverter.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- ChainedUrlConverter.java 1 Sep 2008 07:06:12 -0000 1.8
+++ ChainedUrlConverter.java 1 Sep 2008 21:05:02 -0000 1.9
@@ -11,6 +11,8 @@
import java.util.*;
+import javax.servlet.http.HttpServletRequest;
+
import org.mmbase.framework.*;
import org.mmbase.util.functions.Parameters;
import org.mmbase.util.functions.Parameter;
@@ -25,13 +27,14 @@
* outcome of a converter can be added to the outcome of its preceder.
*
* @author André van Toly
- * @version $Id: ChainedUrlConverter.java,v 1.8 2008/09/01 07:06:12 michiel
Exp $
+ * @version $Id: ChainedUrlConverter.java,v 1.9 2008/09/01 21:05:02 michiel
Exp $
* @since MMBase-1.9
*/
public class ChainedUrlConverter implements UrlConverter {
private static final Logger log =
Logging.getLoggerInstance(ChainedUrlConverter.class);
+ public static String URLCONVERTER = "org.mmbase.urlconverter";
/**
* List containing the UrlConverters found in the framework configuration.
*/
@@ -73,9 +76,17 @@
Map<String, Object> params,
Parameters frameworkParameters, boolean escapeAmps)
throws FrameworkException {
+ HttpServletRequest request =
BasicUrlConverter.getUserRequest(frameworkParameters.get(Parameter.REQUEST));
for (UrlConverter uc : uclist) {
String b = uc.getUrl(path, params, frameworkParameters,
escapeAmps);
if (b != null) {
+ UrlConverter current = (UrlConverter)
request.getAttribute(URLCONVERTER);
+ if (current != null && uc != current) {
+ log.debug("Explicit block, but not currently rendering is
done by other UrlConverter");
+ return null;
+ } else {
+ log.debug("No current urlconverter ");
+ }
return b;
}
}
@@ -104,8 +115,12 @@
Parameters frameworkParameters) throws
FrameworkException {
for (UrlConverter uc : uclist) {
String b = uc.getInternalUrl(path, params, frameworkParameters);
+ if (b != null) {
log.debug("ChainedUrlConverter has: " + b);
- if (b != null) return b;
+ HttpServletRequest request =
BasicUrlConverter.getUserRequest(frameworkParameters.get(Parameter.REQUEST));
+ request.setAttribute(URLCONVERTER, uc);
+ return b;
+ }
}
return null;
}
Index: DirectoryUrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/DirectoryUrlConverter.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- DirectoryUrlConverter.java 1 Sep 2008 18:36:04 -0000 1.3
+++ DirectoryUrlConverter.java 1 Sep 2008 21:05:02 -0000 1.4
@@ -26,7 +26,7 @@
* #getFilteredInternalUrl}.
*
* @author Michiel Meeuwissen
- * @version $Id: DirectoryUrlConverter.java,v 1.3 2008/09/01 18:36:04 michiel
Exp $
+ * @version $Id: DirectoryUrlConverter.java,v 1.4 2008/09/01 21:05:02 michiel
Exp $
* @since MMBase-1.9
*/
public abstract class DirectoryUrlConverter implements UrlConverter {
@@ -90,6 +90,10 @@
public Block getBlock(String path, Parameters frameworkParameters) throws
FrameworkException {
+
+ HttpServletRequest request =
BasicUrlConverter.getUserRequest(frameworkParameters.get(Parameter.REQUEST));
+ State state = State.getState(request);
+
// First explore
Block block = getExplicitBlock(frameworkParameters);
if (block != null) {
@@ -101,14 +105,12 @@
return block;
}
- HttpServletRequest request =
BasicUrlConverter.getUserRequest(frameworkParameters.get(Parameter.REQUEST));
if (directory == null) throw new RuntimeException("Directory not set");
-
// dealing with the case when we know that we're in 'nice' mode
already.
boolean filteredMode =
FrameworkFilter.getPath(request).startsWith(directory);
+
if (filteredMode) {
- State state = State.getState(request);
if (state.isRendering() && state.getDepth() == 0) {
Block stateBlock = state.getBlock();
if (components == null ||
components.contains(stateBlock.getComponent())) {
Index: State.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/State.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- State.java 26 Aug 2008 06:45:36 -0000 1.9
+++ State.java 1 Sep 2008 21:05:02 -0000 1.10
@@ -25,7 +25,7 @@
*
*
* @author Michiel Meeuwissen
- * @version $Id: State.java,v 1.9 2008/08/26 06:45:36 michiel Exp $
+ * @version $Id: State.java,v 1.10 2008/09/01 21:05:02 michiel Exp $
* @since MMBase-1.9
*/
public class State {
@@ -166,7 +166,7 @@
protected void setType(Renderer.Type t) {
if (t.ordinal() < type.ordinal()) {
- throw new IllegalStateException();
+ throw new IllegalStateException(t + " should not have come after "
+ type);
}
if (t.ordinal() > type.ordinal()) {
// restart keeping the track.
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs