You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2008/06/18 22:06:24 UTC
svn commit: r669275 - in /cocoon/whiteboard/corona/trunk:
corona-sample/src/main/resources/COB-INF/
corona-sample/src/main/resources/COB-INF/error-handling/
corona-servlet/src/main/java/org/apache/cocoon/corona/servlet/util/
corona-sitemap/src/main/jav...
Author: reinhard
Date: Wed Jun 18 13:06:24 2008
New Revision: 669275
URL: http://svn.apache.org/viewvc?rev=669275&view=rev
Log:
. tidy up object model
. put the current exception into the object model
. use match/select/otherwise in handle-errors section
Modified:
cocoon/whiteboard/corona/trunk/corona-sample/src/main/resources/COB-INF/error-handling/404.xml
cocoon/whiteboard/corona/trunk/corona-sample/src/main/resources/COB-INF/sitemap.xmap
cocoon/whiteboard/corona/trunk/corona-servlet/src/main/java/org/apache/cocoon/corona/servlet/util/ObjectModelProvider.java
cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/InvocationImpl.java
cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/expression/JexlLanguageInterpreter.java
cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/expression/SitemapLanguageInterpreter.java
cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/objectmodel/ObjectModel.java
Modified: cocoon/whiteboard/corona/trunk/corona-sample/src/main/resources/COB-INF/error-handling/404.xml
URL: http://svn.apache.org/viewvc/cocoon/whiteboard/corona/trunk/corona-sample/src/main/resources/COB-INF/error-handling/404.xml?rev=669275&r1=669274&r2=669275&view=diff
==============================================================================
--- cocoon/whiteboard/corona/trunk/corona-sample/src/main/resources/COB-INF/error-handling/404.xml (original)
+++ cocoon/whiteboard/corona/trunk/corona-sample/src/main/resources/COB-INF/error-handling/404.xml Wed Jun 18 13:06:24 2008
@@ -17,7 +17,7 @@
-->
<html>
<head>
- <title>404 Resource Not Available (Cocoon Integration Tests)</title>
+ <title>404 Resource Not Available (Corona Integration Tests)</title>
</head>
- <body>404 Resource Not Available (Cocoon Integration Tests)</body>
+ <body>404 Resource Not Available (Corona Integration Tests)</body>
</html>
Modified: cocoon/whiteboard/corona/trunk/corona-sample/src/main/resources/COB-INF/sitemap.xmap
URL: http://svn.apache.org/viewvc/cocoon/whiteboard/corona/trunk/corona-sample/src/main/resources/COB-INF/sitemap.xmap?rev=669275&r1=669274&r2=669275&view=diff
==============================================================================
--- cocoon/whiteboard/corona/trunk/corona-sample/src/main/resources/COB-INF/sitemap.xmap (original)
+++ cocoon/whiteboard/corona/trunk/corona-sample/src/main/resources/COB-INF/sitemap.xmap Wed Jun 18 13:06:24 2008
@@ -263,8 +263,16 @@
</map:pipeline>
<map:handle-errors>
- <map:generate type="exception" src="error-handling/503.xml" />
- <map:serialize type="xhtml" status-code="503" />
+ <map:match value="{jexl:corona.exception.class.name}">
+ <map:when contains="NoMatchingPipelineException">
+ <map:generate src="error-handling/404.xml" />
+ <map:serialize type="xhtml" status-code="404" />
+ </map:when>
+ <map:otherwise>
+ <map:generate src="error-handling/500.xml" />
+ <map:serialize type="xhtml" status-code="500" />
+ </map:otherwise>
+ </map:match>
<!--
<map:select type="custom-exception">
<map:when test="not-found">
Modified: cocoon/whiteboard/corona/trunk/corona-servlet/src/main/java/org/apache/cocoon/corona/servlet/util/ObjectModelProvider.java
URL: http://svn.apache.org/viewvc/cocoon/whiteboard/corona/trunk/corona-servlet/src/main/java/org/apache/cocoon/corona/servlet/util/ObjectModelProvider.java?rev=669275&r1=669274&r2=669275&view=diff
==============================================================================
--- cocoon/whiteboard/corona/trunk/corona-servlet/src/main/java/org/apache/cocoon/corona/servlet/util/ObjectModelProvider.java (original)
+++ cocoon/whiteboard/corona/trunk/corona-servlet/src/main/java/org/apache/cocoon/corona/servlet/util/ObjectModelProvider.java Wed Jun 18 13:06:24 2008
@@ -29,7 +29,7 @@
public static ObjectModel provide(Map<String, Object> parameters) {
Map<String, Object> corona = new HashMap<String, Object>();
ObjectModel objectModel = new ObjectModel();
- objectModel.put("corona", corona);
+ objectModel.setCoronaObject(corona);
HttpServletRequest request = HttpContextHelper.getRequest(parameters);
corona.put("request", new ObjectModelRequest(request));
Modified: cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/InvocationImpl.java
URL: http://svn.apache.org/viewvc/cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/InvocationImpl.java?rev=669275&r1=669274&r2=669275&view=diff
==============================================================================
--- cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/InvocationImpl.java (original)
+++ cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/InvocationImpl.java Wed Jun 18 13:06:24 2008
@@ -139,7 +139,7 @@
}
public String getSitemapParameter(String parameterName) {
- return this.objectModel.sitemapParameters.getParameter(parameterName);
+ return this.objectModel.getSitemapParameters().getParameter(parameterName);
}
/**
@@ -205,7 +205,7 @@
* @see org.apache.cocoon.corona.sitemap.Invocation#popSitemapParameters()
*/
public void popSitemapParameters() {
- this.objectModel.sitemapParameters.popParameters();
+ this.objectModel.getSitemapParameters().popParameters();
}
/**
@@ -214,7 +214,7 @@
* @see org.apache.cocoon.corona.sitemap.Invocation#pushSitemapParameters(java.lang.String, java.util.Map)
*/
public void pushSitemapParameters(String nodeName, Map<String, ? extends Object> sitemapParameters) {
- this.objectModel.sitemapParameters.pushParameters(nodeName, sitemapParameters);
+ this.objectModel.getSitemapParameters().pushParameters(nodeName, sitemapParameters);
}
/**
@@ -262,6 +262,7 @@
* @see org.apache.cocoon.corona.sitemap.Invocation#setThrowable(java.lang.Throwable)
*/
public void setThrowable(Throwable throwable) {
+ this.objectModel.getCoronaObject().put("exception", throwable);
ParameterHelper.setThrowable(this.parameters, throwable);
}
Modified: cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/expression/JexlLanguageInterpreter.java
URL: http://svn.apache.org/viewvc/cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/expression/JexlLanguageInterpreter.java?rev=669275&r1=669274&r2=669275&view=diff
==============================================================================
--- cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/expression/JexlLanguageInterpreter.java (original)
+++ cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/expression/JexlLanguageInterpreter.java Wed Jun 18 13:06:24 2008
@@ -29,13 +29,14 @@
public JexlLanguageInterpreter() {
}
+ @SuppressWarnings("unchecked")
public String resolve(String expression, ObjectModel objectModel) {
Object o = null;
try {
Expression e = ExpressionFactory.createExpression(expression);
JexlContext jc = JexlHelper.createContext();
- for (String key : objectModel.get().keySet()) {
- jc.getVars().put(key, objectModel.get().get(key));
+ for (String key : objectModel.getModel().keySet()) {
+ jc.getVars().put(key, objectModel.getModel().get(key));
}
o = e.evaluate(jc);
Modified: cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/expression/SitemapLanguageInterpreter.java
URL: http://svn.apache.org/viewvc/cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/expression/SitemapLanguageInterpreter.java?rev=669275&r1=669274&r2=669275&view=diff
==============================================================================
--- cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/expression/SitemapLanguageInterpreter.java (original)
+++ cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/expression/SitemapLanguageInterpreter.java Wed Jun 18 13:06:24 2008
@@ -26,6 +26,6 @@
}
public String resolve(String variable, ObjectModel objectModel) {
- return objectModel.sitemapParameters.getParameter(variable);
+ return objectModel.getSitemapParameters().getParameter(variable);
}
}
Modified: cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/objectmodel/ObjectModel.java
URL: http://svn.apache.org/viewvc/cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/objectmodel/ObjectModel.java?rev=669275&r1=669274&r2=669275&view=diff
==============================================================================
--- cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/objectmodel/ObjectModel.java (original)
+++ cocoon/whiteboard/corona/trunk/corona-sitemap/src/main/java/org/apache/cocoon/corona/sitemap/objectmodel/ObjectModel.java Wed Jun 18 13:06:24 2008
@@ -21,9 +21,12 @@
import org.apache.cocoon.corona.sitemap.SitemapParameters;
+/**
+ * Object model for corona that can is used by expression languages.
+ */
public class ObjectModel {
- public SitemapParameters sitemapParameters = new SitemapParameters();
+ private SitemapParameters sitemapParameters = new SitemapParameters();
private Map<String, Object> model = new HashMap<String, Object>();
@@ -31,7 +34,25 @@
this.model.put(key, object);
}
- public Map<String, Object> get() {
+ public Object get(String key) {
+ return this.model.get(key);
+ }
+
+ public Map<String, Object> getModel() {
return this.model;
}
+
+ public void setCoronaObject(Map<String, Object> corona) {
+ this.model.put("corona", corona);
+ }
+
+ @SuppressWarnings("unchecked")
+ public Map<String, Object> getCoronaObject() {
+ return (Map<String, Object>) this.model.get("corona");
+ }
+
+ public SitemapParameters getSitemapParameters() {
+ return this.sitemapParameters;
+ }
+
}