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/04/09 12:43:24 UTC

svn commit: r763594 - in /portals/jetspeed-2/portal/trunk: components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/ components/jetspeed-portal/src/main...

Author: ate
Date: Thu Apr  9 10:43:24 2009
New Revision: 763594

URL: http://svn.apache.org/viewvc?rev=763594&view=rev
Log:
JS2-938: Create flyweight PortletWindow instances for each request [...]
Several improvements and some fixes discovered after a peer review with Woonsan (great!)
- ensure synchronized handling of instantlyCreatedWindows (creation)
- render instantlyCreatedWindows on the current thread instead of spawning a new one (current window is "pushed" on the stack temporarily)
- some further API / parameters cleanup and optimizations

Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/DefaultContainerRequestResponseUnwrapper.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/LocalPortletInvoker.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/container/state/MockRequestContext.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/window/impl/PortletWindowImpl.java
    portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/PortletWindow.java
    portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/mockobjects/request/MockRequestContext.java
    portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/request/RequestContext.java

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java?rev=763594&r1=763593&r2=763594&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorImpl.java Thu Apr  9 10:43:24 2009
@@ -18,7 +18,6 @@
 
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.util.HashMap;
 import java.util.List;
 
 import org.apache.commons.lang.StringEscapeUtils;
@@ -29,8 +28,6 @@
 import org.apache.jetspeed.container.PortletWindow;
 import org.apache.jetspeed.exception.JetspeedException;
 import org.apache.jetspeed.om.page.ContentFragment;
-import org.apache.jetspeed.om.page.ContentFragmentImpl;
-import org.apache.jetspeed.om.page.Fragment;
 import org.apache.jetspeed.request.RequestContext;
 import org.apache.jetspeed.util.DOMUtils;
 import org.apache.jetspeed.util.KeyValue;
@@ -93,15 +90,7 @@
                 return;
             }
             
-            Fragment fragment = new PortletAggregatorFragmentImpl(entity);        
-            fragment.setType(Fragment.PORTLET);
-            fragment.setName(name);
-            window = context.getPortletWindow(new ContentFragmentImpl(fragment, new HashMap(), true));
-            
-            if (window.isValid())
-            {
-                context.registerInstantlyCreatedPortletWindow(window);
-            }
+            window = context.getInstantlyCreatedPortletWindow(entity, name);
         }
         
         ContentFragment contentFragment = window.getFragment();

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java?rev=763594&r1=763593&r2=763594&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java Thu Apr  9 10:43:24 2009
@@ -335,7 +335,7 @@
                
         portletWindow.getFragment().setPortletContent(portletContent);
         
-        rJob = new RenderingJobImpl(container, this, portletDefinition, portletContent,
+        rJob = new RenderingJobImpl(container, this, portletDefinition,
                                     requestContext.getRequest(), requestContext.getResponse(), requestContext, portletWindow, 
                                     statistics, expirationCache);
         

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java?rev=763594&r1=763593&r2=763594&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/RenderingJobImpl.java Thu Apr  9 10:43:24 2009
@@ -65,7 +65,6 @@
     protected PortletTrackingManager portletTracking = null;
 
     protected PortletDefinition portletDefinition;
-    protected PortletContent portletContent;
     protected PortalStatistics statistics;
     
     protected int expirationCache = 0;
@@ -80,7 +79,6 @@
     public RenderingJobImpl(PortletContainer container,
                             PortletRenderer renderer,
                             PortletDefinition portletDefinition,
-                            PortletContent portletContent, 
                             HttpServletRequest request, 
                             HttpServletResponse response, 
                             RequestContext requestContext, 
@@ -97,7 +95,6 @@
         this.response = response;
         this.requestContext = requestContext; 
         this.window = window;
-        this.portletContent = portletContent; 
         this.expirationCache = expirationCache;
     }
 
@@ -143,8 +140,6 @@
             {
                 this.startTimeMillis = System.currentTimeMillis();
             }
-
-            this.window.getFragment().setPortletContent(portletContent);
             execute();                     
         }
         finally
@@ -154,10 +149,10 @@
                 requestContext.clearThreadContext();
             }
             parallel = false;
-            synchronized (portletContent)
+            synchronized (window.getFragment().getPortletContent())
             {
                if (log.isDebugEnabled()) log.debug("Notifying completion of rendering job for portlet window " + this.window.getId());                
-               portletContent.notifyAll();
+               window.getFragment().getPortletContent().notifyAll();
             }
         }
     }
@@ -222,15 +217,15 @@
             }
             finally
             {
-                synchronized (portletContent)
+                synchronized (fragment.getPortletContent())
                 {
                     if (fragment.getOverriddenContent() != null)
                     {
-                        portletContent.completeWithError();
+                        fragment.getPortletContent().completeWithError();
                     }
                     else
                     {
-                        portletContent.complete();
+                        fragment.getPortletContent().complete();
                     }
                 }
             }
@@ -260,7 +255,7 @@
      */
     public PortletContent getPortletContent()
     {
-        return portletContent;
+        return window.getFragment().getPortletContent();
     }
 
     public PortletDefinition getPortletDefinition()

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/DefaultContainerRequestResponseUnwrapper.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/DefaultContainerRequestResponseUnwrapper.java?rev=763594&r1=763593&r2=763594&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/DefaultContainerRequestResponseUnwrapper.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/DefaultContainerRequestResponseUnwrapper.java Thu Apr  9 10:43:24 2009
@@ -16,16 +16,12 @@
  */
 package org.apache.jetspeed.container.invoker;
 
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletResponse;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.jetspeed.Jetspeed;
-
 /**
  * DefaultContainerRequestResponseUnwrapper implements ContainerRequestResponseUnwrapper
  * and finds servlet request or servlet response
@@ -35,16 +31,6 @@
  */
 public class DefaultContainerRequestResponseUnwrapper implements ContainerRequestResponseUnwrapper
 {
-    public ServletRequest unwrapPortletRequest(PortletRequest portletRequest)
-    {
-        return unwrapContainerRequest(Jetspeed.getCurrentRequestContext().getCurrentPortletWindow().getPortletRequestContext().getContainerRequest());
-    }
-    
-    public ServletResponse unwrapPortletResponse(PortletResponse portletResponse)
-    {
-        return unwrapContainerResponse(Jetspeed.getCurrentRequestContext().getCurrentPortletWindow().getPortletRequestContext().getContainerResponse());
-    }
-    
     public ServletRequest unwrapContainerRequest(HttpServletRequest containerRequest)
     {
         ServletRequest request = containerRequest;

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/LocalPortletInvoker.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/LocalPortletInvoker.java?rev=763594&r1=763593&r2=763594&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/LocalPortletInvoker.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/invoker/LocalPortletInvoker.java Thu Apr  9 10:43:24 2009
@@ -111,7 +111,7 @@
                        PortletWindow.Action action, FilterManager filter)
             throws PortletException, IOException
     {
-        if (PortletWindow.Action.NOOP == action)
+        if (PortletWindow.Action.ACTION != action && PortletWindow.Action.RENDER != action)
         {
             return;
         }
@@ -150,7 +150,7 @@
 
                 portletInstance.processAction(actionRequest, actionResponse);
             }
-            if (PortletWindow.Action.RENDER == action)
+            else // if (PortletWindow.Action.RENDER == action)
             {
                 RenderRequest renderRequest = (RenderRequest) portletRequest;
                 RenderResponse renderResponse = (RenderResponse) portletResponse;

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java?rev=763594&r1=763593&r2=763594&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java Thu Apr  9 10:43:24 2009
@@ -618,27 +618,63 @@
         PortletWindow window = portletWindows.get(fragment.getId());
         if (window == null)
         {
-            PortletDefinition pd = rcc.getPortletRegistry().getPortletDefinitionByUniqueName(fragment.getName());
-            if (pd != null)
+            window = createPortletWindow(fragment);
+        }
+        return window;
+    }
+    
+    public synchronized PortletWindow getInstantlyCreatedPortletWindow(String windowId, String portletUniqueName)
+    {
+        if (portletWindows.get(windowId) != null)
+        {
+            throw new IllegalArgumentException("PortletWindow "+windowId+" already exists");
+        }
+        return getInstantlyCreatedPortletWindow(windowId, portletUniqueName, true);
+    }
+    
+    public PortletWindow resolvePortletWindow(String windowId)
+    {
+        PortletWindow window = portletWindows.get(windowId);
+        if (window == null)
+        {
+            // ensure RootContentFragment is initialized
+            getPage().getRootContentFragment(); 
+            ContentFragment fragment = getPage().getContentFragmentById(windowId);
+            if (fragment == null)
             {
-                window = new PortletWindowImpl(this, fragment, pd);
+                window = getInstantlyCreatedPortletWindow(windowId, null, false);
             }
             else
             {
-                // invalid window: create one anyway so that this error condition is only "recorded" once for this request
-                window = new PortletWindowImpl(this, fragment);
-                fragment.overrideRenderedContent("Failed to retrieve Portlet Definition for " + fragment.getName());
-                log.error(fragment.getOverriddenContent());
+                window = createPortletWindow(fragment);
             }
-            portletWindows.put(window.getWindowId(), window);
         }
         return window;
     }
     
-    @SuppressWarnings("unchecked")
-    public PortletWindow getInstantlyCreatedPortletWindow(String windowId)
+    private PortletWindow createPortletWindow(ContentFragment fragment)
     {
         PortletWindow window = null;
+        PortletDefinition pd = rcc.getPortletRegistry().getPortletDefinitionByUniqueName(fragment.getName());
+        if (pd != null)
+        {
+            window = new PortletWindowImpl(this, fragment, pd);
+        }
+        else
+        {
+            // invalid window: create one anyway so that this error condition is only "recorded" once for this request
+            window = new PortletWindowImpl(this, fragment);
+            fragment.overrideRenderedContent("Failed to retrieve Portlet Definition for " + fragment.getName());
+            log.error(fragment.getOverriddenContent());
+        }
+        portletWindows.put(window.getWindowId(), window);
+        return window;
+    }
+    
+    @SuppressWarnings("unchecked")
+    private PortletWindow getInstantlyCreatedPortletWindow(String windowId, String portletUniqueName, boolean register)
+    {        
+        boolean registered = false;
         HttpSession session = getRequest().getSession();
         if (session != null)
         {
@@ -650,36 +686,58 @@
                     Map<String,String> instantWindows = pages.get(getPage().getId());
                     if (instantWindows != null)
                     {
-                        String portletId = instantWindows.get(windowId);
-                        if (portletId != null)
+                        String uniqueName = instantWindows.get(windowId);
+                        if (uniqueName != null)
                         {
-                            Fragment fragment = new PortletAggregatorFragmentImpl(windowId);
-                            fragment.setType(Fragment.PORTLET);
-                            fragment.setName(portletId);
-                            window = getPortletWindow(new ContentFragmentImpl(fragment, new HashMap(), true));
-                        }
+                            if (portletUniqueName != null)
+                            {
+                                if (!portletUniqueName.equals(uniqueName))
+                                {
+                                    // odd condition but store new value of portletUniqueName in session
+                                    instantWindows.put(windowId, portletUniqueName);
+                                }
+                            }
+                            else
+                            {
+                                portletUniqueName = uniqueName;
+                            }
+                            registered = true;
+                        }                        
                     }
                 }
             }
         }
-        return window;
-    }
-    
-    public PortletWindow resolvePortletWindow(String windowId)
-    {
-        PortletWindow window = portletWindows.get(windowId);
-        if (window == null)
+        PortletWindow window = null;
+        if (portletUniqueName != null)
         {
-            // ensure RootContentFragment is initialized
-            getPage().getRootContentFragment(); 
-            ContentFragment fragment = getPage().getContentFragmentById(windowId);
-            if (fragment == null)
-            {
-                window = getInstantlyCreatedPortletWindow(windowId);
-            }
-            else
+            Fragment fragment = new PortletAggregatorFragmentImpl(windowId);
+            fragment.setType(Fragment.PORTLET);
+            fragment.setName(portletUniqueName);
+            window = createPortletWindow(new ContentFragmentImpl(fragment, new HashMap(), true));
+            
+            if (register && !registered && window.isValid())
             {
-                window = getPortletWindow(fragment);
+                if (session == null)
+                {
+                    session = getRequest().getSession(true);
+                }
+                synchronized (session)
+                {
+                    Map<String,Map<String,String>> pages = (Map<String,Map<String,String>>)session.getAttribute(INSTANT_WINDOWS_SESSION_KEY);            
+                    if (pages == null)
+                    {
+                        pages = new HashMap<String,Map<String,String>>();
+                        session.setAttribute(INSTANT_WINDOWS_SESSION_KEY, pages);
+                    }
+                    String pageId = getPage().getId();
+                    Map<String,String> instantWindows = pages.get(pageId);
+                    if (instantWindows == null)
+                    {
+                        instantWindows = new HashMap<String,String>();
+                        pages.put(pageId, instantWindows);
+                    }
+                    instantWindows.put(windowId, portletUniqueName);
+                }
             }
         }
         return window;

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java?rev=763594&r1=763593&r2=763594&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java Thu Apr  9 10:43:24 2009
@@ -20,7 +20,6 @@
 import java.io.PrintWriter;
 import java.io.Writer;
 import java.security.Principal;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
@@ -41,7 +40,6 @@
 import org.apache.jetspeed.Jetspeed;
 import org.apache.jetspeed.PortalReservedParameters;
 import org.apache.jetspeed.aggregator.PortletRenderer;
-import org.apache.jetspeed.aggregator.impl.PortletAggregatorFragmentImpl;
 import org.apache.jetspeed.capabilities.CapabilityMap;
 import org.apache.jetspeed.container.PortletWindow;
 import org.apache.jetspeed.container.url.BasePortalURL;
@@ -50,8 +48,6 @@
 import org.apache.jetspeed.locator.TemplateLocator;
 import org.apache.jetspeed.locator.TemplateLocatorException;
 import org.apache.jetspeed.om.page.ContentFragment;
-import org.apache.jetspeed.om.page.ContentFragmentImpl;
-import org.apache.jetspeed.om.page.Fragment;
 import org.apache.jetspeed.om.page.Page;
 import org.apache.jetspeed.request.RequestContext;
 import org.apache.jetspeed.util.ArgUtil;
@@ -808,30 +804,33 @@
         }
     }
     
-    public String renderPortletWindow(String windowId, String portletId)
+    public String renderPortletWindow(String windowId, String portletUniqueName)
     {
-        RequestContext context = getRequestContext();
-        PortletWindow window = context.getPortletWindow(windowId);
         try
         {
-            if (window == null)
+            if (windowId == null || portletUniqueName == null)
             {
-                PortletAggregatorFragmentImpl fragment = new PortletAggregatorFragmentImpl(windowId);
-                fragment.setType(Fragment.PORTLET);
-                fragment.setName(portletId);
-                ContentFragment contentFragment = new ContentFragmentImpl(fragment, new HashMap(), true);
-                window = getPortletWindow(contentFragment);
-                if (window.isValid())
+                throw new IllegalArgumentException("Parameter windowId and portletUniqueName are both required");
+            }
+            RequestContext context = getRequestContext();
+            PortletWindow window = context.getInstantlyCreatedPortletWindow(windowId, portletUniqueName);
+            if (window.isValid())
+            {
+                PortletWindow currentPortletWindow = context.getCurrentPortletWindow();
+                try
                 {
-                    context.registerInstantlyCreatedPortletWindow(window);
-                    renderer.renderNow(window.getFragment(), context, true);
+                    context.setCurrentPortletWindow(window);
+                    renderer.renderNow(window.getFragment(), context);
                     return window.getFragment().getRenderedContent();
                 }
-                return "";
+                finally
+                {
+                    context.setCurrentPortletWindow(currentPortletWindow);
+                }
             }
             else
             {
-                throw new IllegalArgumentException("PortletWindow "+windowId+" already exists on this page");
+                return "";
             }
         }
         catch (Exception e)

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/container/state/MockRequestContext.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/container/state/MockRequestContext.java?rev=763594&r1=763593&r2=763594&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/container/state/MockRequestContext.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/container/state/MockRequestContext.java Thu Apr  9 10:43:24 2009
@@ -97,6 +97,15 @@
         // TODO Auto-generated method stub
         return null;
     }
+    
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.request.RequestContext#setCurrentPortletWindow(org.apache.jetspeed.container.PortletWindow)
+     */
+    public void setCurrentPortletWindow(PortletWindow window)
+    {
+        // TODO Auto-generated method stub
+        
+    }
 
     /* (non-Javadoc)
      * @see org.apache.jetspeed.request.RequestContext#getLocale()
@@ -450,24 +459,15 @@
     }
 
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.request.RequestContext#getInstantlyCreatedPortletWindow(java.lang.String)
+     * @see org.apache.jetspeed.request.RequestContext#getInstantlyCreatedPortletWindow(java.lang.String,java.lang.String)
      */
-    public PortletWindow getInstantlyCreatedPortletWindow(String windowId)
+    public PortletWindow getInstantlyCreatedPortletWindow(String windowId, String portletUniqueName)
     {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.request.RequestContext#registerInstantlyCreatedPortletWindow(org.apache.jetspeed.container.PortletWindow)
-     */
-    public void registerInstantlyCreatedPortletWindow(PortletWindow portletWindow)
-    {
-        // TODO Auto-generated method stub
-        
-    }
-
-    /* (non-Javadoc)
      * @see org.apache.jetspeed.request.RequestContext#resolvePortletWindow(java.lang.String)
      */
     public PortletWindow resolvePortletWindow(String windowId)

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/window/impl/PortletWindowImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/window/impl/PortletWindowImpl.java?rev=763594&r1=763593&r2=763594&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/window/impl/PortletWindowImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/window/impl/PortletWindowImpl.java Thu Apr  9 10:43:24 2009
@@ -51,38 +51,36 @@
  * @author <a href="mailto:david@bluesunrise.com">David Sean Taylor</a>
  * @version $Id$
  **/
-public class PortletWindowImpl implements PortletWindow, PortletEntity, PortletWindowID, RenderTrackable, Serializable
+public class PortletWindowImpl implements PortletWindow, PortletEntity, PortletWindowID, RenderTrackable
 {
     private static final long serialVersionUID = 6578938580906866201L;
     
     private String id;
-    private transient ContentFragment fragment;
-    private transient Map<String, Object> attributes;
+    private ContentFragment fragment;
+    private Map<String, Object> attributes;
     
-    protected transient int timeoutCount = 0;
-    protected transient long expiration = 0;
+    protected int timeoutCount = 0;
+    protected long expiration = 0;
     
-    private transient PortletDefinition pd;
+    private PortletDefinition pd;
     
-    private transient RequestContext requestContext;
+    private RequestContext requestContext;
     
     // PortletWindow invocation state
     
-    private transient Action action;
-    private transient PortletRequest portletRequest;
-    private transient PortletResponseContext portletResponseContext;
-    private transient PortletRequestContext portletRequestContext;
-    private transient PortletResponse portletResponse;
-    private transient PortletInstance portletInstance;
-    private transient List<KeyValue<String, Element>> headElements;
+    private Action action;
+    private PortletRequest portletRequest;
+    private PortletResponseContext portletResponseContext;
+    private PortletRequestContext portletRequestContext;
+    private PortletResponse portletResponse;
+    private PortletInstance portletInstance;
+    private List<KeyValue<String, Element>> headElements;
 
     private boolean valid;
     
     public PortletWindowImpl(RequestContext requestContext, ContentFragment fragment)
     {
-        this.requestContext = requestContext;
-        this.fragment = fragment;
-        this.id = fragment.getId();
+        this(requestContext, fragment, null);
     }
     
     public PortletWindowImpl(RequestContext requestContext, ContentFragment fragment, PortletDefinition pd)
@@ -91,7 +89,7 @@
         this.id = fragment.getId();
         this.fragment = fragment;
         this.pd = pd;
-        this.valid = true;
+        this.valid = pd != null;
     }
     
     public boolean isValid()

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/PortletWindow.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/PortletWindow.java?rev=763594&r1=763593&r2=763594&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/PortletWindow.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/PortletWindow.java Thu Apr  9 10:43:24 2009
@@ -17,7 +17,6 @@
 
 package org.apache.jetspeed.container;
 
-import java.io.Serializable;
 import java.util.List;
 import java.util.Map;
 
@@ -37,9 +36,8 @@
  * @version $Id$
  *
  */
-public interface PortletWindow extends org.apache.pluto.container.PortletWindow, Serializable
+public interface PortletWindow extends org.apache.pluto.container.PortletWindow
 {
-    
     boolean isValid();
     PortletWindowID getId();
     String getWindowId();

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/mockobjects/request/MockRequestContext.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/mockobjects/request/MockRequestContext.java?rev=763594&r1=763593&r2=763594&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/mockobjects/request/MockRequestContext.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/mockobjects/request/MockRequestContext.java Thu Apr  9 10:43:24 2009
@@ -549,6 +549,10 @@
         // TODO Auto-generated method stub
         return null;
     }
+    public void setCurrentPortletWindow(PortletWindow window)
+    {
+        // TODO Auto-generated method stub
+    }
     
     public PortletWindow getPortletWindow(ContentFragment fragment)
     {
@@ -562,22 +566,14 @@
         return null;
     }
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.request.RequestContext#getInstantlyCreatedPortletWindow(java.lang.String)
+     * @see org.apache.jetspeed.request.RequestContext#getInstantlyCreatedPortletWindow(java.lang.String,java.lang.String)
      */
-    public PortletWindow getInstantlyCreatedPortletWindow(String windowId)
+    public PortletWindow getInstantlyCreatedPortletWindow(String windowId, String portletUniqueName)
     {
         // TODO Auto-generated method stub
         return null;
     }
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.request.RequestContext#registerInstantlyCreatedPortletWindow(org.apache.jetspeed.container.PortletWindow)
-     */
-    public void registerInstantlyCreatedPortletWindow(PortletWindow portletWindow)
-    {
-        // TODO Auto-generated method stub
-        
-    }
-    /* (non-Javadoc)
      * @see org.apache.jetspeed.request.RequestContext#resolvePortletWindow(java.lang.String)
      */
     public PortletWindow resolvePortletWindow(String windowId)

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/request/RequestContext.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/request/RequestContext.java?rev=763594&r1=763593&r2=763594&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/request/RequestContext.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/request/RequestContext.java Thu Apr  9 10:43:24 2009
@@ -207,10 +207,10 @@
 
     public PortletWindow getPortletWindow(String windowId);
     public PortletWindow getPortletWindow(ContentFragment fragment);
-    public PortletWindow getInstantlyCreatedPortletWindow(String windowId);
+    public PortletWindow getInstantlyCreatedPortletWindow(String windowId, String portletUniqueName);
     public PortletWindow resolvePortletWindow(String windowId);
-    public void registerInstantlyCreatedPortletWindow(PortletWindow portletWindow);
     public PortletWindow getCurrentPortletWindow();
+    public void setCurrentPortletWindow(PortletWindow window);
     
     /**
      * Gets the subject associated with the authorized entity.



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