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 2004/09/02 15:54:33 UTC

svn commit: rev 37378 - in cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal: . acting event/aspect/impl impl layout/impl layout/renderer/aspect/impl profile profile/impl

Author: cziegeler
Date: Thu Sep  2 06:54:31 2004
New Revision: 37378

Modified:
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/PortalService.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/acting/SaveAction.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/FullScreenCopletEventAspect.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutFactory.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FullScreenCopletAspect.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/ProfileManager.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractUserProfileManager.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AuthenticationProfileManager.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java
Log:
Fix layout handling

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/PortalService.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/PortalService.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/PortalService.java	Thu Sep  2 06:54:31 2004
@@ -18,6 +18,7 @@
 import java.util.Iterator;
 
 import org.apache.avalon.framework.component.Component;
+import org.apache.cocoon.portal.layout.Layout;
 
 /**
  * This is the central component in the portal. It holds the configuration
@@ -28,7 +29,7 @@
  * @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
  * @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
  * 
- * @version CVS $Id: PortalService.java,v 1.3 2004/03/05 13:02:08 bdelacretaz Exp $
+ * @version CVS $Id$
  */
 public interface PortalService extends Component {
 
@@ -92,4 +93,12 @@
      * Return the component manager for the current portal
      */
     PortalComponentManager getComponentManager();
+
+    /**
+     * FIXME this is for the full-screen function
+     * @param layoutKey TODO
+     */
+    void setEntryLayout(String layoutKey, Layout object);
+    Layout getEntryLayout(String layoutKey);
+    
 }

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/acting/SaveAction.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/acting/SaveAction.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/acting/SaveAction.java	Thu Sep  2 06:54:31 2004
@@ -31,7 +31,7 @@
  * This action saves the profile
  *
  * @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
- * @version CVS $Id: SaveAction.java,v 1.3 2004/03/15 18:18:19 cziegeler Exp $
+ * @version CVS $Id$
 */
 public final class SaveAction
 extends ServiceableAction
@@ -57,7 +57,7 @@
         try {
             service = (PortalService)this.manager.lookup(PortalService.ROLE);
             service.setPortalName(par.getParameter("portal-name"));
-            service.getComponentManager().getProfileManager().saveUserProfiles();
+            service.getComponentManager().getProfileManager().saveUserProfiles(null);
         } catch (ParameterException pe) {
             throw new ProcessingException("Parameter portal-name is required.");
         } catch (ServiceException ce) {

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/AbstractContentEventAspect.java	Thu Sep  2 06:54:31 2004
@@ -36,7 +36,7 @@
  * @author <a href="mailto:juergen.seitz@basf-it-services.com">J&uuml;rgen Seitz</a>
  * @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
  * 
- * @version CVS $Id: AbstractContentEventAspect.java,v 1.4 2004/03/05 13:02:12 bdelacretaz Exp $
+ * @version CVS $Id$
  */
 public abstract class AbstractContentEventAspect
     extends AbstractLogEnabled
@@ -95,6 +95,7 @@
                         publisher.publish(e);
                     }
                 } catch (Exception ignore) {
+                    // ignroe it
                 }
                 // the event could not be generated, so try different approach
                 if (e == null) {

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/FullScreenCopletEventAspect.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/FullScreenCopletEventAspect.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/event/aspect/impl/FullScreenCopletEventAspect.java	Thu Sep  2 06:54:31 2004
@@ -35,14 +35,13 @@
 import org.apache.cocoon.portal.event.impl.FullScreenCopletEvent;
 import org.apache.cocoon.portal.layout.Layout;
 import org.apache.cocoon.portal.layout.impl.CopletLayout;
-import org.apache.cocoon.portal.profile.ProfileManager;
 
 /**
  *
  * @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
  * @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
  * 
- * @version CVS $Id: FullScreenCopletEventAspect.java,v 1.6 2004/03/05 13:02:12 bdelacretaz Exp $
+ * @version CVS $Id$
  */
 public class FullScreenCopletEventAspect
 	extends AbstractLogEnabled
@@ -110,12 +109,11 @@
         PortalService portalService = null;
         try {
             portalService = (PortalService) this.manager.lookup(PortalService.ROLE);
-            ProfileManager pm = portalService.getComponentManager().getProfileManager();
-            final Layout old = pm.getEntryLayout();
+            final Layout old = portalService.getEntryLayout(null);
             if ( old != null && old instanceof CopletLayout) {
                 ((CopletLayout)old).getCopletInstanceData().setAspectData("fullScreen", Boolean.FALSE);
             }
-            pm.setEntryLayout( startingLayout );
+            portalService.setEntryLayout( null, startingLayout );
             if ( startingLayout != null && startingLayout instanceof CopletLayout) {
                 ((CopletLayout)startingLayout).getCopletInstanceData().setAspectData("fullScreen", Boolean.TRUE);
             }
@@ -147,6 +145,7 @@
                 eventManager = (EventManager) this.manager.lookup( EventManager.ROLE );
                 eventManager.getRegister().unsubscribe( this );
             } catch (Exception ignore) {
+                // ignore this here
             } finally {
                 this.manager.release( eventManager );
             }

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalManagerImpl.java	Thu Sep  2 06:54:31 2004
@@ -35,7 +35,7 @@
  * @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
  * @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
  * 
- * @version CVS $Id: PortalManagerImpl.java,v 1.7 2004/03/05 13:02:13 bdelacretaz Exp $
+ * @version CVS $Id$
  */
 public class PortalManagerImpl
 	extends AbstractLogEnabled
@@ -61,13 +61,14 @@
 	 */
 	public void showPortal(ContentHandler contentHandler, Parameters parameters) 
     throws SAXException {
-//        final boolean useContentDeliverer = (parameters == null ? true :
-//                                               parameters.getParameterAsBoolean("use-content-deliverer", true));
-        
         PortalService service = null;
         try {
             service = (PortalService)this.manager.lookup(PortalService.ROLE);
-            Layout portalLayout = service.getComponentManager().getProfileManager().getPortalLayout(null, null);
+            // first check for a full screen layout
+            Layout portalLayout = service.getEntryLayout(null);
+            if ( portalLayout == null ) {
+                portalLayout = service.getComponentManager().getProfileManager().getPortalLayout(null, null);
+            }
 
             Renderer portalLayoutRenderer = service.getComponentManager().getRenderer( portalLayout.getRendererName());       
 

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java	Thu Sep  2 06:54:31 2004
@@ -36,6 +36,7 @@
 import org.apache.cocoon.environment.Request;
 import org.apache.cocoon.portal.PortalComponentManager;
 import org.apache.cocoon.portal.PortalService;
+import org.apache.cocoon.portal.layout.Layout;
 
 /**
  * Default implementation of a portal service using a session to store
@@ -44,7 +45,7 @@
  * @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
  * @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
  * 
- * @version CVS $Id: PortalServiceImpl.java,v 1.12 2004/07/11 14:04:34 cziegeler Exp $
+ * @version CVS $Id$
  */
 public class PortalServiceImpl
     extends AbstractLogEnabled
@@ -169,4 +170,29 @@
         }
     }
 
+    /* (non-Javadoc)
+     * @see org.apache.cocoon.portal.PortalService#setEntryLayout(org.apache.cocoon.portal.layout.Layout)
+     */
+    public void setEntryLayout(String layoutKey, Layout object) {
+        if ( layoutKey == null ) {
+            layoutKey = this.getComponentManager().getProfileManager().getDefaultLayoutKey();
+        }
+        if ( object == null ) {
+            this.removeTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey);
+        } else {
+            this.setTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey, object);
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.cocoon.portal.PortalService#getEntryLayout()
+     */
+    public Layout getEntryLayout(String layoutKey) {
+        if ( layoutKey == null ) {
+            layoutKey = this.getComponentManager().getProfileManager().getDefaultLayoutKey();
+        }
+        return (Layout)this.getTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey);
+    }
+
+    
 }

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutFactory.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutFactory.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutFactory.java	Thu Sep  2 06:54:31 2004
@@ -426,7 +426,7 @@
                 ProfileManager profileManager = service.getComponentManager().getProfileManager();
                 if ( layout instanceof CopletLayout ) {
                     // full screen?
-                    if ( layout.equals(profileManager.getEntryLayout()) ) {
+                    if ( layout.equals(service.getEntryLayout(null)) ) {
                         Event event = new FullScreenCopletEvent(((CopletLayout)layout).getCopletInstanceData(), null);
                         eventManager = (EventManager)this.manager.lookup(EventManager.ROLE);
                         eventManager.getPublisher().publish(event);

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FullScreenCopletAspect.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FullScreenCopletAspect.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FullScreenCopletAspect.java	Thu Sep  2 06:54:31 2004
@@ -47,7 +47,7 @@
  * @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
  * @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
  * 
- * @version CVS $Id: FullScreenCopletAspect.java,v 1.8 2004/04/25 20:09:34 haul Exp $
+ * @version CVS $Id$
  */
 public class FullScreenCopletAspect extends AbstractAspect {
 
@@ -64,7 +64,7 @@
 
         Boolean supportsFullScreen = (Boolean)cid.getCopletData().getAspectData("full-screen");
         if ( supportsFullScreen == null || supportsFullScreen.equals(Boolean.TRUE) ) {
-            final Layout fullScreenLayout = service.getComponentManager().getProfileManager().getEntryLayout();
+            final Layout fullScreenLayout = service.getEntryLayout(null);
             if ( fullScreenLayout != null && fullScreenLayout.equals( layout )) {
                 FullScreenCopletEvent event = new FullScreenCopletEvent( cid, null );
                 XMLUtils.createElement(handler, "fullscreen-uri", service.getComponentManager().getLinkService().getLinkURI(event));

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/ProfileManager.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/ProfileManager.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/ProfileManager.java	Thu Sep  2 06:54:31 2004
@@ -50,12 +50,6 @@
 	Layout getPortalLayout(String layoutKey, String layoutID);
     
     /**
-     * FIXME this is for the full-screen function
-     */
-    void setEntryLayout(Layout object);
-    Layout getEntryLayout();
-    
-    /**
      * Change the default layout key for most functions
      */
     void setDefaultLayoutKey(String layoutKey);
@@ -74,22 +68,41 @@
      */
     CopletData getCopletData(String copletDataId);
     
+    /**
+     * This method is invoked when the user logs into the portal.
+     */
     void login();
     
+    /**
+     * This method is invoked when the user logs out of the portal
+     *
+     */
     void logout();
     
+    /**
+     * New coplet instance datas have to be registered using this method.
+     */
     void register(CopletInstanceData coplet);
     
+    /**
+     * Removed coplet instance datas have to be unregistered using this method.
+     */
     void unregister(CopletInstanceData coplet);
 
+    /**
+     * New layouts have to be registered using this method.
+     */
     void register(Layout layout);
     
+    /**
+     * New layouts have to be unregistered using this method.
+     */
     void unregister(Layout layout);
 
     /**
      * Save the profile
      */
-    void saveUserProfiles();
+    void saveUserProfiles(String layoutKey);
     
     /**
      * Get all instances
@@ -101,4 +114,18 @@
      */
     Collection getCopletDatas();
     
+    /**
+     * Copy the current (default) layout and store it under
+     * the provided key.
+     * The copy includes copying of layout objects (with attached
+     * items) and coplet instance datas.
+     */
+    Layout copyProfile(String layoutKey);
+    
+    /**
+     * Store the provided profile under the layoutKey.
+     * This method can be used to overwrite a profile with another
+     * one.
+     */
+    void storeProfile(Layout rootLayout, String layoutKey);
 }

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java	Thu Sep  2 06:54:31 2004
@@ -66,9 +66,9 @@
     }
 
     /* (non-Javadoc)
-     * @see org.apache.cocoon.portal.profile.ProfileManager#saveUserProfiles()
+     * @see org.apache.cocoon.portal.profile.ProfileManager#saveUserProfiles(String)
      */
-    public void saveUserProfiles() {
+    public void saveUserProfiles(String layoutKey) {
         // overwrite in subclass
     }
 
@@ -142,47 +142,25 @@
     }
 
     /* (non-Javadoc)
-     * @see org.apache.cocoon.portal.profile.ProfileManager#setEntryLayout(org.apache.cocoon.portal.layout.Layout)
+     * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
      */
-    public void setEntryLayout(Layout object) {
-        String layoutKey = this.getDefaultLayoutKey();
-        PortalService service = null;
-        try {
-            service = (PortalService) this.manager.lookup(PortalService.ROLE);
-            if ( object == null ) {
-                service.removeTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey);
-            } else {
-                service.setTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey, object);
-            }
-        } catch (ServiceException e) {
-            throw new CascadingRuntimeException("Unable to lookup service manager.", e);
-        } finally {
-            this.manager.release(service);
-        }
+    public void configure(Configuration configuration) throws ConfigurationException {
+        Configuration child = configuration.getChild("default-layout-key");
+        // get configured default LayoutKey
+        this.defaultLayoutKey = child.getValue("portal");
     }
 
     /* (non-Javadoc)
-     * @see org.apache.cocoon.portal.profile.ProfileManager#getEntryLayout()
+     * @see org.apache.cocoon.portal.profile.ProfileManager#copyProfile(java.lang.String)
      */
-    public Layout getEntryLayout() {
-        String layoutKey = this.getDefaultLayoutKey();
-        PortalService service = null;
-        try {
-            service = (PortalService) this.manager.lookup(PortalService.ROLE);
-            return (Layout)service.getTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey);
-        } catch (ServiceException e) {
-            throw new CascadingRuntimeException("Unable to lookup service manager.", e);
-        } finally {
-            this.manager.release(service);
-        }
+    public Layout copyProfile(String layoutKey) {
+        throw new RuntimeException("Copy profile is not implemented.");
     }
 
     /* (non-Javadoc)
-     * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
+     * @see org.apache.cocoon.portal.profile.ProfileManager#storeProfile(org.apache.cocoon.portal.layout.Layout, java.lang.String)
      */
-    public void configure(Configuration configuration) throws ConfigurationException {
-        Configuration child = configuration.getChild("default-layout-key");
-        // get configured default LayoutKey
-        this.defaultLayoutKey = child.getValue("portal");
+    public void storeProfile(Layout rootLayout, String layoutKey) {
+        throw new RuntimeException("Store profile is not implemented.");
     }
 }

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractUserProfileManager.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractUserProfileManager.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AbstractUserProfileManager.java	Thu Sep  2 06:54:31 2004
@@ -330,11 +330,6 @@
             if ( null == layoutKey ) {
                 layoutKey = this.getDefaultLayoutKey();
             }
-            // FIXME actually this is a hack for full screen
-            Layout l = (Layout) service.getTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey);
-            if ( null != l) {
-                return l;
-            }
             
             final String layoutAttributeKey = "Layout:" + layoutKey;
             final String layoutObjectsAttributeKey = "Layout-Map:" + layoutKey;

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AuthenticationProfileManager.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AuthenticationProfileManager.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/AuthenticationProfileManager.java	Thu Sep  2 06:54:31 2004
@@ -147,8 +147,10 @@
         return layout;
     }
     
-    public void saveUserProfiles() {
-        final String layoutKey = this.getDefaultLayoutKey();
+    public void saveUserProfiles(String layoutKey) {
+        if ( layoutKey == null ) {
+            layoutKey = this.getDefaultLayoutKey();
+        }
 		ProfileLS adapter = null;
 		PortalService service = null;
 		try {

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java	Thu Sep  2 06:54:31 2004
@@ -291,11 +291,6 @@
             if ( null == layoutKey ) {
                 layoutKey = this.getDefaultLayoutKey();
             }
-            // FIXME actually this is a hack for full screen
-            Layout l = (Layout) service.getTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey);
-            if ( null != l) {
-                return l;
-            }
             
             UserProfile profile = this.getUserProfile(layoutKey);
             if ( profile == null ) {

Modified: cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java
==============================================================================
--- cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java	(original)
+++ cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java	Thu Sep  2 06:54:31 2004
@@ -66,10 +66,6 @@
             service = (PortalService) this.manager.lookup(PortalService.ROLE);
 
             if (layoutKey == null) {
-                Layout l = getEntryLayout();
-                if (null != l) {
-                    return l;
-                }
                 layoutKey = getDefaultLayoutKey();
             }
 
@@ -325,13 +321,6 @@
      * @see org.apache.cocoon.portal.profile.ProfileManager#unregister(org.apache.cocoon.portal.layout.Layout)
      */
     public void unregister(Layout layout) {
-        // nothing to do
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.cocoon.portal.profile.ProfileManager#saveUserProfiles()
-     */
-    public void saveUserProfiles() {
         // nothing to do
     }