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 16:25:20 UTC

svn commit: rev 37380 - in cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal: . impl profile profile/impl

Author: cziegeler
Date: Thu Sep  2 07:25:18 2004
New Revision: 37380

Modified:
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/PortalService.java
   cocoon/trunk/src/blocks/portal/java/org/apache/cocoon/portal/impl/PortalServiceImpl.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:
Move layout key handling to service

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 07:25:18 2004
@@ -101,4 +101,14 @@
     void setEntryLayout(String layoutKey, Layout object);
     Layout getEntryLayout(String layoutKey);
     
+    /**
+     * Change the default layout key for most functions
+     */
+    void setDefaultLayoutKey(String layoutKey);
+    
+    /**
+     * Get the default layout key
+     */
+    String getDefaultLayoutKey();
+    
 }

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 07:25:18 2004
@@ -62,7 +62,9 @@
 
     protected Map portalComponentManagers = new HashMap();
     
-    final protected String key = this.getClass().getName();
+    protected Map portalConfigurations = new HashMap();
+    
+    final protected static String KEY = PortalServiceImpl.class.getName();
     
     /* (non-Javadoc)
      * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
@@ -73,11 +75,11 @@
 
     protected PortalServiceInfo getInfo() {
         final Request request = ContextHelper.getRequest( this.context );
-        PortalServiceInfo info = (PortalServiceInfo) request.getAttribute(this.key, Request.GLOBAL_SCOPE);
+        PortalServiceInfo info = (PortalServiceInfo) request.getAttribute(KEY, Request.GLOBAL_SCOPE);
         if ( info == null ) {
             info = new PortalServiceInfo();
             info.setup(ContextHelper.getObjectModel(this.context), this.portalComponentManagers);
-            request.setAttribute(this.key, info, Request.GLOBAL_SCOPE);
+            request.setAttribute(KEY, info, Request.GLOBAL_SCOPE);
         }
         return info;
     }
@@ -145,6 +147,7 @@
             ContainerUtil.dispose( i.next() );
         }
         this.portalComponentManagers.clear();       
+        this.portalConfigurations.clear();
     }
 
     /* (non-Javadoc)
@@ -163,6 +166,8 @@
                 ContainerUtil.service( c, this.manager );
                 ContainerUtil.configure( c, current );
                 ContainerUtil.initialize( c );
+                
+                this.portalConfigurations.put( name, current );
             } catch (Exception e) {
                 throw new ConfigurationException("Unable to setup new portal component manager for portal " + name, e);
             }
@@ -175,7 +180,7 @@
      */
     public void setEntryLayout(String layoutKey, Layout object) {
         if ( layoutKey == null ) {
-            layoutKey = this.getComponentManager().getProfileManager().getDefaultLayoutKey();
+            layoutKey = this.getDefaultLayoutKey();
         }
         if ( object == null ) {
             this.removeTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey);
@@ -189,9 +194,35 @@
      */
     public Layout getEntryLayout(String layoutKey) {
         if ( layoutKey == null ) {
-            layoutKey = this.getComponentManager().getProfileManager().getDefaultLayoutKey();
+            layoutKey = this.getDefaultLayoutKey();
         }
         return (Layout)this.getTemporaryAttribute("DEFAULT_LAYOUT:" + layoutKey);
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.cocoon.portal.PortalService#setDefaultLayoutKey(java.lang.String)
+     */
+    public void setDefaultLayoutKey(String layoutKey) {
+        if ( layoutKey == null ) {
+            this.removeAttribute("default-layout-key");
+        } else {
+            this.setAttribute("default-layout-key", layoutKey);
+        }
+    }
+    
+    /* (non-Javadoc)
+     * @see org.apache.cocoon.portal.PortalService#getDefaultLayoutKey()
+     */
+    public String getDefaultLayoutKey() {
+        String key = (String)this.getAttribute("default-layout-key");
+        if ( key == null ) {
+            Configuration config = (Configuration)this.portalConfigurations.get(this.getPortalName());
+            key = config.getAttribute("default-layout-key", "portal");
+            if ( key != null ) {
+                this.setDefaultLayoutKey(key);
+            }
+        }
+        return key;
     }
 
     

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 07:25:18 2004
@@ -49,16 +49,6 @@
      */
 	Layout getPortalLayout(String layoutKey, String layoutID);
     
-    /**
-     * Change the default layout key for most functions
-     */
-    void setDefaultLayoutKey(String layoutKey);
-    
-    /**
-     * Get the default layout key
-     */
-    String getDefaultLayoutKey();
-    
     CopletInstanceData getCopletInstanceData(String copletID);
     
     List getCopletInstanceData(CopletData data);

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 07:25:18 2004
@@ -15,16 +15,11 @@
  */
 package org.apache.cocoon.portal.profile.impl;
 
-import org.apache.avalon.framework.CascadingRuntimeException;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.avalon.framework.service.Serviceable;
 import org.apache.avalon.framework.thread.ThreadSafe;
-import org.apache.cocoon.portal.PortalService;
 import org.apache.cocoon.portal.coplet.CopletInstanceData;
 import org.apache.cocoon.portal.layout.Layout;
 import org.apache.cocoon.portal.profile.ProfileManager;
@@ -38,9 +33,7 @@
  */
 public abstract class AbstractProfileManager 
     extends AbstractLogEnabled 
-    implements Serviceable, Configurable, ProfileManager, ThreadSafe {
-
-    protected String defaultLayoutKey;
+    implements Serviceable, ProfileManager, ThreadSafe {
 
     protected ServiceManager manager;
 
@@ -87,47 +80,6 @@
     }
 
     /* (non-Javadoc)
-     * @see org.apache.cocoon.portal.profile.ProfileManager#setDefaultLayoutKey(java.lang.String)
-     */
-    public void setDefaultLayoutKey(String layoutKey) {
-        PortalService service = null;
-        try {
-            service = (PortalService)this.manager.lookup(PortalService.ROLE);
-            if ( layoutKey == null ) {
-                service.removeAttribute("default-layout-key");
-            } else {
-                service.setAttribute("default-layout-key", layoutKey);
-            }
-        } catch (ServiceException ce) {
-            // this should never happen
-            throw new CascadingRuntimeException("Unable to lookup portal service.", ce);
-        } finally {
-            this.manager.release(service);
-        }
-    }
-    
-    /* (non-Javadoc)
-     * @see org.apache.cocoon.portal.profile.ProfileManager#getDefaultLayoutKey()
-     */
-    public String getDefaultLayoutKey() {
-        PortalService service = null;
-        try {
-            service = (PortalService)this.manager.lookup(PortalService.ROLE);
-            String defaultLayoutKey = (String)service.getAttribute("default-layout-key");
-            if ( defaultLayoutKey == null ) {
-                return this.defaultLayoutKey;
-            }
-            return defaultLayoutKey;
-        } catch (ServiceException ce) {
-            // this should never happen
-            throw new CascadingRuntimeException("Unable to lookup portal service.", ce);
-        } finally {
-            this.manager.release(service);
-        }
-        
-    }
-
-    /* (non-Javadoc)
      * @see org.apache.cocoon.portal.profile.ProfileManager#login()
      */
     public void login() {
@@ -139,15 +91,6 @@
      */
     public void logout() {
         // overwrite in subclass
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
-     */
-    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)

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 07:25:18 2004
@@ -61,10 +61,10 @@
      * @see org.apache.cocoon.portal.profile.ProfileManager#logout()
      */
     public void logout() {
-        final String layoutKey = this.getDefaultLayoutKey();
         PortalService service = null;
         ServiceSelector adapterSelector = null;
         try {
+            final String layoutKey = service.getDefaultLayoutKey();
             adapterSelector = (ServiceSelector)this.manager.lookup(CopletAdapter.ROLE+"Selector");
             service = (PortalService)this.manager.lookup(PortalService.ROLE);
 
@@ -146,11 +146,11 @@
      * @see org.apache.cocoon.portal.profile.ProfileManager#getCopletInstanceData(java.lang.String)
      */
     public CopletInstanceData getCopletInstanceData(String copletID) {
-        String layoutKey = this.getDefaultLayoutKey();
         PortalService service = null;
         String attribute = null;
         try {
             service = (PortalService) this.manager.lookup(PortalService.ROLE);
+            final String layoutKey = service.getDefaultLayoutKey();
 
 			attribute = "CopletInstanceData:"+layoutKey;
 			CopletInstanceDataManager copletInstanceDataManager = (CopletInstanceDataManager)service.getAttribute(attribute);
@@ -167,11 +167,11 @@
      * @see org.apache.cocoon.portal.profile.ProfileManager#getCopletData(java.lang.String)
      */
     public CopletData getCopletData(String copletDataId) {
-        String layoutKey = this.getDefaultLayoutKey();
         PortalService service = null;
         String attribute = null;
         try {
             service = (PortalService) this.manager.lookup(PortalService.ROLE);
+            final String layoutKey = service.getDefaultLayoutKey();
 
             attribute = "CopletInstanceData:"+layoutKey;
             CopletInstanceDataManager copletInstanceDataManager = (CopletInstanceDataManager)service.getAttribute(attribute);
@@ -198,12 +198,12 @@
      * @see org.apache.cocoon.portal.profile.ProfileManager#getCopletInstanceData(org.apache.cocoon.portal.coplet.CopletData)
      */
     public List getCopletInstanceData(CopletData data) {
-        String layoutKey = this.getDefaultLayoutKey();
         List coplets = new ArrayList();
         PortalService service = null;
         String attribute = null;
         try {
             service = (PortalService) this.manager.lookup(PortalService.ROLE);
+            final String layoutKey = service.getDefaultLayoutKey();
 
             attribute = "CopletInstanceData:" + layoutKey;
             CopletInstanceDataManager copletInstanceDataManager = (CopletInstanceDataManager)service.getAttribute(attribute);
@@ -227,11 +227,11 @@
      * @see org.apache.cocoon.portal.profile.ProfileManager#register(org.apache.cocoon.portal.coplet.CopletInstanceData)
      */
     public void register(CopletInstanceData coplet) {
-        String layoutKey = this.getDefaultLayoutKey();
         PortalService service = null;
         String attribute = null;
         try {
             service = (PortalService) this.manager.lookup(PortalService.ROLE);
+            final String layoutKey = service.getDefaultLayoutKey();
 
             attribute = "CopletInstanceData:" + layoutKey;
             CopletInstanceDataManager copletInstanceDataManager = (CopletInstanceDataManager)service.getAttribute(attribute);
@@ -249,11 +249,11 @@
      * @see org.apache.cocoon.portal.profile.ProfileManager#unregister(org.apache.cocoon.portal.coplet.CopletInstanceData)
      */
     public void unregister(CopletInstanceData coplet) {
-        String layoutKey = this.getDefaultLayoutKey();
         PortalService service = null;
         String attribute = null;
         try {
             service = (PortalService) this.manager.lookup(PortalService.ROLE);
+            final String layoutKey = service.getDefaultLayoutKey();
 
             attribute = "CopletInstanceData:" + layoutKey;
             CopletInstanceDataManager copletInstanceDataManager = (CopletInstanceDataManager)service.getAttribute(attribute);
@@ -267,11 +267,14 @@
         }
     }
 
+    /* (non-Javadoc)
+     * @see org.apache.cocoon.portal.profile.ProfileManager#register(org.apache.cocoon.portal.layout.Layout)
+     */
     public void register(Layout layout) {
-        String layoutKey = this.getDefaultLayoutKey();
         PortalService service = null;
         try {
             service = (PortalService) this.manager.lookup(PortalService.ROLE);
+            final String layoutKey = service.getDefaultLayoutKey();
 
             Map layoutMap = (Map)service.getAttribute("Layout-Map:" + layoutKey);
             if ( layoutMap == null ) {
@@ -294,11 +297,14 @@
         }
     }
     
+    /* (non-Javadoc)
+     * @see org.apache.cocoon.portal.profile.ProfileManager#unregister(org.apache.cocoon.portal.layout.Layout)
+     */
     public void unregister(Layout layout) {
-        String layoutKey = this.getDefaultLayoutKey();
         PortalService service = null;
         try {
             service = (PortalService) this.manager.lookup(PortalService.ROLE);
+            final String layoutKey = service.getDefaultLayoutKey();
 
             Map layoutMap = (Map)service.getAttribute("Layout-Map:" + layoutKey);
             
@@ -328,7 +334,7 @@
             adapterSelector = (ServiceSelector)this.manager.lookup(CopletAdapter.ROLE+"Selector");
             
             if ( null == layoutKey ) {
-                layoutKey = this.getDefaultLayoutKey();
+                layoutKey = service.getDefaultLayoutKey();
             }
             
             final String layoutAttributeKey = "Layout:" + layoutKey;
@@ -375,10 +381,10 @@
      * @see org.apache.cocoon.portal.profile.ProfileManager#getCopletDatas()
      */
     public Collection getCopletDatas() {
-        final String layoutKey = this.getDefaultLayoutKey();
         PortalService service = null;
         try {
             service = (PortalService) this.manager.lookup(PortalService.ROLE);
+            final String layoutKey = service.getDefaultLayoutKey();
             CopletDataManager manager = (CopletDataManager)service.getAttribute("CopletData:" + layoutKey);
             return manager.getCopletData().values();
         } catch (Exception e) {
@@ -392,10 +398,10 @@
      * @see org.apache.cocoon.portal.profile.ProfileManager#getCopletInstanceDatas()
      */
     public Collection getCopletInstanceDatas() {
-        final String layoutKey = this.getDefaultLayoutKey();
         PortalService service = null;
         try {
             service = (PortalService) this.manager.lookup(PortalService.ROLE);
+            final String layoutKey = service.getDefaultLayoutKey();
             CopletInstanceDataManager manager = (CopletInstanceDataManager)service.getAttribute("CopletInstanceData:" + layoutKey);
             return manager.getCopletInstanceData().values();
         } catch (Exception e) {

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 07:25:18 2004
@@ -148,14 +148,14 @@
     }
     
     public void saveUserProfiles(String layoutKey) {
-        if ( layoutKey == null ) {
-            layoutKey = this.getDefaultLayoutKey();
-        }
 		ProfileLS adapter = null;
 		PortalService service = null;
 		try {
 			adapter = (ProfileLS) this.manager.lookup(ProfileLS.ROLE);
 			service = (PortalService) this.manager.lookup(PortalService.ROLE);
+            if ( layoutKey == null ) {
+                layoutKey = service.getDefaultLayoutKey();
+            }
             
             RequestState state = this.getRequestState();
             UserHandler handler = state.getHandler();

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 07:25:18 2004
@@ -77,12 +77,12 @@
     protected Map copletDatas;
     
     protected UserProfile getUserProfile(String layoutKey) {
-        if ( layoutKey == null ) {
-            layoutKey = this.getDefaultLayoutKey();
-        }
         PortalService service = null;
         try {
             service = (PortalService)this.manager.lookup(PortalService.ROLE);
+            if ( layoutKey == null ) {
+                layoutKey = service.getDefaultLayoutKey();
+            }
 
             return (UserProfile)service.getAttribute(KEY_PREFIX + layoutKey);
         } catch (ServiceException e) {
@@ -95,10 +95,10 @@
     
     protected void removeUserProfiles() {
         // TODO: remove all profiles - we have to rememember all used layout keys
-        String layoutKey = this.getDefaultLayoutKey();
         PortalService service = null;
         try {
             service = (PortalService)this.manager.lookup(PortalService.ROLE);
+            final String layoutKey = service.getDefaultLayoutKey();
 
             service.removeAttribute(KEY_PREFIX + layoutKey);
         } catch (ServiceException e) {
@@ -111,7 +111,7 @@
 
     protected void storeUserProfile(String layoutKey, PortalService service, UserProfile profile) {
         if ( layoutKey == null ) {
-            layoutKey = this.getDefaultLayoutKey();
+            layoutKey = service.getDefaultLayoutKey();
         }
         service.setAttribute(KEY_PREFIX + layoutKey, profile);
     }
@@ -289,7 +289,7 @@
         try {
             service = (PortalService) this.manager.lookup(PortalService.ROLE);
             if ( null == layoutKey ) {
-                layoutKey = this.getDefaultLayoutKey();
+                layoutKey = service.getDefaultLayoutKey();
             }
             
             UserProfile profile = this.getUserProfile(layoutKey);

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 07:25:18 2004
@@ -47,8 +47,10 @@
  * 
  * @version CVS $Id$
  */
-public class StaticProfileManager extends AbstractProfileManager implements Configurable
-{
+public class StaticProfileManager 
+extends AbstractProfileManager 
+implements Configurable {
+    
     protected String profilesPath;
 
     protected StaticBucketMap copletInstanceDataManagers = new StaticBucketMap();
@@ -66,7 +68,7 @@
             service = (PortalService) this.manager.lookup(PortalService.ROLE);
 
             if (layoutKey == null) {
-                layoutKey = getDefaultLayoutKey();
+                layoutKey = service.getDefaultLayoutKey();
             }
 
             String serviceKey = LAYOUTKEY_PREFIX + layoutKey;
@@ -329,7 +331,6 @@
      */
     public void configure(Configuration configuration) 
     throws ConfigurationException {
-        super.configure(configuration);
         Configuration child = configuration.getChild("profiles-path");
         this.profilesPath = child.getValue("cocoon:/profiles");
     }