You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2013/11/11 21:39:27 UTC
git commit: Juggle things a bit so that Underscore can be rolled into
the core JavaScript stack
Updated Branches:
refs/heads/master 8b5e3530d -> 4eb1fd2fd
Juggle things a bit so that Underscore can be rolled into the core JavaScript stack
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/4eb1fd2f
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/4eb1fd2f
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/4eb1fd2f
Branch: refs/heads/master
Commit: 4eb1fd2fd71ae6a8c78402e61ee9d2c7f58fd21a
Parents: 8b5e353
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Mon Nov 11 12:19:53 2013 -0800
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Mon Nov 11 12:19:53 2013 -0800
----------------------------------------------------------------------
.../tapestry5/modules/JavaScriptModule.java | 12 +++++++++---
.../assets/tapestry5/underscore-shim.js | 20 ++++++++++++++++++++
2 files changed, 29 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/4eb1fd2f/tapestry-core/src/main/java/org/apache/tapestry5/modules/JavaScriptModule.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/modules/JavaScriptModule.java b/tapestry-core/src/main/java/org/apache/tapestry5/modules/JavaScriptModule.java
index e1b4a68..220e575 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/modules/JavaScriptModule.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/modules/JavaScriptModule.java
@@ -87,6 +87,8 @@ public class JavaScriptModule
* <dt>requirejs</dt> <dd>The RequireJS AMD JavaScript library</dd>
* <dt>scriptaculous.js, effects.js</dt> <dd>Optional JavaScript libraries in compatibility mode (see {@link Trait#SCRIPTACULOUS})</dd>
* <dt>t53-compatibility.js</dt> <dd>Optional JavaScript library (see {@link Trait#INITIALIZERS})</dd>
+ * <dt>underscore-library, underscore-module</dt>
+ * <dt>The Underscore JavaScript library, and the shim that allows underscore to be injected</dt>
* <dt>t5/core/init</dt> <dd>Optional module related to t53-compatibility.js</dd>
* <dt>bootstrap.css, tapestry.css, exception-frame.css, tapestry-console.css, tree.css</dt>
* <dd>CSS files</dd>
@@ -107,6 +109,7 @@ public class JavaScriptModule
String provider)
{
configuration.add("requirejs", new StackExtension(StackExtensionType.LIBRARY, requireJS));
+ configuration.add("underscore-library", new StackExtension(StackExtensionType.LIBRARY, "${tapestry.asset.root}/underscore-1.5.2.js"));
final String ROOT = "${tapestry.asset.root}";
@@ -142,6 +145,8 @@ public class JavaScriptModule
configuration.add(full, new StackExtension(StackExtensionType.MODULE, full));
}
+ configuration.add("underscore-module", new StackExtension(StackExtensionType.MODULE, "underscore"));
+
if (provider.equals("jquery"))
{
add(configuration, StackExtensionType.MODULE, "jquery");
@@ -260,8 +265,8 @@ public class JavaScriptModule
@Contribute(ModuleManager.class)
public static void setupBaseModules(MappedConfiguration<String, Object> configuration,
- @Path("${tapestry.asset.root}/underscore-1.5.2.js")
- Resource underscore,
+ @Path("${tapestry.asset.root}/underscore-shim.js")
+ Resource underscoreShim,
@Path("${tapestry.asset.root}/jquery-shim.js")
Resource jqueryShim,
@@ -278,7 +283,8 @@ public class JavaScriptModule
@Path("${" + SymbolConstants.BOOTSTRAP_ROOT + "}/js/transition.js")
Resource transition)
{
- configuration.add("underscore", new JavaScriptModuleConfiguration(underscore).exports("_"));
+ // The underscore shim module allows Underscore to be injected
+ configuration.add("underscore", new JavaScriptModuleConfiguration(underscoreShim));
// Hacking around https://github.com/jrburke/requirejs/issues/534
configuration.add("jquery-library", new JavaScriptModuleConfiguration(jQuery));
configuration.add("jquery", new JavaScriptModuleConfiguration(jqueryShim));
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/4eb1fd2f/tapestry-core/src/main/resources/META-INF/assets/tapestry5/underscore-shim.js
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/tapestry5/underscore-shim.js b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/underscore-shim.js
new file mode 100644
index 0000000..61c3ebe
--- /dev/null
+++ b/tapestry-core/src/main/resources/META-INF/assets/tapestry5/underscore-shim.js
@@ -0,0 +1,20 @@
+// Copyright 2013 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http:#www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+define(function () {
+ // Because Underscore can load globally without causing a conflict, we can have the true underscore library
+ // just be a part of the core stack. This doesn't work with jQuery because the $ symbol can be a conflict
+ // between Prototype and jQuery when both are supported.
+ return _.noConflict();
+});