You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2011/11/16 00:51:37 UTC

svn commit: r1202478 [6/8] - in /myfaces/shared/trunk: ./ core/ core/src/main/java/org/apache/myfaces/shared/application/ core/src/main/java/org/apache/myfaces/shared/component/ core/src/main/java/org/apache/myfaces/shared/config/ core/src/main/java/or...

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlResponseWriterImpl.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlResponseWriterImpl.java?rev=1202478&r1=1202477&r2=1202478&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlResponseWriterImpl.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlResponseWriterImpl.java Tue Nov 15 23:51:35 2011
@@ -50,8 +50,8 @@ public class HtmlResponseWriterImpl
     private static final String DEFAULT_CHARACTER_ENCODING = "ISO-8859-1";
     private static final String UTF8 = "UTF-8";
 
-    private static String APPLICATION_XML_CONTENT_TYPE = "application/xml";
-    private static String TEXT_XML_CONTENT_TYPE = "text/xml";
+    private static final String APPLICATION_XML_CONTENT_TYPE = "application/xml";
+    private static final String TEXT_XML_CONTENT_TYPE = "text/xml";
     
     //private boolean _writeDummyForm = false;
     //private Set _dummyFormParams = null;
@@ -96,7 +96,7 @@ public class HtmlResponseWriterImpl
 
     private boolean _cdataOpen;
 
-    private static final Set<String> s_emptyHtmlElements = new HashSet<String>();
+    private static final Set<String> S_EMPTY_HTML_ELEMENTS = new HashSet<String>();
 
     private static final String CDATA_START = "<![CDATA[ \n";
     private static final String CDATA_START_NO_LINE_RETURN = "<![CDATA[";
@@ -110,19 +110,19 @@ public class HtmlResponseWriterImpl
 
     static
     {
-        s_emptyHtmlElements.add("area");
-        s_emptyHtmlElements.add("br");
-        s_emptyHtmlElements.add("base");
-        s_emptyHtmlElements.add("basefont");
-        s_emptyHtmlElements.add("col");
-        s_emptyHtmlElements.add("frame");
-        s_emptyHtmlElements.add("hr");
-        s_emptyHtmlElements.add("img");
-        s_emptyHtmlElements.add("input");
-        s_emptyHtmlElements.add("isindex");
-        s_emptyHtmlElements.add("link");
-        s_emptyHtmlElements.add("meta");
-        s_emptyHtmlElements.add("param");
+        S_EMPTY_HTML_ELEMENTS.add("area");
+        S_EMPTY_HTML_ELEMENTS.add("br");
+        S_EMPTY_HTML_ELEMENTS.add("base");
+        S_EMPTY_HTML_ELEMENTS.add("basefont");
+        S_EMPTY_HTML_ELEMENTS.add("col");
+        S_EMPTY_HTML_ELEMENTS.add("frame");
+        S_EMPTY_HTML_ELEMENTS.add("hr");
+        S_EMPTY_HTML_ELEMENTS.add("img");
+        S_EMPTY_HTML_ELEMENTS.add("input");
+        S_EMPTY_HTML_ELEMENTS.add("isindex");
+        S_EMPTY_HTML_ELEMENTS.add("link");
+        S_EMPTY_HTML_ELEMENTS.add("meta");
+        S_EMPTY_HTML_ELEMENTS.add("param");
     }
 
     public HtmlResponseWriterImpl(Writer writer, String contentType, String characterEncoding)
@@ -143,7 +143,10 @@ public class HtmlResponseWriterImpl
         _contentType = contentType;
         if (_contentType == null)
         {
-            if (log.isLoggable(Level.FINE)) log.fine("No content type given, using default content type " + DEFAULT_CONTENT_TYPE);
+            if (log.isLoggable(Level.FINE))
+            {
+                log.fine("No content type given, using default content type " + DEFAULT_CONTENT_TYPE);
+            }
             _contentType = DEFAULT_CONTENT_TYPE;
         }
         _isXhtmlContentType = HtmlRendererUtils.isXHTMLContentType(_contentType);
@@ -153,7 +156,11 @@ public class HtmlResponseWriterImpl
 
         if (characterEncoding == null)
         {
-            if (log.isLoggable(Level.FINE)) log.fine("No character encoding given, using default character encoding " + DEFAULT_CHARACTER_ENCODING);
+            if (log.isLoggable(Level.FINE))
+            {
+                log.fine("No character encoding given, using default character encoding " +
+                        DEFAULT_CHARACTER_ENCODING);
+            }
             _characterEncoding = DEFAULT_CHARACTER_ENCODING;
         }
         else
@@ -182,7 +189,9 @@ public class HtmlResponseWriterImpl
             String supportedContentType = supportedContentTypes[i];
 
             if(supportedContentType.indexOf(contentType)!=-1)
+            {
                 return true;
+            }
         }
         return false;
     }
@@ -251,7 +260,8 @@ public class HtmlResponseWriterImpl
     }
 
     @Override
-    public void startCDATA() throws IOException {
+    public void startCDATA() throws IOException
+    {
         if (!_cdataOpen)
         {
             write(CDATA_START_NO_LINE_RETURN);
@@ -260,7 +270,8 @@ public class HtmlResponseWriterImpl
     }
 
     @Override
-    public void endCDATA() throws IOException {
+    public void endCDATA() throws IOException
+    {
         if (_cdataOpen)
         {
             write(CDATA_END_NO_LINE_RETURN);
@@ -272,7 +283,7 @@ public class HtmlResponseWriterImpl
     {
         if (_startTagOpen)
         {
-            if (!_useStraightXml && s_emptyHtmlElements.contains(_startElementName.toLowerCase()))
+            if (!_useStraightXml && S_EMPTY_HTML_ELEMENTS.contains(_startElementName.toLowerCase()))
             {
                 _currentWriter.write(" />");
                 // make null, this will cause NullPointer in some invalid element nestings
@@ -366,13 +377,14 @@ public class HtmlResponseWriterImpl
         }
         else
         {
-            if (!_useStraightXml && s_emptyHtmlElements.contains(name.toLowerCase()))
+            if (!_useStraightXml && S_EMPTY_HTML_ELEMENTS.contains(name.toLowerCase()))
             {
            /*
            Should this be here?  It warns even when you have an x:htmlTag value="br", it should just close.
 
                 if (log.isWarnEnabled())
-                    log.warn("HTML nesting warning on closing " + name + ": This element must not contain nested elements or text in HTML");
+                    log.warn("HTML nesting warning on closing " + name + 
+                        ": This element must not contain nested elements or text in HTML");
                     */
             }
             else
@@ -410,17 +422,20 @@ public class HtmlResponseWriterImpl
             // simple CDATA without comments, but note we need to check
             // when we are using any valid notation (simple CDATA, commented CDATA, xml comment) 
             String trimmedContent = content.trim();
-            if (trimmedContent.startsWith(CommentUtils.CDATA_SIMPLE_START) && trimmedContent.endsWith(CommentUtils.CDATA_SIMPLE_END))
+            if (trimmedContent.startsWith(CommentUtils.CDATA_SIMPLE_START) && trimmedContent.endsWith(
+                    CommentUtils.CDATA_SIMPLE_END))
             {
                 _outputWriter.write(content);
                 return;
             }
-            else if (CommentUtils.isStartMatchWithCommentedCDATA(trimmedContent) && CommentUtils.isEndMatchWithCommentedCDATA(trimmedContent))
+            else if (CommentUtils.isStartMatchWithCommentedCDATA(trimmedContent) && 
+                    CommentUtils.isEndMatchWithCommentedCDATA(trimmedContent))
             {
                 _outputWriter.write(content);
                 return;
             }
-            else if (trimmedContent.startsWith(CommentUtils.COMMENT_SIMPLE_START) && trimmedContent.endsWith(CommentUtils.COMMENT_SIMPLE_END))
+            else if (trimmedContent.startsWith(CommentUtils.COMMENT_SIMPLE_START) && 
+                    trimmedContent.endsWith(CommentUtils.COMMENT_SIMPLE_END))
             {
                 //Use comment wrap is valid, but for xhtml it is preferred to use CDATA
                 _outputWriter.write(CDATA_START);
@@ -478,12 +493,14 @@ public class HtmlResponseWriterImpl
                 
                 return;
             }
-            else if (CommentUtils.isStartMatchWithCommentedCDATA(trimmedContent) && CommentUtils.isEndMatchWithCommentedCDATA(trimmedContent))
+            else if (CommentUtils.isStartMatchWithCommentedCDATA(trimmedContent) && 
+                    CommentUtils.isEndMatchWithCommentedCDATA(trimmedContent))
             {
                 _outputWriter.write(content);
                 return;
             }
-            else if (CommentUtils.isStartMatchWithInlineCommentedCDATA(trimmedContent) && CommentUtils.isEndMatchWithInlineCommentedCDATA(trimmedContent))
+            else if (CommentUtils.isStartMatchWithInlineCommentedCDATA(trimmedContent) && 
+                    CommentUtils.isEndMatchWithInlineCommentedCDATA(trimmedContent))
             {
                 _outputWriter.write(content);
                 return;
@@ -527,12 +544,14 @@ public class HtmlResponseWriterImpl
                     _outputWriter.write(content);
                     return;
                 }
-                else if (CommentUtils.isStartMatchWithCommentedCDATA(trimmedContent) && CommentUtils.isEndMatchWithCommentedCDATA(trimmedContent))
+                else if (CommentUtils.isStartMatchWithCommentedCDATA(trimmedContent) && 
+                        CommentUtils.isEndMatchWithCommentedCDATA(trimmedContent))
                 {
                     _outputWriter.write(content);
                     return;
                 }
-                else if (CommentUtils.isStartMatchWithInlineCommentedCDATA(trimmedContent) && CommentUtils.isEndMatchWithInlineCommentedCDATA(trimmedContent))
+                else if (CommentUtils.isStartMatchWithInlineCommentedCDATA(trimmedContent) && 
+                        CommentUtils.isEndMatchWithInlineCommentedCDATA(trimmedContent))
                 {
                     _outputWriter.write(content);
                     return;
@@ -597,7 +616,8 @@ public class HtmlResponseWriterImpl
         }
         if (!_startTagOpen)
         {
-            throw new IllegalStateException("Must be called before the start element is closed (attribute '" + name + "')");
+            throw new IllegalStateException("Must be called before the start element is closed (attribute '"
+                    + name + "')");
         }
 
         if (value instanceof Boolean)
@@ -618,7 +638,8 @@ public class HtmlResponseWriterImpl
             _currentWriter.write(' ');
             _currentWriter.write(name);
             _currentWriter.write("=\"");
-            _currentWriter.write(org.apache.myfaces.shared.renderkit.html.util.HTMLEncoder.encode(strValue, false, false, !UTF8.equals(_characterEncoding)));
+            _currentWriter.write(org.apache.myfaces.shared.renderkit.html.util.HTMLEncoder.encode(
+                    strValue, false, false, !UTF8.equals(_characterEncoding)));
             _currentWriter.write('"');
         }
     }
@@ -631,7 +652,8 @@ public class HtmlResponseWriterImpl
         }
         if (!_startTagOpen)
         {
-            throw new IllegalStateException("Must be called before the start element is closed (attribute '" + name + "')");
+            throw new IllegalStateException("Must be called before the start element is closed (attribute '"
+                    + name + "')");
         }
 
         String strValue = value.toString();
@@ -640,7 +662,8 @@ public class HtmlResponseWriterImpl
         _currentWriter.write("=\"");
         if (strValue.toLowerCase().startsWith("javascript:"))
         {
-            _currentWriter.write(org.apache.myfaces.shared.renderkit.html.util.HTMLEncoder.encode(strValue, false, false, !UTF8.equals(_characterEncoding)));
+            _currentWriter.write(org.apache.myfaces.shared.renderkit.html.util.HTMLEncoder.encode(
+                    strValue, false, false, !UTF8.equals(_characterEncoding)));
         }
         else
         {
@@ -672,7 +695,9 @@ public class HtmlResponseWriterImpl
             }
             */
             //_writer.write(strValue);
-            _currentWriter.write(org.apache.myfaces.shared.renderkit.html.util.HTMLEncoder.encodeURIAtributte(strValue, _characterEncoding));
+            _currentWriter.write(
+                    org.apache.myfaces.shared.renderkit.html.util.HTMLEncoder.encodeURIAtributte(
+                            strValue, _characterEncoding));
         }
         _currentWriter.write('"');
     }
@@ -704,12 +729,19 @@ public class HtmlResponseWriterImpl
         if (isScriptOrStyle())
         {
             // Don't bother encoding anything if chosen character encoding is UTF-8
-            if (UTF8.equals(_characterEncoding)) _currentWriter.write(strValue);
-            else _currentWriter.write(UnicodeEncoder.encode(strValue) );
+            if (UTF8.equals(_characterEncoding))
+            {
+                _currentWriter.write(strValue);
+            }
+            else
+            {
+                _currentWriter.write(UnicodeEncoder.encode(strValue));
+            }
         }
         else
         {
-            _currentWriter.write(org.apache.myfaces.shared.renderkit.html.util.HTMLEncoder.encode(strValue, false, false, !UTF8.equals(_characterEncoding)));
+            _currentWriter.write(org.apache.myfaces.shared.renderkit.html.util.HTMLEncoder.encode(
+                    strValue, false, false, !UTF8.equals(_characterEncoding)));
         }
     }
 
@@ -730,18 +762,26 @@ public class HtmlResponseWriterImpl
         {
             String strValue = new String(cbuf, off, len);
             // Don't bother encoding anything if chosen character encoding is UTF-8
-            if (UTF8.equals(_characterEncoding)) _currentWriter.write(strValue);
-            else _currentWriter.write(UnicodeEncoder.encode(strValue) );
+            if (UTF8.equals(_characterEncoding))
+            {
+                _currentWriter.write(strValue);
+            }
+            else
+            {
+                _currentWriter.write(UnicodeEncoder.encode(strValue));
+            }
         }
         else if (isTextarea())
         {
             // For textareas we must *not* map successive spaces to &nbsp or Newlines to <br/>
-            org.apache.myfaces.shared.renderkit.html.util.HTMLEncoder.encode(cbuf, off, len, false, false, !UTF8.equals(_characterEncoding), _currentWriter);
+            org.apache.myfaces.shared.renderkit.html.util.HTMLEncoder.encode(
+                    cbuf, off, len, false, false, !UTF8.equals(_characterEncoding), _currentWriter);
         }
         else
         {
             // We map successive spaces to &nbsp; and Newlines to <br/>
-            org.apache.myfaces.shared.renderkit.html.util.HTMLEncoder.encode(cbuf, off, len, true, true, !UTF8.equals(_characterEncoding), _currentWriter);
+            org.apache.myfaces.shared.renderkit.html.util.HTMLEncoder.encode(
+                    cbuf, off, len, true, true, !UTF8.equals(_characterEncoding), _currentWriter);
         }
     }
 
@@ -820,7 +860,8 @@ public class HtmlResponseWriterImpl
     public ResponseWriter cloneWithWriter(Writer writer)
     {
         HtmlResponseWriterImpl newWriter
-                = new HtmlResponseWriterImpl(writer, getContentType(), getCharacterEncoding(), _wrapScriptContentWithXmlCommentTag);
+                = new HtmlResponseWriterImpl(writer, getContentType(), getCharacterEncoding(), 
+                        _wrapScriptContentWithXmlCommentTag);
         //newWriter._writeDummyForm = _writeDummyForm;
         //newWriter._dummyFormParams = _dummyFormParams;
         return newWriter;
@@ -840,8 +881,14 @@ public class HtmlResponseWriterImpl
         closeStartTagIfNecessary();
         String strValue = new String(cbuf, off, len);
         // Don't bother encoding anything if chosen character encoding is UTF-8
-        if (UTF8.equals(_characterEncoding)) _currentWriter.write(strValue);
-        else _currentWriter.write(UnicodeEncoder.encode(strValue) );
+        if (UTF8.equals(_characterEncoding))
+        {
+            _currentWriter.write(strValue);
+        }
+        else
+        {
+            _currentWriter.write(UnicodeEncoder.encode(strValue));
+        }
     }
 
     public void write(int c) throws IOException
@@ -855,8 +902,14 @@ public class HtmlResponseWriterImpl
         closeStartTagIfNecessary();
         String strValue = new String(cbuf);
         // Don't bother encoding anything if chosen character encoding is UTF-8
-        if (UTF8.equals(_characterEncoding)) _currentWriter.write(strValue);
-        else _currentWriter.write(UnicodeEncoder.encode(strValue) );
+        if (UTF8.equals(_characterEncoding))
+        {
+            _currentWriter.write(strValue);
+        }
+        else
+        {
+            _currentWriter.write(UnicodeEncoder.encode(strValue));
+        }
     }
 
     public void write(String str) throws IOException
@@ -867,8 +920,14 @@ public class HtmlResponseWriterImpl
         if (str.length() > 0)
         {
             // Don't bother encoding anything if chosen character encoding is UTF-8
-            if (UTF8.equals(_characterEncoding)) _currentWriter.write(str);
-            else _currentWriter.write(UnicodeEncoder.encode(str) );
+            if (UTF8.equals(_characterEncoding))
+            {
+                _currentWriter.write(str);
+            }
+            else
+            {
+                _currentWriter.write(UnicodeEncoder.encode(str));
+            }
         }
     }
 
@@ -877,8 +936,14 @@ public class HtmlResponseWriterImpl
         closeStartTagIfNecessary();
         String strValue = str.substring(off, off+len);
         // Don't bother encoding anything if chosen character encoding is UTF-8
-        if (UTF8.equals(_characterEncoding)) _currentWriter.write(strValue);
-        else _currentWriter.write(UnicodeEncoder.encode(strValue) );
+        if (UTF8.equals(_characterEncoding))
+        {
+            _currentWriter.write(strValue);
+        }
+        else
+        {
+            _currentWriter.write(UnicodeEncoder.encode(strValue));
+        }
     }
     
     /**

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlSecretRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlSecretRendererBase.java?rev=1202478&r1=1202477&r2=1202478&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlSecretRendererBase.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlSecretRendererBase.java Tue Nov 15 23:51:35 2011
@@ -102,7 +102,8 @@ public class HtmlSecretRendererBase
         }
         else
         {
-            isRedisplay = org.apache.myfaces.shared.renderkit.RendererUtils.getBooleanAttribute(uiComponent, JSFAttr.REDISPLAY_ATTR, false);
+            isRedisplay = org.apache.myfaces.shared.renderkit.RendererUtils.getBooleanAttribute(uiComponent, 
+                    JSFAttr.REDISPLAY_ATTR, false);
         }
         if (isRedisplay)
         {
@@ -111,13 +112,15 @@ public class HtmlSecretRendererBase
         }
 
         Map<String, List<ClientBehavior>> behaviors = null;
-        if (uiComponent instanceof ClientBehaviorHolder && JavascriptUtils.isJavascriptAllowed(facesContext.getExternalContext()))
+        if (uiComponent instanceof ClientBehaviorHolder && JavascriptUtils.isJavascriptAllowed(
+                facesContext.getExternalContext()))
         {
             behaviors = ((ClientBehaviorHolder) uiComponent).getClientBehaviors();
             
             HtmlRendererUtils.renderBehaviorizedOnchangeEventHandler(facesContext, writer, uiComponent, behaviors);
             HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, uiComponent, behaviors);
-            HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(facesContext, writer, uiComponent, behaviors);
+            HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(
+                    facesContext, writer, uiComponent, behaviors);
             if (isCommonPropertiesOptimizationEnabled(facesContext))
             {
                 CommonPropertyUtils.renderInputPassthroughPropertiesWithoutDisabledAndEvents(writer, 
@@ -125,7 +128,8 @@ public class HtmlSecretRendererBase
             }
             else
             {
-                HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
+                HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, 
+                        HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
             }
         }
         else
@@ -137,7 +141,8 @@ public class HtmlSecretRendererBase
             }
             else
             {
-                HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
+                HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, 
+                        HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
             }
         }
 
@@ -198,7 +203,8 @@ public class HtmlSecretRendererBase
         }
     }
 
-    public Object getConvertedValue(FacesContext facesContext, UIComponent uiComponent, Object submittedValue) throws ConverterException
+    public Object getConvertedValue(FacesContext facesContext, UIComponent uiComponent, Object submittedValue)
+        throws ConverterException
     {
         RendererUtils.checkParamValidity(facesContext, uiComponent, UIOutput.class);
         return RendererUtils.getConvertedUIOutputValue(facesContext,

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTableRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTableRendererBase.java?rev=1202478&r1=1202477&r2=1202478&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTableRendererBase.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTableRendererBase.java Tue Nov 15 23:51:35 2011
@@ -68,7 +68,8 @@ public class HtmlTableRendererBase exten
      * @param component dataTable
      * @return number of layout columns
      */
-    protected int getNewspaperColumns(UIComponent component) {
+    protected int getNewspaperColumns(UIComponent component)
+    {
         return 1;
     }
 
@@ -76,7 +77,8 @@ public class HtmlTableRendererBase exten
      * @param component dataTable
      * @return component to display between layout columns
      */
-    protected UIComponent getNewspaperTableSpacer(UIComponent component) {
+    protected UIComponent getNewspaperTableSpacer(UIComponent component)
+    {
         return null;
     }
 
@@ -84,7 +86,8 @@ public class HtmlTableRendererBase exten
      * @param component dataTable
      * @return whether dataTable has component to display between layout columns
      */
-    protected boolean hasNewspaperTableSpacer(UIComponent component) {
+    protected boolean hasNewspaperTableSpacer(UIComponent component)
+    {
         return false;
     }
 
@@ -92,7 +95,8 @@ public class HtmlTableRendererBase exten
      * @param component dataTable
      * @return whether dataTable has newspaper columns layed out horizontally
      */
-    protected boolean isNewspaperHorizontalOrientation(UIComponent component) {
+    protected boolean isNewspaperHorizontalOrientation(UIComponent component)
+    {
         return false;
     }
 
@@ -138,7 +142,8 @@ public class HtmlTableRendererBase exten
         writer.startElement(HTML.TABLE_ELEM, uiComponent);
         
         Map<String, List<ClientBehavior>> behaviors = null;
-        if (uiComponent instanceof ClientBehaviorHolder && JavascriptUtils.isJavascriptAllowed(facesContext.getExternalContext()))
+        if (uiComponent instanceof ClientBehaviorHolder && JavascriptUtils.isJavascriptAllowed(
+                facesContext.getExternalContext()))
         {
             behaviors = ((ClientBehaviorHolder) uiComponent).getClientBehaviors();
             if (!behaviors.isEmpty())
@@ -158,7 +163,8 @@ public class HtmlTableRendererBase exten
             }
             else
             {
-                HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, HTML.TABLE_PASSTHROUGH_ATTRIBUTES_WITHOUT_EVENTS);
+                HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, 
+                        HTML.TABLE_PASSTHROUGH_ATTRIBUTES_WITHOUT_EVENTS);
             }
         }
         else
@@ -172,7 +178,8 @@ public class HtmlTableRendererBase exten
             }
             else
             {
-                HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, HTML.TABLE_PASSTHROUGH_ATTRIBUTES);
+                HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, 
+                        HTML.TABLE_PASSTHROUGH_ATTRIBUTES);
             }
         }
     }
@@ -225,19 +232,24 @@ public class HtmlTableRendererBase exten
         }
         // render the facet
         HtmlRendererUtils.writePrettyLineSeparator(facesContext);
-        RendererUtils.renderChild(facesContext, colgroupsFacet);
+        //RendererUtils.renderChild(facesContext, colgroupsFacet);
+        colgroupsFacet.encodeAll(facesContext);
     } 
     
     /**
      * Gets styles for the specified component.
      */
-    protected static Styles getStyles(UIData uiData) {
+    protected static Styles getStyles(UIData uiData)
+    {
         String rowClasses;
         String columnClasses;
-        if(uiData instanceof HtmlDataTable) {
+        if(uiData instanceof HtmlDataTable) 
+        {
             rowClasses = ((HtmlDataTable)uiData).getRowClasses();
             columnClasses = ((HtmlDataTable)uiData).getColumnClasses();
-        } else {
+        }
+        else
+        {
             rowClasses = (String)uiData.getAttributes().get(JSFAttr.ROW_CLASSES_ATTR);
             columnClasses = (String)uiData.getAttributes().get(JSFAttr.COLUMN_CLASSES_ATTR);
         }
@@ -247,12 +259,14 @@ public class HtmlTableRendererBase exten
     /**
      * Class manages the styles from String lists.
      */
-    protected static class Styles {
+    protected static class Styles
+    {
 
         private String[] _columnStyle;
         private String[] _rowStyle;
 
-        Styles(String rowStyles, String columnStyles) {
+        Styles(String rowStyles, String columnStyles)
+        {
             _rowStyle = (rowStyles == null)
                 ? ArrayUtils.EMPTY_STRING_ARRAY
                 : StringUtils.trim(
@@ -263,15 +277,19 @@ public class HtmlTableRendererBase exten
                     StringUtils.splitShortString(columnStyles, ','));
         }
 
-        public String getRowStyle(int idx) {
-            if(!hasRowStyle()) {
+        public String getRowStyle(int idx)
+        {
+            if(!hasRowStyle())
+            {
                 return null;
             }
             return _rowStyle[idx % _rowStyle.length];
         }
 
-        public String getColumnStyle(int idx) {
-            if(!hasColumnStyle()) {
+        public String getColumnStyle(int idx)
+        {
+            if(!hasColumnStyle())
+            {
                 return null;
             }
             //return _columnStyle[idx % _columnStyle.length];
@@ -282,11 +300,13 @@ public class HtmlTableRendererBase exten
             return null;   
         }
 
-        public boolean hasRowStyle() {
+        public boolean hasRowStyle()
+        {
             return _rowStyle.length > 0;
         }
 
-        public boolean hasColumnStyle() {
+        public boolean hasColumnStyle()
+        {
             return _columnStyle.length > 0;
         }
     }
@@ -299,14 +319,16 @@ public class HtmlTableRendererBase exten
      * This method is separated from the encodeChildren so that it can be overridden by
      * subclasses. One class that uses this functionality is autoUpdateDataTable.
      */
-     public void encodeInnerHtml(FacesContext facesContext, UIComponent component)throws IOException{
+     public void encodeInnerHtml(FacesContext facesContext, UIComponent component)throws IOException
+     {
 
         UIData uiData = (UIData) component;
         ResponseWriter writer = facesContext.getResponseWriter();
 
         int rowCount = uiData.getRowCount();
 
-        if (rowCount == 0) {
+        if (rowCount == 0)
+        {
             //nothing to render, to get valid xhtml we render an empty dummy row
             writer.startElement(HTML.TBODY_ELEM, uiData);
             writer.writeAttribute(HTML.ID_ATTR, component.getClientId(facesContext) + ":tbody_element", null);
@@ -342,8 +364,13 @@ public class HtmlTableRendererBase exten
         int newspaperColumns = getNewspaperColumns(component);
         int newspaperRows;
         if((last - first) % newspaperColumns == 0)
+        {
             newspaperRows = (last - first) / newspaperColumns;
-        else newspaperRows = ((last - first) / newspaperColumns) + 1;
+        }
+        else
+        {
+            newspaperRows = ((last - first) / newspaperColumns) + 1;
+        }
         boolean newspaperHorizontalOrientation = isNewspaperHorizontalOrientation(component);
         
         // get the row indizes for which a new TBODY element should be created
@@ -372,26 +399,36 @@ public class HtmlTableRendererBase exten
         {
             boolean rowStartRendered = false;
             // walk through the newspaper columns
-            for(int nc = 0; nc < newspaperColumns; nc++) {
+            for(int nc = 0; nc < newspaperColumns; nc++)
+            {
 
                 // the current row in the 'real' table
                 int currentRow;
                 if (newspaperHorizontalOrientation)
+                {
                     currentRow = nr * newspaperColumns + nc + first;
+                }
                 else
+                {
                     currentRow = nc * newspaperRows + nr + first;
+                }
                 
                 // if this row is not to be rendered
-                if(currentRow >= last) continue;
+                if(currentRow >= last)
+                {
+                    continue;
+                }
 
                 // bail if any row does not exist
                 uiData.setRowIndex(currentRow);
-                if(!uiData.isRowAvailable()) {
+                if(!uiData.isRowAvailable())
+                {
                     log.severe("Row is not available. Rowindex = " + currentRow);
                     break;
                 }
     
-                if (nc == 0) {
+                if (nc == 0)
+                {
                     // first column in table, start new row
                     beforeRow(facesContext, uiData);
 
@@ -426,19 +463,27 @@ public class HtmlTableRendererBase exten
                         boolean columnRendering = child instanceof UIColumn;
                         
                         if (columnRendering)
+                        {
                             beforeColumn(facesContext, uiData, j);
+                        }
                            
-                        encodeColumnChild(facesContext, writer, uiData, child, styles, nc * uiData.getChildCount() + j);                    
+                        encodeColumnChild(facesContext, writer, uiData, child, 
+                                styles, nc * uiData.getChildCount() + j);                    
                        
                         if (columnRendering)
+                        {
                             afterColumn(facesContext, uiData, j);
+                        }
                     }
                 }
 
                 if (hasNewspaperTableSpacer(uiData))
                 {
                     // draw the spacer facet
-                    if(nc < newspaperColumns - 1) renderSpacerCell(facesContext, writer, uiData);
+                    if(nc < newspaperColumns - 1)
+                    {
+                        renderSpacerCell(facesContext, writer, uiData);
+                    }
                 }
             }
             if (rowStartRendered)
@@ -501,7 +546,8 @@ public class HtmlTableRendererBase exten
         {
             writer.writeAttribute(HTML.CLASS_ATTR, styles.getColumnStyle(columnStyleIndex), null);
         }
-        RendererUtils.renderChild(facesContext, component);
+        //RendererUtils.renderChild(facesContext, component);
+        component.encodeAll(facesContext);
         if(rowHeader) 
         {
             writer.endElement(HTML.TH_ELEM);   
@@ -537,9 +583,11 @@ public class HtmlTableRendererBase exten
         }
     }
 
-    protected void renderRowStyle(FacesContext facesContext, ResponseWriter writer, UIData uiData, Styles styles, int rowStyleIndex) throws IOException
+    protected void renderRowStyle(FacesContext facesContext, ResponseWriter writer, 
+            UIData uiData, Styles styles, int rowStyleIndex) throws IOException
     {
-        if(styles.hasRowStyle()) {
+        if(styles.hasRowStyle())
+        {
             String rowStyle = styles.getRowStyle(rowStyleIndex);
             writer.writeAttribute(HTML.CLASS_ATTR, rowStyle, null);
         }
@@ -641,7 +689,8 @@ public class HtmlTableRendererBase exten
      * @param header true if the header of the column child is rendered
      * @param columnIndex the index of the currenly rendered column
      */
-    protected void beforeColumnHeaderOrFooter(FacesContext facesContext, UIData uiData, boolean header, int columnIndex) throws IOException
+    protected void beforeColumnHeaderOrFooter(FacesContext facesContext, UIData uiData, boolean header,
+            int columnIndex) throws IOException
     {         
     }
     /**
@@ -652,7 +701,8 @@ public class HtmlTableRendererBase exten
      * @param header true if the header of the column child is rendered
      * @param columnIndex the index of the currenly rendered column
      */
-    protected void afterColumnHeaderOrFooter(FacesContext facesContext, UIData uiData, boolean header, int columnIndex) throws IOException
+    protected void afterColumnHeaderOrFooter(FacesContext facesContext, UIData uiData, boolean header,
+            int columnIndex) throws IOException
     {         
     }
 
@@ -769,17 +819,25 @@ public class HtmlTableRendererBase exten
             {
                 String headerStyleClass = getHeaderClass(component);
                 if (facet != null)
+                {
                     renderTableHeaderRow(facesContext, writer, component, facet, headerStyleClass, colspan);
+                }
                 if (hasColumnFacet)
+                {
                     renderColumnHeaderRow(facesContext, writer, component, headerStyleClass);
+                }
             }
             else
             {
                 String footerStyleClass = getFooterClass(component);
                 if (hasColumnFacet)
+                {
                     renderColumnFooterRow(facesContext, writer, component, footerStyleClass);
+                }
                 if (facet != null)
+                {
                     renderTableFooterRow(facesContext, writer, component, facet, footerStyleClass, colspan);
+                }
             }
             if (elemName != null)
             {
@@ -841,7 +899,8 @@ public class HtmlTableRendererBase exten
     protected void renderTableHeaderRow(FacesContext facesContext, ResponseWriter writer, UIComponent component,
             UIComponent headerFacet, String headerStyleClass, int colspan) throws IOException
     {
-        renderTableHeaderOrFooterRow(facesContext, writer, component, headerFacet, headerStyleClass, determineHeaderCellTag(facesContext, component),
+        renderTableHeaderOrFooterRow(facesContext, writer, component, headerFacet, headerStyleClass, 
+                determineHeaderCellTag(facesContext, component),
                 colspan, true);
     }
 
@@ -894,8 +953,10 @@ public class HtmlTableRendererBase exten
         renderColumnHeaderOrFooterRow(facesContext, writer, component, footerStyleClass, false);
     }
 
-    protected void renderTableHeaderOrFooterRow(FacesContext facesContext, ResponseWriter writer, UIComponent component,
-            UIComponent facet, String styleClass, String colElementName, int colspan, boolean isHeader) throws IOException
+    protected void renderTableHeaderOrFooterRow(FacesContext facesContext, ResponseWriter writer, 
+            UIComponent component,
+            UIComponent facet, String styleClass, String colElementName, int colspan, boolean isHeader)
+            throws IOException
     {
         HtmlRendererUtils.writePrettyLineSeparator(facesContext);
         writer.startElement(HTML.TR_ELEM, component);
@@ -912,14 +973,19 @@ public class HtmlTableRendererBase exten
         {
             totalColumns = totalColumns + newsPaperColumns - 1;
         }
-        writer.writeAttribute(HTML.COLSPAN_ATTR, new Integer(totalColumns), null);
+        // Only render colspan if is > 0
+        if (totalColumns > 0)
+        {
+            writer.writeAttribute(HTML.COLSPAN_ATTR, new Integer(totalColumns), null);
+        }
         if (styleClass != null)
         {
             writer.writeAttribute(HTML.CLASS_ATTR, styleClass, null);
         }
         if (facet != null)
         {
-            RendererUtils.renderChild(facesContext, facet);
+            //RendererUtils.renderChild(facesContext, facet);
+            facet.encodeAll(facesContext);
         }
         writer.endElement(colElementName);
         writer.endElement(HTML.TR_ELEM);
@@ -944,12 +1010,16 @@ public class HtmlTableRendererBase exten
                 if (uiComponent.isRendered())
                 {
                     if (component instanceof UIData && uiComponent instanceof UIColumn)
-                        beforeColumnHeaderOrFooter(facesContext, (UIData)component, header, columnIndex);
+                    {
+                        beforeColumnHeaderOrFooter(facesContext, (UIData) component, header, columnIndex);
+                    }
                 
                     renderColumnChildHeaderOrFooterRow(facesContext, writer, uiComponent, styleClass, header);
                     
                     if (component instanceof UIData && uiComponent instanceof UIColumn)
-                        afterColumnHeaderOrFooter(facesContext, (UIData)component, header, columnIndex);
+                    {
+                        afterColumnHeaderOrFooter(facesContext, (UIData) component, header, columnIndex);
+                    }
                 }
                 columnIndex += 1;
             }
@@ -957,7 +1027,10 @@ public class HtmlTableRendererBase exten
             if (hasNewspaperTableSpacer(component))
             {
                 // draw the spacer facet
-                if(nc < newspaperColumns - 1) renderSpacerCell(facesContext, writer, component);
+                if(nc < newspaperColumns - 1)
+                {
+                    renderSpacerCell(facesContext, writer, component);
+                }
             }
         }
         writer.endElement(HTML.TR_ELEM);
@@ -966,12 +1039,18 @@ public class HtmlTableRendererBase exten
       /**
       * Renders a spacer between adjacent newspaper columns.
       */
-    protected void renderSpacerCell(FacesContext facesContext, ResponseWriter writer, UIComponent component) throws IOException {
+    protected void renderSpacerCell(FacesContext facesContext, ResponseWriter writer, UIComponent component)
+        throws IOException 
+    {
         UIComponent spacer = getNewspaperTableSpacer(component);
-        if(spacer == null) return;
+        if(spacer == null)
+        {
+            return;
+        }
          
          writer.startElement(HTML.TD_ELEM, component);
-         RendererUtils.renderChild(facesContext, spacer);
+         //RendererUtils.renderChild(facesContext, spacer);
+         spacer.encodeAll(facesContext);
          writer.endElement(HTML.TD_ELEM);
      }
 
@@ -981,26 +1060,38 @@ public class HtmlTableRendererBase exten
         if (uiComponent instanceof UIColumn)
         {
             // allow column to override style class, new in JSF 1.2
-            if (uiComponent instanceof HtmlColumn) {
+            if (uiComponent instanceof HtmlColumn)
+            {
                 HtmlColumn column = (HtmlColumn)uiComponent;
                 if (isHeader && column.getHeaderClass()!=null)
+                {
                     styleClass = column.getHeaderClass();
+                }
                 else if (!isHeader && column.getFooterClass()!=null)
+                {
                     styleClass = column.getFooterClass();
-            }else{
+                }
+            }
+            else
+            {
                 //This code corrects MYFACES-1790, because HtmlColumnTag
                 //has as component type javax.faces.Column, so as side
                 //effect it not create HtmlColumn, it create UIColumn
                 //classes.
                 UIColumn column = (UIColumn) uiComponent;                
-                if (isHeader){
+                if (isHeader)
+                {
                     String headerClass = (String) column.getAttributes().get("headerClass");
-                    if (headerClass != null){
+                    if (headerClass != null)
+                    {
                         styleClass = (String) headerClass;
                     }
-                }else{
+                }
+                else
+                {
                     String footerClass = (String) column.getAttributes().get("footerClass");
-                    if (footerClass != null){
+                    if (footerClass != null)
+                    {
                         styleClass = (String) footerClass;
                     }
                 }
@@ -1067,7 +1158,8 @@ public class HtmlTableRendererBase exten
 
         if (facet != null)
         {
-            RendererUtils.renderChild(facesContext, facet);
+            //RendererUtils.renderChild(facesContext, facet);
+            facet.encodeAll(facesContext);
         }
         writer.endElement(determineHeaderCellTag(facesContext, uiComponent.getParent()));
     }
@@ -1118,7 +1210,8 @@ public class HtmlTableRendererBase exten
         }
         if (facet != null)
         {
-            RendererUtils.renderChild(facesContext, facet);
+            //RendererUtils.renderChild(facesContext, facet);
+            facet.encodeAll(facesContext);
         }
         writer.endElement(HTML.TD_ELEM);
     }
@@ -1136,7 +1229,8 @@ public class HtmlTableRendererBase exten
         }
         else
         {
-            return (String) component.getAttributes().get(org.apache.myfaces.shared.renderkit.JSFAttr.HEADER_CLASS_ATTR);
+            return (String) component.getAttributes().get(
+                    org.apache.myfaces.shared.renderkit.JSFAttr.HEADER_CLASS_ATTR);
         }
     }
 
@@ -1153,7 +1247,8 @@ public class HtmlTableRendererBase exten
         }
         else
         {
-            return (String) component.getAttributes().get(org.apache.myfaces.shared.renderkit.JSFAttr.FOOTER_CLASS_ATTR);
+            return (String) component.getAttributes().get(
+                    org.apache.myfaces.shared.renderkit.JSFAttr.FOOTER_CLASS_ATTR);
         }
     }
 

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTextRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTextRendererBase.java?rev=1202478&r1=1202477&r2=1202478&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTextRendererBase.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTextRendererBase.java Tue Nov 15 23:51:35 2011
@@ -90,7 +90,10 @@ public class HtmlTextRendererBase
     {
         
         String text = org.apache.myfaces.shared.renderkit.RendererUtils.getStringValue(facesContext, component);
-        if (log.isLoggable(Level.FINE)) log.fine("renderOutput '" + text + "'");
+        if (log.isLoggable(Level.FINE))
+        {
+            log.fine("renderOutput '" + text + "'");
+        }
         boolean escape;
         if (component instanceof HtmlOutputText || component instanceof EscapeCapable)
         {
@@ -98,7 +101,8 @@ public class HtmlTextRendererBase
         }
         else
         {
-            escape = RendererUtils.getBooleanAttribute(component, org.apache.myfaces.shared.renderkit.JSFAttr.ESCAPE_ATTR,
+            escape = RendererUtils.getBooleanAttribute(component, 
+                    org.apache.myfaces.shared.renderkit.JSFAttr.ESCAPE_ATTR,
                                                        true); //default is to escape
         }
         if (text != null)
@@ -109,8 +113,7 @@ public class HtmlTextRendererBase
             if (isCommonPropertiesOptimizationEnabled(facesContext))
             {
                 long commonPropertiesMarked = CommonPropertyUtils.getCommonPropertiesMarked(component);
-                
-                if (commonPropertiesMarked > 0)
+                if ( (commonPropertiesMarked & ~(CommonPropertyConstants.ESCAPE_PROP)) > 0)
                 {
                     span = true;
                     writer.startElement(HTML.SPAN_ELEM, component);
@@ -153,7 +156,10 @@ public class HtmlTextRendererBase
 
             if (escape)
             {
-                if (log.isLoggable(Level.FINE)) log.fine("renderOutputText writing '" + text + "'");
+                if (log.isLoggable(Level.FINE))
+                {
+                    log.fine("renderOutputText writing '" + text + "'");
+                }
                 writer.writeText(text, org.apache.myfaces.shared.renderkit.JSFAttr.VALUE_ATTR);
             }
             else
@@ -189,7 +195,10 @@ public class HtmlTextRendererBase
 
         String clientId = component.getClientId(facesContext);
         String value = org.apache.myfaces.shared.renderkit.RendererUtils.getStringValue(facesContext, component);
-        if (log.isLoggable(Level.FINE)) log.fine("renderInput '" + value + "'");
+        if (log.isLoggable(Level.FINE))
+        {
+            log.fine("renderInput '" + value + "'");
+        }
         writer.startElement(HTML.INPUT_ELEM, component);
         writer.writeAttribute(HTML.ID_ATTR, clientId, null);
         writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
@@ -204,13 +213,15 @@ public class HtmlTextRendererBase
         }
 
         Map<String, List<ClientBehavior>> behaviors = null;
-        if (component instanceof ClientBehaviorHolder && JavascriptUtils.isJavascriptAllowed(facesContext.getExternalContext()))
+        if (component instanceof ClientBehaviorHolder && JavascriptUtils.isJavascriptAllowed(
+                facesContext.getExternalContext()))
         {
             behaviors = ((ClientBehaviorHolder) component).getClientBehaviors();
             
             HtmlRendererUtils.renderBehaviorizedOnchangeEventHandler(facesContext, writer, component, behaviors);
             HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, component, behaviors);
-            HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(facesContext, writer, component, behaviors);
+            HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(
+                    facesContext, writer, component, behaviors);
             if (isCommonPropertiesOptimizationEnabled(facesContext))
             {
                 CommonPropertyUtils.renderInputPassthroughPropertiesWithoutDisabledAndEvents(writer, 
@@ -218,7 +229,8 @@ public class HtmlTextRendererBase
             }
             else
             {
-                HtmlRendererUtils.renderHTMLAttributes(writer, component, HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
+                HtmlRendererUtils.renderHTMLAttributes(writer, component, 
+                        HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
             }
         }
         else
@@ -230,7 +242,8 @@ public class HtmlTextRendererBase
             }
             else
             {
-                HtmlRendererUtils.renderHTMLAttributes(writer, component, HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
+                HtmlRendererUtils.renderHTMLAttributes(writer, component, 
+                        HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
             }
         }
 
@@ -260,7 +273,8 @@ public class HtmlTextRendererBase
             return ((HtmlInputText)component).isDisabled();
         }
 
-        return org.apache.myfaces.shared.renderkit.RendererUtils.getBooleanAttribute(component, HTML.DISABLED_ATTR, false);
+        return org.apache.myfaces.shared.renderkit.RendererUtils.getBooleanAttribute(component, 
+                HTML.DISABLED_ATTR, false);
         
     }
 
@@ -306,7 +320,8 @@ public class HtmlTextRendererBase
     }
 
 
-    public Object getConvertedValue(FacesContext facesContext, UIComponent component, Object submittedValue) throws ConverterException
+    public Object getConvertedValue(FacesContext facesContext, UIComponent component, Object submittedValue)
+        throws ConverterException
     {
         org.apache.myfaces.shared.renderkit.RendererUtils.checkParamValidity(facesContext, component, UIOutput.class);
         return RendererUtils.getConvertedUIOutputValue(facesContext,
@@ -358,7 +373,9 @@ public class HtmlTextRendererBase
             if (escape)
             {
                 if (log.isLoggable(Level.FINE))
+                {
                     log.fine("renderOutputText writing '" + text + "'");
+                }
                 writer.writeText(text,
                         org.apache.myfaces.shared.renderkit.JSFAttr.VALUE_ATTR);
             }

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTextareaRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTextareaRendererBase.java?rev=1202478&r1=1202477&r2=1202478&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTextareaRendererBase.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTextareaRendererBase.java Tue Nov 15 23:51:35 2011
@@ -18,14 +18,10 @@
  */
 package org.apache.myfaces.shared.renderkit.html;
 
-import org.apache.myfaces.shared.renderkit.RendererUtils;
-import org.apache.myfaces.shared.renderkit.html.HTML;
-import org.apache.myfaces.shared.renderkit.html.HtmlRenderer;
-import org.apache.myfaces.shared.renderkit.html.HtmlRendererUtils;
-import org.apache.myfaces.shared.renderkit.html.util.JavascriptUtils;
-import org.apache.myfaces.shared.renderkit.html.util.ResourceUtils;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
 
-import javax.faces.component.EditableValueHolder;
 import javax.faces.component.UIComponent;
 import javax.faces.component.UIInput;
 import javax.faces.component.UIOutput;
@@ -35,9 +31,10 @@ import javax.faces.component.html.HtmlIn
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
 import javax.faces.convert.ConverterException;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
+
+import org.apache.myfaces.shared.renderkit.RendererUtils;
+import org.apache.myfaces.shared.renderkit.html.util.JavascriptUtils;
+import org.apache.myfaces.shared.renderkit.html.util.ResourceUtils;
 
 
 /**
@@ -59,7 +56,8 @@ public class HtmlTextareaRendererBase
             behaviors = ((ClientBehaviorHolder) uiComponent).getClientBehaviors();
             if (!behaviors.isEmpty())
             {
-                ResourceUtils.renderDefaultJsfJsInlineIfNecessary(facesContext, facesContext.getResponseWriter());
+                ResourceUtils.renderDefaultJsfJsInlineIfNecessary(facesContext, 
+                        facesContext.getResponseWriter());
             }
         }
         
@@ -67,7 +65,9 @@ public class HtmlTextareaRendererBase
 
     }
 
-    protected void encodeTextArea(FacesContext facesContext, UIComponent uiComponent) throws IOException {
+    protected void encodeTextArea(FacesContext facesContext, UIComponent uiComponent) 
+        throws IOException
+    {
        //allow subclasses to render custom attributes by separating rendering begin and end
         renderTextAreaBegin(facesContext, uiComponent);
         renderTextAreaValue(facesContext, uiComponent);
@@ -83,7 +83,8 @@ public class HtmlTextareaRendererBase
         writer.startElement(HTML.TEXTAREA_ELEM, uiComponent);
 
         Map<String, List<ClientBehavior>> behaviors = null;
-        if (uiComponent instanceof ClientBehaviorHolder && JavascriptUtils.isJavascriptAllowed(facesContext.getExternalContext()))
+        if (uiComponent instanceof ClientBehaviorHolder && JavascriptUtils.isJavascriptAllowed(
+                facesContext.getExternalContext()))
         {
             behaviors = ((ClientBehaviorHolder) uiComponent).getClientBehaviors();
             if (!behaviors.isEmpty())
@@ -97,7 +98,8 @@ public class HtmlTextareaRendererBase
             }
             HtmlRendererUtils.renderBehaviorizedOnchangeEventHandler(facesContext, writer, uiComponent, behaviors);
             HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, uiComponent, behaviors);
-            HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(facesContext, writer, uiComponent, behaviors);
+            HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(
+                    facesContext, writer, uiComponent, behaviors);
             if (isCommonPropertiesOptimizationEnabled(facesContext))
             {
                 CommonPropertyUtils.renderCommonFieldPassthroughPropertiesWithoutDisabledAndEvents(writer, 
@@ -106,7 +108,8 @@ public class HtmlTextareaRendererBase
             }
             else
             {
-                HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, HTML.TEXTAREA_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
+                HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, 
+                        HTML.TEXTAREA_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
             }
         }
         else
@@ -121,7 +124,8 @@ public class HtmlTextareaRendererBase
             }
             else
             {
-                HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, HTML.TEXTAREA_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
+                HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, 
+                        HTML.TEXTAREA_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
             }
         }
 
@@ -153,7 +157,8 @@ public class HtmlTextareaRendererBase
             return ((HtmlInputTextarea)uiComponent).isDisabled();
         }
 
-        return org.apache.myfaces.shared.renderkit.RendererUtils.getBooleanAttribute(uiComponent, HTML.DISABLED_ATTR, false);
+        return org.apache.myfaces.shared.renderkit.RendererUtils.getBooleanAttribute(
+                uiComponent, HTML.DISABLED_ATTR, false);
         
     }
 
@@ -168,7 +173,8 @@ public class HtmlTextareaRendererBase
         }
     }
 
-    public Object getConvertedValue(FacesContext facesContext, UIComponent uiComponent, Object submittedValue) throws ConverterException
+    public Object getConvertedValue(FacesContext facesContext, UIComponent uiComponent, Object submittedValue)
+        throws ConverterException
     {
         RendererUtils.checkParamValidity(facesContext, uiComponent, UIOutput.class);
         return org.apache.myfaces.shared.renderkit.RendererUtils.getConvertedUIOutputValue(facesContext,

Added: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/JavascriptContext.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/JavascriptContext.java?rev=1202478&view=auto
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/JavascriptContext.java (added)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/JavascriptContext.java Tue Nov 15 23:51:35 2011
@@ -0,0 +1,160 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.shared.renderkit.html;
+
+/**
+ * The ScriptContext offers methods and fields
+ * to help with rendering out a script and keeping a
+ * proper formatting.
+ */
+public class JavascriptContext
+{
+    private static final String LINE_SEPARATOR = System.getProperty(
+            "line.separator", "\r\n");
+    private static final char TABULATOR = '\t';
+
+    private long currentIndentationLevel;
+    private StringBuffer buffer = new StringBuffer();
+    private boolean prettyPrint = false;
+    /**
+     * automatic formatting will render
+     * new-lines and indents if blocks are opened
+     * and closed - attention: you need to append
+     * opening and closing brackets of blocks separately in this case!
+     */
+    private boolean automaticFormatting = true;
+
+    public JavascriptContext()
+    {
+
+    }
+
+    public JavascriptContext(boolean prettyPrint)
+    {
+        this.prettyPrint = prettyPrint;
+    }
+
+    public JavascriptContext(StringBuffer buf, boolean prettyPrint)
+    {
+        this.prettyPrint = prettyPrint;
+        this.buffer = buf;
+    }
+
+    public void increaseIndent()
+    {
+        currentIndentationLevel++;
+    }
+
+    public void decreaseIndent()
+    {
+        currentIndentationLevel--;
+
+        if (currentIndentationLevel < 0)
+        {
+            currentIndentationLevel = 0;
+        }
+    }
+
+    public void prettyLine()
+    {
+        if (prettyPrint)
+        {
+            append(LINE_SEPARATOR);
+
+            for (int i = 0; i < getCurrentIndentationLevel(); i++)
+            {
+                append(TABULATOR);
+            }
+        }
+    }
+
+    public void prettyLineIncreaseIndent()
+    {
+        increaseIndent();
+        prettyLine();
+    }
+
+    public void prettyLineDecreaseIndent()
+    {
+        decreaseIndent();
+        prettyLine();
+    }
+
+    public long getCurrentIndentationLevel()
+    {
+        return currentIndentationLevel;
+    }
+
+    public void setCurrentIndentationLevel(long currentIndentationLevel)
+    {
+        this.currentIndentationLevel = currentIndentationLevel;
+    }
+
+    public JavascriptContext append(String str)
+    {
+
+        if (automaticFormatting && str.length() == 1)
+        {
+            boolean openBlock = str.equals("{");
+            boolean closeBlock = str.equals("}");
+
+            if (openBlock)
+            {
+                prettyLine();
+            }
+            else if (closeBlock)
+            {
+                prettyLineDecreaseIndent();
+            }
+
+            buffer.append(str);
+
+            if (openBlock)
+            {
+                prettyLineIncreaseIndent();
+            }
+            else if (closeBlock)
+            {
+                prettyLine();
+            }
+        }
+        else
+        {
+            buffer.append(str);
+        }
+        return this;
+    }
+
+    public JavascriptContext append(char c)
+    {
+        buffer.append(c);
+        return this;
+    }
+
+    public JavascriptContext append(int i)
+    {
+        buffer.append(i);
+        return this;
+    }
+
+    public String toString()
+    {
+        return buffer.toString();
+    }
+}

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoder.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoder.java?rev=1202478&r1=1202477&r2=1202478&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoder.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/HTMLEncoder.java Tue Nov 15 23:51:35 2011
@@ -100,9 +100,14 @@ public abstract class HTMLEncoder
                             app = "<br/>";
                         }
                         break;
+                    default:
+                        break;
                 }
-            } else if (encodeNonLatin && (int)c > 0x80) {
-                 switch(c) {
+            }
+            else if (encodeNonLatin && (int)c > 0x80)
+            {
+                 switch(c)
+                 {
                     //german umlauts
                     case '\u00E4' : app = "&auml;";  break;
                     case '\u00C4' : app = "&Auml;";  break;
@@ -132,7 +137,9 @@ public abstract class HTMLEncoder
                     sb = new StringBuilder(string.substring(0, i));
                 }
                 sb.append(app);
-            } else {
+            }
+            else
+            {
                 if (sb != null)
                 {
                     sb.append(c);
@@ -161,7 +168,8 @@ public abstract class HTMLEncoder
     /**
      * Variant of {@link #encode} where encodeNbsp is true.
      */
-    public static void encode (char[] string, int offset, int length, boolean encodeNewline, Writer writer) throws IOException
+    public static void encode (char[] string, int offset, int length, boolean encodeNewline, Writer writer)
+        throws IOException
     {
         encode(string, offset, length, encodeNewline, true, writer);
     }
@@ -169,7 +177,8 @@ public abstract class HTMLEncoder
     /**
      * Variant of {@link #encode} where encodeNbsp and encodeNonLatin are true 
      */
-    public static void encode (char[] string, int offset, int length, boolean encodeNewline, boolean encodeSubsequentBlanksToNbsp, Writer writer) throws IOException
+    public static void encode (char[] string, int offset, int length, boolean encodeNewline, 
+            boolean encodeSubsequentBlanksToNbsp, Writer writer) throws IOException
     {
         encode(string, offset, length, encodeNewline, encodeSubsequentBlanksToNbsp, true, writer);
     }
@@ -226,9 +235,14 @@ public abstract class HTMLEncoder
                             app = "<br/>";
                         }
                         break;
+                    default:
+                        break;
                 }
-            } else if (encodeNonLatin && (int)c > 0x80) {
-                 switch(c) {
+            }
+            else if (encodeNonLatin && (int)c > 0x80)
+            {
+                 switch(c)
+                 {
                     //german umlauts
                     case '\u00E4' : app = "&auml;";  break;
                     case '\u00C4' : app = "&Auml;";  break;
@@ -259,7 +273,9 @@ public abstract class HTMLEncoder
                     sb.append(string, offset, i - offset);
                 }
                 sb.append(app);
-            } else {
+            }
+            else
+            {
                 if (sb != null)
                 {
                     sb.append(c);
@@ -480,7 +496,9 @@ public abstract class HTMLEncoder
                     sb = new StringBuilder(string.substring(0, i));
                 }
                 sb.append(app);
-            } else {
+            }
+            else
+            {
                 if (sb != null)
                 {
                     sb.append(c);
@@ -572,13 +590,14 @@ public abstract class HTMLEncoder
             c = string.charAt(i);
             
             // - From %00 to %20 (' ' %20 could encode as +, but %20 also works, so we keep %20)
-            // - <"> %22 (If there is encode of "%", there is a risk of duplicate encoding, so we make easier and omit this one)
+            // - <"> %22 (If there is encode of "%", there is a risk of duplicate encoding, so 
+            //            we make easier and omit this one)
             // - "<" %3C, ">" %3E,
             // - "\" %5C, "^" %5E, "`" %60 
             // - "{" %7B, "|" %7C, "}" %7D
             // - From %7F ad infinitum (each character as many bytes as necessary but take into account
-            //   that a single char should contain 2,3 or more bytes!. This data should be encoded translating from the document
-            //   character encoding to percent encoding)
+            //   that a single char should contain 2,3 or more bytes!. This data should be encoded 
+            //   translating from the document character encoding to percent encoding)
             //
             // "&" should be encoded as "&amp;" because this link is inside an html page, and 
             // put & is invalid in this context   
@@ -646,7 +665,9 @@ public abstract class HTMLEncoder
                     sb = new StringBuilder(string.substring(0, i));
                 }
                 sb.append(app);
-            } else {
+            }
+            else
+            {
                 if (sb != null)
                 {
                     sb.append(c);

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/JavascriptUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/JavascriptUtils.java?rev=1202478&r1=1202477&r2=1202478&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/JavascriptUtils.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/JavascriptUtils.java Tue Nov 15 23:51:35 2011
@@ -133,7 +133,10 @@ public final class JavascriptUtils
             if (Character.isLetterOrDigit(c))
             {
                 // allowed char
-                if (buf != null) buf.append(c);
+                if (buf != null)
+                {
+                    buf.append(c);
+                }
             }
             else
             {
@@ -211,6 +214,7 @@ public final class JavascriptUtils
                 case '\'' : app = "\\'";  break;
                 case '\n' : app = "\\n";  break;
                 case '\r' : app = "\\r";  break;
+                default:
             }
             if (app != null)
             {
@@ -219,7 +223,9 @@ public final class JavascriptUtils
                     sb = new StringBuffer(string.substring(0, i));
                 }
                 sb.append(app);
-            } else {
+            }
+            else
+            {
                 if (sb != null)
                 {
                     sb.append(c);

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/ResourceUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/ResourceUtils.java?rev=1202478&r1=1202477&r2=1202478&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/ResourceUtils.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/ResourceUtils.java Tue Nov 15 23:51:35 2011
@@ -36,7 +36,8 @@ import org.apache.myfaces.shared.renderk
  * @version $Revision$ $Date$
  * @since 4.0.1
  */
-public class ResourceUtils {
+public class ResourceUtils
+{
     public final static String JAVAX_FACES_LIBRARY_NAME = "javax.faces";
     public final static String JSF_JS_RESOURCE_NAME = "jsf.js";
 
@@ -45,8 +46,20 @@ public class ResourceUtils {
     public final static String MYFACES_LIBRARY_NAME = "org.apache.myfaces";
     private final static String RENDERED_MYFACES_JS = "org.apache.myfaces.RENDERED_MYFACES_JS";
 
+    public final static String JSF_MYFACES_JSFJS_MINIMAL = "minimal";
+    public final static String JSF_MYFACES_JSFJS_MINIMAL_MODERN = "minimal-modern";
+    public final static String JSF_MYFACES_JSFJS_NORMAL = "normal";
+    
     public final static String JSF_UNCOMPRESSED_JS_RESOURCE_NAME = "jsf-uncompressed.js";
-    private final static String RENDERED_STYLESHEET_RESOURCES_SET = "org.apache.myfaces.RENDERED_STYLESHEET_RESOURCES_SET";
+    public final static String JSF_MINIMAL_JS_RESOURCE_NAME = "jsf-minimal.js";
+    public final static String JSF_MINIMAL_MODERN_JS_RESOURCE_NAME = "jsf-minimal-modern.js";
+    
+    public final static String JSF_MYFACES_JSFJS_I18N = "jsf-i18n.js";
+    public final static String JSF_MYFACES_JSFJS_EXPERIMENTAL = "jsf-experimental.js";
+    public final static String JSF_MYFACES_JSFJS_LEGACY = "jsf-legacy.js";
+
+    private final static String RENDERED_STYLESHEET_RESOURCES_SET = 
+        "org.apache.myfaces.RENDERED_STYLESHEET_RESOURCES_SET";
     private final static String RENDERED_SCRIPT_RESOURCES_SET = "org.apache.myfaces.RENDERED_SCRIPT_RESOURCES_SET";
     private final static String RENDERED_JSF_JS = "org.apache.myfaces.RENDERED_JSF_JS";
     public final static String HEAD_TARGET = "head";
@@ -68,7 +81,8 @@ public class ResourceUtils {
     @SuppressWarnings("unchecked")
     private static Map<String, Boolean> getRenderedStylesheetResources(FacesContext facesContext)
     {
-        Map<String, Boolean> map = (Map<String, Boolean>) facesContext.getAttributes().get(RENDERED_STYLESHEET_RESOURCES_SET);
+        Map<String, Boolean> map = (Map<String, Boolean>) facesContext.getAttributes().get(
+                RENDERED_STYLESHEET_RESOURCES_SET);
         if (map == null)
         {
             map = new HashMap<String, Boolean>();
@@ -87,7 +101,8 @@ public class ResourceUtils {
     @SuppressWarnings("unchecked")
     private static Map<String, Boolean> getRenderedScriptResources(FacesContext facesContext)
     {
-        Map<String, Boolean> map = (Map<String, Boolean>) facesContext.getAttributes().get(RENDERED_SCRIPT_RESOURCES_SET);
+        Map<String, Boolean> map = (Map<String, Boolean>) facesContext.getAttributes().get(
+                RENDERED_SCRIPT_RESOURCES_SET);
         if (map == null)
         {
             map = new HashMap<String, Boolean>();
@@ -98,32 +113,38 @@ public class ResourceUtils {
     
     public static void markScriptAsRendered(FacesContext facesContext, String libraryName, String resourceName)
     {
-        getRenderedScriptResources(facesContext).put(libraryName != null ? libraryName+'/'+resourceName : resourceName, Boolean.TRUE);
+        getRenderedScriptResources(facesContext).put(
+                libraryName != null ? libraryName+'/'+resourceName : resourceName, Boolean.TRUE);
         if (JAVAX_FACES_LIBRARY_NAME.equals(libraryName) &&
             JSF_JS_RESOURCE_NAME.equals(resourceName))
         {
             // If we are calling this method, it is expected myfaces core is being used as runtime and note
             // oamSubmit script is included inside jsf.js, so mark this one too.
-            getRenderedScriptResources(facesContext).put(MYFACES_LIBRARY_NAME+'/'+MYFACES_JS_RESOURCE_NAME, Boolean.TRUE);
+            getRenderedScriptResources(facesContext).put(
+                    MYFACES_LIBRARY_NAME+'/'+MYFACES_JS_RESOURCE_NAME, Boolean.TRUE);
         }
     }
     
     public static void markStylesheetAsRendered(FacesContext facesContext, String libraryName, String resourceName)
     {
-        getRenderedStylesheetResources(facesContext).put(libraryName != null ? libraryName+'/'+resourceName : resourceName, Boolean.TRUE);
+        getRenderedStylesheetResources(facesContext).put(
+                libraryName != null ? libraryName+'/'+resourceName : resourceName, Boolean.TRUE);
     }
     
     public static boolean isRenderedScript(FacesContext facesContext, String libraryName, String resourceName)
     {
-        return getRenderedScriptResources(facesContext).containsKey(libraryName != null ? libraryName+'/'+resourceName : resourceName);
+        return getRenderedScriptResources(facesContext).containsKey(
+                libraryName != null ? libraryName+'/'+resourceName : resourceName);
     }
     
     public static boolean isRenderedStylesheet(FacesContext facesContext, String libraryName, String resourceName)
     {
-        return getRenderedStylesheetResources(facesContext).containsKey(libraryName != null ? libraryName+'/'+resourceName : resourceName);
+        return getRenderedStylesheetResources(facesContext).containsKey(
+                libraryName != null ? libraryName+'/'+resourceName : resourceName);
     }
     
-    public static void writeScriptInline(FacesContext facesContext, ResponseWriter writer, String libraryName, String resourceName) throws IOException
+    public static void writeScriptInline(FacesContext facesContext, ResponseWriter writer, String libraryName, 
+            String resourceName) throws IOException
     {
         if (!ResourceUtils.isRenderedScript(facesContext, libraryName, resourceName))
         {
@@ -139,7 +160,8 @@ public class ResourceUtils {
             else
             {
                 //Fast shortcut, don't create component instance and do what HtmlScriptRenderer do.
-                Resource resource = facesContext.getApplication().getResourceHandler().createResource(resourceName, libraryName);
+                Resource resource = facesContext.getApplication().getResourceHandler().createResource(
+                        resourceName, libraryName);
                 markScriptAsRendered(facesContext, libraryName, resourceName);
                 writer.startElement(HTML.SCRIPT_ELEM, null);
                 writer.writeAttribute(HTML.SCRIPT_TYPE_ATTR, HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT , null);
@@ -149,7 +171,8 @@ public class ResourceUtils {
         }
     }
     
-    public static void renderDefaultJsfJsInlineIfNecessary(FacesContext facesContext, ResponseWriter writer) throws IOException
+    public static void renderDefaultJsfJsInlineIfNecessary(FacesContext facesContext, ResponseWriter writer) 
+        throws IOException
     {
         if (facesContext.getAttributes().containsKey(RENDERED_JSF_JS))
         {
@@ -197,7 +220,8 @@ public class ResourceUtils {
         else
         {
             //Fast shortcut, don't create component instance and do what HtmlScriptRenderer do.
-            Resource resource = facesContext.getApplication().getResourceHandler().createResource(JSF_JS_RESOURCE_NAME, JAVAX_FACES_LIBRARY_NAME);
+            Resource resource = facesContext.getApplication().getResourceHandler().createResource(
+                    JSF_JS_RESOURCE_NAME, JAVAX_FACES_LIBRARY_NAME);
             markScriptAsRendered(facesContext, JAVAX_FACES_LIBRARY_NAME, JSF_JS_RESOURCE_NAME);
             writer.startElement(HTML.SCRIPT_ELEM, null);
             writer.writeAttribute(HTML.SCRIPT_TYPE_ATTR, HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT, null);
@@ -210,8 +234,11 @@ public class ResourceUtils {
         return;
     }
 
-    public static void renderMyfacesJSInlineIfNecessary(FacesContext facesContext, ResponseWriter writer) throws IOException {
-        if (facesContext.getAttributes().containsKey(RENDERED_MYFACES_JS)) {
+    public static void renderMyfacesJSInlineIfNecessary(FacesContext facesContext, ResponseWriter writer)
+        throws IOException
+    {
+        if (facesContext.getAttributes().containsKey(RENDERED_MYFACES_JS))
+        {
             return;
         }
 
@@ -225,7 +252,8 @@ public class ResourceUtils {
         }
         // Check first if we have lucky, we are using myfaces and the script has
         // been previously rendered
-        if (isRenderedScript(facesContext, MYFACES_LIBRARY_NAME, MYFACES_JS_RESOURCE_NAME)) {
+        if (isRenderedScript(facesContext, MYFACES_LIBRARY_NAME, MYFACES_JS_RESOURCE_NAME))
+        {
             facesContext.getAttributes().put(RENDERED_MYFACES_JS, Boolean.TRUE);
             return;
         }
@@ -255,7 +283,8 @@ public class ResourceUtils {
         else
         {
             //Fast shortcut, don't create component instance and do what HtmlScriptRenderer do.
-            Resource resource = facesContext.getApplication().getResourceHandler().createResource(MYFACES_JS_RESOURCE_NAME, MYFACES_LIBRARY_NAME);
+            Resource resource = facesContext.getApplication().getResourceHandler().createResource(
+                    MYFACES_JS_RESOURCE_NAME, MYFACES_LIBRARY_NAME);
             markScriptAsRendered(facesContext, MYFACES_LIBRARY_NAME, MYFACES_JS_RESOURCE_NAME);
             writer.startElement(HTML.SCRIPT_ELEM, null);
             writer.writeAttribute(HTML.SCRIPT_TYPE_ATTR, HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT, null);

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/UnicodeEncoder.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/UnicodeEncoder.java?rev=1202478&r1=1202477&r2=1202478&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/UnicodeEncoder.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/UnicodeEncoder.java Tue Nov 15 23:51:35 2011
@@ -42,7 +42,8 @@ public abstract class UnicodeEncoder
             c = string.charAt(i);
             if (((int)c) >= 0x80)
             {
-                if( sb == null ){
+                if( sb == null )
+                {
                     sb = new StringBuilder( string.length()+4 );
                     sb.append( string.substring(0,i) );
                 }

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/AliasResourceMetaImpl.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/AliasResourceMetaImpl.java?rev=1202478&r1=1202477&r2=1202478&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/AliasResourceMetaImpl.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/AliasResourceMetaImpl.java Tue Nov 15 23:51:35 2011
@@ -61,25 +61,37 @@ public class AliasResourceMetaImpl exten
         }
         if (getLibraryName() != null)
         {
-            if (firstSlashAdded) builder.append('/');
+            if (firstSlashAdded)
+            {
+                builder.append('/');
+            }
             builder.append(getLibraryName());
             firstSlashAdded = true;
         }
         if (getLibraryVersion() != null)
         {
-            if (firstSlashAdded) builder.append('/');
+            if (firstSlashAdded)
+            {
+                builder.append('/');
+            }
             builder.append(getLibraryVersion());
             firstSlashAdded = true;
         }
         if (getRealResourceName() != null)
         {
-            if (firstSlashAdded) builder.append('/');
+            if (firstSlashAdded)
+            {
+                builder.append('/');
+            }
             builder.append(getRealResourceName());
             firstSlashAdded = true;
         }
         if (getResourceVersion() != null)
         {
-            if (firstSlashAdded) builder.append('/');
+            if (firstSlashAdded)
+            {
+                builder.append('/');
+            }
             builder.append(getResourceVersion());
             builder.append(
                     getRealResourceName().substring(getRealResourceName().lastIndexOf('.')));

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/BaseResourceHandlerSupport.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/BaseResourceHandlerSupport.java?rev=1202478&r1=1202477&r2=1202478&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/BaseResourceHandlerSupport.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/BaseResourceHandlerSupport.java Tue Nov 15 23:51:35 2011
@@ -38,10 +38,11 @@ public class BaseResourceHandlerSupport 
 {
 
     /**
-     * Set the max time in miliseconds set on the "Expires" header for a resource.
+     * Set the max time in miliseconds set on the "Expires" header for a resource rendered by 
+     * the default ResourceHandler.
      * (default to one week in miliseconds or 604800000) 
      */
-    @JSFWebConfigParam(since="2.0", defaultValue="604800000")
+    @JSFWebConfigParam(since="2.0", defaultValue="604800000", group="resources", tags="performance")
     public static final String RESOURCE_MAX_TIME_EXPIRES = "org.apache.myfaces.RESOURCE_MAX_TIME_EXPIRES";
 
     /**

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/ClassLoaderResourceLoader.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/ClassLoaderResourceLoader.java?rev=1202478&r1=1202477&r2=1202478&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/ClassLoaderResourceLoader.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/ClassLoaderResourceLoader.java Tue Nov 15 23:51:35 2011
@@ -21,10 +21,6 @@ package org.apache.myfaces.shared.resour
 import java.io.InputStream;
 import java.net.URL;
 
-import javax.faces.application.ProjectStage;
-import javax.faces.context.FacesContext;
-
-import org.apache.myfaces.shared.renderkit.html.util.ResourceUtils;
 import org.apache.myfaces.shared.util.ClassUtils;
 
 /**
@@ -73,12 +69,9 @@ public class ClassLoaderResourceLoader e
         }
     };*/
     
-    private final boolean _developmentStage;
-
     public ClassLoaderResourceLoader(String prefix)
     {
         super(prefix);
-        _developmentStage = FacesContext.getCurrentInstance().isProjectStage(ProjectStage.Development);
     }
 
     @Override
@@ -434,21 +427,21 @@ public class ClassLoaderResourceLoader e
     public ResourceMeta createResourceMeta(String prefix, String libraryName, String libraryVersion,
                                            String resourceName, String resourceVersion)
     {
-        if (_developmentStage && libraryName != null && 
-                ResourceUtils.JAVAX_FACES_LIBRARY_NAME.equals(libraryName) &&
-                ResourceUtils.JSF_JS_RESOURCE_NAME.equals(resourceName))
-        {
+        //if (_developmentStage && libraryName != null && 
+        //        ResourceUtils.JAVAX_FACES_LIBRARY_NAME.equals(libraryName) &&
+        //        ResourceUtils.JSF_JS_RESOURCE_NAME.equals(resourceName))
+        //{
             // InternalClassLoaderResourceLoader will serve it, so return null in this case.
-            return null;
-        } else if (_developmentStage && libraryName != null &&
-                ResourceUtils.MYFACES_LIBRARY_NAME.equals(libraryName) &&
-                ResourceUtils.MYFACES_JS_RESOURCE_NAME.equals(resourceName)) {
+        //    return null;
+        //} else if (_developmentStage && libraryName != null &&
+        //        ResourceUtils.MYFACES_LIBRARY_NAME.equals(libraryName) &&
+        //        ResourceUtils.MYFACES_JS_RESOURCE_NAME.equals(resourceName)) {
             // InternalClassLoaderResourceLoader will serve it, so return null in this case.
-             return null;
-        } else
-        {
+        //     return null;
+        //} else
+        //{
             return new ResourceMetaImpl(prefix, libraryName, libraryVersion, resourceName, resourceVersion);
-        }
+        //}
     }
 
     /**

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/ExternalContextResourceLoader.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/ExternalContextResourceLoader.java?rev=1202478&r1=1202477&r2=1202478&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/ExternalContextResourceLoader.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/resource/ExternalContextResourceLoader.java Tue Nov 15 23:51:35 2011
@@ -39,14 +39,14 @@ public class ExternalContextResourceLoad
      * 
      * Used on getLibraryVersion to filter resource directories
      **/
-    protected static Pattern VERSION_CHECKER = Pattern.compile("/\\p{Digit}+(_\\p{Digit}*)*/");
+    protected static final Pattern VERSION_CHECKER = Pattern.compile("/\\p{Digit}+(_\\p{Digit}*)*/");
 
     /**
      * It checks version like this: /1.js, /1_0.js, /1_0_0.js, /100_100.js
      * 
      * Used on getResourceVersion to filter resources
      **/
-    protected static Pattern RESOURCE_VERSION_CHECKER = Pattern.compile("/\\p{Digit}+(_\\p{Digit}*)*\\..*");
+    protected static final Pattern RESOURCE_VERSION_CHECKER = Pattern.compile("/\\p{Digit}+(_\\p{Digit}*)*\\..*");
 
     public ExternalContextResourceLoader(String prefix)
     {
@@ -64,7 +64,9 @@ public class ExternalContextResourceLoad
         String resourceVersion = null;
         Set<String> resourcePaths = this.getResourcePaths(path);
         if (getPrefix() != null)
+        {
             path = getPrefix() + '/' + path;
+        }
 
         if (null != resourcePaths && !resourcePaths.isEmpty())
         {