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/27 22:25:21 UTC
[1/5] git commit: Remove extraneous quote
Updated Branches:
refs/heads/master 067916b6c -> ee695314f
Remove extraneous quote
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/33974428
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/33974428
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/33974428
Branch: refs/heads/master
Commit: 3397442844722c4da0991687e784f88afefce9ee
Parents: 067916b
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Wed Nov 27 11:34:30 2013 -0800
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Wed Nov 27 11:34:30 2013 -0800
----------------------------------------------------------------------
.../services/assets/AssetChecksumGeneratorImpl.java | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/33974428/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/AssetChecksumGeneratorImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/AssetChecksumGeneratorImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/AssetChecksumGeneratorImpl.java
index db8776e..de433fc 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/AssetChecksumGeneratorImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/AssetChecksumGeneratorImpl.java
@@ -14,11 +14,6 @@
package org.apache.tapestry5.internal.services.assets;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Map;
-import java.util.zip.Adler32;
-
import org.apache.tapestry5.ioc.Resource;
import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
import org.apache.tapestry5.services.assets.AssetChecksumGenerator;
@@ -26,6 +21,11 @@ import org.apache.tapestry5.services.assets.StreamableResource;
import org.apache.tapestry5.services.assets.StreamableResourceProcessing;
import org.apache.tapestry5.services.assets.StreamableResourceSource;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Map;
+import java.util.zip.Adler32;
+
public class AssetChecksumGeneratorImpl implements AssetChecksumGenerator
{
@@ -87,7 +87,7 @@ public class AssetChecksumGeneratorImpl implements AssetChecksumGenerator
checksum.update(buffer, 0, length);
}
- // Reduces it down to just 32 bits which we express in hex.'
+ // Reduces it down to just 32 bits which we express in hex.
return Long.toHexString(checksum.getValue());
} finally
{
[3/5] git commit: Correct comment
Posted by hl...@apache.org.
Correct comment
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/87d645c8
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/87d645c8
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/87d645c8
Branch: refs/heads/master
Commit: 87d645c8b46cb40a69aca8c6b835ad3b6e20e344
Parents: 1b43760
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Wed Nov 27 11:37:47 2013 -0800
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Wed Nov 27 11:37:47 2013 -0800
----------------------------------------------------------------------
.../coffeescript/META-INF/modules/t5/core/exception-display.coffee | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/87d645c8/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee
index 581100d..9106350 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# ## t5/core/exception-report
+# ## t5/core/exception-display
#
# Provides dynamic behavior for the t5/core/ExceptionDisplay component; specifically,
# filtering the stack trace.
[5/5] git commit: TAP5-2238: When require-ing a module that is part
of a JavaScript Stack, the entire stack should be imported
Posted by hl...@apache.org.
TAP5-2238: When require-ing a module that is part of a JavaScript Stack, the entire stack should be imported
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/ee695314
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/ee695314
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/ee695314
Branch: refs/heads/master
Commit: ee695314fab6794edeeda80bbc9875b6114cfc2a
Parents: e514e7f
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Wed Nov 27 13:25:13 2013 -0800
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Wed Nov 27 13:25:13 2013 -0800
----------------------------------------------------------------------
.../services/ajax/JavaScriptSupportImpl.java | 56 ++++++++++++------
.../services/javascript/JavaScriptSupport.java | 14 +++--
.../ajax/JavaScriptSupportAutofocusTests.groovy | 2 +
.../ajax/JavaScriptSupportImplTest.groovy | 62 +++++++++++++++++++-
4 files changed, 112 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ee695314/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 bcce095..eb8defb 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
@@ -14,13 +14,6 @@
package org.apache.tapestry5.internal.services.ajax;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
import org.apache.tapestry5.Asset;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.FieldFocusPriority;
@@ -34,13 +27,9 @@ import org.apache.tapestry5.ioc.internal.util.InternalUtils;
import org.apache.tapestry5.ioc.util.IdAllocator;
import org.apache.tapestry5.json.JSONArray;
import org.apache.tapestry5.json.JSONObject;
-import org.apache.tapestry5.services.javascript.Initialization;
-import org.apache.tapestry5.services.javascript.InitializationPriority;
-import org.apache.tapestry5.services.javascript.JavaScriptStack;
-import org.apache.tapestry5.services.javascript.JavaScriptStackSource;
-import org.apache.tapestry5.services.javascript.JavaScriptSupport;
-import org.apache.tapestry5.services.javascript.ModuleConfigurationCallback;
-import org.apache.tapestry5.services.javascript.StylesheetLink;
+import org.apache.tapestry5.services.javascript.*;
+
+import java.util.*;
public class JavaScriptSupportImpl implements JavaScriptSupport
{
@@ -70,7 +59,7 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
private String focusFieldId;
- private Map<String, String> libraryURLToStackName;
+ private Map<String, String> libraryURLToStackName, moduleNameToStackName;
class InitializationImpl implements Initialization
{
@@ -246,7 +235,7 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
{
addScript(InitializationPriority.NORMAL, format, arguments);
}
-
+
public void addModuleConfigurationCallback(ModuleConfigurationCallback callback)
{
linker.addModuleConfigurationCallback(callback);
@@ -301,6 +290,7 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
return getLibraryURLToStackName().get(libraryURL);
}
+
private Map<String, String> getLibraryURLToStackName()
{
if (libraryURLToStackName == null)
@@ -319,6 +309,31 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
return libraryURLToStackName;
}
+ private String findStackForModule(String moduleName)
+ {
+ return getModuleNameToStackName().get(moduleName);
+ }
+
+ private Map<String, String> getModuleNameToStackName()
+ {
+
+ if (moduleNameToStackName == null)
+ {
+ moduleNameToStackName = CollectionFactory.newMap();
+
+ for (String stackName : javascriptStackSource.getStackNames())
+ {
+ for (String moduleName : javascriptStackSource.getStack(stackName).getModules())
+ {
+ moduleNameToStackName.put(moduleName, stackName);
+ }
+ }
+ }
+
+ return moduleNameToStackName;
+ }
+
+
private void addAssetsFromStack(String stackName)
{
if (addedStacks.containsKey(stackName))
@@ -333,7 +348,7 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
// end, avoiding the TAP5-2197 bug.
final List<String> reversedStacks = new ArrayList<String>(stack.getStacks());
Collections.reverse(reversedStacks);
-
+
for (String dependentStackname : reversedStacks)
{
addAssetsFromStack(dependentStackname);
@@ -423,6 +438,13 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
addAssetsFromStack(InternalConstants.CORE_STACK_NAME);
+ String stackName = findStackForModule(moduleName);
+
+ if (stackName != null)
+ {
+ importStack(stackName);
+ }
+
InitializationImpl init = new InitializationImpl(moduleName);
inits.add(init);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ee695314/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavaScriptSupport.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavaScriptSupport.java b/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavaScriptSupport.java
index 1b24e1b..caff985 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavaScriptSupport.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavaScriptSupport.java
@@ -1,4 +1,4 @@
-// Copyright 2010, 2011, 2012 The Apache Software Foundation
+// Copyright 2010-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.
@@ -250,6 +250,11 @@ public interface JavaScriptSupport
* In some cases, a module exports no functions, but performs some initialization (typically, adding document-level
* event handlers), in which case a call to require() is sufficient. In cases where the module, or a function
* within the module, are invoked with no parameters, the calls will be collapsed into a single invocation.
+ * <p/>
+ * If the module is part of a {@linkplain org.apache.tapestry5.services.javascript.JavaScriptStack#getModules() JavaScript stack},
+ * then the stack will be imported; this is important when {@linkplain SymbolConstants#COMBINE_SCRIPTS JavaScript aggregation is enabled},
+ * but also ensures that libraries in the stack are loaded before the module (for cases where the
+ * module has dependencies on libraries not wrapped as AMD modules).
*
* @param moduleName
* the name of the module to require
@@ -257,11 +262,12 @@ public interface JavaScriptSupport
* @since 5.4
*/
Initialization require(String moduleName);
-
+
/**
* Adds a module configuration callback for this request.
- *
- * @param callback a {@link ModuleConfigurationCallback}. It cannot be null.
+ *
+ * @param callback
+ * a {@link ModuleConfigurationCallback}. It cannot be null.
* @see DocumentLinker#addModuleConfigurationCallback(ModuleConfigurationCallback)
* @since 5.4
*/
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ee695314/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportAutofocusTests.groovy
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportAutofocusTests.groovy b/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportAutofocusTests.groovy
index ba023f8..afd7279 100644
--- a/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportAutofocusTests.groovy
+++ b/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportAutofocusTests.groovy
@@ -34,6 +34,8 @@ class JavaScriptSupportAutofocusTests extends InternalBaseTestCase {
def stackSource = newMock(JavaScriptStackSource.class)
def stackPathConstructor = newMock(JavaScriptStackPathConstructor.class)
+ expect(stackSource.stackNames).andReturn([])
+
linker.addInitialization(InitializationPriority.NORMAL, "t5/core/pageinit", "focus",
JSONArray.from([expectedFieldId]))
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ee695314/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 2b8abd1..b8947d4 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
@@ -40,13 +40,16 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
@Test
void partial_mode_add_script() {
DocumentLinker linker = mockDocumentLinker()
+ def stackSource = mockJavaScriptStackSource()
+
+ train_for_just_core_stack stackSource
linker.addInitialization(InitializationPriority.NORMAL, "t5/core/pageinit", "evalJavaScript",
new JSONArray().put("doSomething();"))
replay()
- JavaScriptSupportImpl jss = new JavaScriptSupportImpl(linker, null, null, new IdAllocator(), true)
+ JavaScriptSupportImpl jss = new JavaScriptSupportImpl(linker, stackSource, null, new IdAllocator(), true)
jss.addScript("doSomething();")
@@ -158,6 +161,44 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
verify()
}
+ @Test
+ void requireing_a_module_may_import_a_stack() {
+ DocumentLinker linker = mockDocumentLinker()
+ JavaScriptStackSource stackSource = mockJavaScriptStackSource()
+ JavaScriptStackPathConstructor pathConstructor = mockJavaScriptStackPathConstructor()
+
+ JavaScriptStack mystack = mockJavaScriptStack()
+
+ expect(stackSource.stackNames).andReturn(["mystack"])
+ expect(stackSource.getStack("mystack")).andReturn(mystack).atLeastOnce()
+
+ expect(mystack.modules).andReturn(["foo/bar"])
+
+ expect(mystack.stacks).andReturn([])
+
+ expect(pathConstructor.constructPathsForJavaScriptStack("mystack")).andReturn(["stacks/mystack.js"])
+
+ expect(mystack.stylesheets).andReturn([])
+
+ expect(mystack.initialization).andReturn null
+
+ linker.addLibrary("stacks/mystack.js")
+
+ linker.addInitialization(InitializationPriority.NORMAL, "foo/bar", null, null)
+
+ replay()
+
+ JavaScriptSupportImpl jss = new JavaScriptSupportImpl(linker, stackSource, pathConstructor, null, true)
+
+ jss.require("foo/bar")
+
+ jss.commit()
+
+ verify()
+
+ }
+
+
private void trainForNoStackNames(JavaScriptStackSource stackSource) {
// This is slightly odd, as it would normally return "core" at a minimum, but we test for that separately.
@@ -288,6 +329,8 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
JavaScriptStackSource stackSource = mockJavaScriptStackSource()
JavaScriptStackPathConstructor pathConstructor = mockJavaScriptStackPathConstructor()
+ train_for_just_core_stack stackSource
+
train_init(linker, InitializationPriority.IMMEDIATE, "setup", "chuck")
train_init(linker, InitializationPriority.IMMEDIATE, "setup", "charley")
@@ -312,6 +355,8 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
JSONArray chuck = new JSONArray("chuck", "yeager")
JSONArray buzz = new JSONArray("buzz", "aldrin")
+ train_for_just_core_stack stackSource
+
train_init(linker, InitializationPriority.IMMEDIATE, "setup", chuck)
train_init(linker, InitializationPriority.IMMEDIATE, "setup", buzz)
@@ -341,6 +386,8 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
JavaScriptStackSource stackSource = mockJavaScriptStackSource()
JavaScriptStackPathConstructor pathConstructor = mockJavaScriptStackPathConstructor()
+ train_for_just_core_stack stackSource
+
train_init(linker, InitializationPriority.NORMAL, "setup", "chuck")
replay()
@@ -354,6 +401,17 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
verify()
}
+ def train_for_just_core_stack(stackSource) {
+ def coreStack = mockJavaScriptStack()
+
+ expect(stackSource.stackNames).andReturn(["core"])
+
+ expect(stackSource.getStack("core")).andReturn(coreStack)
+
+ expect(coreStack.modules).andReturn([])
+ }
+
+
@Test
void default_for_init_array_is_normal_priority() {
DocumentLinker linker = mockDocumentLinker()
@@ -362,6 +420,8 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
JSONArray chuck = new JSONArray("chuck", "yeager")
+ train_for_just_core_stack stackSource
+
train_init(linker, InitializationPriority.NORMAL, "setup", chuck)
replay()
[4/5] git commit: Include several additional t5/core modules in the
core JavaScript Stack
Posted by hl...@apache.org.
Include several additional t5/core modules in 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/e514e7fc
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/e514e7fc
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/e514e7fc
Branch: refs/heads/master
Commit: e514e7fcf2e1037ea70d0315afd1aa545d94bd8d
Parents: 87d645c
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Wed Nov 27 11:40:22 2013 -0800
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Wed Nov 27 11:40:22 2013 -0800
----------------------------------------------------------------------
.../java/org/apache/tapestry5/modules/JavaScriptModule.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/e514e7fc/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 fd095a9..9ac78e1 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
@@ -75,8 +75,11 @@ public class JavaScriptModule
configuration.add(InternalConstants.CORE_STACK_NAME, coreStack);
}
+ // These are automatically bundles with the core JavaScript stack; some applications may want to add a few
+ // additional ones, such as t5/core/zone.
private static final String[] bundledModules = new String[]{
- "ajax", "dom", "events", "console", "exception-frame", "pageinit", "messages", "utils"
+ "alert", "ajax", "bootstrap", "console", "dom", "events", "exception-frame", "fields", "forms",
+ "pageinit", "messages", "utils", "validation"
};
/**
@@ -89,11 +92,11 @@ public class JavaScriptModule
* <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>jquery-library</dt> <dd>The jQuery library</dd>
- * <dt>jquery-noconflict</dt> <dd>Switches jQuery to no-conflic mode (only present when the infrastructure is "prototype").</dd>
+ * <dt>jquery-noconflict</dt> <dd>Switches jQuery to no-conflict mode (only present when the infrastructure is "prototype").</dd>
* <dt>jquery</dt> <dd>A module shim that allows jQuery to be injected (and also switches jQuery to no-conflict mode)</dd>
* <dt>bootstrap.css, tapestry.css, exception-frame.css, tapestry-console.css, tree.css</dt>
* <dd>CSS files</dd>
- * <dt>t5/core/[ajax, dom, events, console, exception-frame, pageinit, messages, utils]</dt>
+ * <dt>t5/core/[...]</dt>
* <dd>Additional JavaScript modules</dd>
* <dt>jquery</dt>
* <dd>Added if the infrastructure provider is "jquery".</dd>
[2/5] git commit: TAP5-2234: Refreshing the browser in Eclipse on
Windows sometimes fails with a locking exception
Posted by hl...@apache.org.
TAP5-2234: Refreshing the browser in Eclipse on Windows sometimes fails with a locking exception
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/1b437609
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/1b437609
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/1b437609
Branch: refs/heads/master
Commit: 1b437609561fb0107fc034f9c57953488fb23329
Parents: 3397442
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Wed Nov 27 11:35:34 2013 -0800
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Wed Nov 27 11:35:34 2013 -0800
----------------------------------------------------------------------
.../apache/tapestry5/internal/webresources/AbstractMinimizer.java | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/1b437609/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/AbstractMinimizer.java
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/AbstractMinimizer.java b/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/AbstractMinimizer.java
index 7548bed..50fcd01 100644
--- a/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/AbstractMinimizer.java
+++ b/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/AbstractMinimizer.java
@@ -68,6 +68,8 @@ public abstract class AbstractMinimizer implements ResourceMinimizer
TapestryInternalUtils.copy(in, bos);
+ in.close();
+
return null;
}
});
[2/5] git commit: TAP5-2234: Refreshing the browser in Eclipse on
Windows sometimes fails with a locking exception
Posted by hl...@apache.org.
TAP5-2234: Refreshing the browser in Eclipse on Windows sometimes fails with a locking exception
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/1b437609
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/1b437609
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/1b437609
Branch: refs/heads/master
Commit: 1b437609561fb0107fc034f9c57953488fb23329
Parents: 3397442
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Wed Nov 27 11:35:34 2013 -0800
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Wed Nov 27 11:35:34 2013 -0800
----------------------------------------------------------------------
.../apache/tapestry5/internal/webresources/AbstractMinimizer.java | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/1b437609/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/AbstractMinimizer.java
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/AbstractMinimizer.java b/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/AbstractMinimizer.java
index 7548bed..50fcd01 100644
--- a/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/AbstractMinimizer.java
+++ b/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/AbstractMinimizer.java
@@ -68,6 +68,8 @@ public abstract class AbstractMinimizer implements ResourceMinimizer
TapestryInternalUtils.copy(in, bos);
+ in.close();
+
return null;
}
});
[5/5] git commit: TAP5-2238: When require-ing a module that is part
of a JavaScript Stack, the entire stack should be imported
Posted by hl...@apache.org.
TAP5-2238: When require-ing a module that is part of a JavaScript Stack, the entire stack should be imported
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/ee695314
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/ee695314
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/ee695314
Branch: refs/heads/master
Commit: ee695314fab6794edeeda80bbc9875b6114cfc2a
Parents: e514e7f
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Wed Nov 27 13:25:13 2013 -0800
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Wed Nov 27 13:25:13 2013 -0800
----------------------------------------------------------------------
.../services/ajax/JavaScriptSupportImpl.java | 56 ++++++++++++------
.../services/javascript/JavaScriptSupport.java | 14 +++--
.../ajax/JavaScriptSupportAutofocusTests.groovy | 2 +
.../ajax/JavaScriptSupportImplTest.groovy | 62 +++++++++++++++++++-
4 files changed, 112 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ee695314/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 bcce095..eb8defb 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
@@ -14,13 +14,6 @@
package org.apache.tapestry5.internal.services.ajax;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
import org.apache.tapestry5.Asset;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.FieldFocusPriority;
@@ -34,13 +27,9 @@ import org.apache.tapestry5.ioc.internal.util.InternalUtils;
import org.apache.tapestry5.ioc.util.IdAllocator;
import org.apache.tapestry5.json.JSONArray;
import org.apache.tapestry5.json.JSONObject;
-import org.apache.tapestry5.services.javascript.Initialization;
-import org.apache.tapestry5.services.javascript.InitializationPriority;
-import org.apache.tapestry5.services.javascript.JavaScriptStack;
-import org.apache.tapestry5.services.javascript.JavaScriptStackSource;
-import org.apache.tapestry5.services.javascript.JavaScriptSupport;
-import org.apache.tapestry5.services.javascript.ModuleConfigurationCallback;
-import org.apache.tapestry5.services.javascript.StylesheetLink;
+import org.apache.tapestry5.services.javascript.*;
+
+import java.util.*;
public class JavaScriptSupportImpl implements JavaScriptSupport
{
@@ -70,7 +59,7 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
private String focusFieldId;
- private Map<String, String> libraryURLToStackName;
+ private Map<String, String> libraryURLToStackName, moduleNameToStackName;
class InitializationImpl implements Initialization
{
@@ -246,7 +235,7 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
{
addScript(InitializationPriority.NORMAL, format, arguments);
}
-
+
public void addModuleConfigurationCallback(ModuleConfigurationCallback callback)
{
linker.addModuleConfigurationCallback(callback);
@@ -301,6 +290,7 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
return getLibraryURLToStackName().get(libraryURL);
}
+
private Map<String, String> getLibraryURLToStackName()
{
if (libraryURLToStackName == null)
@@ -319,6 +309,31 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
return libraryURLToStackName;
}
+ private String findStackForModule(String moduleName)
+ {
+ return getModuleNameToStackName().get(moduleName);
+ }
+
+ private Map<String, String> getModuleNameToStackName()
+ {
+
+ if (moduleNameToStackName == null)
+ {
+ moduleNameToStackName = CollectionFactory.newMap();
+
+ for (String stackName : javascriptStackSource.getStackNames())
+ {
+ for (String moduleName : javascriptStackSource.getStack(stackName).getModules())
+ {
+ moduleNameToStackName.put(moduleName, stackName);
+ }
+ }
+ }
+
+ return moduleNameToStackName;
+ }
+
+
private void addAssetsFromStack(String stackName)
{
if (addedStacks.containsKey(stackName))
@@ -333,7 +348,7 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
// end, avoiding the TAP5-2197 bug.
final List<String> reversedStacks = new ArrayList<String>(stack.getStacks());
Collections.reverse(reversedStacks);
-
+
for (String dependentStackname : reversedStacks)
{
addAssetsFromStack(dependentStackname);
@@ -423,6 +438,13 @@ public class JavaScriptSupportImpl implements JavaScriptSupport
addAssetsFromStack(InternalConstants.CORE_STACK_NAME);
+ String stackName = findStackForModule(moduleName);
+
+ if (stackName != null)
+ {
+ importStack(stackName);
+ }
+
InitializationImpl init = new InitializationImpl(moduleName);
inits.add(init);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ee695314/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavaScriptSupport.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavaScriptSupport.java b/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavaScriptSupport.java
index 1b24e1b..caff985 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavaScriptSupport.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/JavaScriptSupport.java
@@ -1,4 +1,4 @@
-// Copyright 2010, 2011, 2012 The Apache Software Foundation
+// Copyright 2010-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.
@@ -250,6 +250,11 @@ public interface JavaScriptSupport
* In some cases, a module exports no functions, but performs some initialization (typically, adding document-level
* event handlers), in which case a call to require() is sufficient. In cases where the module, or a function
* within the module, are invoked with no parameters, the calls will be collapsed into a single invocation.
+ * <p/>
+ * If the module is part of a {@linkplain org.apache.tapestry5.services.javascript.JavaScriptStack#getModules() JavaScript stack},
+ * then the stack will be imported; this is important when {@linkplain SymbolConstants#COMBINE_SCRIPTS JavaScript aggregation is enabled},
+ * but also ensures that libraries in the stack are loaded before the module (for cases where the
+ * module has dependencies on libraries not wrapped as AMD modules).
*
* @param moduleName
* the name of the module to require
@@ -257,11 +262,12 @@ public interface JavaScriptSupport
* @since 5.4
*/
Initialization require(String moduleName);
-
+
/**
* Adds a module configuration callback for this request.
- *
- * @param callback a {@link ModuleConfigurationCallback}. It cannot be null.
+ *
+ * @param callback
+ * a {@link ModuleConfigurationCallback}. It cannot be null.
* @see DocumentLinker#addModuleConfigurationCallback(ModuleConfigurationCallback)
* @since 5.4
*/
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ee695314/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportAutofocusTests.groovy
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportAutofocusTests.groovy b/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportAutofocusTests.groovy
index ba023f8..afd7279 100644
--- a/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportAutofocusTests.groovy
+++ b/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ajax/JavaScriptSupportAutofocusTests.groovy
@@ -34,6 +34,8 @@ class JavaScriptSupportAutofocusTests extends InternalBaseTestCase {
def stackSource = newMock(JavaScriptStackSource.class)
def stackPathConstructor = newMock(JavaScriptStackPathConstructor.class)
+ expect(stackSource.stackNames).andReturn([])
+
linker.addInitialization(InitializationPriority.NORMAL, "t5/core/pageinit", "focus",
JSONArray.from([expectedFieldId]))
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/ee695314/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 2b8abd1..b8947d4 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
@@ -40,13 +40,16 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
@Test
void partial_mode_add_script() {
DocumentLinker linker = mockDocumentLinker()
+ def stackSource = mockJavaScriptStackSource()
+
+ train_for_just_core_stack stackSource
linker.addInitialization(InitializationPriority.NORMAL, "t5/core/pageinit", "evalJavaScript",
new JSONArray().put("doSomething();"))
replay()
- JavaScriptSupportImpl jss = new JavaScriptSupportImpl(linker, null, null, new IdAllocator(), true)
+ JavaScriptSupportImpl jss = new JavaScriptSupportImpl(linker, stackSource, null, new IdAllocator(), true)
jss.addScript("doSomething();")
@@ -158,6 +161,44 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
verify()
}
+ @Test
+ void requireing_a_module_may_import_a_stack() {
+ DocumentLinker linker = mockDocumentLinker()
+ JavaScriptStackSource stackSource = mockJavaScriptStackSource()
+ JavaScriptStackPathConstructor pathConstructor = mockJavaScriptStackPathConstructor()
+
+ JavaScriptStack mystack = mockJavaScriptStack()
+
+ expect(stackSource.stackNames).andReturn(["mystack"])
+ expect(stackSource.getStack("mystack")).andReturn(mystack).atLeastOnce()
+
+ expect(mystack.modules).andReturn(["foo/bar"])
+
+ expect(mystack.stacks).andReturn([])
+
+ expect(pathConstructor.constructPathsForJavaScriptStack("mystack")).andReturn(["stacks/mystack.js"])
+
+ expect(mystack.stylesheets).andReturn([])
+
+ expect(mystack.initialization).andReturn null
+
+ linker.addLibrary("stacks/mystack.js")
+
+ linker.addInitialization(InitializationPriority.NORMAL, "foo/bar", null, null)
+
+ replay()
+
+ JavaScriptSupportImpl jss = new JavaScriptSupportImpl(linker, stackSource, pathConstructor, null, true)
+
+ jss.require("foo/bar")
+
+ jss.commit()
+
+ verify()
+
+ }
+
+
private void trainForNoStackNames(JavaScriptStackSource stackSource) {
// This is slightly odd, as it would normally return "core" at a minimum, but we test for that separately.
@@ -288,6 +329,8 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
JavaScriptStackSource stackSource = mockJavaScriptStackSource()
JavaScriptStackPathConstructor pathConstructor = mockJavaScriptStackPathConstructor()
+ train_for_just_core_stack stackSource
+
train_init(linker, InitializationPriority.IMMEDIATE, "setup", "chuck")
train_init(linker, InitializationPriority.IMMEDIATE, "setup", "charley")
@@ -312,6 +355,8 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
JSONArray chuck = new JSONArray("chuck", "yeager")
JSONArray buzz = new JSONArray("buzz", "aldrin")
+ train_for_just_core_stack stackSource
+
train_init(linker, InitializationPriority.IMMEDIATE, "setup", chuck)
train_init(linker, InitializationPriority.IMMEDIATE, "setup", buzz)
@@ -341,6 +386,8 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
JavaScriptStackSource stackSource = mockJavaScriptStackSource()
JavaScriptStackPathConstructor pathConstructor = mockJavaScriptStackPathConstructor()
+ train_for_just_core_stack stackSource
+
train_init(linker, InitializationPriority.NORMAL, "setup", "chuck")
replay()
@@ -354,6 +401,17 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
verify()
}
+ def train_for_just_core_stack(stackSource) {
+ def coreStack = mockJavaScriptStack()
+
+ expect(stackSource.stackNames).andReturn(["core"])
+
+ expect(stackSource.getStack("core")).andReturn(coreStack)
+
+ expect(coreStack.modules).andReturn([])
+ }
+
+
@Test
void default_for_init_array_is_normal_priority() {
DocumentLinker linker = mockDocumentLinker()
@@ -362,6 +420,8 @@ class JavaScriptSupportImplTest extends InternalBaseTestCase {
JSONArray chuck = new JSONArray("chuck", "yeager")
+ train_for_just_core_stack stackSource
+
train_init(linker, InitializationPriority.NORMAL, "setup", chuck)
replay()
[3/5] git commit: Correct comment
Posted by hl...@apache.org.
Correct comment
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/87d645c8
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/87d645c8
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/87d645c8
Branch: refs/heads/master
Commit: 87d645c8b46cb40a69aca8c6b835ad3b6e20e344
Parents: 1b43760
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Wed Nov 27 11:37:47 2013 -0800
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Wed Nov 27 11:37:47 2013 -0800
----------------------------------------------------------------------
.../coffeescript/META-INF/modules/t5/core/exception-display.coffee | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/87d645c8/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee
index 581100d..9106350 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# ## t5/core/exception-report
+# ## t5/core/exception-display
#
# Provides dynamic behavior for the t5/core/ExceptionDisplay component; specifically,
# filtering the stack trace.
[4/5] git commit: Include several additional t5/core modules in the
core JavaScript Stack
Posted by hl...@apache.org.
Include several additional t5/core modules in 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/e514e7fc
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/e514e7fc
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/e514e7fc
Branch: refs/heads/master
Commit: e514e7fcf2e1037ea70d0315afd1aa545d94bd8d
Parents: 87d645c
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Wed Nov 27 11:40:22 2013 -0800
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Wed Nov 27 11:40:22 2013 -0800
----------------------------------------------------------------------
.../java/org/apache/tapestry5/modules/JavaScriptModule.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/e514e7fc/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 fd095a9..9ac78e1 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
@@ -75,8 +75,11 @@ public class JavaScriptModule
configuration.add(InternalConstants.CORE_STACK_NAME, coreStack);
}
+ // These are automatically bundles with the core JavaScript stack; some applications may want to add a few
+ // additional ones, such as t5/core/zone.
private static final String[] bundledModules = new String[]{
- "ajax", "dom", "events", "console", "exception-frame", "pageinit", "messages", "utils"
+ "alert", "ajax", "bootstrap", "console", "dom", "events", "exception-frame", "fields", "forms",
+ "pageinit", "messages", "utils", "validation"
};
/**
@@ -89,11 +92,11 @@ public class JavaScriptModule
* <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>jquery-library</dt> <dd>The jQuery library</dd>
- * <dt>jquery-noconflict</dt> <dd>Switches jQuery to no-conflic mode (only present when the infrastructure is "prototype").</dd>
+ * <dt>jquery-noconflict</dt> <dd>Switches jQuery to no-conflict mode (only present when the infrastructure is "prototype").</dd>
* <dt>jquery</dt> <dd>A module shim that allows jQuery to be injected (and also switches jQuery to no-conflict mode)</dd>
* <dt>bootstrap.css, tapestry.css, exception-frame.css, tapestry-console.css, tree.css</dt>
* <dd>CSS files</dd>
- * <dt>t5/core/[ajax, dom, events, console, exception-frame, pageinit, messages, utils]</dt>
+ * <dt>t5/core/[...]</dt>
* <dd>Additional JavaScript modules</dd>
* <dt>jquery</dt>
* <dd>Added if the infrastructure provider is "jquery".</dd>