You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2015/06/02 01:59:12 UTC
tapestry-5 git commit: TAP5-2304: Define a IoC symbol for setting the
Google Closure Compiler compilation level
Repository: tapestry-5
Updated Branches:
refs/heads/master 20d7d83d9 -> 87832dd4b
TAP5-2304: Define a IoC symbol for setting the Google Closure Compiler compilation level
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/87832dd4
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/87832dd4
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/87832dd4
Branch: refs/heads/master
Commit: 87832dd4bafcf97442306e92d12d36a101f5aec7
Parents: 20d7d83
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Mon Jun 1 16:59:05 2015 -0700
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Mon Jun 1 16:59:05 2015 -0700
----------------------------------------------------------------------
.../internal/webresources/GoogleClosureMinimizer.java | 11 ++++++++++-
.../tapestry5/webresources/WebResourcesSymbols.java | 9 +++++++++
.../webresources/modules/WebResourcesModule.java | 2 ++
3 files changed, 21 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/87832dd4/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/GoogleClosureMinimizer.java
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/GoogleClosureMinimizer.java b/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/GoogleClosureMinimizer.java
index ee6669c..e3102ac 100644
--- a/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/GoogleClosureMinimizer.java
+++ b/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/GoogleClosureMinimizer.java
@@ -17,11 +17,13 @@ import com.google.javascript.jscomp.Compiler;
import org.apache.commons.io.IOUtils;
import org.apache.tapestry5.TapestryConstants;
import org.apache.tapestry5.ioc.OperationTracker;
+import org.apache.tapestry5.ioc.annotations.Symbol;
import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
import org.apache.tapestry5.ioc.internal.util.InternalUtils;
import org.apache.tapestry5.services.Request;
import org.apache.tapestry5.services.assets.AssetChecksumGenerator;
import org.apache.tapestry5.services.assets.StreamableResource;
+import org.apache.tapestry5.webresources.WebResourcesSymbols;
import org.slf4j.Logger;
import java.io.IOException;
@@ -42,16 +44,20 @@ public class GoogleClosureMinimizer extends AbstractMinimizer
private final List<SourceFile> EXTERNS = Collections.emptyList();
private final Request request;
+ private final CompilationLevel compilationLevel;
static
{
Compiler.setLoggingLevel(Level.SEVERE);
}
- public GoogleClosureMinimizer(Logger logger, OperationTracker tracker, AssetChecksumGenerator checksumGenerator, Request request)
+ public GoogleClosureMinimizer(Logger logger, OperationTracker tracker, AssetChecksumGenerator checksumGenerator, Request request,
+ @Symbol(WebResourcesSymbols.COMPILATION_LEVEL)
+ CompilationLevel compilationLevel)
{
super(logger, tracker, checksumGenerator, "text/javascript");
this.request = request;
+ this.compilationLevel = compilationLevel;
}
@Override
@@ -66,6 +72,9 @@ public class GoogleClosureMinimizer extends AbstractMinimizer
// Don't bother to pool the Compiler
CompilerOptions options = new CompilerOptions();
+
+ compilationLevel.setOptionsForCompilationLevel(options);
+
options.setCodingConvention(new ClosureCodingConvention());
options.setOutputCharset(OUTPUT_CHARSET);
options.setWarningLevel(DiagnosticGroups.CHECK_VARIABLES, CheckLevel.WARNING);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/87832dd4/tapestry-webresources/src/main/java/org/apache/tapestry5/webresources/WebResourcesSymbols.java
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/main/java/org/apache/tapestry5/webresources/WebResourcesSymbols.java b/tapestry-webresources/src/main/java/org/apache/tapestry5/webresources/WebResourcesSymbols.java
index 9f0901b..257d1eb 100644
--- a/tapestry-webresources/src/main/java/org/apache/tapestry5/webresources/WebResourcesSymbols.java
+++ b/tapestry-webresources/src/main/java/org/apache/tapestry5/webresources/WebResourcesSymbols.java
@@ -21,4 +21,13 @@ public class WebResourcesSymbols
* It is common to set this to {@code target/asset-cache} during development.
*/
public static final String CACHE_DIR = "tapestry.compiled-asset-cache-dir";
+
+ /**
+ * Defines the level at which the Google Closure compiler operations, as per
+ * {@link com.google.javascript.jscomp.CompilationLevel}. The default is "WHITESPACE_ONLY", though
+ * "SIMPLE_OPTIMIZATIONS" should also work. Advanced optimizations will likely not work, as Tapestry's more
+ * incremental approach to JavaScript (including the use of jQuery and jQuery plugins) is not compatible
+ * with Closure.
+ */
+ public static final String COMPILATION_LEVEL = "tapestry.closure-compiler-level";
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/87832dd4/tapestry-webresources/src/main/java/org/apache/tapestry5/webresources/modules/WebResourcesModule.java
----------------------------------------------------------------------
diff --git a/tapestry-webresources/src/main/java/org/apache/tapestry5/webresources/modules/WebResourcesModule.java b/tapestry-webresources/src/main/java/org/apache/tapestry5/webresources/modules/WebResourcesModule.java
index af452c0..7a716e4 100644
--- a/tapestry-webresources/src/main/java/org/apache/tapestry5/webresources/modules/WebResourcesModule.java
+++ b/tapestry-webresources/src/main/java/org/apache/tapestry5/webresources/modules/WebResourcesModule.java
@@ -14,6 +14,7 @@ package org.apache.tapestry5.webresources.modules;
import com.github.sommeri.less4j.LessCompiler;
import com.github.sommeri.less4j.core.parser.AntlrException;
+import com.google.javascript.jscomp.CompilationLevel;
import org.apache.tapestry5.MarkupWriter;
import org.apache.tapestry5.internal.webresources.*;
import org.apache.tapestry5.ioc.MappedConfiguration;
@@ -56,6 +57,7 @@ public class WebResourcesModule
public static void setupDefaultCacheDirectory(MappedConfiguration<String, Object> configuration)
{
configuration.add(WebResourcesSymbols.CACHE_DIR, "${java.io.tmpdir}/tapestry-asset-cache");
+ configuration.add(WebResourcesSymbols.COMPILATION_LEVEL, CompilationLevel.WHITESPACE_ONLY);
}