Updated Branches:
  refs/heads/master c6867450a -> 1bd08a2c7

DELTASPIKE-504 JsfModuleConfig#getDefaultWindowMode


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/ce7c9f94
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/ce7c9f94
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/ce7c9f94

Branch: refs/heads/master
Commit: ce7c9f94bd0e210834c097b486484fd4a3fd481a
Parents: c686745
Author: gpetracek <[email protected]>
Authored: Mon Jan 20 09:55:18 2014 +0100
Committer: gpetracek <[email protected]>
Committed: Mon Jan 20 09:55:18 2014 +0100

----------------------------------------------------------------------
 .../jsf/api/config/JsfModuleConfig.java          | 19 ++++++++++++++++++-
 .../scope/window/DefaultClientWindowConfig.java  | 13 ++++++-------
 .../JsfClientWindowAwareLifecycleWrapper.java    |  5 +++--
 3 files changed, 27 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/ce7c9f94/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/config/JsfModuleConfig.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/config/JsfModuleConfig.java
 
b/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/config/JsfModuleConfig.java
index ee2c0a6..dff9398 100644
--- 
a/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/config/JsfModuleConfig.java
+++ 
b/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/api/config/JsfModuleConfig.java
@@ -20,6 +20,7 @@ package org.apache.deltaspike.jsf.api.config;
 
 import org.apache.deltaspike.core.api.config.DeltaSpikeConfig;
 import org.apache.deltaspike.core.util.ClassUtils;
+import org.apache.deltaspike.jsf.spi.scope.window.ClientWindowConfig;
 
 import javax.enterprise.context.ApplicationScoped;
 import javax.faces.context.FacesContext;
@@ -87,7 +88,23 @@ public class JsfModuleConfig implements DeltaSpikeConfig
         return true;
     }
 
-    public boolean isDelegatedWindowHandlingEnabled()
+    /**
+     * If the window-handling of JSF 2.2+ is enabled,
+     * {@link 
org.apache.deltaspike.jsf.spi.scope.window.ClientWindowConfig.ClientWindowRenderMode#DELEGATED}
+     * will be returned. In all other cases <code>null</code> gets returned as 
application wide default value.
+     * That leads to a default-handling per session (which includes logic for 
handling bots,...)
+     * @return application-default for the window-mode
+     */
+    public ClientWindowConfig.ClientWindowRenderMode getDefaultWindowMode()
+    {
+        if (isDelegatedWindowHandlingEnabled())
+        {
+            return ClientWindowConfig.ClientWindowRenderMode.DELEGATED;
+        }
+        return null;
+    }
+
+    protected boolean isDelegatedWindowHandlingEnabled()
     {
         if (ClassUtils.tryToLoadClassForName(CLIENT_WINDOW_CLASS_NAME) == null)
         {

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/ce7c9f94/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/DefaultClientWindowConfig.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/DefaultClientWindowConfig.java
 
b/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/DefaultClientWindowConfig.java
index b2cb37d..9978b77 100644
--- 
a/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/DefaultClientWindowConfig.java
+++ 
b/deltaspike/modules/jsf/api/src/main/java/org/apache/deltaspike/jsf/spi/scope/window/DefaultClientWindowConfig.java
@@ -74,12 +74,12 @@ public class DefaultClientWindowConfig implements 
ClientWindowConfig, Serializab
     @Inject
     private ProjectStage projectStage;
 
-    private boolean useDelegatedWindowHandling;
+    private ClientWindowRenderMode defaultClientWindowRenderMode;
 
     @PostConstruct
     protected void init()
     {
-        this.useDelegatedWindowHandling = 
this.jsfModuleConfig.isDelegatedWindowHandlingEnabled();
+        this.defaultClientWindowRenderMode = 
this.jsfModuleConfig.getDefaultWindowMode();
     }
 
     @Override
@@ -131,9 +131,9 @@ public class DefaultClientWindowConfig implements 
ClientWindowConfig, Serializab
     {
         if (!isJavaScriptEnabled())
         {
-            if (this.useDelegatedWindowHandling)
+            if (this.defaultClientWindowRenderMode != null)
             {
-                return ClientWindowRenderMode.DELEGATED;
+                return this.defaultClientWindowRenderMode;
             }
             return ClientWindowRenderMode.NONE;
         }
@@ -150,11 +150,10 @@ public class DefaultClientWindowConfig implements 
ClientWindowConfig, Serializab
             return ClientWindowRenderMode.NONE;
         }
 
-        if (this.useDelegatedWindowHandling)
+        if (this.defaultClientWindowRenderMode != null)
         {
-            return ClientWindowRenderMode.DELEGATED;
+            return this.defaultClientWindowRenderMode;
         }
-
         return ClientWindowRenderMode.CLIENTWINDOW;
     }
 

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/ce7c9f94/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/JsfClientWindowAwareLifecycleWrapper.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/JsfClientWindowAwareLifecycleWrapper.java
 
b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/JsfClientWindowAwareLifecycleWrapper.java
index 13c66a1..4097596 100644
--- 
a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/JsfClientWindowAwareLifecycleWrapper.java
+++ 
b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/listener/request/JsfClientWindowAwareLifecycleWrapper.java
@@ -23,6 +23,7 @@ import org.apache.deltaspike.core.util.ExceptionUtils;
 import org.apache.deltaspike.jsf.api.config.JsfModuleConfig;
 import org.apache.deltaspike.jsf.impl.scope.window.ClientWindowAdapter;
 import org.apache.deltaspike.jsf.spi.scope.window.ClientWindow;
+import org.apache.deltaspike.jsf.spi.scope.window.ClientWindowConfig;
 
 import javax.faces.context.FacesContext;
 import javax.faces.lifecycle.Lifecycle;
@@ -152,8 +153,8 @@ public class JsfClientWindowAwareLifecycleWrapper extends 
LifecycleWrapper
         // switch into paranoia mode
         if (initialized == null)
         {
-            delegateWindowHandling =
-                
BeanProvider.getContextualReference(JsfModuleConfig.class).isDelegatedWindowHandlingEnabled();
+            delegateWindowHandling = 
ClientWindowConfig.ClientWindowRenderMode.DELEGATED.equals(
+                
BeanProvider.getContextualReference(JsfModuleConfig.class).getDefaultWindowMode());
 
             initialized = true;
         }

Reply via email to