Author: julien(a)jboss.com
Date: 2008-02-06 17:58:00 -0500 (Wed, 06 Feb 2008)
New Revision: 9815
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/ControllerServlet.java
modules/portlet/trunk/test/src/test/resources/simple-portal-war/index.jsp
Log:
implement resource serving in portal jsp
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/ControllerServlet.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/ControllerServlet.java 2008-02-06
22:49:03 UTC (rev 9814)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/jsp/ControllerServlet.java 2008-02-06
22:58:00 UTC (rev 9815)
@@ -33,14 +33,18 @@
import org.jboss.portal.portlet.controller.PortletController;
import org.jboss.portal.portlet.controller.response.ControllerResponse;
import org.jboss.portal.portlet.controller.response.PageUpdateResponse;
+import org.jboss.portal.portlet.controller.response.ResourceResponse;
import org.jboss.portal.portlet.controller.state.PageNavigationalState;
+import org.jboss.portal.common.io.IOTools;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
+import java.io.Writer;
import java.util.Map;
/**
@@ -89,6 +93,63 @@
PageUpdateResponse pageUpdate = (PageUpdateResponse)controllerResponse;
pageState = pageUpdate.getPageState();
}
+ else if (controllerResponse instanceof ResourceResponse)
+ {
+ ResourceResponse resourceResponse = (ResourceResponse)controllerResponse;
+ PortletInvocationResponse pir = resourceResponse.response;
+
+ //
+ if (pir instanceof FragmentResponse)
+ {
+ FragmentResponse fragment = (FragmentResponse)pir;
+
+ //
+ if (fragment.getType() == FragmentResponse.TYPE_EMPTY)
+ {
+ resp.setStatus(HttpServletResponse.SC_NO_CONTENT);
+ }
+ else
+ {
+ String contentType = fragment.getContentType();
+ if (contentType != null)
+ {
+ resp.setContentType(contentType);
+ }
+
+ //
+ if (fragment.getType() == FragmentResponse.TYPE_BYTES)
+ {
+ ServletOutputStream out = null;
+ try
+ {
+ out = resp.getOutputStream();
+ out.write(fragment.getBytes().toByteArray());
+ }
+ finally
+ {
+ IOTools.safeClose(out);
+ }
+ }
+ else
+ {
+ Writer writer = null;
+ try
+ {
+ writer = resp.getWriter();
+ writer.write(fragment.getChars().toString());
+ }
+ finally
+ {
+ writer.close();
+ }
+ }
+ }
+ }
+ else
+ {
+ // todo
+ }
+ }
else
{
// todo
Modified: modules/portlet/trunk/test/src/test/resources/simple-portal-war/index.jsp
===================================================================
--- modules/portlet/trunk/test/src/test/resources/simple-portal-war/index.jsp 2008-02-06
22:49:03 UTC (rev 9814)
+++ modules/portlet/trunk/test/src/test/resources/simple-portal-war/index.jsp 2008-02-06
22:58:00 UTC (rev 9815)
@@ -13,6 +13,10 @@
name="GoogleMap"
applicationName="google-map-portlet"/>
THREE
+ <portal:portlet
+ name="RemoteControl"
+ applicationName="remotecontrol-portlet"/>
+ FOUR
</portal:page>
</body>
</html>