You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by bl...@apache.org on 2005/07/15 14:57:15 UTC
svn commit: r219193 - in /portals/pluto/trunk:
container/src/java/org/apache/pluto/
container/src/java/org/apache/pluto/core/impl/
container/src/java/org/apache/pluto/factory/
container/src/java/org/apache/pluto/factory/impl/
portal/src/java/org/apache...
Author: blumm
Date: Fri Jul 15 05:57:13 2005
New Revision: 219193
URL: http://svn.apache.org/viewcvs?rev=219193&view=rev
Log:
Fix for PLUTO-112(http://issues.apache.org/jira/browse/PLUTO-112). The patches were provided by Ulrich Kuester. I tested them successful. Look at Jira for more details.
Modified:
portals/pluto/trunk/container/src/java/org/apache/pluto/PortletContainerImpl.java
portals/pluto/trunk/container/src/java/org/apache/pluto/core/impl/RenderResponseImpl.java
portals/pluto/trunk/container/src/java/org/apache/pluto/factory/PortletObjectAccess.java
portals/pluto/trunk/container/src/java/org/apache/pluto/factory/RenderResponseFactory.java
portals/pluto/trunk/container/src/java/org/apache/pluto/factory/impl/RenderResponseFactoryImpl.java
portals/pluto/trunk/portal/src/java/org/apache/pluto/portalImpl/Servlet.java
portals/pluto/trunk/portal/src/webapp/WEB-INF/config/services/ConfigService.properties
Modified: portals/pluto/trunk/container/src/java/org/apache/pluto/PortletContainerImpl.java
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/container/src/java/org/apache/pluto/PortletContainerImpl.java?rev=219193&r1=219192&r2=219193&view=diff
==============================================================================
--- portals/pluto/trunk/container/src/java/org/apache/pluto/PortletContainerImpl.java (original)
+++ portals/pluto/trunk/container/src/java/org/apache/pluto/PortletContainerImpl.java Fri Jul 15 05:57:13 2005
@@ -52,6 +52,9 @@
private String uniqueContainerName;
private boolean initialized;
+
+ private static String CONTAINER_SUPPORTS_BUFFERING = "portletcontainer.supportsBuffering";
+ private boolean supportsBuffering;
private Logger log = null;
@@ -70,6 +73,16 @@
log = ((LogService)environment
.getContainerService(LogService.class))
.getLogger(getClass());
+
+ Boolean b = (Boolean)properties.get(CONTAINER_SUPPORTS_BUFFERING);
+ if (b == null) {
+ log.warn("org.apache.pluto.PortletContainerImpl#init(): " +
+ "Couldn't retrieve parameter \"" + CONTAINER_SUPPORTS_BUFFERING + "\" from" +
+ "passed properties object. Falling back to default value \"FALSE\"");
+ supportsBuffering = false;
+ } else {
+ supportsBuffering = b.booleanValue();
+ }
}
public void shutdown() throws PortletContainerException
@@ -99,7 +112,8 @@
RenderResponse renderResponse = PortletObjectAccess.getRenderResponse(portletWindow,
servletRequest,
- servletResponse);
+ servletResponse,
+ supportsBuffering);
invoker = PortletInvokerAccess.getPortletInvoker(portletWindow.getPortletEntity().getPortletDefinition());
invoker.render(renderRequest, renderResponse);
@@ -194,7 +208,8 @@
RenderResponse renderResponse = PortletObjectAccess.getRenderResponse(portletWindow,
servletRequest,
- servletResponse);
+ servletResponse,
+ supportsBuffering);
invoker = PortletInvokerAccess.getPortletInvoker(portletWindow.getPortletEntity().getPortletDefinition());
Modified: portals/pluto/trunk/container/src/java/org/apache/pluto/core/impl/RenderResponseImpl.java
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/container/src/java/org/apache/pluto/core/impl/RenderResponseImpl.java?rev=219193&r1=219192&r2=219193&view=diff
==============================================================================
--- portals/pluto/trunk/container/src/java/org/apache/pluto/core/impl/RenderResponseImpl.java (original)
+++ portals/pluto/trunk/container/src/java/org/apache/pluto/core/impl/RenderResponseImpl.java Fri Jul 15 05:57:13 2005
@@ -38,14 +38,18 @@
public class RenderResponseImpl extends PortletResponseImpl implements RenderResponse {
private static final String illegalStateExceptionText = "No content type set.";
+
+ private boolean containerSupportsBuffering;
private String currentContentType = null; // needed as servlet 2.3 does not have a response.getContentType
public RenderResponseImpl(PortletWindow portletWindow,
javax.servlet.http.HttpServletRequest servletRequest,
- javax.servlet.http.HttpServletResponse servletResponse)
+ javax.servlet.http.HttpServletResponse servletResponse,
+ boolean containerSupportsBuffering)
{
super(portletWindow, servletRequest, servletResponse);
+ this.containerSupportsBuffering = containerSupportsBuffering;
}
// javax.portlet.RenderResponse ---------------------------------------------------------------
@@ -118,13 +122,22 @@
public void setBufferSize(int size)
{
- throw new IllegalStateException("portlet container does not support buffering");
+ if (!containerSupportsBuffering) {
+ // default behaviour if property pluto.allowSetBufferSize in file
+ // ConfigService.properties wasn't set or was set to a value not equal to "yes"
+ throw new IllegalStateException("portlet container does not support buffering");
+ } else {
+ this._getHttpServletResponse().setBufferSize(size);
+ }
}
public int getBufferSize()
{
- //return this._getHttpServletResponse().getBufferSize();
- return 0;
+ if (!containerSupportsBuffering) {
+ return 0;
+ } else {
+ return this._getHttpServletResponse().getBufferSize();
+ }
}
public void flushBuffer() throws java.io.IOException
Modified: portals/pluto/trunk/container/src/java/org/apache/pluto/factory/PortletObjectAccess.java
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/container/src/java/org/apache/pluto/factory/PortletObjectAccess.java?rev=219193&r1=219192&r2=219193&view=diff
==============================================================================
--- portals/pluto/trunk/container/src/java/org/apache/pluto/factory/PortletObjectAccess.java (original)
+++ portals/pluto/trunk/container/src/java/org/apache/pluto/factory/PortletObjectAccess.java Fri Jul 15 05:57:13 2005
@@ -49,11 +49,13 @@
public static RenderResponse getRenderResponse(PortletWindow portletWindow,
javax.servlet.http.HttpServletRequest servletRequest,
- javax.servlet.http.HttpServletResponse servletResponse)
+ javax.servlet.http.HttpServletResponse servletResponse,
+ boolean containerSupportsBuffering)
{
return getResponseFactory().getRenderResponse(portletWindow,
servletRequest,
- servletResponse);
+ servletResponse,
+ containerSupportsBuffering);
}
public static PortletSession getPortletSession(PortletWindow portletWindow,
Modified: portals/pluto/trunk/container/src/java/org/apache/pluto/factory/RenderResponseFactory.java
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/container/src/java/org/apache/pluto/factory/RenderResponseFactory.java?rev=219193&r1=219192&r2=219193&view=diff
==============================================================================
--- portals/pluto/trunk/container/src/java/org/apache/pluto/factory/RenderResponseFactory.java (original)
+++ portals/pluto/trunk/container/src/java/org/apache/pluto/factory/RenderResponseFactory.java Fri Jul 15 05:57:13 2005
@@ -27,5 +27,6 @@
public RenderResponse getRenderResponse(PortletWindow portletWindow,
javax.servlet.http.HttpServletRequest servletRequest,
- javax.servlet.http.HttpServletResponse servletResponse);
+ javax.servlet.http.HttpServletResponse servletResponse,
+ boolean containerSupportsBuffering);
}
Modified: portals/pluto/trunk/container/src/java/org/apache/pluto/factory/impl/RenderResponseFactoryImpl.java
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/container/src/java/org/apache/pluto/factory/impl/RenderResponseFactoryImpl.java?rev=219193&r1=219192&r2=219193&view=diff
==============================================================================
--- portals/pluto/trunk/container/src/java/org/apache/pluto/factory/impl/RenderResponseFactoryImpl.java (original)
+++ portals/pluto/trunk/container/src/java/org/apache/pluto/factory/impl/RenderResponseFactoryImpl.java Fri Jul 15 05:57:13 2005
@@ -34,11 +34,13 @@
// org.apache.pluto.factory.RenderRequestFactory implementation -------------------------------
public RenderResponse getRenderResponse(PortletWindow portletWindow,
javax.servlet.http.HttpServletRequest servletRequest,
- javax.servlet.http.HttpServletResponse servletResponse)
+ javax.servlet.http.HttpServletResponse servletResponse,
+ boolean containerSupportsBuffering)
{
RenderResponse renderResponse = new RenderResponseImpl(portletWindow,
servletRequest,
- servletResponse );
+ servletResponse,
+ containerSupportsBuffering);
return renderResponse;
}
// --------------------------------------------------------------------------------------------
Modified: portals/pluto/trunk/portal/src/java/org/apache/pluto/portalImpl/Servlet.java
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/java/org/apache/pluto/portalImpl/Servlet.java?rev=219193&r1=219192&r2=219193&view=diff
==============================================================================
--- portals/pluto/trunk/portal/src/java/org/apache/pluto/portalImpl/Servlet.java (original)
+++ portals/pluto/trunk/portal/src/java/org/apache/pluto/portalImpl/Servlet.java Fri Jul 15 05:57:13 2005
@@ -51,6 +51,11 @@
{
private static String CONTENT_TYPE = "text/html";
+
+ /**
+ * Stores whether the portlet container used supports buffering
+ */
+ private static String CONTAINER_SUPPORTS_BUFFERING = "portletcontainer.supportsBuffering";
private Logger log = null;
@@ -62,7 +67,7 @@
public void init (ServletConfig config) throws ServletException
{
super.init (config);
-
+
String charset = config.getInitParameter("charset");
if (charset != null && charset.length() > 0) {
CONTENT_TYPE = "text/html; charset=" + charset;
@@ -108,13 +113,27 @@
environment.addContainerService(FactoryAccess.getInformationProviderContainerService());
environment.addContainerService(FactoryAccess.getDynamicTitleContainerService());
- Properties properties = new Properties();
+ String allowSetBufferSizeString = Config.getParameters().getString(CONTAINER_SUPPORTS_BUFFERING);
+ boolean allowSetBufferSize = false;
+ if (allowSetBufferSizeString == null) {
+ log.warn("org.apache.pluto.portalImpl.Servlet#init(): " +
+ "Couldn't read property \"pluto.allowSetBufferSize\" " +
+ "from config file ConfigService.properties");
+ } else {
+ allowSetBufferSize = allowSetBufferSizeString.equalsIgnoreCase("yes");
+ }
+ Properties containerProperties = new Properties();
+
+ containerProperties.put(CONTAINER_SUPPORTS_BUFFERING, new Boolean(allowSetBufferSize));
+
+// Properties properties = new Properties();
try
{
PortletContainerFactory.
getPortletContainer().
- init(uniqueContainerName, config, environment, properties);
+// init(uniqueContainerName, config, environment, properties);
+ init(uniqueContainerName, config, environment, containerProperties);
}
catch (PortletContainerException exc)
{
Modified: portals/pluto/trunk/portal/src/webapp/WEB-INF/config/services/ConfigService.properties
URL: http://svn.apache.org/viewcvs/portals/pluto/trunk/portal/src/webapp/WEB-INF/config/services/ConfigService.properties?rev=219193&r1=219192&r2=219193&view=diff
==============================================================================
--- portals/pluto/trunk/portal/src/webapp/WEB-INF/config/services/ConfigService.properties (original)
+++ portals/pluto/trunk/portal/src/webapp/WEB-INF/config/services/ConfigService.properties Fri Jul 15 05:57:13 2005
@@ -41,6 +41,7 @@
portletcontainer.uniquename = pluto
portletcontainer.entrance.impl = org.apache.pluto.PortletContainerImpl
portletcontainer.entrance.wrapper.impl = org.apache.pluto.portalImpl.core.PortletContainerWrapperImpl
+portletcontainer.supportsBuffering=no
servlet.insecure=/portal
servlet.secure=/secure