You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by ka...@apache.org on 2014/03/26 07:20:07 UTC
git commit: TAP5-2300: JavaScriptSupport.addInitializerCall is not
backwards compatible - apparently in 5.3,
a JSONArray implied an array of method arguments,
so unwrap it in addInitializerCall and add functionName to the arguments. I
wish there had been
Repository: tapestry-5
Updated Branches:
refs/heads/master b6ea90f11 -> d62d222d6
TAP5-2300: JavaScriptSupport.addInitializerCall is not backwards
compatible
- apparently in 5.3, a JSONArray implied an array of method arguments,
so unwrap it in addInitializerCall and add functionName to the
arguments. I wish there had been addInitializerCall(String functionName,
Object... parameters) to lose the ambiguity but given that
addInitializerCall is now deprecated, probably best to keep the existing
behavior for backwards compatibility
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/d62d222d
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/d62d222d
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/d62d222d
Branch: refs/heads/master
Commit: d62d222d69eb8cd5d0d0413d7f7b529a86777f1b
Parents: b6ea90f
Author: kaosko <ka...@apache.org>
Authored: Tue Mar 25 23:19:56 2014 -0700
Committer: kaosko <ka...@apache.org>
Committed: Tue Mar 25 23:19:56 2014 -0700
----------------------------------------------------------------------
.../services/ajax/JavaScriptSupportImpl.java | 26 +++++++++++++-------
.../ajax/JavaScriptSupportImplTest.groovy | 5 ++--
2 files changed, 20 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d62d222d/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImpl.java
index 8c358ca..08e1b88 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImpl.java
@@ -29,6 +29,7 @@ import org.apache.tapestry5.json.JSONArray;
import org.apache.tapestry5.json.JSONObject;
import org.apache.tapestry5.services.javascript.*;
+import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
@@ -99,6 +100,8 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
public void with(Object... arguments)
{
+ assert arguments != null;
+
this.arguments = new JSONArray(arguments);
}
}
@@ -177,28 +180,33 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
public void addInitializerCall(InitializationPriority priority, String functionName, JSONObject parameter)
{
- storeInitializerCall(priority, functionName, parameter);
+ createInitializer(priority).with(functionName, parameter);
}
public void addInitializerCall(String functionName, JSONArray parameter)
{
- storeInitializerCall(InitializationPriority.NORMAL, functionName, parameter);
+ addInitializerCall(InitializationPriority.NORMAL, functionName, parameter);
}
- public void addInitializerCall(InitializationPriority priority, String functionName, JSONArray parameter)
+ public void addInitializerCall(InitializationPriority priority, String functionName,
+ JSONArray parameter)
{
- storeInitializerCall(priority, functionName, parameter);
+ // TAP5-2300: In 5.3, a JSONArray implied an array of method arguments, so unwrap and add
+ // functionName to the arguments
+
+ List parameterList = new ArrayList(parameter.length() + 1);
+ parameterList.add(functionName);
+ parameterList.addAll(parameter.toList());
+ createInitializer(priority).with(parameterList.toArray());
}
- private void storeInitializerCall(InitializationPriority priority, String functionName, Object parameter)
+ private Initialization createInitializer(InitializationPriority priority)
{
assert priority != null;
- assert parameter != null;
- assert InternalUtils.isNonBlank(functionName);
importCoreStack();
- require("t5/core/init").priority(priority).with(functionName, parameter);
+ return require("t5/core/init").priority(priority);
}
public void addInitializerCall(String functionName, JSONObject parameter)
@@ -208,7 +216,7 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
public void addInitializerCall(InitializationPriority priority, String functionName, String parameter)
{
- storeInitializerCall(priority, functionName, parameter);
+ createInitializer(priority).with(functionName, parameter);
}
public void addInitializerCall(String functionName, String parameter)
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/d62d222d/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImplTest.groovy
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImplTest.groovy b/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImplTest.groovy
index c9f0983..9d4fe83 100644
--- a/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImplTest.groovy
+++ b/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportImplTest.groovy
@@ -1,5 +1,6 @@
package org.apache.tapestry5.internal.services.ajax
+import org.testng.annotations.Test;
import org.apache.tapestry5.Asset
import org.apache.tapestry5.ComponentResources
import org.apache.tapestry5.internal.InternalConstants
@@ -357,8 +358,8 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
train_for_just_core_stack stackSource
- train_init(linker, InitializationPriority.IMMEDIATE, "setup", chuck)
- train_init(linker, InitializationPriority.IMMEDIATE, "setup", buzz)
+ train_init(linker, InitializationPriority.IMMEDIATE, "setup", "chuck", "yeager")
+ train_init(linker, InitializationPriority.IMMEDIATE, "setup", "buzz", "aldrin")
replay()