Repository: deltaspike Updated Branches: refs/heads/master 2be8af863 -> cf109c757
DELTASPIKE-509 [perf] cache map in DefaultClientWindow#getQueryURLParameters Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/cf109c75 Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/cf109c75 Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/cf109c75 Branch: refs/heads/master Commit: cf109c757df757fd9476cfa835275200ca7b1031 Parents: 2be8af8 Author: tandraschko <tandrasc...@apache.org> Authored: Thu Jul 31 23:24:31 2014 +0200 Committer: tandraschko <tandrasc...@apache.org> Committed: Thu Jul 31 23:24:31 2014 +0200 ---------------------------------------------------------------------- .../impl/scope/window/DefaultClientWindow.java | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/deltaspike/blob/cf109c75/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/DefaultClientWindow.java ---------------------------------------------------------------------- diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/DefaultClientWindow.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/DefaultClientWindow.java index ff1c67a..0389425 100644 --- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/DefaultClientWindow.java +++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/DefaultClientWindow.java @@ -93,6 +93,9 @@ public class DefaultClientWindow implements ClientWindow private static final String WINDOW_ID_REQUEST_MAP_KEY = ClientWindow.class.getName() + ".WindowId"; + private static final String CACHE_QUERY_URL_PARAMETERS = + "CACHE:" + DefaultClientWindow.class + "#getQueryURLParameters"; + @Inject private ClientWindowConfig clientWindowConfig; @@ -373,13 +376,22 @@ public class DefaultClientWindow implements ClientWindow if (ClientWindowRenderMode.LAZY.equals(clientWindowRenderMode)) { - String windowId = getWindowId(facesContext); - if (windowId != null) + if (!facesContext.getAttributes().containsKey(CACHE_QUERY_URL_PARAMETERS)) { + String windowId = getWindowId(facesContext); + + if (windowId == null) + { + return null; + } + Map<String, String> params = new HashMap<String, String>(); - params.put(DELTASPIKE_WINDOW_ID_URL_PARAM, getWindowId(facesContext)); - return params; + params.put(DELTASPIKE_WINDOW_ID_URL_PARAM, windowId); + + facesContext.getAttributes().put(CACHE_QUERY_URL_PARAMETERS, params); } + + return (Map<String, String>) facesContext.getAttributes().get(CACHE_QUERY_URL_PARAMETERS); } return null;