Author: vgritsenko Date: Thu Nov 11 18:17:15 2004 New Revision: 57489 Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_JavaScriptInterpreter.java cocoon/branches/BRANCH_2_1_X/status.xml Log: Flowscript: Deprecated support for passing sitemap parameters into flowscript function as positional arguments. Use cocoon.parameters instead. Support will be removed completely in Cocoon 2.2.
Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_JavaScriptInterpreter.java ============================================================================== --- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_JavaScriptInterpreter.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_JavaScriptInterpreter.java Thu Nov 11 18:17:15 2004 @@ -15,29 +15,13 @@ */ package org.apache.cocoon.components.flow.javascript.fom; -import java.awt.Dimension; -import java.awt.Toolkit; -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.Reader; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.StringTokenizer; - import org.apache.avalon.framework.CascadingRuntimeException; import org.apache.avalon.framework.activity.Initializable; import org.apache.avalon.framework.configuration.Configurable; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; import org.apache.avalon.framework.service.ServiceManager; + import org.apache.cocoon.ProcessingException; import org.apache.cocoon.ResourceNotFoundException; import org.apache.cocoon.components.ContextHelper; @@ -52,11 +36,13 @@ import org.apache.cocoon.environment.Redirector; import org.apache.cocoon.environment.Request; import org.apache.cocoon.environment.Session; + import org.apache.commons.jxpath.JXPathIntrospector; import org.apache.commons.jxpath.ri.JXPathContextReferenceImpl; import org.apache.excalibur.source.Source; import org.apache.excalibur.source.SourceResolver; import org.apache.excalibur.source.SourceValidity; +import org.mozilla.javascript.BaseFunction; import org.mozilla.javascript.Context; import org.mozilla.javascript.EcmaError; import org.mozilla.javascript.EvaluatorException; @@ -76,6 +62,23 @@ import org.mozilla.javascript.tools.debugger.Main; import org.mozilla.javascript.tools.shell.Global; +import java.awt.Dimension; +import java.awt.Toolkit; +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.Reader; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.StringTokenizer; + /** * Interface with the JavaScript interpreter. * @@ -707,6 +710,14 @@ Object fun = ScriptableObject.getProperty(thrScope, funName); if (fun == Scriptable.NOT_FOUND) { throw new ResourceNotFoundException("Function \"javascript:" + funName + "()\" not found"); + } + + // Check count of arguments + if (fun instanceof BaseFunction) { + if (((BaseFunction)fun).getArity() != 0) { + getLogger().error("Function '" + funName + "' must have no declared arguments! " + + "Use cocoon.parameters to reach parameters passed from the sitemap into the function."); + } } thrScope.setLock(true); Modified: cocoon/branches/BRANCH_2_1_X/status.xml ============================================================================== --- cocoon/branches/BRANCH_2_1_X/status.xml (original) +++ cocoon/branches/BRANCH_2_1_X/status.xml Thu Nov 11 18:17:15 2004 @@ -201,6 +201,11 @@ <changes> <release version="@version@" date="@date@"> + <action dev="VG" type="remove"> + Flowscript: Deprecated support for passing sitemap parameters into flowscript + function as positional arguments. Use cocoon.parameters instead. Support will + be removed completely in Cocoon 2.2. + </action> <action dev="RG" type="fix" fixes-bug="32159" due-to="Michal Durdina" due-to-email="[EMAIL PROTECTED]"> Portal: Request content length and content type are required in portlet ActionRequest for custom upload handling.