You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2005/07/14 14:20:30 UTC

svn commit: r219033 - in /cocoon: blocks/portal/trunk/WEB-INF/xconf/ blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/ blocks/portal/trunk/java/org/apache/cocoon/portal/impl/ blocks/portal/trunk/java/org/apache/cocoon/portal/layout...

Author: cziegeler
Date: Thu Jul 14 05:20:27 2005
New Revision: 219033

URL: http://svn.apache.org/viewcvs?rev=219033&view=rev
Log:
Convert PortletPortalManager into portal manager aspect. Remove deprecated PortletPortalManager.

Added:
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PortletPortalManagerAspect.java   (with props)
Removed:
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PortletPortalManager.java
Modified:
    cocoon/blocks/portal/trunk/WEB-INF/xconf/cocoon-portal.xconf
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/PortletAdapter.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/PortletWindowAspect.java
    cocoon/trunk/status.xml

Modified: cocoon/blocks/portal/trunk/WEB-INF/xconf/cocoon-portal.xconf
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/WEB-INF/xconf/cocoon-portal.xconf?rev=219033&r1=219032&r2=219033&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/WEB-INF/xconf/cocoon-portal.xconf (original)
+++ cocoon/blocks/portal/trunk/WEB-INF/xconf/cocoon-portal.xconf Thu Jul 14 05:20:27 2005
@@ -40,9 +40,9 @@
        	<uri-prefix>samples/blocks/portal/</uri-prefix>
       </component-instance>
   </input-modules>
-  
- <!-- Event Aspect configuration -->
- <component class="org.apache.cocoon.core.container.DefaultServiceSelector" role="org.apache.cocoon.portal.event.aspect.EventAspectSelector">
+
+  <!-- Event Aspect configuration -->
+  <component class="org.apache.cocoon.core.container.DefaultServiceSelector" role="org.apache.cocoon.portal.event.aspect.EventAspectSelector">
     <aspect logger="portal" name="action-counter" class="org.apache.cocoon.portal.event.aspect.impl.ActionCounterEventAspect"/>
     <aspect logger="portal" name="request-parameter" class="org.apache.cocoon.portal.event.aspect.impl.RequestParameterEventAspect"/>
     <aspect logger="portal" name="frame" class="org.apache.cocoon.portal.event.aspect.impl.FrameEventAspect"/>
@@ -54,9 +54,16 @@
 
     <!-- This aspect sets headers on the response that tell the client to not cache the response: -->
     <aspect logger="portal" name="no-client-caching" class="org.apache.cocoon.portal.event.aspect.impl.NoClientCachingEventAspect"/>
- </component>
+  </component>
 
- <component class="org.apache.cocoon.portal.event.impl.DefaultEventManager" logger="portal" role="org.apache.cocoon.portal.event.EventManager">
+  <!-- Portal Manager Aspect Configuration -->
+  <component class="org.apache.cocoon.core.container.DefaultServiceSelector"
+             role="org.apache.cocoon.portal.PortalManagerAspectSelector">
+    <!-- This aspect activates the JSR-168 support. -->
+    <aspect logger="portal" name="portlet" class="org.apache.cocoon.portal.impl.PortletPortalManagerAspect"/>
+  </component>
+
+  <component class="org.apache.cocoon.portal.event.impl.DefaultEventManager" logger="portal" role="org.apache.cocoon.portal.event.EventManager">
     <event-aspects>
         <!-- Uncomment this aspect when marshalling JSR168 portlet events 
         <aspect type="convertable"/>
@@ -93,9 +100,9 @@
     <receiver-roles>
         <!-- <role name="AVALON-ROLE"/> -->
     </receiver-roles>
- </component>
- 
- <!-- Event Factory configuration -->
+  </component>
+
+  <!-- Event Factory configuration -->
  <component class="org.apache.cocoon.components.ExtendedComponentSelector" role="org.apache.cocoon.portal.event.ConvertableEventFactorySelector">
    <!-- The events that can be marshalled. The name must match the Event's request parameter. -->
    <factory logger="portal" name="cocoon-portal-fs" class="org.apache.cocoon.portal.event.impl.FullScreenCopletEventFactory"/>
@@ -103,31 +110,34 @@
  </component>
 
   <!-- This is the portal manager.
-       If you don't need the JSR-168 support uncomment the following line and comment out 
-       the definition below:
-    <component class="org.apache.cocoon.portal.impl.PortalManagerImpl" 
-               logger="portal" role="org.apache.cocoon.portal.PortalManager"/>
-
+       The portal manager can be extended with different aspects.
+       Currently the JSR-168 aspect is configured/activated.
+       If you don't need the JSR-168 support uncomment the aspect.
   -->
-  <component class="org.apache.cocoon.portal.impl.PortletPortalManager" 
-             logger="portal" role="org.apache.cocoon.portal.PortalManager"/>
+  <component class="org.apache.cocoon.portal.impl.PortalManagerImpl" 
+             logger="portal" role="org.apache.cocoon.portal.PortalManager">
+    <aspects>
+      <!-- JSR-168 support: -->
+      <aspect type="portlet"/>
+    </aspects>
+  </component>
 
- <!-- To enable PageLabels change DefaultLinkService to PageLabelLinkService -->
- <component class="org.apache.cocoon.portal.impl.DefaultLinkService" logger="portal" role="org.apache.cocoon.portal.LinkService"/>
+  <!-- To enable PageLabels change DefaultLinkService to PageLabelLinkService -->
+  <component class="org.apache.cocoon.portal.impl.DefaultLinkService" logger="portal" role="org.apache.cocoon.portal.LinkService"/>
 
   <!-- To enable PageLabels change DefaultEventConverter to PageLabelEventConverter -->
- <component class="org.apache.cocoon.portal.event.impl.DefaultEventConverter" logger="portal" role="org.apache.cocoon.portal.event.EventConverter">
- </component>
+  <component class="org.apache.cocoon.portal.event.impl.DefaultEventConverter" logger="portal" role="org.apache.cocoon.portal.event.EventConverter">
+  </component>
   
- <!-- Page Label Manager -->
- <component class="org.apache.cocoon.portal.impl.PageLabelManager" logger="portal" role="org.apache.cocoon.portal.impl.PageLabelManager">
-   <!-- Uncomment to marshall JSR-168 portlet events
-   <marshallEvents>true</marshallEvents>
-   -->
-   <!-- Uncomment to enable non sticky tabs
-   <nonStickyTabs>true</nonStickyTabs>
-   -->
- </component>
+  <!-- Page Label Manager -->
+  <component class="org.apache.cocoon.portal.impl.PageLabelManager" logger="portal" role="org.apache.cocoon.portal.impl.PageLabelManager">
+    <!-- Uncomment to marshall JSR-168 portlet events
+    <marshallEvents>true</marshallEvents>
+    -->
+    <!-- Uncomment to enable non sticky tabs
+    <nonStickyTabs>true</nonStickyTabs>
+    -->
+  </component>
 
   <!-- Coplet Adapter configuration -->
   <component class="org.apache.cocoon.core.container.DefaultServiceSelector" 
@@ -148,7 +158,7 @@
     <coplet-adapter name="application"
                     class="org.apache.cocoon.portal.coplet.adapter.impl.ApplicationCopletAdapter"
                     logger="portal"/>
- </component>
+  </component>
 
 
  <!-- Renderer Aspect configuration -->

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/PortletAdapter.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/PortletAdapter.java?rev=219033&r1=219032&r2=219033&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/PortletAdapter.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/PortletAdapter.java Thu Jul 14 05:20:27 2005
@@ -26,9 +26,8 @@
 import org.apache.avalon.framework.context.Contextualizable;
 import org.apache.cocoon.components.ContextHelper;
 import org.apache.cocoon.environment.http.HttpEnvironment;
-import org.apache.cocoon.portal.PortalManager;
 import org.apache.cocoon.portal.coplet.CopletInstanceData;
-import org.apache.cocoon.portal.impl.PortletPortalManager;
+import org.apache.cocoon.portal.impl.PortletPortalManagerAspect;
 import org.apache.cocoon.portal.pluto.om.PortletDefinitionRegistry;
 import org.apache.cocoon.portal.pluto.om.PortletEntityListImpl;
 import org.apache.cocoon.portal.pluto.om.PortletWindowImpl;
@@ -78,7 +77,7 @@
         try {
             // now get the portal manager
             ServletConfig servletConfig = (ServletConfig) context.get(CocoonServlet.CONTEXT_SERVLET_CONFIG);
-            PortletPortalManager portalManager = (PortletPortalManager) servletConfig.getServletContext().getAttribute(PortalManager.ROLE);
+            PortletPortalManagerAspect portalManager = (PortletPortalManagerAspect) servletConfig.getServletContext().getAttribute(PortletPortalManagerAspect.class.getName());
             
             this.portletContainer = portalManager.getPortletContainer();
             this.environment = portalManager.getPortletContainerEnvironment();
@@ -125,7 +124,7 @@
                 objectModel.put("portlet-request",  req);                
             }
             final HttpServletResponse res = (HttpServletResponse) objectModel.get("portlet-response");
-            PortletPortalManager.copletInstanceData.set(coplet);
+            PortletPortalManagerAspect.copletInstanceData.set(coplet);
             try {
                 this.portletContainer.portletLoad(portletWindow, req.getRequest(portletWindow),  
                                                   res);
@@ -135,7 +134,7 @@
                 coplet.removeTemporaryAttribute("window");
                 ((PortletEntityListImpl)pae.getPortletEntityList()).remove(portletEntity);
             } finally {
-                PortletPortalManager.copletInstanceData.set(null);
+                PortletPortalManagerAspect.copletInstanceData.set(null);
             }
         }
     }
@@ -162,7 +161,7 @@
             final Map objectModel = ContextHelper.getObjectModel(this.context);
             final ServletRequestImpl  req = (ServletRequestImpl) objectModel.get("portlet-request");
             final HttpServletResponse res = (HttpServletResponse) objectModel.get("portlet-response");
-            PortletPortalManager.copletInstanceData.set(coplet);
+            PortletPortalManagerAspect.copletInstanceData.set(coplet);
             
             // TODO - for parallel processing we have to clone the response!
             this.portletContainer.renderPortlet(window, req.getRequest(window), res);
@@ -183,7 +182,7 @@
         } catch (Exception e) {
             throw new SAXException(e);
         } finally {
-            PortletPortalManager.copletInstanceData.set(null);            
+            PortletPortalManagerAspect.copletInstanceData.set(null);            
         }
     }
 

Added: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PortletPortalManagerAspect.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PortletPortalManagerAspect.java?rev=219033&view=auto
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PortletPortalManagerAspect.java (added)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PortletPortalManagerAspect.java Thu Jul 14 05:20:27 2005
@@ -0,0 +1,302 @@
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ * 
+ * Licensed 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.cocoon.portal.impl;
+
+import java.util.Map;
+import java.util.Properties;
+
+import javax.portlet.PortletMode;
+import javax.portlet.WindowState;
+import javax.servlet.ServletConfig;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.avalon.framework.activity.Disposable;
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.container.ContainerUtil;
+import org.apache.avalon.framework.context.Context;
+import org.apache.avalon.framework.context.ContextException;
+import org.apache.avalon.framework.context.Contextualizable;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.parameters.Parameters;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.cocoon.ProcessingException;
+import org.apache.cocoon.components.ContextHelper;
+import org.apache.cocoon.environment.http.HttpEnvironment;
+import org.apache.cocoon.portal.PortalManager;
+import org.apache.cocoon.portal.PortalManagerAspect;
+import org.apache.cocoon.portal.PortalManagerAspectPrepareContext;
+import org.apache.cocoon.portal.PortalManagerAspectRenderContext;
+import org.apache.cocoon.portal.PortalService;
+import org.apache.cocoon.portal.event.EventManager;
+import org.apache.cocoon.portal.event.Receiver;
+import org.apache.cocoon.portal.pluto.PortletContainerEnvironmentImpl;
+import org.apache.cocoon.portal.pluto.PortletURLProviderImpl;
+import org.apache.cocoon.portal.pluto.servlet.ServletRequestImpl;
+import org.apache.cocoon.portal.pluto.servlet.ServletResponseImpl;
+import org.apache.cocoon.servlet.CocoonServlet;
+import org.apache.pluto.PortletContainer;
+import org.apache.pluto.PortletContainerException;
+import org.apache.pluto.PortletContainerImpl;
+import org.apache.pluto.om.window.PortletWindow;
+import org.apache.pluto.services.PortletContainerEnvironment;
+import org.apache.pluto.services.information.DynamicInformationProvider;
+import org.apache.pluto.services.information.InformationProviderService;
+import org.apache.pluto.services.information.PortletActionProvider;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+
+/**
+ * This aspect provides the JSR-168 support by initializing Pluto.
+ * The aspect can be configured at the portal manager.
+ *
+ * @version SVN $Id:$
+ */
+public class PortletPortalManagerAspect
+	extends AbstractLogEnabled
+	implements PortalManagerAspect,
+               Contextualizable,
+               Serviceable,
+               Initializable,
+               Disposable,
+               Receiver {
+
+    public static final ThreadLocal copletInstanceData = new InheritableThreadLocal();
+
+    /** The servlet configuration for pluto */
+    protected ServletConfig servletConfig;
+
+    /** The Portlet Container */
+    protected PortletContainer portletContainer;
+
+    /** The Portlet Container environment */
+    protected PortletContainerEnvironmentImpl portletContainerEnvironment;
+
+    /** The service locator */
+    protected ServiceManager manager;
+
+    /** The component context */
+    protected Context context;
+
+    /**
+     * @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
+     */
+    public void contextualize(Context context) throws ContextException {
+        this.context = context;
+        try {
+            this.servletConfig = (ServletConfig) context.get(CocoonServlet.CONTEXT_SERVLET_CONFIG);
+            // we have to somehow pass this component down to other components!
+            // This is ugly, but it's the only chance for sofisticated component containers
+            // that wrap component implementations!
+            this.servletConfig.getServletContext().setAttribute(PortletPortalManagerAspect.class.getName(), this);
+        } catch (ContextException ignore) {
+            // we ignore the context exception
+            // this avoids startup errors if the portal is configured for the CLI
+            // environment
+            this.getLogger().warn("The JSR-168 support is disabled as the servlet context is not available.", ignore);
+        }
+    }
+
+    /**
+     * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
+     */
+    public void service(ServiceManager manager) throws ServiceException {
+        this.manager = manager;
+        EventManager eventManager = null;
+        try {
+            eventManager = (EventManager)this.manager.lookup(EventManager.ROLE);
+            eventManager.subscribe(this);
+        } finally {
+            this.manager.release(eventManager);
+        }
+    }
+
+    /**
+     * @see org.apache.avalon.framework.activity.Disposable#dispose()
+     */
+    public void dispose() {
+        if ( this.manager != null ) {
+            EventManager eventManager = null;
+            try {
+                eventManager = (EventManager)this.manager.lookup(EventManager.ROLE);
+                eventManager.unsubscribe(this);
+            } catch (Exception ignore) {
+                // let's ignore it
+            } finally {
+                this.manager.release(eventManager);
+            }
+            this.manager = null;
+        }
+        try {
+            if (this.portletContainer != null ) {
+                this.portletContainer.shutdown();
+                this.portletContainer = null;
+            }
+            ContainerUtil.dispose(this.portletContainerEnvironment);
+            this.portletContainerEnvironment = null;
+        } catch (Throwable t) {
+            this.getLogger().error("Destruction failed!", t);
+        }
+        if ( this.servletConfig != null ) {
+            this.servletConfig.getServletContext().removeAttribute(PortalManager.ROLE);
+            this.servletConfig = null;
+        }
+    }
+
+    /**
+     * @see org.apache.avalon.framework.activity.Initializable#initialize()
+     */
+    public void initialize() throws Exception {
+        if ( this.servletConfig != null ) {
+            this.initContainer();
+        }
+    }
+
+    /**
+     * Return the portlet container
+     */
+    public PortletContainer getPortletContainer() {
+        return this.portletContainer;        
+    }
+
+    /**
+     * Return the portlet container environment
+     */
+    public PortletContainerEnvironment getPortletContainerEnvironment() {
+        return this.portletContainerEnvironment;        
+    }
+
+    /**
+     * Initialize the container
+     */
+    public void initContainer() throws Exception {
+        this.portletContainer = new PortletContainerImpl();
+
+        if (!portletContainer.isInitialized()) {
+            this.getLogger().debug ("Initializing PortletContainer...");
+
+            final String uniqueContainerName = "cocoon-portal";
+
+            this.portletContainerEnvironment = new PortletContainerEnvironmentImpl();
+            ContainerUtil.enableLogging(this.portletContainerEnvironment, this.getLogger());
+            ContainerUtil.contextualize(this.portletContainerEnvironment, this.context);
+            ContainerUtil.service(this.portletContainerEnvironment, this.manager);
+            ContainerUtil.initialize(this.portletContainerEnvironment);
+
+            Properties properties = new Properties();
+
+            try {
+                portletContainer.init(uniqueContainerName, servletConfig, this.portletContainerEnvironment, properties);
+            } catch (PortletContainerException exc) {
+                throw new ProcessingException("Initialization of the portlet container failed.", exc);
+            }
+        } else {
+            this.getLogger().debug("PortletContainer already initialized.");
+        }
+
+        this.getLogger().debug("PortletContainer initialized.");
+        
+    }
+
+    /**
+     * @see Receiver
+     */
+    public void inform(PortletURLProviderImpl event, PortalService service) {
+        final Map objectModel = ContextHelper.getObjectModel(this.context);
+        final ServletRequestImpl req = new ServletRequestImpl((HttpServletRequest) objectModel.get(HttpEnvironment.HTTP_REQUEST_OBJECT), event);
+        final HttpServletResponse res = new ServletResponseImpl((HttpServletResponse) objectModel.get(HttpEnvironment.HTTP_RESPONSE_OBJECT));
+        objectModel.put("portlet-response",  res);
+        objectModel.put("portlet-request", req);        
+
+        if ( event.isAction() ) {
+            // This means we can only have ONE portlet event per request!
+            objectModel.put("portlet-event", event);
+        } else {
+            DynamicInformationProvider dynProv;
+            InformationProviderService ips;
+            PortletActionProvider pap;
+
+            ips = (InformationProviderService)this.portletContainerEnvironment.getContainerService(InformationProviderService.class);
+            dynProv = ips.getDynamicProvider(req);
+            pap = dynProv.getPortletActionProvider(event.getPortletWindow());
+            final PortletMode mode = event.getPortletMode();
+            if ( mode != null ) {
+                pap.changePortletMode(mode);
+            }
+            final WindowState state = event.getWindowState();
+            if ( state != null ) {
+                pap.changePortletWindowState(state);
+            }
+        }
+    }
+
+    /**
+     * @see org.apache.cocoon.portal.PortalManagerAspect#prepare(org.apache.cocoon.portal.PortalManagerAspectPrepareContext, org.apache.cocoon.portal.PortalService)
+     */
+    public void prepare(PortalManagerAspectPrepareContext aspectContext,
+                        PortalService service)
+    throws ProcessingException {
+        // process the events
+        aspectContext.invokeNext();
+        
+        // if we aren't running in a servlet environment, just skip the JSR-168 part
+        if ( this.servletConfig == null ) {
+            return;
+        }
+        
+        // do we already have an environment?
+        // if not, create one
+        final Map objectModel = aspectContext.getObjectModel();
+
+        PortletURLProviderImpl event = (PortletURLProviderImpl) objectModel.get("portlet-event");
+        if ( event != null ) {
+            PortletWindow actionWindow = event.getPortletWindow();
+            try {
+                final ServletRequestImpl req = (ServletRequestImpl) objectModel.get("portlet-request");
+                final ServletResponseImpl res= (ServletResponseImpl)objectModel.get("portlet-response");
+                this.portletContainer.processPortletAction(actionWindow, req.getRequest(actionWindow), res);
+            } catch (Exception ignore) {
+                this.getLogger().error("Error during processing of portlet action.", ignore);
+            }
+        } else if ( objectModel.get("portlet-response") == null ) {
+            final HttpServletResponse res = (HttpServletResponse) objectModel.get(HttpEnvironment.HTTP_RESPONSE_OBJECT);
+            objectModel.put("portlet-response",  new ServletResponseImpl(res));
+            final ServletRequestImpl req = new ServletRequestImpl((HttpServletRequest) objectModel.get(HttpEnvironment.HTTP_REQUEST_OBJECT), null);
+            objectModel.put("portlet-request",  req);
+        }
+    }
+
+    /**
+     * @see org.apache.cocoon.portal.PortalManagerAspect#render(org.apache.cocoon.portal.PortalManagerAspectRenderContext, org.apache.cocoon.portal.PortalService, org.xml.sax.ContentHandler, org.apache.avalon.framework.parameters.Parameters)
+     */
+    public void render(PortalManagerAspectRenderContext aspectContext,
+                       PortalService service,
+                       ContentHandler ch,
+                       Parameters parameters)
+    throws SAXException {
+        final Map objectModel = aspectContext.getObjectModel();
+
+        // don't generate a response, if we issued a redirect
+        if (objectModel.get("portlet-event") == null) {
+            aspectContext.invokeNext(ch, parameters);
+        }
+    }
+
+
+}
+

Propchange: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PortletPortalManagerAspect.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PortletPortalManagerAspect.java
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/PortletWindowAspect.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/PortletWindowAspect.java?rev=219033&r1=219032&r2=219033&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/PortletWindowAspect.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/PortletWindowAspect.java Thu Jul 14 05:20:27 2005
@@ -25,10 +25,9 @@
 import org.apache.avalon.framework.context.Contextualizable;
 import org.apache.avalon.framework.parameters.ParameterException;
 import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.cocoon.portal.PortalManager;
 import org.apache.cocoon.portal.PortalService;
 import org.apache.cocoon.portal.coplet.CopletInstanceData;
-import org.apache.cocoon.portal.impl.PortletPortalManager;
+import org.apache.cocoon.portal.impl.PortletPortalManagerAspect;
 import org.apache.cocoon.portal.layout.Layout;
 import org.apache.cocoon.portal.layout.impl.CopletLayout;
 import org.apache.cocoon.portal.layout.renderer.aspect.RendererAspectContext;
@@ -92,7 +91,7 @@
         try {
             // now get the portal manager
             ServletConfig servletConfig = (ServletConfig) context.get(CocoonServlet.CONTEXT_SERVLET_CONFIG);
-            PortletPortalManager portalManager = (PortletPortalManager) servletConfig.getServletContext().getAttribute(PortalManager.ROLE);
+            PortletPortalManagerAspect portalManager = (PortletPortalManagerAspect) servletConfig.getServletContext().getAttribute(PortletPortalManagerAspect.class.getName());
             if ( portalManager != null ) {
                 this.environment = portalManager.getPortletContainerEnvironment();
             }

Modified: cocoon/trunk/status.xml
URL: http://svn.apache.org/viewcvs/cocoon/trunk/status.xml?rev=219033&r1=219032&r2=219033&view=diff
==============================================================================
--- cocoon/trunk/status.xml (original)
+++ cocoon/trunk/status.xml Thu Jul 14 05:20:27 2005
@@ -197,6 +197,9 @@
 
   <changes>
   <release version="@version@" date="@date@">
+    <action dev="CZ" type="add">
+      Portal block: Remove deprecated PortletPortalManager.
+    </action>
     <action dev="UH" type="add" due-to="Johan Stuyts">
       Mail block: The SendMailTransformer can now configure the smtp port.
     </action>
@@ -480,6 +483,9 @@
    </action>
   </release>
   <release version="2.1.8" date="TBD">
+    <action dev="CZ" type="add">
+      Portal block: Convert PortletPortalManager into portal manager aspect.
+    </action>
     <action dev="CZ" type="add">
       CForms block: Make all WidgetValidatorBuilders ThreadSafe. Reset validation errors
                     before validating a field.