You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by ta...@apache.org on 2015/07/06 23:31:18 UTC

deltaspike git commit: DELTASPIKE-946 Prevent jfwid rendering

Repository: deltaspike
Updated Branches:
  refs/heads/master 70c42ca9d -> 07f0bdd7b


DELTASPIKE-946 Prevent jfwid rendering

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

Branch: refs/heads/master
Commit: 07f0bdd7b02ca9c5c2adbadd2f889cd1a5c7a695
Parents: 70c42ca
Author: Thomas Andraschko <ta...@apache.org>
Authored: Mon Jul 6 23:29:04 2015 +0200
Committer: Thomas Andraschko <ta...@apache.org>
Committed: Mon Jul 6 23:29:04 2015 +0200

----------------------------------------------------------------------
 .../window/DisableClientWindowHtmlRenderer.java | 23 +++++++----
 .../JsfClientWindowAwareLifecycleWrapper.java   | 30 ++++++++++-----
 .../impl/scope/window/ClientWindowAdapter.java  | 40 +-------------------
 .../strategy/AbstractClientWindowStrategy.java  | 26 -------------
 4 files changed, 37 insertions(+), 82 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/07f0bdd7/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/component/window/DisableClientWindowHtmlRenderer.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/component/window/DisableClientWindowHtmlRenderer.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/component/window/DisableClientWindowHtmlRenderer.java
index 29ddd50..86901e8 100644
--- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/component/window/DisableClientWindowHtmlRenderer.java
+++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/component/window/DisableClientWindowHtmlRenderer.java
@@ -25,7 +25,6 @@ import javax.faces.render.FacesRenderer;
 import javax.faces.render.Renderer;
 import org.apache.deltaspike.core.api.provider.BeanProvider;
 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;
 
 @FacesRenderer(componentFamily = DisableClientWindowComponent.COMPONENT_FAMILY,
@@ -42,33 +41,41 @@ public class DisableClientWindowHtmlRenderer extends Renderer
     {
         lazyInit();
         
-        boolean clientWindowRenderModeEnabled = clientWindow.isClientWindowRenderModeEnabled(context);
+        boolean dsClientWindowRenderModeEnabled = clientWindow.isClientWindowRenderModeEnabled(context);
+        boolean jsfClientWindowRenderModeEnabled = false;
         
         if (jsfModuleConfig.isJsf22Available())
         {
-            Boolean jsfClientWindowRenderModeEnabled =
-                    ClientWindowAdapter.isJsf22ClientWindowRenderModeEnabled(context);
-            if (jsfClientWindowRenderModeEnabled != null)
+            if (context.getExternalContext().getClientWindow() != null)
             {
-                clientWindowRenderModeEnabled = clientWindowRenderModeEnabled || jsfClientWindowRenderModeEnabled;
+                jsfClientWindowRenderModeEnabled =
+                        context.getExternalContext().getClientWindow().isClientWindowRenderModeEnabled(context);
             }
         }
         
         try
         {
-            if (clientWindowRenderModeEnabled)
+            if (dsClientWindowRenderModeEnabled)
             {
                 clientWindow.disableClientWindowRenderMode(context);
             }
+            if (jsfClientWindowRenderModeEnabled)
+            {
+                context.getExternalContext().getClientWindow().disableClientWindowRenderMode(context);
+            }
 
             super.encodeChildren(context, component);
         }
         finally
         {
-            if (clientWindowRenderModeEnabled)
+            if (dsClientWindowRenderModeEnabled)
             {
                 clientWindow.enableClientWindowRenderMode(context);
             }
+            if (jsfClientWindowRenderModeEnabled)
+            {
+                context.getExternalContext().getClientWindow().enableClientWindowRenderMode(context);
+            }
         }
     }
     

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/07f0bdd7/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 1bb6db4..a482f22 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
@@ -29,6 +29,7 @@ import javax.faces.context.FacesContext;
 import javax.faces.lifecycle.Lifecycle;
 import javax.faces.lifecycle.LifecycleWrapper;
 import java.lang.reflect.Field;
+import javax.faces.FacesException;
 
 //ATTENTION: don't rename/move this class as long as we need the workaround in impl-ee6
 //(further details are available at: DELTASPIKE-655 and DELTASPIKE-659)
@@ -46,6 +47,7 @@ public class JsfClientWindowAwareLifecycleWrapper extends LifecycleWrapper
         this.wrapped = wrapped;
     }
 
+    @Override
     public Lifecycle getWrapped()
     {
         return wrapped;
@@ -54,10 +56,7 @@ public class JsfClientWindowAwareLifecycleWrapper extends LifecycleWrapper
     @Override
     public void attachWindow(FacesContext facesContext)
     {
-        if (this.initialized == null)
-        {
-            lazyInit();
-        }
+        lazyInit();
 
         if (this.delegateWindowHandling)
         {
@@ -87,8 +86,7 @@ public class JsfClientWindowAwareLifecycleWrapper extends LifecycleWrapper
 
             if (!facesContext.getResponseComplete() && !"default".equals(windowId))
             {
-                facesContext.getExternalContext().setClientWindow(
-                        new ClientWindowAdapter(clientWindow, delegateWindowHandling));
+                facesContext.getExternalContext().setClientWindow(new ClientWindowAdapter(clientWindow));
             }
         }
     }
@@ -144,6 +142,20 @@ public class JsfClientWindowAwareLifecycleWrapper extends LifecycleWrapper
         }
     }
 
+    @Override
+    public void render(FacesContext context) throws FacesException
+    {
+        lazyInit();
+
+        // prevent jfwid rendering
+        if (!delegateWindowHandling && context.getExternalContext().getClientWindow() != null)
+        {
+            context.getExternalContext().getClientWindow().disableClientWindowRenderMode(context);
+        }
+        
+        super.render(context);
+    }
+    
     private void lazyInit()
     {
         if (this.initialized == null)
@@ -155,12 +167,12 @@ public class JsfClientWindowAwareLifecycleWrapper extends LifecycleWrapper
     private synchronized void init()
     {
         // switch into paranoia mode
-        if (initialized == null)
+        if (this.initialized == null)
         {
-            delegateWindowHandling = ClientWindowConfig.ClientWindowRenderMode.DELEGATED.equals(
+            this.delegateWindowHandling = ClientWindowConfig.ClientWindowRenderMode.DELEGATED.equals(
                 BeanProvider.getContextualReference(JsfModuleConfig.class).getDefaultWindowMode());
 
-            initialized = true;
+            this.initialized = true;
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/07f0bdd7/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/ClientWindowAdapter.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/ClientWindowAdapter.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/ClientWindowAdapter.java
index 0a61a68..4282df8 100644
--- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/ClientWindowAdapter.java
+++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/ClientWindowAdapter.java
@@ -34,32 +34,10 @@ import java.util.Map;
 public class ClientWindowAdapter extends ClientWindow
 {
     private final org.apache.deltaspike.jsf.spi.scope.window.ClientWindow window;
-    private final boolean delegateWindowHandling;
 
-    public ClientWindowAdapter(org.apache.deltaspike.jsf.spi.scope.window.ClientWindow window,
-            boolean delegateWindowHandling)
+    public ClientWindowAdapter(org.apache.deltaspike.jsf.spi.scope.window.ClientWindow window)
     {
         this.window = window;
-        this.delegateWindowHandling = delegateWindowHandling;
-    }
-
-    public static Boolean isJsf22ClientWindowRenderModeEnabled(FacesContext context)
-    {
-        ClientWindow clientWindow = context.getExternalContext().getClientWindow();
-        if (clientWindow != null)
-        {
-            if (clientWindow instanceof ClientWindowAdapter)
-            {
-                ClientWindowAdapter clientWindowAdapter = (ClientWindowAdapter) clientWindow;
-                return clientWindowAdapter.isOriginalClientWindowRenderModeEnabled(context);
-            }
-            else
-            {
-                return clientWindow.isClientWindowRenderModeEnabled(context);
-            }
-        }
-        
-        return null;
     }
     
     @Override
@@ -80,20 +58,4 @@ public class ClientWindowAdapter extends ClientWindow
         //currently not needed by the window-handling of DeltaSpike
         return Collections.emptyMap();
     }
-    
-    @Override
-    public boolean isClientWindowRenderModeEnabled(FacesContext context)
-    {
-        if (!delegateWindowHandling)
-        {
-            return false;
-        }
-        
-        return super.isClientWindowRenderModeEnabled(context);
-    }
-    
-    protected boolean isOriginalClientWindowRenderModeEnabled(FacesContext context)
-    {
-        return super.isClientWindowRenderModeEnabled(context);
-    }
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/07f0bdd7/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/strategy/AbstractClientWindowStrategy.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/strategy/AbstractClientWindowStrategy.java b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/strategy/AbstractClientWindowStrategy.java
index f3b9eca..af956a2 100644
--- a/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/strategy/AbstractClientWindowStrategy.java
+++ b/deltaspike/modules/jsf/impl/src/main/java/org/apache/deltaspike/jsf/impl/scope/window/strategy/AbstractClientWindowStrategy.java
@@ -27,7 +27,6 @@ import javax.inject.Inject;
 import javax.servlet.http.HttpServletRequest;
 import org.apache.deltaspike.core.spi.scope.window.WindowContext;
 import org.apache.deltaspike.jsf.api.config.JsfModuleConfig;
-import org.apache.deltaspike.jsf.impl.scope.window.ClientWindowAdapter;
 import org.apache.deltaspike.jsf.impl.util.ClientWindowHelper;
 import org.apache.deltaspike.jsf.spi.scope.window.ClientWindow;
 import org.apache.deltaspike.jsf.spi.scope.window.ClientWindowConfig;
@@ -145,14 +144,6 @@ public abstract class AbstractClientWindowStrategy implements ClientWindow
             Map<Object, Object> attrMap = facesContext.getAttributes();
             attrMap.put(PER_USE_CLIENT_WINDOW_URL_QUERY_PARAMETER_DISABLED_KEY, Boolean.TRUE);
         }
-
-        if (jsfModuleConfig.isJsf22Available())
-        {
-            if (facesContext.getExternalContext().getClientWindow() != null)
-            {
-                facesContext.getExternalContext().getClientWindow().disableClientWindowRenderMode(facesContext);
-            }
-        }
     }
 
     @Override
@@ -163,28 +154,11 @@ public abstract class AbstractClientWindowStrategy implements ClientWindow
             Map<Object, Object> attrMap = facesContext.getAttributes();
             attrMap.remove(PER_USE_CLIENT_WINDOW_URL_QUERY_PARAMETER_DISABLED_KEY);
         }
-        
-        if (jsfModuleConfig.isJsf22Available())
-        {
-            if (facesContext.getExternalContext().getClientWindow() != null)
-            {
-                facesContext.getExternalContext().getClientWindow().enableClientWindowRenderMode(facesContext);
-            }
-        }
     }
 
     @Override
     public boolean isClientWindowRenderModeEnabled(FacesContext facesContext)
     {
-        // skip dswid rendering if JSF2.2 render mode is disabled
-        if (jsfModuleConfig.isJsf22Available())
-        {
-            if (ClientWindowAdapter.isJsf22ClientWindowRenderModeEnabled(facesContext) == false)
-            {
-                return false;
-            }
-        }
-
         if (isSupportClientWindowRenderingMode())
         {
             Map<Object, Object> attrMap = facesContext.getAttributes();