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:48:44 UTC
svn commit: r745141 - in
/myfaces/trinidad/trunk/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:48:43 2009
New Revision: 745141
URL: http://svn.apache.org/viewvc?rev=745141&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/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpConfigurator.java
myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpServletResponse.java
myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java
Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpConfigurator.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpConfigurator.java?rev=745141&r1=745140&r2=745141&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpConfigurator.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpConfigurator.java Tue Feb 17 16:48:43 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/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpServletResponse.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpServletResponse.java?rev=745141&r1=745140&r2=745141&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpServletResponse.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/xmlHttp/XmlHttpServletResponse.java Tue Feb 17 16:48:43 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/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java?rev=745141&r1=745140&r2=745141&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java Tue Feb 17 16:48:43 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());
+ }
}
}