You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ta...@apache.org on 2018/12/05 17:22:16 UTC
[myfaces] 02/02: cosmetics + minor optimizations
This is an automated email from the ASF dual-hosted git repository.
tandraschko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces.git
commit 00e587b39f3ed3488e70797f12435d675c45023e
Author: Thomas Andraschko <ta...@apache.org>
AuthorDate: Wed Dec 5 18:22:08 2018 +0100
cosmetics + minor optimizations
---
.../application/DefaultViewHandlerSupport.java | 3 --
.../context/servlet/PartialViewContextImpl.java | 33 ++++++++----
.../renderkit/html/HtmlAjaxBehaviorRenderer.java | 29 ----------
.../html/base/HtmlButtonRendererBase.java | 61 ++++++++--------------
.../util/IllegalXmlCharacterFilterWriter.java | 20 ++++---
.../facelets/tag/jsf/core/VerbatimHandler.java | 2 +
6 files changed, 55 insertions(+), 93 deletions(-)
diff --git a/impl/src/main/java/org/apache/myfaces/application/DefaultViewHandlerSupport.java b/impl/src/main/java/org/apache/myfaces/application/DefaultViewHandlerSupport.java
index 80f5c5c..99af6c2 100644
--- a/impl/src/main/java/org/apache/myfaces/application/DefaultViewHandlerSupport.java
+++ b/impl/src/main/java/org/apache/myfaces/application/DefaultViewHandlerSupport.java
@@ -197,7 +197,6 @@ public class DefaultViewHandlerSupport implements ViewHandlerSupport
FacesServletMapping mapping = getFacesServletMapping(context);
ExternalContext externalContext = context.getExternalContext();
String contextPath = externalContext.getRequestContextPath();
- //StringBuilder builder = new StringBuilder(contextPath);
StringBuilder builder = SharedStringBuilder.get(context, VIEW_HANDLER_SUPPORT_SB);
// If the context path is root, it is not necessary to append it, otherwise
// and extra '/' will be set.
@@ -468,7 +467,6 @@ public class DefaultViewHandlerSupport implements ViewHandlerSupport
//Try to locate any resource that match with the expected id
for (String defaultSuffix : jspDefaultSuffixes)
{
- //StringBuilder builder = new StringBuilder(requestViewId);
builder.setLength(0);
builder.append(requestViewId);
@@ -532,7 +530,6 @@ public class DefaultViewHandlerSupport implements ViewHandlerSupport
}
if (faceletsDefaultSuffix != null)
{
- //StringBuilder builder = new StringBuilder(requestViewId);
builder.setLength(0);
builder.append(requestViewId);
diff --git a/impl/src/main/java/org/apache/myfaces/context/servlet/PartialViewContextImpl.java b/impl/src/main/java/org/apache/myfaces/context/servlet/PartialViewContextImpl.java
index 6662731..e51006b 100644
--- a/impl/src/main/java/org/apache/myfaces/context/servlet/PartialViewContextImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/context/servlet/PartialViewContextImpl.java
@@ -282,20 +282,33 @@ public class PartialViewContextImpl extends PartialViewContext
private String _replaceTabOrEnterCharactersWithSpaces(String mode)
{
- StringBuilder builder = new StringBuilder(mode.length());
- for (int i = 0; i < mode.length(); i++)
+ if (mode == null)
{
- if (mode.charAt(i) == '\t' ||
- mode.charAt(i) == '\n')
- {
- builder.append(' ');
- }
- else
+ return null;
+ }
+
+ char[] escaped = null;
+
+ int modeLength = mode.length();
+ for (int i = 0; i < modeLength; i++)
+ {
+ char c = mode.charAt(i);
+ if (c == '\t' || c == '\n')
{
- builder.append(mode.charAt(i));
+ if (escaped == null)
+ {
+ escaped = mode.toCharArray();
+ }
+ escaped[i] = ' ';
}
}
- return builder.toString();
+
+ if (escaped != null)
+ {
+ return String.valueOf(escaped);
+ }
+
+ return mode;
}
@Override
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlAjaxBehaviorRenderer.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlAjaxBehaviorRenderer.java
index 21923b2..fa71565 100644
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlAjaxBehaviorRenderer.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlAjaxBehaviorRenderer.java
@@ -476,16 +476,6 @@ public class HtmlAjaxBehaviorRenderer extends ClientBehaviorRenderer
strVal = strVal.trim();
if (!EMPTY.equals(strVal))
{
- /*
- if (!strVal.startsWith(IDENTIFYER_MARKER))
- {
- String componentId = getComponentId(context, strVal);
- retVal.append(componentId);
- }
- else
- {
- retVal.append(strVal);
- }*/
SearchExpressionHandler handler = context.getFacesContext().getApplication().getSearchExpressionHandler();
String clientId = handler.resolveClientId(searchExpressionContext, strVal);
retVal.append(clientId);
@@ -496,25 +486,6 @@ public class HtmlAjaxBehaviorRenderer extends ClientBehaviorRenderer
}
}
- /*
- private String getComponentId(ClientBehaviorContext context, String id)
- {
-
- UIComponent contextComponent = context.getComponent();
- UIComponent target = contextComponent.findComponent(id);
- if (target == null)
- {
- target = contextComponent.findComponent(
- context.getFacesContext().getNamingContainerSeparatorChar() + id);
- }
- if (target != null)
- {
- return target.getClientId(context.getFacesContext());
- }
- throw new FacesException("Component with id:" + id + " not found");
- }
- */
-
private void assertBehavior(ClientBehavior behavior)
{
if (!(behavior instanceof AjaxBehavior))
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlButtonRendererBase.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlButtonRendererBase.java
index 9c80bdb..b2d89eb 100644
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlButtonRendererBase.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/base/HtmlButtonRendererBase.java
@@ -46,10 +46,18 @@ import org.apache.myfaces.renderkit.html.util.JavascriptUtils;
import org.apache.myfaces.renderkit.html.util.ResourceUtils;
import org.apache.myfaces.renderkit.html.util.HTML;
import org.apache.myfaces.util.ComponentUtils;
+import org.apache.myfaces.util.SharedStringBuilder;
public class HtmlButtonRendererBase
extends HtmlRenderer
{
+ private static final String SB_BUILD_BEHAVIORIZED_ONCLICK = HtmlButtonRendererBase.class.getName()
+ + "#buildBehaviorizedOnClick";
+ private static final String SB_BUILD_ONCLICK = HtmlButtonRendererBase.class.getName()
+ + "#buildOnClick";
+ private static final String SB_ADD_CHILD_PARAMETERS = HtmlButtonRendererBase.class.getName() +
+ "#addChildParameters";
+
private static final String IMAGE_BUTTON_SUFFIX_X = ".x";
private static final String IMAGE_BUTTON_SUFFIX_Y = ".y";
@@ -303,19 +311,19 @@ public class HtmlButtonRendererBase
UIComponent form, List<UIParameter> validParams)
throws IOException
{
- //we can omit autoscroll here for now maybe we should check if it is an ajax
- //behavior and omit it only in this case
- StringBuilder userOnClick = new StringBuilder();
+ StringBuilder sb = SharedStringBuilder.get(facesContext, SB_BUILD_BEHAVIORIZED_ONCLICK);
+
//user onclick part
String commandOnClick = (String) uiComponent.getAttributes().get(HTML.ONCLICK_ATTR);
-
if (commandOnClick != null)
{
- userOnClick.append(commandOnClick);
- userOnClick.append(';');
+ sb.append(commandOnClick);
+ sb.append(';');
}
+ String userOnClick = sb.toString();
- StringBuilder rendererOnClick = new StringBuilder();
+ // reset SB and reuse
+ sb.setLength(0);
if (form != null)
{
@@ -335,7 +343,7 @@ public class HtmlButtonRendererBase
if (JavascriptUtils.isRenderClearJavascriptOnButton(facesContext.getExternalContext()))
{
//call the script to clear the form (clearFormHiddenParams_<formName>) method
- HtmlRendererUtils.appendClearHiddenCommandFormParamsFunctionCall(rendererOnClick,
+ HtmlRendererUtils.appendClearHiddenCommandFormParamsFunctionCall(sb,
form.getClientId(facesContext));
}
//}
@@ -348,40 +356,13 @@ public class HtmlButtonRendererBase
return HtmlRendererUtils.buildBehaviorChain(facesContext, uiComponent,
ClientBehaviorEvents.CLICK, paramList, ClientBehaviorEvents.ACTION, paramList, behaviors,
- userOnClick.toString() , rendererOnClick.toString());
+ userOnClick , sb.toString());
}
-
- protected String buildServerOnclick(FacesContext facesContext, UIComponent component,
- String clientId, UIComponent form, List<UIParameter> validParams) throws IOException
- {
- StringBuilder onClick = new StringBuilder();
-
- StringBuilder params = addChildParameters(facesContext, form, validParams);
-
- String target = getTarget(component);
- onClick.append("return ").
- append(HtmlRendererUtils.SUBMIT_FORM_FN_NAME_JSF2).append("('").
- append(form.getClientId(facesContext)).append("','").
- append(component.getClientId(facesContext)).append('\'');
-
- if (params.length() > 2 || target != null)
- {
- onClick.append(',').
- append(target == null ? "null" : ('\'' + target + '\'')).append(',').
- append(params);
- }
- onClick.append(");");
-
-
- return onClick.toString();
- }
-
- private StringBuilder addChildParameters(FacesContext context,
- UIComponent nestingForm, List<UIParameter> validParams)
+ private StringBuilder addChildParameters(FacesContext context, List<UIParameter> validParams)
{
//add child parameters
- StringBuilder params = new StringBuilder();
+ StringBuilder params = SharedStringBuilder.get(context, SB_ADD_CHILD_PARAMETERS);
params.append('[');
for (int i = 0, size = validParams.size(); i < size; i++)
@@ -463,7 +444,7 @@ public class HtmlButtonRendererBase
ResponseWriter writer, List<UIParameter> validParams)
throws IOException
{
- StringBuilder onClick = new StringBuilder();
+ StringBuilder onClick = SharedStringBuilder.get(facesContext, SB_BUILD_ONCLICK);
String commandOnClick = (String) uiComponent.getAttributes().get(HTML.ONCLICK_ATTR);
if (commandOnClick != null)
@@ -480,7 +461,7 @@ public class HtmlButtonRendererBase
{
if (validParams != null && !validParams.isEmpty() )
{
- StringBuilder params = addChildParameters(facesContext, form, validParams);
+ StringBuilder params = addChildParameters(facesContext, validParams);
String target = getTarget(uiComponent);
diff --git a/impl/src/main/java/org/apache/myfaces/util/IllegalXmlCharacterFilterWriter.java b/impl/src/main/java/org/apache/myfaces/util/IllegalXmlCharacterFilterWriter.java
index 1fbedbe..2821200 100644
--- a/impl/src/main/java/org/apache/myfaces/util/IllegalXmlCharacterFilterWriter.java
+++ b/impl/src/main/java/org/apache/myfaces/util/IllegalXmlCharacterFilterWriter.java
@@ -31,7 +31,6 @@ import java.io.Writer;
*/
public class IllegalXmlCharacterFilterWriter extends FilterWriter
{
- private static final char[] EMPTY_CHAR_ARRAY = new char[0];
private static final char BLANK_CHAR = ' ';
public IllegalXmlCharacterFilterWriter(Writer out)
@@ -70,26 +69,25 @@ public class IllegalXmlCharacterFilterWriter extends FilterWriter
{
return null;
}
-
- boolean containsInvalidChar = false;
- char[] encodedCharArray = EMPTY_CHAR_ARRAY;
- for (int i = off; i < off + len; i++)
+ char[] encoded = null;
+
+ int to = off + len;
+ for (int i = off; i < to; i++)
{
if (isInvalidChar(str.charAt(i)))
{
- if (!containsInvalidChar)
+ if (encoded == null)
{
- containsInvalidChar = true;
- encodedCharArray = str.toCharArray();
+ encoded = str.toCharArray();
}
- encodedCharArray[i] = BLANK_CHAR;
+ encoded[i] = BLANK_CHAR;
}
}
- if (containsInvalidChar)
+ if (encoded != null)
{
- return String.valueOf(encodedCharArray);
+ return String.valueOf(encoded);
}
return str;
diff --git a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/VerbatimHandler.java b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/VerbatimHandler.java
index bf30813..617b3e9 100644
--- a/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/VerbatimHandler.java
+++ b/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/VerbatimHandler.java
@@ -44,6 +44,7 @@ public final class VerbatimHandler extends ComponentHandler
super(config);
}
+ @Override
public void onComponentCreated(FaceletContext ctx, UIComponent c, UIComponent parent)
{
StringBuilder content = new StringBuilder();
@@ -57,6 +58,7 @@ public final class VerbatimHandler extends ComponentHandler
c.setTransient(true);
}
+ @Override
public void applyNextHandler(FaceletContext ctx, UIComponent c)
{
}