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 2012/06/08 00:43:56 UTC
[2/2] git commit: TAP5-1952: Improve logging of warnings for
YUICompressor
TAP5-1952: Improve logging of warnings for YUICompressor
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/2ae316f4
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/2ae316f4
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/2ae316f4
Branch: refs/heads/5.3
Commit: 2ae316f4d54c5f53f77d536493af4a1312166a25
Parents: ecfec37
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Thu Jun 7 15:43:12 2012 -0700
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Thu Jun 7 15:43:12 2012 -0700
----------------------------------------------------------------------
.../yuicompressor/JavaScriptResourceMinimizer.java | 62 +++++++++++++--
.../src/test/resources/log4j.properties | 1 +
2 files changed, 55 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/2ae316f4/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/JavaScriptResourceMinimizer.java
----------------------------------------------------------------------
diff --git a/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/JavaScriptResourceMinimizer.java b/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/JavaScriptResourceMinimizer.java
index 8a873f5..4a3a999 100644
--- a/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/JavaScriptResourceMinimizer.java
+++ b/tapestry-yuicompressor/src/main/java/org/apache/tapestry5/internal/yuicompressor/JavaScriptResourceMinimizer.java
@@ -1,4 +1,4 @@
-// Copyright 2011 The Apache Software Foundation
+// Copyright 2011, 2012 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.
@@ -28,6 +28,7 @@ import java.io.LineNumberReader;
import java.io.Reader;
import java.io.Writer;
import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
/**
* JavaScript resource minimizer based on the YUI {@link JavaScriptCompressor}.
@@ -52,10 +53,41 @@ public class JavaScriptResourceMinimizer extends AbstractMinimizer
this.logger = logger;
}
- protected void doMinimize(StreamableResource resource, Writer output) throws IOException
+ protected void doMinimize(final StreamableResource resource, Writer output) throws IOException
{
final Set<Integer> errorLines = CollectionFactory.newSet();
+ final Runnable identifySource = new Runnable()
+ {
+ boolean sourceIdentified = false;
+
+ @Override
+ public void run()
+ {
+ if (!sourceIdentified)
+ {
+ logger.error(String.format("JavaScript compression problems for resource %s:",
+ resource.getDescription()));
+ sourceIdentified = true;
+ }
+ }
+ };
+
+ final AtomicInteger warningCount = new AtomicInteger();
+
+ Runnable identifyWarnings = new Runnable() {
+ @Override
+ public void run()
+ {
+ if (warningCount.get() > 0)
+ {
+ logger.error(String.format("%,d compression warnings; enable warning logging of %s to see details.",
+ warningCount.get(),
+ logger.getName()));
+ }
+ }
+ };
+
ErrorReporter errorReporter = new ErrorReporter()
{
private String format(String message, int line, int lineOffset)
@@ -68,9 +100,17 @@ public class JavaScriptResourceMinimizer extends AbstractMinimizer
public void warning(String message, String sourceName, int line, String lineSource, int lineOffset)
{
+ identifySource.run();
+
errorLines.add(line);
- logger.warn(format(message, line, lineOffset));
+ if (logger.isWarnEnabled())
+ {
+ logger.warn(format(message, line, lineOffset));
+ } else
+ {
+ warningCount.incrementAndGet();
+ }
}
public EvaluatorException runtimeError(String message, String sourceName, int line, String lineSource,
@@ -83,6 +123,8 @@ public class JavaScriptResourceMinimizer extends AbstractMinimizer
public void error(String message, String sourceName, int line, String lineSource, int lineOffset)
{
+ identifySource.run();
+
errorLines.add(line);
logger.error(format(message, line, lineOffset));
@@ -90,21 +132,27 @@ public class JavaScriptResourceMinimizer extends AbstractMinimizer
};
-
Reader reader = toReader(resource);
try
{
JavaScriptCompressor compressor = new JavaScriptCompressor(reader, errorReporter);
- compressor.compress(output, -1, true, false, false, false);
+ compressor.compress(output, -1, true, true, false, false);
+
+ identifyWarnings.run();
+
} catch (EvaluatorException ex)
{
+ identifySource.run();
+
logInputLines(resource, errorLines);
recoverFromException(ex, resource, output);
} catch (Exception ex)
{
+ identifySource.run();
+
recoverFromException(ex, resource, output);
}
@@ -113,7 +161,7 @@ public class JavaScriptResourceMinimizer extends AbstractMinimizer
private void recoverFromException(Exception ex, StreamableResource resource, Writer output) throws IOException
{
- logger.error(String.format("Exception minimizing %s: %s", resource.getDescription(), InternalUtils.toMessage(ex)), ex);
+ logger.error(InternalUtils.toMessage(ex), ex);
streamUnminimized(resource, output);
}
@@ -146,8 +194,6 @@ public class JavaScriptResourceMinimizer extends AbstractMinimizer
private void logInputLines(StreamableResource resource, Set<Integer> lines)
{
- logger.error(String.format("Errors in resource %s:", resource.getDescription()));
-
int last = -1;
try
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/2ae316f4/tapestry-yuicompressor/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/tapestry-yuicompressor/src/test/resources/log4j.properties b/tapestry-yuicompressor/src/test/resources/log4j.properties
index 8ae8390..e659dc0 100644
--- a/tapestry-yuicompressor/src/test/resources/log4j.properties
+++ b/tapestry-yuicompressor/src/test/resources/log4j.properties
@@ -10,6 +10,7 @@ log4j.appender.A1.layout.ConversionPattern=[%p] %c{1} %m%n
# log4j.category.tapestry.render=debug
log4j.category.org.apache.tapestry5.services.assets.AssetsModule.ResourceMinimizer=debug
+#log4j.category.org.apache.tapestry5.services.assets.AssetsModule.ResourceMinimizer=error
log4j.category.org.apache.tapestry5.yuicompressor=debug
log4j.category.org.apache.tapestry5.internal.yuicompressor=debug