You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by so...@apache.org on 2009/02/17 17:42:07 UTC

svn commit: r745137 - in /myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal: config/xmlHttp/XmlHttpConfigurator.java config/xmlHttp/XmlHttpServletResponse.java webapp/TrinidadFilterImpl.java

Author: sobryan
Date: Tue Feb 17 16:42:06 2009
New Revision: 745137

URL: http://svn.apache.org/viewvc?rev=745137&view=rev
Log:
TRINIDAD-1398: Mobile Dialog return does not work with PPR
TRINIDAD-1399: TrinidadFilterImpl.isReturningFromDialog is not returning the correct result

* Added the IS_RETURNING flag as a request attribute when returning from a dialog
* Added code to handle the redirect correctly if the initial request is a PPR

Modified:
    myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpConfigurator.java
    myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpServletResponse.java
    myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java

Modified: myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpConfigurator.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpConfigurator.java?rev=745137&r1=745136&r2=745137&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpConfigurator.java (original)
+++ myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpConfigurator.java Tue Feb 17 16:42:06 2009
@@ -69,7 +69,7 @@
   /**
    * Sends a <redirect> element to the server
    */
-  static void __sendRedirect(final PrintWriter writer, final String url)
+  public static void sendXmlRedirect(final PrintWriter writer, final String url)
     throws IOException
   {
     XmlResponseWriter rw = new XmlResponseWriter(writer, "UTF-8");

Modified: myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpServletResponse.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpServletResponse.java?rev=745137&r1=745136&r2=745137&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpServletResponse.java (original)
+++ myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpServletResponse.java Tue Feb 17 16:42:06 2009
@@ -47,7 +47,7 @@
   public void sendRedirect(
     final String url) throws IOException
   {
-    XmlHttpConfigurator.__sendRedirect(getWriter(), url);
+    XmlHttpConfigurator.sendXmlRedirect(getWriter(), url);
   }
   
   @Override

Modified: myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java?rev=745137&r1=745136&r2=745137&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java (original)
+++ myfaces/trinidad/branches/1.2.10.1-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java Tue Feb 17 16:42:06 2009
@@ -39,6 +39,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.myfaces.trinidad.context.RequestContext;
 import org.apache.myfaces.trinidad.logging.TrinidadLogger;
 import org.apache.myfaces.trinidad.util.ClassLoaderUtils;
 import org.apache.myfaces.trinidad.util.ExternalContextUtils;
@@ -281,9 +282,14 @@
       
       LaunchData data = (LaunchData)sessionMap.remove(_getKey(uid));
       
+      //We are returning from a dialog:
       if(data != null)
       {
         Map<String, Object> requestMap = ec.getRequestMap();
+
+        //Setting the flag to properly support isExecutingDialogReturn.
+        //This is needed for isExecutingDialogReturn.
+        requestMap.put(_IS_RETURNING_KEY, Boolean.TRUE);  
         
         UIViewRoot launchView = data.getLaunchView();
         if(launchView != null)
@@ -332,8 +338,17 @@
       url.append(_LAUNCH_KEY)
          .append("=")
          .append(uid);
-      
-      ec.redirect(url.toString());
+
+      if (!RequestContext.getCurrentInstance().isPartialRequest(_PSEUDO_FACES_CONTEXT.get()))
+      {
+        //Special handling for XmlHttpRequest.  Would be cool to handle this much cleaner.
+        HttpServletResponse resp = (HttpServletResponse) ec.getResponse();
+        XmlHttpConfigurator.sendXmlRedirect(resp.getWriter(), url.toString());
+      }
+      else
+      {
+        ec.redirect(url.toString());
+      }
     }
   }