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/04/20 23:23:59 UTC

svn commit: r649982 - /cocoon/whiteboard/corona/trunk/corona-controller/src/main/java/org/apache/cocoon/corona/controller/node/CallNode.java

Author: reinhard
Date: Sun Apr 20 14:23:58 2008
New Revision: 649982

URL: http://svn.apache.org/viewvc?rev=649982&view=rev
Log:
COCOON-2202
Resolve Sitemap parameters before passing them to a Controller. (patch by Steven Dolg)

Modified:
    cocoon/whiteboard/corona/trunk/corona-controller/src/main/java/org/apache/cocoon/corona/controller/node/CallNode.java

Modified: cocoon/whiteboard/corona/trunk/corona-controller/src/main/java/org/apache/cocoon/corona/controller/node/CallNode.java
URL: http://svn.apache.org/viewvc/cocoon/whiteboard/corona/trunk/corona-controller/src/main/java/org/apache/cocoon/corona/controller/node/CallNode.java?rev=649982&r1=649981&r2=649982&view=diff
==============================================================================
--- cocoon/whiteboard/corona/trunk/corona-controller/src/main/java/org/apache/cocoon/corona/controller/node/CallNode.java (original)
+++ cocoon/whiteboard/corona/trunk/corona-controller/src/main/java/org/apache/cocoon/corona/controller/node/CallNode.java Sun Apr 20 14:23:58 2008
@@ -20,6 +20,7 @@
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Map.Entry;
 
 import org.apache.cocoon.corona.sitemap.Invocation;
 import org.apache.cocoon.corona.sitemap.node.AbstractSitemapNode;
@@ -27,7 +28,7 @@
 import org.apache.cocoon.corona.sitemap.node.Node;
 import org.apache.cocoon.corona.sitemap.node.annotations.Parameter;
 
-@Node(name="call")
+@Node(name = "call")
 public class CallNode extends AbstractSitemapNode {
 
     @Parameter
@@ -35,7 +36,12 @@
 
     @Override
     public InvocationResult invoke(Invocation invocation) {
-        Map<String, Object> parameters = new HashMap<String, Object>(this.getParameters());
+        Map<String, Object> parameters = new HashMap<String, Object>();
+        for (Entry<String, String> entry : this.getParameters().entrySet()) {
+            String resolvedValue = invocation.resolveParameter(entry.getValue());
+            parameters.put(entry.getKey(), resolvedValue);
+        }
+
         invocation.installComponent("controller:" + this.wrapperType, parameters);
         return InvocationResult.COMPLETED;
     }