tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hls...@apache.org
Subject [3/3] git commit: TAP5-2221: Aggregated JavaScript stacks are not passed through the JavaScript minimizer
Date Mon, 11 Nov 2013 20:05:09 GMT
TAP5-2221: Aggregated JavaScript stacks are not passed through the JavaScript minimizer


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/8b5e3530
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/8b5e3530
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/8b5e3530

Branch: refs/heads/master
Commit: 8b5e3530dcb0cffd580dfa0ba21b4bff4c06714d
Parents: 6449188
Author: Howard M. Lewis Ship <hlship@apache.org>
Authored: Mon Nov 11 12:04:58 2013 -0800
Committer: Howard M. Lewis Ship <hlship@apache.org>
Committed: Mon Nov 11 12:04:58 2013 -0800

----------------------------------------------------------------------
 .../assets/JavaScriptStackAssemblerImpl.java    | 23 ++++++++++++++++++--
 .../tapestry5/modules/JavaScriptModule.java     |  9 +++++++-
 .../services/javascript/StackExtensionType.java |  4 ++++
 3 files changed, 33 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/8b5e3530/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/JavaScriptStackAssemblerImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/JavaScriptStackAssemblerImpl.java
b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/JavaScriptStackAssemblerImpl.java
index 5cce91b..d7b426e 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/JavaScriptStackAssemblerImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/JavaScriptStackAssemblerImpl.java
@@ -15,7 +15,9 @@
 package org.apache.tapestry5.internal.services.assets;
 
 import org.apache.tapestry5.Asset;
+import org.apache.tapestry5.SymbolConstants;
 import org.apache.tapestry5.ioc.Resource;
+import org.apache.tapestry5.ioc.annotations.Symbol;
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
 import org.apache.tapestry5.ioc.services.ThreadLocale;
 import org.apache.tapestry5.services.assets.*;
@@ -45,11 +47,19 @@ public class JavaScriptStackAssemblerImpl implements JavaScriptStackAssembler
 
     private final ModuleManager moduleManager;
 
+    private final ResourceMinimizer resourceMinimizer;
+
+    private final boolean minificationEnabled;
+
     private final Map<String, StreamableResource> cache = CollectionFactory.newCaseInsensitiveMap();
 
     // TODO: Support for aggregated CSS as well as aggregated JavaScript
 
-    public JavaScriptStackAssemblerImpl(ThreadLocale threadLocale, ResourceChangeTracker
resourceChangeTracker, StreamableResourceSource streamableResourceSource, JavaScriptStackSource
stackSource, AssetChecksumGenerator checksumGenerator, ModuleManager moduleManager)
+    public JavaScriptStackAssemblerImpl(ThreadLocale threadLocale, ResourceChangeTracker
resourceChangeTracker, StreamableResourceSource streamableResourceSource,
+                                        JavaScriptStackSource stackSource, AssetChecksumGenerator
checksumGenerator, ModuleManager moduleManager,
+                                        ResourceMinimizer resourceMinimizer,
+                                        @Symbol(SymbolConstants.MINIFICATION_ENABLED)
+                                        boolean minificationEnabled)
     {
         this.threadLocale = threadLocale;
         this.resourceChangeTracker = resourceChangeTracker;
@@ -57,6 +67,8 @@ public class JavaScriptStackAssemblerImpl implements JavaScriptStackAssembler
         this.stackSource = stackSource;
         this.checksumGenerator = checksumGenerator;
         this.moduleManager = moduleManager;
+        this.resourceMinimizer = resourceMinimizer;
+        this.minificationEnabled = minificationEnabled;
 
         resourceChangeTracker.clearOnInvalidation(cache);
     }
@@ -210,6 +222,13 @@ public class JavaScriptStackAssemblerImpl implements JavaScriptStackAssembler
             assembly.add(resource, new ModuleReader(moduleName));
         }
 
-        return assembly.finish();
+        StreamableResource streamable = assembly.finish();
+
+        if (minificationEnabled)
+        {
+            return resourceMinimizer.minimize(streamable);
+        }
+
+        return streamable;
     }
 }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/8b5e3530/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 25e2f77..e1b4a68 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
@@ -90,8 +90,10 @@ public class JavaScriptModule
      * <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>
-     * <dt>t5/core/ajax, dom, events, console, exception-frame, pageinit, messages,
utils</dt>
+     * <dt>t5/core/[ajax, dom, events, console, exception-frame, pageinit, messages,
utils]</dt>
      * <dd>Additional JavaScript modules</dd>
+     * <dt>jquery</dt>
+     * <dd>Added if the infrastructure provider is "jquery".</dd>
      * </dl>
      * <p/>
      * User modules may replace or extend this list.
@@ -139,6 +141,11 @@ public class JavaScriptModule
             String full = "t5/core/" + name;
             configuration.add(full, new StackExtension(StackExtensionType.MODULE, full));
         }
+
+        if (provider.equals("jquery"))
+        {
+            add(configuration, StackExtensionType.MODULE, "jquery");
+        }
     }
 
     private static void add(OrderedConfiguration<StackExtension> configuration, StackExtensionType
type, String... paths)

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/8b5e3530/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/StackExtensionType.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/StackExtensionType.java
b/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/StackExtensionType.java
index 50594ae..6bb1c47 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/StackExtensionType.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/services/javascript/StackExtensionType.java
@@ -63,6 +63,10 @@ public enum StackExtensionType
      * Note that this only loads the module's <em>code</em> and defines the module
as available;
      * the module's function will not be invoked unless {@link JavaScriptSupport#require(String)}
is invoked to establish
      * a dependency.
+     * <p/>
+     * Note that at this time, {@linkplain JavaScriptModuleConfiguration#exports(String)
shimmed modules} can not
+     * be aggregated into stacks properly; the shimmed module will be aggregated, but then
will still be loaded via
+     * a subsequent HTTP request.
      *
      * @since 5.4
      */


Mime
View raw message