Author: cziegeler Date: Fri Oct 27 12:41:47 2006 New Revision: 468510 URL: http://svn.apache.org/viewvc?view=rev&rev=468510 Log: Continue profile handling cleanup Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/acting/SaveAction.java cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/PortalUser.java cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileManager.java cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractPortalUser.java cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/scratchpad/Profile.java cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/scratchpad/ProfileImpl.java cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/UserService.java cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultUserService.java cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/TestProfileManager.java Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/acting/SaveAction.java URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/acting/SaveAction.java?view=diff&rev=468510&r1=468509&r2=468510 ============================================================================== --- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/acting/SaveAction.java (original) +++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/acting/SaveAction.java Fri Oct 27 12:41:47 2006 @@ -43,7 +43,7 @@ this.getLogger().debug("Portal Save Action called."); } - this.portalService.getProfileManager().saveUserProfiles(null); + this.portalService.getProfileManager().saveUserProfiles(); return EMPTY_MAP; } Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/PortalUser.java URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/PortalUser.java?view=diff&rev=468510&r1=468509&r2=468510 ============================================================================== --- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/PortalUser.java (original) +++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/om/PortalUser.java Fri Oct 27 12:41:47 2006 @@ -79,8 +79,8 @@ String getAuthType(); /** - * Return the default layout key for this user. - * @return The default layout key or null if the portal wide default should be used. + * Return the default profile name for this user. + * @return The default profile name or null if the portal wide default should be used. */ - String getDefaultLayoutKey(); + String getDefaultProfileName(); } Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileManager.java URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileManager.java?view=diff&rev=468510&r1=468509&r2=468510 ============================================================================== --- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileManager.java (original) +++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileManager.java Fri Oct 27 12:41:47 2006 @@ -65,12 +65,10 @@ CopletDefinition getCopletDefinition(String copletDataId); /** - * Save the profile. Usually this just calls {@link #saveUserCopletInstanceDatas(String)} - * and {@link #saveUserLayout(String)}, but implementations are free to - * implement this method in a different way. - * @param layoutKey + * Save the user profile. + * This saves the curent user profile. It usually saves the layout and coplet instances. */ - void saveUserProfiles(String profileName); + void saveUserProfiles(); /** * Get all coplet instances for the current user. Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractPortalUser.java URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractPortalUser.java?view=diff&rev=468510&r1=468509&r2=468510 ============================================================================== --- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractPortalUser.java (original) +++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractPortalUser.java Fri Oct 27 12:41:47 2006 @@ -124,9 +124,9 @@ } /** - * @see org.apache.cocoon.portal.om.PortalUser#getDefaultLayoutKey() + * @see org.apache.cocoon.portal.om.PortalUser#getDefaultProfileName() */ - public String getDefaultLayoutKey() { + public String getDefaultProfileName() { return null; } Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java?view=diff&rev=468510&r1=468509&r2=468510 ============================================================================== --- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java (original) +++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java Fri Oct 27 12:41:47 2006 @@ -100,24 +100,9 @@ } /** - * @see org.apache.cocoon.portal.profile.ProfileManager#saveUserProfiles(String) + * @see org.apache.cocoon.portal.profile.ProfileManager#saveUserProfiles() */ - public void saveUserProfiles(String layoutKey) { - this.saveUserCopletInstanceDatas(layoutKey); - this.saveUserLayout(layoutKey); - } - - /** - * @see org.apache.cocoon.portal.profile.ProfileManager#saveUserCopletInstanceDatas(java.lang.String) - */ - public void saveUserCopletInstanceDatas(String layoutKey) { - // override in subclass - } - - /** - * @see org.apache.cocoon.portal.profile.ProfileManager#saveUserLayout(String) - */ - public void saveUserLayout(String layoutKey) { + public void saveUserProfiles() { // override in subclass } Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java?view=diff&rev=468510&r1=468509&r2=468510 ============================================================================== --- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java (original) +++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java Fri Oct 27 12:41:47 2006 @@ -130,26 +130,16 @@ this.loader = (ProfileLS)this.manager.lookup(ProfileLS.ROLE); } - protected ProfileImpl getUserProfile(String layoutKey) { - if ( layoutKey == null ) { - layoutKey = this.portalService.getUserService().getDefaultLayoutKey(); - } - - return (ProfileImpl)this.portalService.getUserService().getAttribute(KEY_PREFIX + layoutKey); + protected ProfileImpl getUserProfile() { + return (ProfileImpl)this.portalService.getUserService().getAttribute(KEY_PREFIX + "profile"); } protected void removeUserProfiles() { - // TODO: remove all profiles - we have to rememember all used layout keys - final String layoutKey = this.portalService.getUserService().getDefaultLayoutKey(); - - this.portalService.getUserService().removeAttribute(KEY_PREFIX + layoutKey); + this.portalService.getUserService().removeAttribute(KEY_PREFIX + "profile"); } - protected void storeUserProfile(String layoutKey, Profile profile) { - if ( layoutKey == null ) { - layoutKey = this.portalService.getUserService().getDefaultLayoutKey(); - } - this.portalService.getUserService().setAttribute(KEY_PREFIX + layoutKey, profile); + protected void storeUserProfile(Profile profile) { + this.portalService.getUserService().setAttribute(KEY_PREFIX + "profile", profile); } /** @@ -166,7 +156,7 @@ * @see org.apache.cocoon.portal.profile.impl.AbstractProfileManager#logout(org.apache.cocoon.portal.om.PortalUser) */ protected void logout(PortalUser user) { - final Profile profile = this.getUserProfile(null); + final Profile profile = this.getUserProfile(); if ( profile != null ) { Iterator iter = profile.getCopletInstances().iterator(); @@ -185,7 +175,7 @@ * @see org.apache.cocoon.portal.profile.ProfileManager#getCopletInstance(java.lang.String) */ public CopletInstance getCopletInstance(String copletID) { - final Profile profile = this.getUserProfile(null); + final Profile profile = this.getUserProfile(); if ( profile != null ) { return profile.searchCopletInstance(copletID); } @@ -196,7 +186,7 @@ * @see org.apache.cocoon.portal.profile.ProfileManager#getCopletDefinition(java.lang.String) */ public CopletDefinition getCopletDefinition(String copletDataId) { - final ProfileImpl profile = this.getUserProfile(null); + final ProfileImpl profile = this.getUserProfile(); if ( profile != null ) { return profile.searchCopletDefinition(copletDataId); } @@ -207,7 +197,7 @@ * @see org.apache.cocoon.portal.profile.ProfileManager#getCopletInstances(org.apache.cocoon.portal.om.CopletDefinition) */ public List getCopletInstances(CopletDefinition data) { - final Profile profile = this.getUserProfile(null); + final Profile profile = this.getUserProfile(); if ( profile != null ) { final List coplets = new ArrayList(); final Iterator iter = profile.getCopletInstances().iterator(); @@ -227,7 +217,7 @@ * @see Receiver */ public void inform(CopletInstanceAddedEvent event) { - final ProfileImpl profile = this.getUserProfile(null); + final ProfileImpl profile = this.getUserProfile(); profile.add(event.getTarget()); } @@ -247,7 +237,7 @@ * @see Receiver */ public void inform(CopletInstanceRemovedEvent event) { - final ProfileImpl profile = this.getUserProfile(null); + final ProfileImpl profile = this.getUserProfile(); profile.remove(event.getTarget()); } @@ -256,7 +246,7 @@ * @see Receiver */ public void inform(LayoutAddedEvent event) { - final ProfileImpl profile = this.getUserProfile(null); + final ProfileImpl profile = this.getUserProfile(); profile.add(event.getTarget()); } @@ -265,7 +255,7 @@ * @see Receiver */ public void inform(LayoutInstanceAddedEvent event) { - final ProfileImpl profile = this.getUserProfile(null); + final ProfileImpl profile = this.getUserProfile(); profile.add(event.getTarget()); } @@ -274,35 +264,32 @@ * @see Receiver */ public void inform(LayoutRemovedEvent event) { - final ProfileImpl profile = this.getUserProfile(null); + final ProfileImpl profile = this.getUserProfile(); profile.remove(event.getTarget()); } + /** + * @see org.apache.cocoon.portal.profile.ProfileManager#getLayout(java.lang.String) + */ public Layout getLayout(String layoutId) { - final String layoutKey = this.portalService.getUserService().getDefaultLayoutKey(); - - Profile profile = this.getUserProfile(layoutKey); + Profile profile = this.getUserProfile(); if ( profile == null ) { - try { - profile = this.loadProfile(layoutKey); - } catch (Exception e) { - throw new ProfileException("Unable to load profile: " + layoutKey, e); - } + profile = this.loadProfile(); } if ( profile == null ) { - throw new ProfileException("Unable to load profile: " + layoutKey); + throw new ProfileException("Unable to get standard profile with layout key '" + this.portalService.getUserService().getDefaultProfileName() + "' for user " + this.portalService.getUserService().getUser()); } if ( layoutId != null ) { return profile.searchLayout(layoutId); } return profile.getRootLayout(); } - + /** * @see org.apache.cocoon.portal.profile.ProfileManager#getCopletDefinitions() */ public Collection getCopletDefinitions() { - final ProfileImpl profile = this.getUserProfile(null); + final ProfileImpl profile = this.getUserProfile(); if ( profile != null ) { return profile.getCopletDefinitions(); } @@ -313,7 +300,7 @@ * @see org.apache.cocoon.portal.profile.ProfileManager#getCopletInstances() */ public Collection getCopletInstances() { - final Profile profile = this.getUserProfile(null); + final Profile profile = this.getUserProfile(); if ( profile != null ) { return profile.getCopletInstances(); } @@ -321,40 +308,48 @@ } /** - * Load the profile - */ - protected Profile loadProfile(final String layoutKey) - throws Exception { - final PortalUser info = this.portalService.getUserService().getUser(); - ProfileImpl profile = new ProfileImpl(layoutKey); + * Load the profile. + * This loads the profile for the current user. First the default profile is read. This might + * contain links to other profiles which are then loaded recursively. + */ + protected Profile loadProfile() + throws ProfileException { + final String layoutKey = this.portalService.getUserService().getDefaultProfileName(); + final PortalUser user = this.portalService.getUserService().getUser(); + ProfileImpl profile = new ProfileImpl(); - // first "load" the global data - profile.setCopletTypes( this.getGlobalCopletTypes(layoutKey) ); - profile.setCopletDefinitions( this.getGlobalDatas(info, profile, layoutKey) ); - - // now load the user/group specific data - if ( !this.getCopletInstanceDatas(profile, info, CATEGORY_USER, layoutKey) ) { - if ( info.getGroups().size() == 0 || !this.getCopletInstanceDatas(profile, info, CATEGORY_GROUP, layoutKey)) { - if ( !this.getCopletInstanceDatas(profile, info, CATEGORY_GLOBAL, layoutKey) ) { - throw new ProcessingException("No profile for copletinstancedatas found."); + try { + // first "load" the global data + profile.setCopletTypes( this.getGlobalCopletTypes(layoutKey) ); + profile.setCopletDefinitions( this.getGlobalDatas(user, profile, layoutKey) ); + + // now load the user/group specific data + if ( !this.getCopletInstanceDatas(profile, user, CATEGORY_USER, layoutKey) ) { + if ( user.getGroups().size() == 0 || !this.getCopletInstanceDatas(profile, user, CATEGORY_GROUP, layoutKey)) { + if ( !this.getCopletInstanceDatas(profile, user, CATEGORY_GLOBAL, layoutKey) ) { + throw new ProcessingException("No profile for copletinstancedatas found."); + } } } - } - if ( !this.getLayout(profile, info, CATEGORY_USER, layoutKey) ) { - if ( info.getGroups().size() == 0 || !this.getLayout(profile, info, CATEGORY_GROUP, layoutKey)) { - if ( !this.getLayout(profile, info, CATEGORY_GLOBAL, layoutKey) ) { - throw new ProcessingException("No profile for layout found."); + if ( !this.getLayout(profile, user, CATEGORY_USER, layoutKey) ) { + if ( user.getGroups().size() == 0 || !this.getLayout(profile, user, CATEGORY_GROUP, layoutKey)) { + if ( !this.getLayout(profile, user, CATEGORY_GLOBAL, layoutKey) ) { + throw new ProcessingException("No profile for layout found."); + } } } + } catch (ProfileException e) { + throw e; + } catch (Exception e) { + throw new ProfileException("Unable to load profile '" + layoutKey + "' for user " + user + ".", e); } - final Profile processedProfile = this.processProfile(profile); - this.storeUserProfile(layoutKey, processedProfile); + this.storeUserProfile(processedProfile); return processedProfile; } - protected Map getGlobalCopletTypes(final String layoutKey) + protected Map getGlobalCopletTypes(final String profileName) throws Exception { // if we already have loaded the profile and don't check // for changes, just return the profile @@ -366,7 +361,7 @@ ProfileLS.PROFILETYPE_COPLETTYPE, null, true, - layoutKey); + profileName); SourceValidity newValidity = null; // if we have a profile, check for reloading @@ -459,7 +454,8 @@ } } - private boolean isSourceNotFoundException(Throwable t) { + private boolean isSourceNotFoundException(Throwable e) { + Throwable t = e; while (t != null) { if (t instanceof SourceNotFoundException) { return true; @@ -521,8 +517,11 @@ String profileType, PortalUser info, boolean load, - String layoutKey) + String profileName) throws ParameterException { + if ( profileName == null ) { + profileName = this.portalService.getUserService().getDefaultProfileName(); + } final StringBuffer config = new StringBuffer(profileType); config.append('-'); config.append(category); @@ -538,7 +537,7 @@ key.put("baseuri", uri); key.put("separator", "?"); key.put("portal", this.portalService.getPortalName()); - key.put("layout", layoutKey); + key.put("layout", profileName); key.put("type", category); if ( CATEGORY_GROUP.equals(category) ) { // TODO Groups is a collection! @@ -552,19 +551,21 @@ } /** - * @see org.apache.cocoon.portal.profile.impl.AbstractProfileManager#saveUserCopletInstanceDatas(java.lang.String) + * @see org.apache.cocoon.portal.profile.ProfileManager#saveUserProfiles() */ - public void saveUserCopletInstanceDatas(String layoutKey) { + public void saveUserProfiles() { + this.saveCopletInstances(); + this.saveLayoutInstances(); + } + + protected void saveCopletInstances() { try { - if (layoutKey == null) { - layoutKey = this.portalService.getUserService().getDefaultLayoutKey(); - } - final ProfileImpl profile = this.getUserProfile(layoutKey); + final ProfileImpl profile = this.getUserProfile(); final Map key = this.buildKey(CATEGORY_USER, ProfileLS.PROFILETYPE_COPLETINSTANCE, this.portalService.getUserService().getUser(), false, - layoutKey); + null); this.loader.saveProfile(key, ProfileLS.PROFILETYPE_COPLETINSTANCE, profile.getCopletInstances()); } catch (Exception e) { // TODO @@ -575,18 +576,15 @@ /** * @see org.apache.cocoon.portal.profile.impl.AbstractProfileManager#saveUserLayout(java.lang.String) */ - public void saveUserLayout(String layoutKey) { + public void saveLayoutInstances() { try { - if (layoutKey == null) { - layoutKey = this.portalService.getUserService().getDefaultLayoutKey(); - } - final Profile profile = this.getUserProfile(layoutKey); + final Profile profile = this.getUserProfile(); final Map key = this.buildKey(CATEGORY_USER, - ProfileLS.PROFILETYPE_LAYOUT, + ProfileLS.PROFILETYPE_LAYOUTINSTANCE, this.portalService.getUserService().getUser(), false, - layoutKey); - this.loader.saveProfile(key, ProfileLS.PROFILETYPE_LAYOUT, profile.getRootLayout()); + null); + this.loader.saveProfile(key, ProfileLS.PROFILETYPE_LAYOUTINSTANCE, profile.getRootLayout()); } catch (Exception e) { // TODO throw new ProfileException("Exception during save profile", e); @@ -610,7 +608,7 @@ if ( this.copletTypes.objects == null ) { try { // first "load" the global data - this.getGlobalCopletTypes(this.portalService.getUserService().getDefaultLayoutKey()); + this.getGlobalCopletTypes(this.portalService.getUserService().getDefaultProfileName()); } catch (Exception e) { throw new ProfileException("Unable to load global base datas.", e); } @@ -623,7 +621,7 @@ */ public LayoutInstance getLayoutInstance(Layout layout) { LayoutInstance result = null; - final Profile profile = this.getUserProfile(null); + final Profile profile = this.getUserProfile(); if ( profile != null ) { result = profile.searchLayoutInstance(layout); } Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java?view=diff&rev=468510&r1=468509&r2=468510 ============================================================================== --- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java (original) +++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java Fri Oct 27 12:41:47 2006 @@ -62,7 +62,7 @@ public Layout getLayout(String layoutID) { ProfileLS adapter = null; try { - final String layoutKey = this.portalService.getUserService().getDefaultLayoutKey(); + final String layoutKey = this.portalService.getUserService().getDefaultProfileName(); String serviceKey = LAYOUTKEY_PREFIX + layoutKey; Object[] objects = (Object[]) this.portalService.getUserService().getAttribute(serviceKey); Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/scratchpad/Profile.java URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/scratchpad/Profile.java?view=diff&rev=468510&r1=468509&r2=468510 ============================================================================== --- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/scratchpad/Profile.java (original) +++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/scratchpad/Profile.java Fri Oct 27 12:41:47 2006 @@ -32,8 +32,6 @@ */ public interface Profile { - String getProfileName(); - Collection getCopletInstances(); Collection getLayoutObjects(); Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/scratchpad/ProfileImpl.java URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/scratchpad/ProfileImpl.java?view=diff&rev=468510&r1=468509&r2=468510 ============================================================================== --- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/scratchpad/ProfileImpl.java (original) +++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/scratchpad/ProfileImpl.java Fri Oct 27 12:41:47 2006 @@ -40,9 +40,6 @@ */ public class ProfileImpl implements Profile { - /** The name (unique key) of this profile. */ - protected final String profileName; - /** A map of all coplet types. */ protected Map copletTypes; @@ -64,10 +61,6 @@ /** The root element of the layout. */ protected Layout rootLayout; - public ProfileImpl(String profileName) { - this.profileName = profileName; - } - /** * Set the root layout for this profile. */ @@ -126,13 +119,6 @@ */ public Collection getLayoutObjects() { return this.layouts; - } - - /** - * @see org.apache.cocoon.portal.scratchpad.Profile#getProfileName() - */ - public String getProfileName() { - return this.profileName; } /** Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/UserService.java URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/UserService.java?view=diff&rev=468510&r1=468509&r2=468510 ============================================================================== --- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/UserService.java (original) +++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/UserService.java Fri Oct 27 12:41:47 2006 @@ -87,7 +87,7 @@ Collection getTemporaryAttributeNames(); /** - * Return the default layout key for the specific user. + * Return the default profile name for the current user. */ - String getDefaultLayoutKey(); + String getDefaultProfileName(); } Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultUserService.java URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultUserService.java?view=diff&rev=468510&r1=468509&r2=468510 ============================================================================== --- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultUserService.java (original) +++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/DefaultUserService.java Fri Oct 27 12:41:47 2006 @@ -45,8 +45,8 @@ /** The attribute prefix used to prefix attributes in the session and request. */ protected String attributeName; - /** The default layout key. */ - protected String defaultLayoutKey; + /** The default profile name. */ + protected String defaultProfileName; /** * @see org.apache.cocoon.portal.impl.AbstractComponent#initialize() @@ -54,7 +54,8 @@ public void initialize() throws Exception { super.initialize(); this.attributeName = DefaultUserService.class.getName() + '/' + this.portalService.getPortalName(); - this.defaultLayoutKey = this.portalService.getConfiguration("default-layout-key", "portal"); + // FIXME - We should use a better default than 'portal' + this.defaultProfileName = this.portalService.getConfiguration("default-profile-name", "portal"); } /** @@ -208,12 +209,12 @@ } /** - * @see org.apache.cocoon.portal.services.UserService#getDefaultLayoutKey() + * @see org.apache.cocoon.portal.services.UserService#getDefaultProfileName() */ - public String getDefaultLayoutKey() { - String key = this.getUser().getDefaultLayoutKey(); + public String getDefaultProfileName() { + String key = this.getUser().getDefaultProfileName(); if ( key == null ) { - return this.defaultLayoutKey; + return this.defaultProfileName; } return key; } Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/TestProfileManager.java URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/TestProfileManager.java?view=diff&rev=468510&r1=468509&r2=468510 ============================================================================== --- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/TestProfileManager.java (original) +++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/TestProfileManager.java Fri Oct 27 12:41:47 2006 @@ -32,6 +32,7 @@ import org.apache.cocoon.portal.om.CopletLayout; import org.apache.cocoon.portal.om.Item; import org.apache.cocoon.portal.om.PortalUser; +import org.apache.cocoon.portal.profile.ProfileException; import org.apache.cocoon.portal.profile.impl.GroupBasedProfileManager; import org.apache.cocoon.portal.scratchpad.Profile; import org.apache.cocoon.portal.scratchpad.ProfileImpl; @@ -56,63 +57,68 @@ */ public class TestProfileManager extends GroupBasedProfileManager { - protected Profile loadProfile(final String layoutKey) - throws Exception { + protected Profile loadProfile() + throws ProfileException { final PortalUser info = this.portalService.getUserService().getUser(); + final String layoutKey = this.portalService.getUserService().getDefaultProfileName(); if ( info.getUserName().equals("test") ) { - // if the request parameter 'portletName' is available we only - // display the portlets specified with the parameter. Otherwise - // we show all portlets - final List portletNames = new ArrayList(); - final HttpServletRequest r = this.portalService.getProcessInfoProvider().getRequest(); - final String[] values = r.getParameterValues("portletName"); - if ( values != null && values.length > 0 ) { - for(int i=0; i 0 ) { + for(int i=0; i