You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by at...@apache.org on 2009/03/18 13:14:09 UTC

svn commit: r755574 - in /portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl: PortletRequestContextImpl.java PortletRequestContextServiceImpl.java PortletResourceRequestContextImpl.java

Author: ate
Date: Wed Mar 18 12:14:09 2009
New Revision: 755574

URL: http://svn.apache.org/viewvc?rev=755574&view=rev
Log:
JS2-871: Upgrade Pluto container
See: http://issues.apache.org/jira/browse/JS2-871
- first cut implementation of PortletRequestContext done
- waiting for public render parameters implementation to complete getPublicParameterMap

Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletRequestContextImpl.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletRequestContextServiceImpl.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletResourceRequestContextImpl.java

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletRequestContextImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletRequestContextImpl.java?rev=755574&r1=755573&r2=755574&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletRequestContextImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletRequestContextImpl.java Wed Mar 18 12:14:09 2009
@@ -18,14 +18,17 @@
 package org.apache.jetspeed.container.impl;
 
 import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.NoSuchElementException;
 
 import javax.portlet.PortletContext;
 import javax.servlet.ServletContext;
@@ -63,24 +66,19 @@
     private PortletContext portletContext;
     private ServletContext servletContext;
     private Cookie cookies[];
-    private boolean useRequestParameters;
+    private Map<String, Object> windowAttributes;
     
     private Map<String, String[]> privateParameters;
     
-    
-    // request attributes map which is cached for each paralleled worker.
-    // this should be re-created when it is called for the first time or when some attributes are added/modified/removed.
-    private Map<String, Object> cachedAttributes;
-
     public PortletRequestContextImpl(PortletContainer container, HttpServletRequest containerRequest,
-                                     HttpServletResponse containerResponse, PortletWindow window, boolean useRequestParameters)
+                                     HttpServletResponse containerResponse, PortletWindow window)
     {
         this.container = container;
         this.containerRequest = containerRequest;
         this.containerResponse = containerResponse;
         this.window = window;
-        this.useRequestParameters = useRequestParameters;
-        //TODO
+        JetspeedRequestContext rc = (JetspeedRequestContext)containerRequest.getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
+        windowAttributes = rc.getPortletWindowAttributes(window);
     }
     
     private static boolean getMetaDataBooleanValue(GenericMetadata metaData, String fieldName, boolean defaultValue )
@@ -309,33 +307,69 @@
     
     public Object getAttribute(String name)
     {
-        // TODO Auto-generated method stub
-        return null;
+        Object value = servletRequest.getAttribute(name);        
+        return value != null ? value : windowAttributes.get(name);
     }
 
+    @SuppressWarnings("unchecked")
     public Enumeration<String> getAttributeNames()
     {
-        // TODO Auto-generated method stub
-        return null;
+        HashSet<String> names = new HashSet<String>();
+        Enumeration<String> e;
+        for (e = servletRequest.getAttributeNames(); e.hasMoreElements();  )
+        {
+            try
+            {
+                names.add(e.nextElement());
+            }
+            catch(NoSuchElementException nse)
+            {
+                // ignore potential concurrent changes when run in parallel mode
+            }
+        }
+        for (String name : windowAttributes.keySet())
+        {
+            names.add(name);
+        }
+        return Collections.enumeration(names);
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.pluto.container.PortletRequestContext#setAttribute(java.lang.String, java.lang.Object)
-     */
     public void setAttribute(String name, Object value)
     {
-        // TODO Auto-generated method stub
+        if (value == null)
+        {
+            windowAttributes.remove(name);
+        }
+        else
+        {
+            windowAttributes.put(name,value);
+        }
     }
 
+    @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;
     }
 
     public Map<String, String[]> getPublicParameterMap()
     {
-        // TODO Auto-generated method stub
-        return null;
+        // TODO: waiting for public parameters implementation
+        return Collections.emptyMap();
     }
 }

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletRequestContextServiceImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletRequestContextServiceImpl.java?rev=755574&r1=755573&r2=755574&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletRequestContextServiceImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletRequestContextServiceImpl.java Wed Mar 18 12:14:09 2009
@@ -38,7 +38,7 @@
     public PortletRequestContext getPortletActionRequestContext(PortletContainer container, HttpServletRequest containerRequest,
                                                                 HttpServletResponse containerResponse, PortletWindow window)
     {
-        return new PortletRequestContextImpl(container, containerRequest, containerResponse, (org.apache.jetspeed.container.PortletWindow)window, true);
+        return new PortletRequestContextImpl(container, containerRequest, containerResponse, (org.apache.jetspeed.container.PortletWindow)window);
     }
 
     public PortletActionResponseContext getPortletActionResponseContext(PortletContainer container,
@@ -52,7 +52,7 @@
     public PortletRequestContext getPortletEventRequestContext(PortletContainer container, HttpServletRequest containerRequest,
                                                                HttpServletResponse containerResponse, PortletWindow window)
     {
-        return new PortletRequestContextImpl(container, containerRequest, containerResponse, (org.apache.jetspeed.container.PortletWindow)window, false);
+        return new PortletRequestContextImpl(container, containerRequest, containerResponse, (org.apache.jetspeed.container.PortletWindow)window);
     }
 
     public PortletEventResponseContext getPortletEventResponseContext(PortletContainer container,
@@ -65,7 +65,7 @@
     public PortletRequestContext getPortletRenderRequestContext(PortletContainer container, HttpServletRequest containerRequest,
                                                                 HttpServletResponse containerResponse, PortletWindow window)
     {
-        return new PortletRequestContextImpl(container, containerRequest, containerResponse, (org.apache.jetspeed.container.PortletWindow)window, false);
+        return new PortletRequestContextImpl(container, containerRequest, containerResponse, (org.apache.jetspeed.container.PortletWindow)window);
     }
 
     public PortletRenderResponseContext getPortletRenderResponseContext(PortletContainer container,

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletResourceRequestContextImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletResourceRequestContextImpl.java?rev=755574&r1=755573&r2=755574&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletResourceRequestContextImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/impl/PortletResourceRequestContextImpl.java Wed Mar 18 12:14:09 2009
@@ -36,7 +36,7 @@
     public PortletResourceRequestContextImpl(PortletContainer container, HttpServletRequest containerRequest,
                                              HttpServletResponse containerResponse, PortletWindow window)
     {
-        super(container, containerRequest, containerResponse, window, true);
+        super(container, containerRequest, containerResponse, window);
     }
 
     public String getCacheability()



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org