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;
+    }
+
 }