Author: julien(a)jboss.com
Date: 2008-02-26 20:49:30 -0500 (Tue, 26 Feb 2008)
New Revision: 10129
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletrequests/LifeCyclePhaseRequestAttributeTestCase.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PortalServlet.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/AbstractMarkupRenderer.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/ControllerResponseRendererFactory.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/ResourceRenderer.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/tck/TCKServlet.java
Log:
- added configuration of the renderer for accomodating portal servlet and TCK servlet
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletrequests/LifeCyclePhaseRequestAttributeTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletrequests/LifeCyclePhaseRequestAttributeTestCase.java 2008-02-27
01:12:26 UTC (rev 10128)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletrequests/LifeCyclePhaseRequestAttributeTestCase.java 2008-02-27
01:49:30 UTC (rev 10129)
@@ -80,7 +80,7 @@
{
protected void run(Portlet portlet, EventRequest request, EventResponse
response, PortletTestContext context) throws PortletException, IOException
{
- assertEquals(PortletRequest.RENDER_PHASE,
request.getAttribute(PortletRequest.LIFECYCLE_PHASE));
+ assertEquals(PortletRequest.EVENT_PHASE,
request.getAttribute(PortletRequest.LIFECYCLE_PHASE));
}
});
seq.bindAction(1, UTP6.RENDER_JOIN_POINT, new PortletRenderTestAction()
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PortalServlet.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PortalServlet.java 2008-02-27
01:12:26 UTC (rev 10128)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PortalServlet.java 2008-02-27
01:49:30 UTC (rev 10129)
@@ -92,9 +92,16 @@
ControllerResponse response = controller.process(context, request);
//
- Renderer renderer = ControllerResponseRendererFactory.getRenderer(response);
+ ControllerResponseRendererFactory rendererFactory = new
ControllerResponseRendererFactory(
+ true,
+ true,
+ context.getStateControllerContext(),
+ request.getPageState());
//
+ Renderer renderer = rendererFactory.getRenderer(response);
+
+ //
renderer.render(new RendererContextImpl(context));
}
else
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/AbstractMarkupRenderer.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/AbstractMarkupRenderer.java 2008-02-27
01:12:26 UTC (rev 10128)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/AbstractMarkupRenderer.java 2008-02-27
01:49:30 UTC (rev 10129)
@@ -24,7 +24,6 @@
package org.jboss.portal.portlet.test.controller;
import org.jboss.portal.common.util.MultiValuedPropertyMap;
-import org.jboss.portal.portlet.controller.PortletControllerContext;
import org.jboss.portal.portlet.invocation.response.ResponseProperties;
import javax.servlet.http.Cookie;
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/ControllerResponseRendererFactory.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/ControllerResponseRendererFactory.java 2008-02-27
01:12:26 UTC (rev 10128)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/ControllerResponseRendererFactory.java 2008-02-27
01:49:30 UTC (rev 10129)
@@ -27,10 +27,13 @@
import org.jboss.portal.portlet.controller.response.PageUpdateResponse;
import org.jboss.portal.portlet.controller.response.PortletResponse;
import org.jboss.portal.portlet.controller.response.ResourceResponse;
+import org.jboss.portal.portlet.controller.state.PageNavigationalState;
+import org.jboss.portal.portlet.controller.state.StateControllerContext;
import org.jboss.portal.portlet.invocation.response.ErrorResponse;
import org.jboss.portal.portlet.invocation.response.FragmentResponse;
import org.jboss.portal.portlet.invocation.response.HTTPRedirectionResponse;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
+import org.jboss.portal.portlet.invocation.response.ResponseProperties;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -38,8 +41,33 @@
*/
public class ControllerResponseRendererFactory
{
- public static Renderer getRenderer(ControllerResponse response)
+
+ /** . */
+ private boolean sendNoContentResponseOnEmptyResource;
+
+ /** . */
+ private boolean sendErrorOnProcessActionError;
+
+ /** The page navigational state if there is one in the request. */
+ private PageNavigationalState requestPageState;
+
+ /** . */
+ private StateControllerContext stateControllerContext;
+
+ public ControllerResponseRendererFactory(
+ boolean sendNoContentResponseOnEmptyResource,
+ boolean sendErrorOnProcessActionError,
+ StateControllerContext stateControllerContext,
+ PageNavigationalState requestPageState)
{
+ this.sendNoContentResponseOnEmptyResource = sendNoContentResponseOnEmptyResource;
+ this.sendErrorOnProcessActionError = sendErrorOnProcessActionError;
+ this.stateControllerContext = stateControllerContext;
+ this.requestPageState = requestPageState;
+ }
+
+ public Renderer getRenderer(ControllerResponse response)
+ {
if (response instanceof PageUpdateResponse)
{
PageUpdateResponse pageUpdate = (PageUpdateResponse)response;
@@ -58,7 +86,7 @@
//
if (resourceResponse.response instanceof FragmentResponse)
{
- return new ResourceRenderer((FragmentResponse)resourceResponse.response);
+ return new ResourceRenderer((FragmentResponse)resourceResponse.response,
sendNoContentResponseOnEmptyResource);
}
else
{
@@ -70,7 +98,7 @@
throw new IllegalArgumentException("Unknown response type: " +
response);
}
- private static Renderer getRenderer(PortletInvocationResponse response)
+ private Renderer getRenderer(PortletInvocationResponse response)
{
if (response instanceof HTTPRedirectionResponse)
{
@@ -78,7 +106,14 @@
}
else if (response instanceof ErrorResponse)
{
- return new ErrorResponseRenderer((ErrorResponse)response);
+ if (sendErrorOnProcessActionError)
+ {
+ return new ErrorResponseRenderer((ErrorResponse)response);
+ }
+ else
+ {
+ return new PageRenderer(new ResponseProperties(), requestPageState != null ?
requestPageState : stateControllerContext.createPageState(false));
+ }
}
//
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/ResourceRenderer.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/ResourceRenderer.java 2008-02-27
01:12:26 UTC (rev 10128)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/ResourceRenderer.java 2008-02-27
01:49:30 UTC (rev 10129)
@@ -41,38 +41,55 @@
/** . */
private FragmentResponse fragment;
- public ResourceRenderer(FragmentResponse response)
+ /** . */
+ private boolean sendNoContentResponseOnEmptyResource;
+
+ public ResourceRenderer(FragmentResponse response, boolean
sendNoContentResponseOnEmptyResource)
{
super(response.getProperties());
//
+ this.sendNoContentResponseOnEmptyResource = sendNoContentResponseOnEmptyResource;
this.fragment = response;
}
protected void renderContent(HttpServletResponse resp) throws IOException
{
- String contentType = fragment.getContentType();
- if (contentType != null)
- {
- resp.setContentType(contentType);
- }
-
- //
if (fragment.getType() == FragmentResponse.TYPE_EMPTY)
{
-// resp.setStatus(HttpServletResponse.SC_NO_CONTENT);
- ServletOutputStream out = null;
- try
+ if (sendNoContentResponseOnEmptyResource)
{
- out = resp.getOutputStream();
+ resp.setStatus(HttpServletResponse.SC_NO_CONTENT);
}
- finally
+ else
{
- IOTools.safeClose(out);
+ String contentType = fragment.getContentType();
+ if (contentType != null)
+ {
+ resp.setContentType(contentType);
+ }
+
+ //
+ ServletOutputStream out = null;
+ try
+ {
+ out = resp.getOutputStream();
+ }
+ finally
+ {
+ IOTools.safeClose(out);
+ }
}
}
else
{
+ String contentType = fragment.getContentType();
+ if (contentType != null)
+ {
+ resp.setContentType(contentType);
+ }
+
+ //
if (fragment.getType() == FragmentResponse.TYPE_BYTES)
{
ServletOutputStream out = null;
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/tck/TCKServlet.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/tck/TCKServlet.java 2008-02-27
01:12:26 UTC (rev 10128)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/tck/TCKServlet.java 2008-02-27
01:49:30 UTC (rev 10129)
@@ -25,7 +25,6 @@
import org.jboss.portal.portlet.test.controller.Renderer;
import org.jboss.portal.portlet.test.controller.ControllerResponseRendererFactory;
import org.jboss.portal.portlet.test.controller.PageRenderer;
-import org.jboss.portal.portlet.test.controller.AbstractRendererContext;
import org.jboss.portal.portlet.test.URLParameterConstants;
import org.jboss.portal.portlet.controller.PortletController;
import org.jboss.portal.portlet.controller.response.ControllerResponse;
@@ -51,6 +50,7 @@
public class TCKServlet extends HttpServlet
{
+ /** . */
public static String TCK_PORTLET_NAME = "portletName";
protected void service(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException
@@ -101,9 +101,16 @@
ControllerResponse response = controller.process(context, request);
//
- Renderer renderer = ControllerResponseRendererFactory.getRenderer(response);
+ ControllerResponseRendererFactory rendererFactory = new
ControllerResponseRendererFactory(
+ false,
+ false,
+ context.getStateControllerContext(),
+ request.getPageState());
//
+ Renderer renderer = rendererFactory.getRenderer(response);
+
+ //
renderer.render(new TCKRendererContext(context, tckPageState));
}
else