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 at...@apache.org on 2009/03/14 04:20:22 UTC
svn commit: r753593 [1/2] - in /portals/pluto/trunk:
pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/
pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/
pluto-portal-driver/src/main/java/org/apach...
Author: ate
Date: Sat Mar 14 03:20:18 2009
New Revision: 753593
URL: http://svn.apache.org/viewvc?rev=753593&view=rev
Log:
Completion of the final big bang commit after the large schale refactoring of the Pluto container.
This new implementation now (again) passes the Portlet API 2.0 TCK 100%!
This commit for the portal driver and util (and the one beofre for the container) fixes and completes at least the following open issues (possibly even more):
PLUTO-478 - Portlet Dispatching loses wrappers
PLUTO-523 - Further abstractions of the Pluto SPI to support embedding in and extending by other portals
PLUTO-529 - PortletRequest/PortletResponse implementations extending HttpServletRequest/Response wrappers causes "indentity" problems when accessed from servlets
PLUTO-530 - RequestDispatcher path query string parameter handling too limited and broken with nested dispatches
PLUTO-531 - New PortletRequestStateService SPI to replace and extend most of the currrent incorrect used PropertyManager SPI and PortletURLProvider SPI
PLUTO-532 - New PortletResponseStateProvider SPI
PLUTO-535 - Dispatched HttpServletRequest path info methods must return path information used to obtain the PortletRequestDispatcher
PLUTO-536 - Setting the ResourceResponse character encoding requires to support locale-encoding-mapping-list from web.xml
PLUTO-537 - Cleaning up Pluto packages
PLUTO-538 - New EventCoordinationService and merging EventContainer with PortletContainer
Added:
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventProviderImpl.java (with props)
Removed:
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventAttribute.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventList.java
portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalServletRequest.java
Modified:
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletActionResponseContextImpl.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletEventResponseContextImpl.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletMimeResponseContextImpl.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRenderResponseContextImpl.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRequestContextImpl.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRequestContextServiceImpl.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceRequestContextImpl.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceResponseContextImpl.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResponseContextImpl.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletStateAwareResponseContextImpl.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletURLProviderImpl.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletWindowThread.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/PortalURLParserImpl.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/RelativePortalURLImpl.java
portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalDriverServlet.java
portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalRequestContext.java
portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalServletResponse.java
portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/tags/PortletTag.java
portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/url/PortalURL.java
portals/pluto/trunk/pluto-portal/src/main/webapp/WEB-INF/pluto-portal-driver-services-config.xml
portals/pluto/trunk/pluto-util/src/main/java/org/apache/pluto/util/assemble/io/WebXmlStreamingAssembly.java
portals/pluto/trunk/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/ComplexEarAssemblerTest.java
portals/pluto/trunk/pluto-util/src/test/java/org/apache/pluto/util/assemble/ear/EarAssemblerTest.java
portals/pluto/trunk/pluto-util/src/test/java/org/apache/pluto/util/assemble/io/AssemblyStreamTest.java
Added: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventProviderImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventProviderImpl.java?rev=753593&view=auto
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventProviderImpl.java (added)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventProviderImpl.java Sat Mar 14 03:20:18 2009
@@ -0,0 +1,174 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pluto.driver.services.container;
+
+import java.io.Serializable;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.List;
+
+import javax.portlet.Event;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.namespace.QName;
+import javax.xml.stream.FactoryConfigurationError;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.pluto.container.EventProvider;
+import org.apache.pluto.container.PortletContainerException;
+import org.apache.pluto.container.PortletWindow;
+import org.apache.pluto.container.driver.PortletRegistryService;
+import org.apache.pluto.container.om.portlet.EventDefinition;
+import org.apache.pluto.container.om.portlet.EventDefinitionReference;
+import org.apache.pluto.container.om.portlet.PortletApplicationDefinition;
+import org.apache.pluto.driver.services.portal.PortletWindowConfig;
+
+/**
+ * @version $Id$
+ */
+public class EventProviderImpl implements EventProvider
+{
+ /** Logger. */
+ private static final Log LOG = LogFactory.getLog(EventProviderImpl.class);
+ private PortletWindow portletWindow;
+ private PortletRegistryService portletRegistry;
+
+ public EventProviderImpl(PortletWindow portletWindow, PortletRegistryService portletRegistry)
+ {
+ this.portletWindow = portletWindow;
+ this.portletRegistry = portletRegistry;
+ }
+
+ @SuppressWarnings("unchecked")
+ public Event createEvent(QName qname, Serializable value) throws IllegalArgumentException
+ {
+ if (isDeclaredAsPublishingEvent(qname))
+ {
+ if (value != null && !isValueInstanceOfDefinedClass(qname, value))
+ {
+ throw new IllegalArgumentException("Payload has not the right class");
+ }
+ try
+ {
+ if (value == null)
+ {
+ return new EventImpl(qname, value);
+ }
+ else
+ {
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ Writer out = new StringWriter();
+ Class clazz = value.getClass();
+ try
+ {
+ Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
+ JAXBContext jc = JAXBContext.newInstance(clazz);
+ Marshaller marshaller = jc.createMarshaller();
+ JAXBElement<Serializable> element = new JAXBElement<Serializable>(qname, clazz, value);
+ marshaller.marshal(element, out);
+ }
+ finally
+ {
+ Thread.currentThread().setContextClassLoader(cl);
+ }
+ return new EventImpl(qname, out.toString());
+ }
+ }
+ catch (JAXBException e)
+ {
+ // maybe there is no valid jaxb binding
+ // TODO wsrp:eventHandlingFailed
+ LOG.error("Event handling failed", e);
+ }
+ catch (FactoryConfigurationError e)
+ {
+ LOG.warn(e);
+ }
+ }
+ return null;
+ }
+
+ private boolean isDeclaredAsPublishingEvent(QName qname)
+ {
+ String applicationId = PortletWindowConfig.parseContextPath(portletWindow.getId().getStringId());
+ String applicationName = applicationId;
+ if (applicationId.length() > 0)
+ {
+ applicationName = applicationId.substring(1);
+ }
+ String portletName = PortletWindowConfig.parsePortletName(portletWindow.getId().getStringId());
+ List<? extends EventDefinitionReference> events = null;
+ try
+ {
+ events = portletRegistry.getPortlet(applicationName, portletName).getSupportedPublishingEvents();
+ }
+ catch (PortletContainerException e1)
+ {
+ e1.printStackTrace();
+ }
+ if (events != null)
+ {
+ String defaultNamespace = portletWindow.getPortletEntity().getPortletDefinition().getApplication()
+ .getDefaultNamespace();
+ for (EventDefinitionReference ref : events)
+ {
+ QName name = ref.getQualifiedName(defaultNamespace);
+ if (name == null)
+ {
+ continue;
+ }
+ if (qname.equals(name))
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private boolean isValueInstanceOfDefinedClass(QName qname, Serializable value)
+ {
+ PortletApplicationDefinition app = portletWindow.getPortletEntity().getPortletDefinition().getApplication();
+ List<? extends EventDefinition> events = app.getEventDefinitions();
+ if (events != null)
+ {
+ for (EventDefinition def : events)
+ {
+ if (def.getQName() != null)
+ {
+ if (def.getQName().equals(qname))
+ {
+ return value.getClass().getName().equals(def.getValueType());
+ }
+ }
+ else
+ {
+ QName tmp = new QName(app.getDefaultNamespace(), def.getName());
+ if (tmp.equals(qname))
+ {
+ return value.getClass().getName().equals(def.getValueType());
+ }
+ }
+ }
+ }
+ // event not declared
+ return true;
+ }
+}
Propchange: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventProviderImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventProviderImpl.java
------------------------------------------------------------------------------
svn:keywords = Id
Propchange: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/EventProviderImpl.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletActionResponseContextImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletActionResponseContextImpl.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletActionResponseContextImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletActionResponseContextImpl.java Sat Mar 14 03:20:18 2009
@@ -17,12 +17,17 @@
package org.apache.pluto.driver.services.container;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.pluto.container.PortletActionResponseContext;
import org.apache.pluto.container.PortletContainer;
import org.apache.pluto.container.PortletWindow;
+import org.apache.pluto.driver.core.PortalRequestContext;
+import org.apache.pluto.driver.url.PortalURL;
/**
* @version $Id$
@@ -31,43 +36,66 @@
public class PortletActionResponseContextImpl extends PortletStateAwareResponseContextImpl implements
PortletActionResponseContext
{
- public PortletActionResponseContextImpl(PortletContainer container, HttpServletRequest request,
- HttpServletResponse response, PortletWindow window)
+ private boolean redirect;
+ private String redirectLocation;
+ private String renderURLParamName;
+
+ public PortletActionResponseContextImpl(PortletContainer container, HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse, PortletWindow window)
{
- super(container, request, response, window);
+ super(container, containerRequest, containerResponse, window);
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletActionResponseContext#getResponseURL()
- */
public String getResponseURL()
{
- // TODO Auto-generated method stub
+ if (!isReleased())
+ {
+ close();
+ if (!redirect || renderURLParamName != null)
+ {
+ PortalURL url = PortalRequestContext.getContext(getServletRequest()).createPortalURL();
+ if (redirect)
+ {
+ try
+ {
+ return redirectLocation + "?" + URLEncoder.encode(renderURLParamName, "UTF-8") + "=" + URLEncoder.encode(url.toURL(true), "UTF-8");
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ // Cannot happen: UTF-8 is a buildin/required encoder
+ return null;
+ }
+ }
+ else
+ {
+ return url.toURL(false);
+ }
+ }
+ else
+ {
+ return redirectLocation;
+ }
+ }
return null;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletActionResponseContext#isRedirect()
- */
public boolean isRedirect()
{
- // TODO Auto-generated method stub
- return false;
+ return redirect;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletActionResponseContext#setRedirect(java.lang.String)
- */
public void setRedirect(String location)
{
- // TODO Auto-generated method stub
+ setRedirect(location, null);
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletActionResponseContext#setRedirect(java.lang.String, java.lang.String)
- */
public void setRedirect(String location, String renderURLParamName)
{
- // TODO Auto-generated method stub
+ if (!isClosed())
+ {
+ this.redirectLocation = location;
+ this.renderURLParamName = renderURLParamName;
+ this.redirect = true;
+ }
}
}
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletEventResponseContextImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletEventResponseContextImpl.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletEventResponseContextImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletEventResponseContextImpl.java Sat Mar 14 03:20:18 2009
@@ -32,9 +32,9 @@
PortletEventResponseContext
{
- public PortletEventResponseContextImpl(PortletContainer container, HttpServletRequest request,
- HttpServletResponse response, PortletWindow window)
+ public PortletEventResponseContextImpl(PortletContainer container, HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse, PortletWindow window)
{
- super(container, request, response, window);
+ super(container, containerRequest, containerResponse, window);
}
}
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletMimeResponseContextImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletMimeResponseContextImpl.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletMimeResponseContextImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletMimeResponseContextImpl.java Sat Mar 14 03:20:18 2009
@@ -17,6 +17,7 @@
package org.apache.pluto.driver.services.container;
+import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Locale;
@@ -30,6 +31,7 @@
import org.apache.pluto.container.PortletURLProvider;
import org.apache.pluto.container.PortletWindow;
import org.apache.pluto.container.PortletURLProvider.TYPE;
+import org.apache.pluto.container.util.PrintWriterServletOutputStream;
/**
* @version $Id$
@@ -37,130 +39,179 @@
*/
public abstract class PortletMimeResponseContextImpl extends PortletResponseContextImpl implements PortletMimeResponseContext
{
- public PortletMimeResponseContextImpl(PortletContainer container, HttpServletRequest request,
- HttpServletResponse response, PortletWindow window)
+ private static class CacheControlImpl implements CacheControl
{
- super(container, request, response, window);
+ private String eTag;
+ private int expirationTime;
+ private boolean publicScope;
+ private boolean cachedContent;
+
+ public CacheControlImpl()
+ {
+ }
+
+ public boolean useCachedContent()
+ {
+ return cachedContent;
+ }
+
+ public String getETag()
+ {
+ return this.eTag;
+ }
+
+ public int getExpirationTime()
+ {
+ return expirationTime;
+ }
+
+ public boolean isPublicScope()
+ {
+ return publicScope;
+ }
+
+ public void setETag(String eTag)
+ {
+ this.eTag = eTag;
+ }
+
+ public void setExpirationTime(int expirationTime)
+ {
+ this.expirationTime = expirationTime;
+ }
+
+ public void setPublicScope(boolean publicScope)
+ {
+ this.publicScope = publicScope;
+ }
+
+ public void setUseCachedContent(boolean cachedContent)
+ {
+ this.cachedContent = cachedContent;
+ }
+ }
+
+ private CacheControl cacheControl;
+ private OutputStream outputStream;
+
+ public PortletMimeResponseContextImpl(PortletContainer container, HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse, PortletWindow window)
+ {
+ super(container, containerRequest, containerResponse, window);
+ }
+
+ public void close()
+ {
+ cacheControl = null;
+ outputStream = null;
+ super.close();
+ }
+
+ public void flushBuffer() throws IOException
+ {
+ if (!isClosed())
+ {
+ getServletResponse().flushBuffer();
+ }
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletMimeResponseContext#flushBuffer()
- */
- public void flushBuffer()
- {
- // TODO Auto-generated method stub
- }
-
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletMimeResponseContext#getBufferSize()
- */
public int getBufferSize()
{
- // TODO Auto-generated method stub
- return 0;
+ return getServletResponse().getBufferSize();
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletMimeResponseContext#getCacheControl()
- */
public CacheControl getCacheControl()
{
- // TODO Auto-generated method stub
- return null;
+ if (isClosed())
+ {
+ return null;
+ }
+ if (cacheControl == null)
+ {
+ cacheControl = new CacheControlImpl();
+ }
+ return cacheControl;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletMimeResponseContext#getCharacterEncoding()
- */
public String getCharacterEncoding()
{
- // TODO Auto-generated method stub
- return null;
+ return isClosed() ? null : getServletResponse().getCharacterEncoding();
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletMimeResponseContext#getContentType()
- */
public String getContentType()
{
- // TODO Auto-generated method stub
- return null;
+ return isClosed() ? null : getServletResponse().getContentType();
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletMimeResponseContext#getLocale()
- */
public Locale getLocale()
{
- // TODO Auto-generated method stub
- return null;
+ return isClosed() ? null : getServletResponse().getLocale();
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletMimeResponseContext#getOutputStream()
- */
- public OutputStream getOutputStream()
+ public OutputStream getOutputStream() throws IOException, IllegalStateException
{
- // TODO Auto-generated method stub
- return null;
+ if (isClosed())
+ {
+ return null;
+ }
+ if (outputStream == null)
+ {
+ try
+ {
+ outputStream = getServletResponse().getOutputStream();
+ }
+ catch (IllegalStateException e)
+ {
+ // handle situation where underlying ServletResponse its getWriter()
+ // has been called already anyway: return a wrapped PrintWriter in that case
+ outputStream = new PrintWriterServletOutputStream(getServletResponse().getWriter(),
+ getServletResponse().getCharacterEncoding());
+ }
+ }
+ return outputStream;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletMimeResponseContext#getWriter()
- */
- public PrintWriter getWriter()
+ public PrintWriter getWriter() throws IOException, IllegalStateException
{
- // TODO Auto-generated method stub
- return null;
+ return isClosed() ? null : getServletResponse().getWriter();
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletMimeResponseContext#isCommitted()
- */
public boolean isCommitted()
{
- // TODO Auto-generated method stub
- return false;
+ return getServletResponse().isCommitted();
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletMimeResponseContext#reset()
- */
public void reset()
{
- // TODO Auto-generated method stub
+ getServletResponse().reset();
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletMimeResponseContext#resetBuffer()
- */
public void resetBuffer()
{
- // TODO Auto-generated method stub
+ if (!isClosed())
+ {
+ getServletResponse().resetBuffer();
+ }
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletMimeResponseContext#setBufferSize(int)
- */
public void setBufferSize(int size)
{
- // TODO Auto-generated method stub
+ if (!isClosed())
+ {
+ getServletResponse().setBufferSize(size);
+ }
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletMimeResponseContext#setContentType(java.lang.String)
- */
public void setContentType(String contentType)
{
- // TODO Auto-generated method stub
+ if (!isClosed())
+ {
+ getServletResponse().setContentType(contentType);
+ }
}
- /* (non-Javadoc)
- * @see org.apache.pluto.container.PortletMimeResponseContext#getPortletURLProvider(org.apache.pluto.container.PortletURLProvider.TYPE)
- */
public PortletURLProvider getPortletURLProvider(TYPE type)
{
- // TODO Auto-generated method stub
- return null;
+ return isClosed() ? null : new PortletURLProviderImpl(getPortalURL(), type, getPortletWindow());
}
}
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRenderResponseContextImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRenderResponseContextImpl.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRenderResponseContextImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRenderResponseContextImpl.java Sat Mar 14 03:20:18 2009
@@ -26,6 +26,7 @@
import org.apache.pluto.container.PortletContainer;
import org.apache.pluto.container.PortletRenderResponseContext;
import org.apache.pluto.container.PortletWindow;
+import org.apache.pluto.driver.AttributeKeys;
/**
* @version $Id$
@@ -34,25 +35,22 @@
public class PortletRenderResponseContextImpl extends PortletMimeResponseContextImpl implements
PortletRenderResponseContext
{
- public PortletRenderResponseContextImpl(PortletContainer container, HttpServletRequest request,
- HttpServletResponse response, PortletWindow window)
+ public PortletRenderResponseContextImpl(PortletContainer container, HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse, PortletWindow window)
{
- super(container, request, response, window);
+ super(container, containerRequest, containerResponse, window);
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRenderResponseContext#setNextPossiblePortletModes(java.util.Collection)
- */
public void setNextPossiblePortletModes(Collection<PortletMode> portletModes)
{
- // TODO Auto-generated method stub
+ // not supported
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRenderResponseContext#setTitle(java.lang.String)
- */
public void setTitle(String title)
{
- // TODO Auto-generated method stub
+ if (!isClosed())
+ {
+ getServletRequest().setAttribute(AttributeKeys.PORTLET_TITLE, title);
+ }
}
}
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRequestContextImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRequestContextImpl.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRequestContextImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRequestContextImpl.java Sat Mar 14 03:20:18 2009
@@ -17,18 +17,26 @@
package org.apache.pluto.driver.services.container;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
+import javax.portlet.PortletContext;
+import javax.servlet.ServletContext;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.pluto.container.ContainerPortletConfig;
import org.apache.pluto.container.PortletContainer;
import org.apache.pluto.container.PortletRequestContext;
import org.apache.pluto.container.PortletWindow;
+import org.apache.pluto.driver.core.PortalRequestContext;
+import org.apache.pluto.driver.url.PortalURL;
+import org.apache.pluto.driver.url.PortalURLParameter;
/**
* @version $Id$
@@ -37,136 +45,239 @@
public class PortletRequestContextImpl implements PortletRequestContext
{
private PortletContainer container;
- private HttpServletRequest request;
- private HttpServletResponse response;
+ private HttpServletRequest containerRequest;
+ private HttpServletResponse containerResponse;
+ private HttpServletRequest servletRequest;
+ private HttpServletResponse servletResponse;
private PortletWindow window;
+ private PortalURL url;
+ private PortletContext portletContext;
+ private ServletContext servletContext;
+ private Cookie cookies[];
+ private boolean useRequestParameters;
- public PortletRequestContextImpl(PortletContainer container, HttpServletRequest request,
- HttpServletResponse response, PortletWindow window)
+ public PortletRequestContextImpl(PortletContainer container, HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse, PortletWindow window, boolean useRequestParameters)
{
this.container = container;
- this.request = request;
- this.response = response;
+ this.containerRequest = containerRequest;
+ this.containerResponse = containerResponse;
this.window = window;
+ this.useRequestParameters = useRequestParameters;
+ this.url = PortalRequestContext.getContext(containerRequest).createPortalURL();
+ }
+
+ protected boolean isReservedAttributeName(String name)
+ {
+ return name.startsWith("java.") || name.startsWith("javax.");
+ }
+
+ protected String encodeAttributeName(String name)
+ {
+ if (isReservedAttributeName(name))
+ {
+ return name;
+ }
+ return container.getOptionalContainerServices().getNamespaceMapper().encode(window.getId(), name);
+ }
+
+ protected String decodeAttributeName(String name)
+ {
+ if (isReservedAttributeName(name))
+ {
+ return name;
+ }
+ String result = container.getOptionalContainerServices().getNamespaceMapper().decode(window.getId(), name);
+ return result != null ? result : name;
+ }
+
+ protected Map<String, String[]> getPrivateRenderParameterMap()
+ {
+ return Collections.emptyMap();
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRequestContext#getAttribute(java.lang.String)
- */
+ protected PortalURL getPortalURL()
+ {
+ return url;
+ }
+
+ protected boolean isPublicRenderParameter(String name)
+ {
+ List<String> publicRenderParameterNames = window.getPortletEntity().getPortletDefinition().getSupportedPublicRenderParameters();
+ return publicRenderParameterNames.isEmpty() ? false : publicRenderParameterNames.contains(name);
+ }
+
+ public void init(PortletContext portletContext, ServletContext servletContext, HttpServletRequest servletRequest, HttpServletResponse servletResponse)
+ {
+ this.portletContext = portletContext;
+ this.servletContext = servletContext;
+ this.servletRequest = servletRequest;
+ this.servletResponse = servletResponse;
+ }
+
public Object getAttribute(String name)
{
- // TODO Auto-generated method stub
- return null;
+ Object value = servletRequest.getAttribute(encodeAttributeName(name));
+ return value != null ? value : servletRequest.getAttribute(name);
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRequestContext#getAttributeNames()
- */
+ @SuppressWarnings("unchecked")
public Enumeration<String> getAttributeNames()
{
- // TODO Auto-generated method stub
- return null;
+ ArrayList<String> names = new ArrayList<String>();
+ for (Enumeration<String> e = servletRequest.getAttributeNames(); e.hasMoreElements();)
+ {
+ names.add(decodeAttributeName(e.nextElement()));
+ }
+ return Collections.enumeration(names);
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRequestContext#getContainer()
- */
+ public void setAttribute(String name, Object value)
+ {
+ if (value == null)
+ {
+ servletRequest.removeAttribute(encodeAttributeName(name));
+ }
+ else
+ {
+ servletRequest.setAttribute(encodeAttributeName(name), value);
+ }
+ }
+
public PortletContainer getContainer()
{
return container;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRequestContext#getCookies()
- */
public Cookie[] getCookies()
{
- // TODO Auto-generated method stub
- return null;
+ if (cookies == null)
+ {
+ cookies = servletRequest.getCookies();
+ if (cookies == null)
+ {
+ cookies = new Cookie[0];
+ }
+ }
+ return cookies.length > 0 ? cookies.clone() : null;
+ }
+
+ public PortletContext getPortletContext()
+ {
+ return portletContext;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRequestContext#getPortletConfig()
- */
- public ContainerPortletConfig getPortletConfig()
+ public ServletContext getServletContext()
{
- // TODO Auto-generated method stub
- return null;
+ return servletContext;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRequestContext#getPortletWindow()
- */
public PortletWindow getPortletWindow()
{
return window;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRequestContext#getPreferredLocale()
- */
public Locale getPreferredLocale()
{
- // TODO Auto-generated method stub
- return null;
- }
+ return servletRequest.getLocale();
+ }
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRequestContext#getPrivateParameterMap()
- */
+ @SuppressWarnings("unchecked")
public Map<String, String[]> getPrivateParameterMap()
{
- // TODO Auto-generated method stub
- return null;
+ HashMap<String, String[]> parameters = new HashMap<String, String[]>();
+ if (useRequestParameters)
+ {
+ parameters.putAll(servletRequest.getParameterMap());
+ }
+ for (Map.Entry<String, String[]> entry : getPrivateRenderParameterMap().entrySet())
+ {
+ String[] values = parameters.get(entry.getKey());
+ if (values == null)
+ {
+ parameters.put(entry.getKey(), entry.getValue());
+ }
+ else
+ {
+ String[] copy = new String[values.length+entry.getValue().length];
+ System.arraycopy(values, 0, copy, 0, values.length);
+ System.arraycopy(entry.getValue(), 0, copy, values.length, entry.getValue().length);
+ parameters.put(entry.getKey(), copy);
+ }
+ }
+ String windowId = window.getId().getStringId();
+ for (PortalURLParameter parm : url.getParameters())
+ {
+ if (windowId.equals(parm.getWindowId()))
+ {
+ String[] values = parameters.get(parm.getName());
+ if (values == null)
+ {
+ parameters.put(parm.getName(), parm.getValues());
+ }
+ else
+ {
+ String[] copy = new String[values.length+parm.getValues().length];
+ System.arraycopy(values, 0, copy, 0, values.length);
+ System.arraycopy(parm.getValues(), 0, copy, values.length, parm.getValues().length);
+ parameters.put(parm.getName(), copy);
+ }
+ }
+ }
+ return parameters;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRequestContext#getProperties()
- */
+ @SuppressWarnings("unchecked")
public Map<String, String[]> getProperties()
{
- // TODO Auto-generated method stub
- return null;
+ HashMap<String, String[]> properties = new HashMap<String, String[]>();
+ for (Enumeration<String> names = servletRequest.getHeaderNames(); names.hasMoreElements(); )
+ {
+ String name = names.nextElement();
+ ArrayList<String> values = new ArrayList<String>();
+ for (Enumeration<String> headers = servletRequest.getHeaders(name); headers.hasMoreElements(); )
+ {
+ values.add(headers.nextElement());
+ }
+ int size = values.size();
+ if (size > 0)
+ {
+ properties.put(name, values.toArray(new String[size]));
+ }
+ }
+ return properties;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRequestContext#getPublicParameterMap()
- */
public Map<String, String[]> getPublicParameterMap()
{
- // TODO Auto-generated method stub
- return null;
+ HashMap<String, String[]> parameters = new HashMap<String, String[]>();
+ for (Map.Entry<String, String[]> entry : url.getPublicParameters().entrySet())
+ {
+ if (isPublicRenderParameter(entry.getKey()))
+ {
+ parameters.put(entry.getKey(), entry.getValue());
+ }
+ }
+ return parameters;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRequestContext#getServletRequest()
- */
- public HttpServletRequest getServletRequest()
+ public HttpServletRequest getContainerRequest()
{
- return request;
+ return containerRequest;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRequestContext#getServletResponse()
- */
- public HttpServletResponse getServletResponse()
+ public HttpServletResponse getContainerResponse()
{
- return response;
+ return containerResponse;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRequestContext#init(org.apache.pluto.internal.InternalPortletConfig)
- */
- public void init(ContainerPortletConfig portletConfig)
+ public HttpServletRequest getServletRequest()
{
- // TODO Auto-generated method stub
+ return servletRequest;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletRequestContext#setAttribute(java.lang.String, java.lang.Object)
- */
- public void setAttribute(String name, Object value)
+ public HttpServletResponse getServletResponse()
{
- // TODO Auto-generated method stub
+ return servletResponse;
}
}
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRequestContextServiceImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRequestContextServiceImpl.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRequestContextServiceImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletRequestContextServiceImpl.java Sat Mar 14 03:20:18 2009
@@ -36,60 +36,60 @@
*/
public class PortletRequestContextServiceImpl implements PortletRequestContextService
{
- public PortletRequestContext getPortletActionRequestContext(PortletContainer container, HttpServletRequest request,
- HttpServletResponse response, PortletWindow window)
+ public PortletRequestContext getPortletActionRequestContext(PortletContainer container, HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse, PortletWindow window)
{
- return new PortletRequestContextImpl(container, request, response, window);
+ return new PortletRequestContextImpl(container, containerRequest, containerResponse, window, true);
}
public PortletActionResponseContext getPortletActionResponseContext(PortletContainer container,
- HttpServletRequest request,
- HttpServletResponse response,
+ HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse,
PortletWindow window)
{
- return new PortletActionResponseContextImpl(container, request, response, window);
+ return new PortletActionResponseContextImpl(container, containerRequest, containerResponse, window);
}
- public PortletRequestContext getPortletEventRequestContext(PortletContainer container, HttpServletRequest request,
- HttpServletResponse response, PortletWindow window)
+ public PortletRequestContext getPortletEventRequestContext(PortletContainer container, HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse, PortletWindow window)
{
- return new PortletRequestContextImpl(container, request, response, window);
+ return new PortletRequestContextImpl(container, containerRequest, containerResponse, window, false);
}
public PortletEventResponseContext getPortletEventResponseContext(PortletContainer container,
- HttpServletRequest request,
- HttpServletResponse response, PortletWindow window)
+ HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse, PortletWindow window)
{
- return new PortletEventResponseContextImpl(container, request, response, window);
+ return new PortletEventResponseContextImpl(container, containerRequest, containerResponse, window);
}
- public PortletRequestContext getPortletRenderRequestContext(PortletContainer container, HttpServletRequest request,
- HttpServletResponse response, PortletWindow window)
+ public PortletRequestContext getPortletRenderRequestContext(PortletContainer container, HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse, PortletWindow window)
{
- return new PortletRequestContextImpl(container, request, response, window);
+ return new PortletRequestContextImpl(container, containerRequest, containerResponse, window, false);
}
public PortletRenderResponseContext getPortletRenderResponseContext(PortletContainer container,
- HttpServletRequest request,
- HttpServletResponse response,
+ HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse,
PortletWindow window)
{
- return new PortletRenderResponseContextImpl(container, request, response, window);
+ return new PortletRenderResponseContextImpl(container, containerRequest, containerResponse, window);
}
public PortletResourceRequestContext getPortletResourceRequestContext(PortletContainer container,
- HttpServletRequest request,
- HttpServletResponse response,
+ HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse,
PortletWindow window)
{
- return new PortletResourceRequestContextImpl(container, request, response, window);
+ return new PortletResourceRequestContextImpl(container, containerRequest, containerResponse, window);
}
public PortletResourceResponseContext getPortletResourceResponseContext(PortletContainer container,
- HttpServletRequest request,
- HttpServletResponse response,
+ HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse,
PortletWindow window)
{
- return new PortletResourceResponseContextImpl(container, request, response, window);
+ return new PortletResourceResponseContextImpl(container, containerRequest, containerResponse, window);
}
}
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceRequestContextImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceRequestContextImpl.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceRequestContextImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceRequestContextImpl.java Sat Mar 14 03:20:18 2009
@@ -33,36 +33,24 @@
public class PortletResourceRequestContextImpl extends PortletRequestContextImpl implements
PortletResourceRequestContext
{
- public PortletResourceRequestContextImpl(PortletContainer container, HttpServletRequest request,
- HttpServletResponse response, PortletWindow window)
+ public PortletResourceRequestContextImpl(PortletContainer container, HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse, PortletWindow window)
{
- super(container, request, response, window);
+ super(container, containerRequest, containerResponse, window, true);
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResourceRequestContext#getCacheability()
- */
public String getCacheability()
{
- // TODO Auto-generated method stub
- return null;
+ return getPortalURL().getCacheability();
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResourceRequestContext#getPrivateRenderParameterMap()
- */
public Map<String, String[]> getPrivateRenderParameterMap()
{
- // TODO Auto-generated method stub
- return null;
+ return getPortalURL().getPrivateRenderParameters();
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResourceRequestContext#getResourceID()
- */
public String getResourceID()
{
- // TODO Auto-generated method stub
- return null;
+ return getPortalURL().getResourceID();
}
}
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceResponseContextImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceResponseContextImpl.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceResponseContextImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResourceResponseContextImpl.java Sat Mar 14 03:20:18 2009
@@ -34,33 +34,33 @@
PortletResourceResponseContext
{
- public PortletResourceResponseContextImpl(PortletContainer container, HttpServletRequest request,
- HttpServletResponse response, PortletWindow window)
+ public PortletResourceResponseContextImpl(PortletContainer container, HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse, PortletWindow window)
{
- super(container, request, response, window);
+ super(container, containerRequest, containerResponse, window);
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResourceResponseContext#setCharacterEncoding(java.lang.String)
- */
public void setCharacterEncoding(String charset)
{
- // TODO Auto-generated method stub
+ if (!isClosed())
+ {
+ getServletResponse().setCharacterEncoding(charset);
+ }
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResourceResponseContext#setContentLength(int)
- */
public void setContentLength(int len)
{
- // TODO Auto-generated method stub
+ if (!isClosed())
+ {
+ getServletResponse().setContentLength(len);
+ }
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResourceResponseContext#setLocale(java.util.Locale)
- */
public void setLocale(Locale locale)
{
- // TODO Auto-generated method stub
+ if (!isClosed())
+ {
+ getServletResponse().setLocale(locale);
+ }
}
}
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResponseContextImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResponseContextImpl.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResponseContextImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletResponseContextImpl.java Sat Mar 14 03:20:18 2009
@@ -25,6 +25,8 @@
import org.apache.pluto.container.PortletResponseContext;
import org.apache.pluto.container.PortletWindow;
import org.apache.pluto.container.ResourceURLProvider;
+import org.apache.pluto.driver.core.PortalRequestContext;
+import org.apache.pluto.driver.url.PortalURL;
import org.w3c.dom.Element;
/**
@@ -34,105 +36,116 @@
public abstract class PortletResponseContextImpl implements PortletResponseContext
{
private PortletContainer container;
- private HttpServletRequest request;
- private HttpServletResponse response;
+ private HttpServletRequest containerRequest;
+ private HttpServletResponse containerResponse;
+ private HttpServletRequest servletRequest;
+ private HttpServletResponse servletResponse;
private PortletWindow window;
+ private PortalURL portalURL;
+ private boolean closed;
+ private boolean released;
- public PortletResponseContextImpl(PortletContainer container, HttpServletRequest request,
- HttpServletResponse response, PortletWindow window)
+ public PortletResponseContextImpl(PortletContainer container, HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse, PortletWindow window)
{
this.container = container;
- this.request = request;
- this.response = response;
+ this.containerRequest = containerRequest;
+ this.containerResponse = containerResponse;
this.window = window;
+ this.portalURL = PortalRequestContext.getContext(containerRequest).createPortalURL();
+ }
+
+ protected PortalURL getPortalURL()
+ {
+ return portalURL;
+ }
+
+ protected boolean isClosed()
+ {
+ return closed;
+ }
+
+ protected boolean isReleased()
+ {
+ return released;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResponseContext#addProperty(javax.servlet.http.Cookie)
- */
+ public void init(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
+ {
+ this.servletRequest = servletRequest;
+ this.servletResponse = servletResponse;
+ }
+
public void addProperty(Cookie cookie)
{
- // TODO Auto-generated method stub
+ if (!isClosed())
+ {
+ servletResponse.addCookie(cookie);
+ }
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResponseContext#addProperty(java.lang.String, org.w3c.dom.Element)
- */
public void addProperty(String key, Element element)
{
- // TODO Auto-generated method stub
+ // not supported
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResponseContext#addProperty(java.lang.String, java.lang.String)
- */
public void addProperty(String key, String value)
{
- // TODO Auto-generated method stub
+ // not supported
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResponseContext#close()
- */
public void close()
{
- // TODO Auto-generated method stub
+ closed = true;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResponseContext#getContainer()
- */
public PortletContainer getContainer()
{
return container;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResponseContext#getPortletWindow()
- */
public PortletWindow getPortletWindow()
{
return window;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResponseContext#getServletRequest()
- */
+ public HttpServletRequest getContainerRequest()
+ {
+ return containerRequest;
+ }
+
+ public HttpServletResponse getContainerResponse()
+ {
+ return containerResponse;
+ }
+
public HttpServletRequest getServletRequest()
{
- return request;
+ return servletRequest;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResponseContext#getServletResponse()
- */
public HttpServletResponse getServletResponse()
{
- return response;
+ return servletResponse;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResponseContext#release()
- */
public void release()
{
- // TODO Auto-generated method stub
+ closed = true;
+ released = true;
+ container = null;
+ servletRequest = null;
+ servletResponse = null;
+ window = null;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletResponseContext#setProperty(java.lang.String, java.lang.String)
- */
public void setProperty(String key, String value)
{
- // TODO Auto-generated method stub
+ // not supported
}
- /* (non-Javadoc)
- * @see org.apache.pluto.container.PortletResponseContext#getResourceURLProvider()
- */
public ResourceURLProvider getResourceURLProvider()
{
- // TODO Auto-generated method stub
- return null;
+ return isReleased() ? null : new ResourceURLProviderImpl(servletRequest,window);
}
}
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletStateAwareResponseContextImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletStateAwareResponseContextImpl.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletStateAwareResponseContextImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletStateAwareResponseContextImpl.java Sat Mar 14 03:20:18 2009
@@ -17,9 +17,9 @@
package org.apache.pluto.driver.services.container;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import javax.portlet.Event;
import javax.portlet.PortletMode;
@@ -30,7 +30,12 @@
import org.apache.pluto.container.EventProvider;
import org.apache.pluto.container.PortletContainer;
import org.apache.pluto.container.PortletStateAwareResponseContext;
+import org.apache.pluto.container.PortletURLProvider;
import org.apache.pluto.container.PortletWindow;
+import org.apache.pluto.container.driver.PlutoServices;
+import org.apache.pluto.container.impl.PortletURLImpl;
+import org.apache.pluto.driver.core.PortalRequestContext;
+import org.apache.pluto.driver.url.PortalURL;
/**
* @version $Id$
@@ -39,79 +44,92 @@
public abstract class PortletStateAwareResponseContextImpl extends PortletResponseContextImpl implements
PortletStateAwareResponseContext
{
- public PortletStateAwareResponseContextImpl(PortletContainer container, HttpServletRequest request,
- HttpServletResponse response, PortletWindow window)
- {
- super(container, request, response, window);
+ private List<Event> events;
+ private PortletURLProviderImpl portletURLProvider;
+
+ public PortletStateAwareResponseContextImpl(PortletContainer container, HttpServletRequest containerRequest,
+ HttpServletResponse containerResponse, PortletWindow window)
+ {
+ super(container, containerRequest, containerResponse, window);
+ this.portletURLProvider = new PortletURLProviderImpl(getPortalURL(), PortletURLProvider.TYPE.RENDER, window);
+ }
+
+ protected PortletURLProvider getPorletURLProvider()
+ {
+ return portletURLProvider;
+ }
+
+ @Override
+ public void close()
+ {
+ if (!isClosed())
+ {
+ super.close();
+ new PortletURLImpl(this, portletURLProvider).filterURL();
+ PortalURL url = portletURLProvider.apply();
+ PortalRequestContext.getContext(getServletRequest()).mergePortalURL(url, getPortletWindow().getId().getStringId());
+ }
+ }
+
+ @Override
+ public void release()
+ {
+ events = null;
+ portletURLProvider = null;
+ super.release();
}
-
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletStateAwareResponseContext#getEvents()
- */
+
public List<Event> getEvents()
{
- // TODO Auto-generated method stub
- return null;
+ if (isReleased())
+ {
+ return null;
+ }
+ if (events == null)
+ {
+ events = new ArrayList<Event>();
+ }
+ return events;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletStateAwareResponseContext#getPortletMode()
- */
public PortletMode getPortletMode()
{
- // TODO Auto-generated method stub
- return null;
+ return isClosed() ? null : portletURLProvider.getPortletMode();
}
- /* (non-Javadoc)
- * @see org.apache.pluto.container.PortletStateAwareResponseContext#getPublicRenderParameters()
- */
public Map<String, String[]> getPublicRenderParameters()
{
- // TODO Auto-generated method stub
- return null;
+ return isClosed() ? null : portletURLProvider.getPublicRenderParameters();
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletStateAwareResponseContext#getRenderParameters()
- */
public Map<String, String[]> getRenderParameters()
{
- // TODO Auto-generated method stub
- return null;
+ return isClosed() ? null : portletURLProvider.getRenderParameters();
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletStateAwareResponseContext#getWindowState()
- */
public WindowState getWindowState()
{
- // TODO Auto-generated method stub
- return null;
+ return isClosed() ? null : portletURLProvider.getWindowState();
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletStateAwareResponseContext#setPortletMode(javax.portlet.PortletMode)
- */
public void setPortletMode(PortletMode portletMode)
{
- // TODO Auto-generated method stub
+ if (!isClosed())
+ {
+ portletURLProvider.setPortletMode(portletMode);
+ }
}
- /* (non-Javadoc)
- * @see org.apache.pluto.spi.optional.PortletStateAwareResponseContext#setWindowState(javax.portlet.WindowState)
- */
public void setWindowState(WindowState windowState)
{
- // TODO Auto-generated method stub
+ if (!isClosed())
+ {
+ portletURLProvider.setWindowState(windowState);
+ }
}
- /* (non-Javadoc)
- * @see org.apache.pluto.container.PortletStateAwareResponseContext#getEventProvider()
- */
public EventProvider getEventProvider()
{
- // TODO Auto-generated method stub
- return null;
+ return isClosed() ? null : new EventProviderImpl(getPortletWindow(), PlutoServices.getServices().getPortletRegistryService());
}
}
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletURLProviderImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletURLProviderImpl.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletURLProviderImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletURLProviderImpl.java Sat Mar 14 03:20:18 2009
@@ -16,6 +16,7 @@
*/
package org.apache.pluto.driver.services.container;
+import java.io.IOException;
import java.io.Writer;
import java.util.HashMap;
import java.util.List;
@@ -34,8 +35,8 @@
/**
*
*/
-public class PortletURLProviderImpl implements PortletURLProvider {
-
+public class PortletURLProviderImpl implements PortletURLProvider
+{
private final PortalURL url;
private final TYPE type;
private final String window;
@@ -67,10 +68,17 @@
{
url.setActionWindow(null);
url.setResourceWindow(window);
- if (ResourceURL.FULL.equals(cacheLevel) || ResourceURL.PORTLET.equals(cacheLevel))
+ if (!ResourceURL.FULL.equals(cacheLevel))
{
- url.clearParameters(window);
+ for (PortalURLParameter parm : url.getParameters())
+ {
+ if (window.equals(parm.getWindowId()))
+ {
+ url.getPrivateRenderParameters().put(parm.getName(), parm.getValues());
+ }
+ }
}
+ url.clearParameters(window);
}
else
{
@@ -78,17 +86,19 @@
url.setActionWindow(null);
url.clearParameters(window);
}
- url.setPortletMode(window, portletMode);
- url.setWindowState(window, windowState);
+ if (portletMode != null)
+ {
+ url.setPortletMode(window, portletMode);
+ }
+ if (windowState != null)
+ {
+ url.setWindowState(window, windowState);
+ }
if (renderParameters != null)
{
for (Map.Entry<String,String[]> entry : renderParameters.entrySet())
{
- if (PortletURLProvider.TYPE.RESOURCE == type)
- {
- url.getPrivateParameters().put(entry.getKey(), entry.getValue().clone());
- }
- else if (publicRenderParameters != null && !publicRenderParameters.containsKey(entry.getKey()))
+ if (publicRenderParameters == null || !publicRenderParameters.containsKey(entry.getKey()))
{
url.addParameter(new PortalURLParameter(window, entry.getKey(), entry.getValue()));
}
@@ -98,10 +108,11 @@
{
for (Map.Entry<String,String[]> entry : publicRenderParameters.entrySet())
{
- url.addParameter(new PortalURLParameter(window, entry.getKey(), entry.getValue() != null ? entry.getValue() : new String[]{null}));
+ url.getNewPublicParameters().put(entry.getKey(),entry.getValue() != null ? entry.getValue() : new String[]{null});
}
}
url.setResourceID(resourceID);
+ url.setCacheability(cacheLevel);
return url;
}
@@ -177,31 +188,23 @@
this.resourceID = resourceID;
}
- /* (non-Javadoc)
- * @see org.apache.pluto.container.PortletURLProvider#toURL(boolean)
- */
public String toURL(boolean absolute)
{
- // TODO Auto-generated method stub
- return null;
+ return apply().toURL(absolute);
}
- /* (non-Javadoc)
- * @see org.apache.pluto.container.PortletURLProvider#write(java.io.Writer, boolean)
- */
- public void write(Writer out, boolean escapeXML)
+ public void write(Writer out, boolean escapeXML) throws IOException
{
- // TODO Auto-generated method stub
-
- }
-
- /* (non-Javadoc)
- * @see org.apache.pluto.container.PortletURLProvider#write(java.io.Writer)
- */
- public void write(Writer out)
- {
- // TODO Auto-generated method stub
-
+ String result = apply().toURL(false);
+ if (escapeXML)
+ {
+ result = result.replaceAll("&", "&");
+ result = result.replaceAll("<", "<");
+ result = result.replaceAll(">", ">");
+ result = result.replaceAll("\'", "'");
+ result = result.replaceAll("\"", """);
+ }
+ out.write(result);
}
public Map<String, List<String>> getProperties()
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletWindowThread.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletWindowThread.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletWindowThread.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/PortletWindowThread.java Sat Mar 14 03:20:18 2009
@@ -43,7 +43,6 @@
import org.apache.pluto.container.driver.PortletContextService;
import org.apache.pluto.container.om.portlet.EventDefinition;
import org.apache.pluto.container.om.portlet.PortletApplicationDefinition;
-import org.apache.pluto.driver.core.PortalServletRequest;
public class PortletWindowThread extends Thread {
@@ -82,7 +81,6 @@
public void run() {
super.run();
while (events.size() > 0) {
- HttpServletRequest req = new PortalServletRequest(this.request, this.portletWindow);
try {
// synchronized (this) {
Event event = events.remove(0);
@@ -130,7 +128,7 @@
throw new IllegalStateException(e);
}
}
- container.doEvent(portletWindow, req, response, event);
+ container.doEvent(portletWindow, request, response, event);
// }
} catch (PortletException e) {
LOG.warn(e);
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/PortalURLParserImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/PortalURLParserImpl.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/PortalURLParserImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/PortalURLParserImpl.java Sat Mar 14 03:20:18 2009
@@ -56,7 +56,7 @@
private static final String RESOURCE_ID = "ri";
private static final String CACHE_LEVEL = "cl";
private static final String RENDER_PARAM = "rp";
- private static final String PRIVATE_PARAM = "pp";
+ private static final String PRIVATE_RENDER_PARAM = "pr";
private static final String PUBLIC_RENDER_PARAM = "sp";
private static final String WINDOW_STATE = "ws";
private static final String PORTLET_MODE = "pm";
@@ -184,7 +184,7 @@
}
- else if (token.startsWith(PREFIX + PRIVATE_PARAM)){
+ else if (token.startsWith(PREFIX + PRIVATE_RENDER_PARAM)){
String value = null;
if (st.hasMoreTokens()) {
value = st.nextToken();
@@ -193,7 +193,7 @@
if( param != null )
{
//set private (Resource) parameter in portalURL
- portalURL.getPrivateParameters().put(param.getName(), param.getValues());
+ portalURL.getPrivateRenderParameters().put(param.getName(), param.getValues());
}
}
else if (token.startsWith(PREFIX + PUBLIC_RENDER_PARAM)){
@@ -233,7 +233,7 @@
// Start the pathInfo with the path to the render URL (page).
if (portalURL.getRenderPath() != null) {
- buffer.append("/").append(portalURL.getRenderPath());
+ buffer.append(portalURL.getRenderPath());
}
//Append the resource window definition, if it exists.
if (portalURL.getResourceWindow() != null){
@@ -322,14 +322,14 @@
if (portalURL.getResourceWindow() != null)
{
- Map<String, String[]> privateParamList = portalURL.getPrivateParameters();
+ Map<String, String[]> privateParamList = portalURL.getPrivateRenderParameters();
if (privateParamList!=null){
for (Iterator iter = privateParamList.keySet().iterator();iter.hasNext();){
String paramname = (String)iter.next();
String[] tmp = privateParamList.get(paramname);
String valueString = encodeMultiValues(tmp);
if (valueString.length()>0){
- buffer.append("/").append(encodePublicParamname(PRIVATE_PARAM, paramname));
+ buffer.append("/").append(encodePublicParamname(PRIVATE_RENDER_PARAM, paramname));
buffer.append("/").append(valueString);
}
}
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/RelativePortalURLImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/RelativePortalURLImpl.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/RelativePortalURLImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/url/impl/RelativePortalURLImpl.java Sat Mar 14 03:20:18 2009
@@ -54,7 +54,7 @@
private Map<String, String[]> publicParameterCurrent = new HashMap<String, String[]>();
private Map<String, String[]> publicParameterNew = new HashMap<String, String[]>();
- private Map<String, String[]> privateParameters = new HashMap<String, String[]>();
+ private Map<String, String[]> privateRenderParameters = new HashMap<String, String[]>();
/**
* PortalURLParser used to construct the string
@@ -249,6 +249,7 @@
RelativePortalURLImpl portalURL = new RelativePortalURLImpl();
portalURL.servletPath = this.servletPath;
portalURL.parameters = new HashMap<String, PortalURLParameter>(parameters);
+ portalURL.privateRenderParameters = new HashMap<String, String[]>(privateRenderParameters);
portalURL.portletModes = new HashMap<String, PortletMode>(portletModes);
portalURL.windowStates = new HashMap<String, WindowState>(windowStates);
portalURL.cacheLevel = cacheLevel;
@@ -320,9 +321,9 @@
return publicParameterNew;
}
- public Map<String, String[]> getPrivateParameters()
+ public Map<String, String[]> getPrivateRenderParameters()
{
- return privateParameters;
+ return privateRenderParameters;
}
Modified: portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalDriverServlet.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalDriverServlet.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalDriverServlet.java (original)
+++ portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/PortalDriverServlet.java Sat Mar 14 03:20:18 2009
@@ -17,7 +17,6 @@
package org.apache.pluto.driver;
import java.io.IOException;
-import java.util.Enumeration;
import javax.portlet.PortletException;
import javax.servlet.RequestDispatcher;
@@ -31,9 +30,6 @@
import org.apache.commons.logging.LogFactory;
import org.apache.pluto.container.PortletContainer;
import org.apache.pluto.container.PortletContainerException;
-import org.apache.pluto.container.driver.PlutoServices;
-import org.apache.pluto.container.om.portlet.PortletDefinition;
-import org.apache.pluto.driver.config.DriverConfiguration;
import org.apache.pluto.driver.core.PortalRequestContext;
import org.apache.pluto.driver.core.PortletWindowImpl;
import org.apache.pluto.driver.services.portal.PageConfig;
@@ -55,9 +51,6 @@
/** The Portal Driver sServlet Context */
private ServletContext servletContext = null;
- /** Is the SupportedModesService initialized? */
- private boolean isSupportedModesServiceInitialized = false;
-
public static final String DEFAULT_PAGE_URI =
"/WEB-INF/themes/pluto-default-theme.jsp";
@@ -89,7 +82,6 @@
}
-
/**
* Handle all requests. All POST requests are passed to this method.
* @param request the incoming HttpServletRequest.
@@ -154,13 +146,6 @@
}
//Resource request
else if (resourceWindowConfig != null) {
- try {
- if (request.getParameterNames().hasMoreElements())
- setPublicRenderParameter(request, portalURL, portalURL.getResourceWindow());
- } catch (PortletContainerException e) {
- LOG.error(e);
- throw new ServletException(e);
- }
PortletWindowImpl portletWindow = new PortletWindowImpl(container,
resourceWindowConfig, portalURL);
if (LOG.isDebugEnabled()) {
@@ -208,31 +193,6 @@
}
}
- private void setPublicRenderParameter(HttpServletRequest request, PortalURL portalURL, String portletID)throws ServletException, PortletContainerException {
- String applicationId = PortletWindowConfig.parseContextPath(portletID);
- String applicationName = applicationId;
- if (applicationName.length() >0 )
- {
- applicationName = applicationName.substring(1);
- }
-
- String portletName = PortletWindowConfig.parsePortletName(portletID);
- PortletDefinition portletDD = PlutoServices.getServices().getPortletRegistryService()
- .getPortlet(applicationName, portletName);
- Enumeration<String> parameterNames = request.getParameterNames();
- if (parameterNames != null){
- while(parameterNames.hasMoreElements()){
- String parameterName = parameterNames.nextElement();
- if (portletDD.getSupportedPublicRenderParameters() != null){
- if (portletDD.getSupportedPublicRenderParameters().contains(parameterName)){
- String value = request.getParameter(parameterName);
- portalURL.addPublicParameterActionResourceParameter(parameterName, value);
- }
- }
- }
- }
- }
-
/**
* Pass all POST requests to {@link #doGet(HttpServletRequest, HttpServletResponse)}.
* @param request the incoming servlet request.
@@ -244,32 +204,5 @@
throws ServletException, IOException {
doGet(request, response);
}
-
-
- // Private Methods ---------------------------------------------------------
-
-
- /**
- * Returns the config of the portal page to be rendered.
- * @param currentURL the current portal URL.
- * @return the config of the portal page to be rendered.
- */
- private PageConfig getPageConfig(PortalURL currentURL) {
- String requestedPageId = currentURL.getRenderPath();
- if (LOG.isDebugEnabled()) {
- LOG.debug("Rendering Portal: Requested Page: " + requestedPageId);
- }
- return getDriverConfiguration().getPageConfig(requestedPageId);
- }
-
- /**
- * Returns the portal driver configuration object.
- * @return the portal driver configuration object.
- */
- private DriverConfiguration getDriverConfiguration() {
- return (DriverConfiguration) getServletContext().getAttribute(
- AttributeKeys.DRIVER_CONFIG);
- }
-
}
Modified: portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalRequestContext.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalRequestContext.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalRequestContext.java (original)
+++ portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalRequestContext.java Sat Mar 14 03:20:18 2009
@@ -127,10 +127,10 @@
}
public PortalURL createPortalURL() {
- return (PortalURL)getRequestedPortalURL().clone();
+ return getRequestedPortalURL().clone();
}
- public synchronized void setPortalURL(PortalURL portalURL, String windowId){
+ public synchronized void mergePortalURL(PortalURL portalURL, String windowId){
if (requestedPortalURL == null)
{
requestedPortalURL = portalURL;
@@ -144,6 +144,4 @@
public ServletContext getServletContext() {
return servletContext;
}
-
-
}
Modified: portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalServletResponse.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalServletResponse.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalServletResponse.java (original)
+++ portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/core/PortalServletResponse.java Sat Mar 14 03:20:18 2009
@@ -31,7 +31,6 @@
private StringWriter buffer = null;
private PrintWriter writer = null;
- private String contentType = "text/html";
public PortalServletResponse(HttpServletResponse response) {
super(response);
@@ -39,10 +38,6 @@
writer = new PrintWriter(buffer);
}
- public String getContentType() {
- return contentType;
- }
-
public PrintWriter getWriter() {
return writer;
}
@@ -56,5 +51,37 @@
return super.getWriter();
}
+ @Override
+ public void flushBuffer() throws IOException
+ {
+ }
+
+ @Override
+ public int getBufferSize()
+ {
+ return Integer.MAX_VALUE;
+ }
+
+ @Override
+ public boolean isCommitted()
+ {
+ return false;
+ }
+
+ @Override
+ public void reset()
+ {
+ resetBuffer();
+ }
+ @Override
+ public void resetBuffer()
+ {
+ buffer.getBuffer().setLength(0);
+ }
+
+ @Override
+ public void setBufferSize(int size)
+ {
+ }
}
Modified: portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/tags/PortletTag.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/tags/PortletTag.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/tags/PortletTag.java (original)
+++ portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/tags/PortletTag.java Sat Mar 14 03:20:18 2009
@@ -32,7 +32,6 @@
import org.apache.pluto.container.PortletWindow;
import org.apache.pluto.driver.AttributeKeys;
import org.apache.pluto.driver.core.PortalRequestContext;
-import org.apache.pluto.driver.core.PortalServletRequest;
import org.apache.pluto.driver.core.PortalServletResponse;
import org.apache.pluto.driver.core.PortletWindowImpl;
import org.apache.pluto.driver.services.portal.PortletWindowConfig;
@@ -139,16 +138,14 @@
}
}
- // Create portal servlet request and response to wrap the original
- // HTTP servlet request and response.
- PortalServletRequest portalRequest = new PortalServletRequest(
- (HttpServletRequest) pageContext.getRequest(), window);
+ // Create portal servlet response to wrap the original
+ // HTTP servlet response.
PortalServletResponse portalResponse = new PortalServletResponse(
(HttpServletResponse) pageContext.getResponse());
// Render the portlet and cache the response.
try {
- container.doRender(window, portalRequest, portalResponse);
+ container.doRender(window, (HttpServletRequest)pageContext.getRequest(), portalResponse);
response = portalResponse;
status = SUCCESS;
} catch (Throwable th) {
Modified: portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/url/PortalURL.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/url/PortalURL.java?rev=753593&r1=753592&r2=753593&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/url/PortalURL.java (original)
+++ portals/pluto/trunk/pluto-portal-driver/src/main/java/org/apache/pluto/driver/url/PortalURL.java Sat Mar 14 03:20:18 2009
@@ -51,7 +51,7 @@
Map<String, String[]> getNewPublicParameters();
- Map<String, String[]> getPrivateParameters();
+ Map<String, String[]> getPrivateRenderParameters();
void setActionWindow(String actionWindow);