Author: andrei_exadel
Date: 2007-11-22 09:39:12 -0500 (Thu, 22 Nov 2007)
New Revision: 4183
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/css/CssCompressor.java
trunk/framework/impl/src/main/java/org/ajax4jsf/resource/TemplateCSSRenderer.java
Log:
RF-1349
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/css/CssCompressor.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/css/CssCompressor.java 2007-11-22
14:29:37 UTC (rev 4182)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/css/CssCompressor.java 2007-11-22
14:39:12 UTC (rev 4183)
@@ -23,7 +23,7 @@
srcsb = buffer;
}
- public void compress(Writer out, int linebreakpos)
+ public int compress(Writer out, int linebreakpos)
throws IOException {
Pattern p;
@@ -31,6 +31,7 @@
String css;
StringBuffer sb;
int startIndex, endIndex;
+ int bytesLength;
// Remove all comment blocks...
sb = new StringBuffer(srcsb.toString());
@@ -145,8 +146,9 @@
// Trim the final string (for any leading or trailing white spaces)
css = css.trim();
-
+ bytesLength = css.length() * 2;
// Write the output...
out.write(css);
+ return bytesLength;
}
}
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/resource/TemplateCSSRenderer.java
===================================================================
---
trunk/framework/impl/src/main/java/org/ajax4jsf/resource/TemplateCSSRenderer.java 2007-11-22
14:29:37 UTC (rev 4182)
+++
trunk/framework/impl/src/main/java/org/ajax4jsf/resource/TemplateCSSRenderer.java 2007-11-22
14:39:12 UTC (rev 4183)
@@ -48,6 +48,9 @@
public class TemplateCSSRenderer extends StyleRenderer {
private static final String COMPILED_TEMPLATE_PROPERTY = "compiled-template";
+
+ /** Parameter allows switch on/off comressing for css */
+ private static final String COMPRESS_STYLE_PARAMETER =
"org.ajax4jsf.COMPRESS_STYLE";
private RendererBase renderer = new RendererBase() {
@@ -65,6 +68,10 @@
CountingOutputWriter countingOutputWriter = new CountingOutputWriter();
template = getTemplate(base, context);
FacesContext facesContext = FacesContext.getCurrentInstance();
+ boolean _CompressStyleOn = Boolean.valueOf(facesContext.getExternalContext()
+ .getInitParameter(COMPRESS_STYLE_PARAMETER));
+ Writer writer = context.getWriter();
+ int bytesLength;
if(null != facesContext) {
// Create responseWriter.
String defaultRenderKitId = facesContext.getApplication().getDefaultRenderKitId();
@@ -75,9 +82,6 @@
RenderKit renderKit = renderKitFactory.getRenderKit(facesContext,defaultRenderKitId);
// TODO - handle response encoding
- //TODO nick - andrei
- //make compressor switchable off
- //use
Boolean.valueOf(facesContext.getExternalContext().getInitParameter("org.ajax4jsf.COMPRESS_STYLE"))
as criteria
ResponseWriter responseWriter =
renderKit.createResponseWriter(countingOutputWriter,null,"UTF-8");
facesContext.setResponseWriter(responseWriter);
responseWriter.startDocument();
@@ -89,20 +93,22 @@
responseWriter.flush();
responseWriter.close();
- //TODO nick - andrei
- //we should return length of already compressed script, not the original one
+ if (_CompressStyleOn) {
+ CssCompressor compressor = new CssCompressor(countingOutputWriter.getContent());
// Compressing css document and printing result in response stream
+ bytesLength = compressor.compress(writer, -1);
+ writer.flush();
+ writer.close();
+ } else {
+ writer.write(countingOutputWriter.getContent().toString()); // Write not
compressed style content
+ bytesLength = countingOutputWriter.getWritten();
+ writer.flush();
+ writer.close();
+ }
- // Compressing css document and printing result in response stream
- CssCompressor compressor = new CssCompressor(countingOutputWriter.getContent());
- Writer writer = context.getWriter();
- compressor.compress(writer, -1);
- writer.flush();
- writer.close();
-
} else {
throw new FacesException("FacesContext for resource from template
"+base.getKey()+" is null");
}
- return countingOutputWriter.getWritten();
+ return bytesLength;
}
/**
Show replies by date