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>