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 2006/09/05 20:38:46 UTC

svn commit: r440432 - in /cocoon/trunk/blocks/cocoon-portal: cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/ cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/coplet/ cocoon-portal-impl/src/main/java/org/apache/cocoon/por...

Author: cziegeler
Date: Tue Sep  5 11:38:44 2006
New Revision: 440432

URL: http://svn.apache.org/viewvc?view=rev&rev=440432
Log:
Add support for ordered receivers (this fixes the login bug)
Cleanup event hierarchy a little bit

Added:
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutEvent.java
      - copied, changed from r440395, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/AbstractLayoutEvent.java
Removed:
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/LayoutEvent.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/AbstractLayoutEvent.java
Modified:
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/coplet/CopletJXPathEvent.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/JXPathEvent.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutAddedEvent.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutChangeParameterEvent.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutJXPathEvent.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutRemovedEvent.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/RemoveLayoutEvent.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserDidLoginEvent.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserEvent.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserIsAccessingEvent.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserWillLogoutEvent.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/services/impl/DefaultUserService.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/login-html.xsl
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/portal-page.xsl

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/coplet/CopletJXPathEvent.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/coplet/CopletJXPathEvent.java?view=diff&rev=440432&r1=440431&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/coplet/CopletJXPathEvent.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/coplet/CopletJXPathEvent.java Tue Sep  5 11:38:44 2006
@@ -25,18 +25,43 @@
  * @version $Id$
  */
 public class CopletJXPathEvent
-    extends JXPathEvent
-    implements CopletInstanceEvent {
+    implements CopletInstanceEvent, JXPathEvent {
+
+    protected final CopletInstance target;
+    protected final String path;
+    protected final Object value;
 
     public CopletJXPathEvent(CopletInstance target, String path, Object value) {
-        super( target, path, value );
+        this.target = target;
+        this.path = path;
+        this.value = value;
     }
 
     /**
      * @see org.apache.cocoon.portal.event.CopletInstanceEvent#getTarget()
      */
     public CopletInstance getTarget() {
-        return (CopletInstance)this.target;
+        return this.target;
+    }
+
+    /**
+     * @see org.apache.cocoon.portal.event.impl.JXPathEvent#getObject()
+     */
+    public Object getObject() {
+        return this.getTarget();
+    }
+
+    /**
+     * @see org.apache.cocoon.portal.event.impl.JXPathEvent#getPath()
+     */
+    public String getPath() {
+        return this.path;
     }
 
+    /**
+     * @see org.apache.cocoon.portal.event.impl.JXPathEvent#getValue()
+     */
+    public Object getValue() {
+        return this.value;
+    }
 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java?view=diff&rev=440432&r1=440431&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java Tue Sep  5 11:38:44 2006
@@ -18,6 +18,7 @@
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -34,6 +35,8 @@
 import org.apache.cocoon.portal.event.aspect.EventAspect;
 import org.apache.cocoon.portal.impl.AbstractComponent;
 import org.apache.cocoon.portal.services.aspects.support.AspectChain;
+import org.springframework.core.OrderComparator;
+import org.springframework.core.Ordered;
 
 /**
  * This is the default implementation of the event manager.
@@ -48,6 +51,10 @@
  * The simplicity in subscribing and sending of events comes with the drawback that
  * unsubscribing is more costly.
  *
+ * Receivers can implement the {@link Ordered} interface to specify their priority when it
+ * comes to event processing. For example some components need to receive the event first,
+ * as they might be used by other components during event processing.
+ *
  * @version $Id$
  */
 public class DefaultEventManager 
@@ -316,6 +323,7 @@
             }
             if ( !this.receivers.contains(r)) {
                 this.receivers.add(r);
+                Collections.sort(this.receivers, ReceiverInfoComparator.instance);
             }
         }
 
@@ -388,6 +396,19 @@
          */
         public int hashCode() {
             return this.receiver.hashCode() + this.method.hashCode();
+        }
+    }
+
+    protected static final class ReceiverInfoComparator implements Comparator {
+
+        protected static ReceiverInfoComparator instance = new ReceiverInfoComparator();
+        protected OrderComparator orderComparator = new OrderComparator();
+
+        public int compare(Object o1, Object o2) {
+            if ( o1 instanceof ReceiverInfo && o2 instanceof ReceiverInfo ) {
+                return this.orderComparator.compare(((ReceiverInfo)o1).receiver, ((ReceiverInfo)o2).receiver);
+            }
+            return 0;
         }
     }
 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/JXPathEvent.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/JXPathEvent.java?view=diff&rev=440432&r1=440431&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/JXPathEvent.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/impl/JXPathEvent.java Tue Sep  5 11:38:44 2006
@@ -22,38 +22,20 @@
  *
  * @version $Id$
  */
-public abstract class JXPathEvent implements Event {
-
-    protected String path;
-
-    protected Object value;
-
-    protected Object target;
+public interface JXPathEvent extends Event {
 
     /**
      * @return Returns the path.
      */
-    public String getPath() {
-        return path;
-    }
+    String getPath();
 
     /**
      * @return Returns the value.
      */
-    public Object getValue() {
-        return value;
-    }
+    Object getValue();
 
     /**
      * @return Returns the target.
      */
-    public Object getObject() {
-        return this.target;
-    }
-
-    public JXPathEvent(Object target, String path, Object value) {
-        this.target = target;
-        this.path = path;
-        this.value = value;
-    }
+    Object getObject();
 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutAddedEvent.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutAddedEvent.java?view=diff&rev=440432&r1=440431&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutAddedEvent.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutAddedEvent.java Tue Sep  5 11:38:44 2006
@@ -24,7 +24,7 @@
  * @since 2.2
  */
 public class LayoutAddedEvent
-    extends AbstractLayoutEvent {
+    extends LayoutEvent {
 
     public LayoutAddedEvent(Layout target) {
         super(target);

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutChangeParameterEvent.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutChangeParameterEvent.java?view=diff&rev=440432&r1=440431&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutChangeParameterEvent.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutChangeParameterEvent.java Tue Sep  5 11:38:44 2006
@@ -26,7 +26,7 @@
  * @version $Id$
  */
 public class LayoutChangeParameterEvent
-    extends AbstractLayoutEvent
+    extends LayoutEvent
     implements ComparableEvent, ConvertableEvent {
 
     protected String parameterName;

Copied: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutEvent.java (from r440395, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/AbstractLayoutEvent.java)
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutEvent.java?view=diff&rev=440432&p1=cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/AbstractLayoutEvent.java&r1=440395&p2=cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutEvent.java&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/AbstractLayoutEvent.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutEvent.java Tue Sep  5 11:38:44 2006
@@ -1,3 +1,9 @@
+/**
+ * This interface marks an event as targetted at a
+ * {@link org.apache.cocoon.portal.om.Layout} object.
+ *
+ * @version $Id$
+ */
 /*
  * Copyright 2006 The Apache Software Foundation.
  *
@@ -15,15 +21,20 @@
  */
 package org.apache.cocoon.portal.event.layout;
 
-import org.apache.cocoon.portal.event.LayoutEvent;
+import org.apache.cocoon.portal.event.Event;
 import org.apache.cocoon.portal.om.Layout;
 
-public class AbstractLayoutEvent
-    implements LayoutEvent {
+/**
+ * This interface marks an event as targetted at a
+ * {@link org.apache.cocoon.portal.om.Layout} object.
+ *
+ * @version $Id$
+ */
+public abstract class LayoutEvent implements Event {
 
     protected Layout target;
 
-    public AbstractLayoutEvent(Layout target) {
+    public LayoutEvent(Layout target) {
         this.target = target;
     }
 

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutJXPathEvent.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutJXPathEvent.java?view=diff&rev=440432&r1=440431&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutJXPathEvent.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutJXPathEvent.java Tue Sep  5 11:38:44 2006
@@ -15,7 +15,6 @@
  */
 package org.apache.cocoon.portal.event.layout;
 
-import org.apache.cocoon.portal.event.LayoutEvent;
 import org.apache.cocoon.portal.event.impl.JXPathEvent;
 import org.apache.cocoon.portal.om.Layout;
 
@@ -25,17 +24,36 @@
  * @version $Id$
  */
 public class LayoutJXPathEvent
-    extends JXPathEvent
-    implements LayoutEvent {
+    extends LayoutEvent
+    implements JXPathEvent {
+
+    protected final String path;
+    protected final Object value;
 
     public LayoutJXPathEvent(Layout target, String path, Object value) {
-        super( target, path, value );
+        super( target );
+        this.path = path;
+        this.value = value;
+    }
+
+    /**
+     * @see org.apache.cocoon.portal.event.impl.JXPathEvent#getPath()
+     */
+    public String getPath() {
+        return this.path;
+    }
+
+    /**
+     * @see org.apache.cocoon.portal.event.impl.JXPathEvent#getValue()
+     */
+    public Object getValue() {
+        return this.value;
     }
 
     /**
-     * @see org.apache.cocoon.portal.event.LayoutEvent#getTarget()
+     * @see org.apache.cocoon.portal.event.impl.JXPathEvent#getObject()
      */
-    public Layout getTarget() {
-        return (Layout)this.target;
+    public Object getObject() {
+        return this.getTarget();
     }
 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutRemovedEvent.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutRemovedEvent.java?view=diff&rev=440432&r1=440431&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutRemovedEvent.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/LayoutRemovedEvent.java Tue Sep  5 11:38:44 2006
@@ -24,7 +24,7 @@
  * @since 2.2
  */
 public class LayoutRemovedEvent
-    extends AbstractLayoutEvent {
+    extends LayoutEvent {
 
     public LayoutRemovedEvent(Layout target) {
         super(target);

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/RemoveLayoutEvent.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/RemoveLayoutEvent.java?view=diff&rev=440432&r1=440431&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/RemoveLayoutEvent.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/layout/RemoveLayoutEvent.java Tue Sep  5 11:38:44 2006
@@ -27,7 +27,7 @@
  * @version $Id$
  */
 public class RemoveLayoutEvent
-    extends AbstractLayoutEvent
+    extends LayoutEvent
     implements ConvertableEvent {
 
     /**

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserDidLoginEvent.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserDidLoginEvent.java?view=diff&rev=440432&r1=440431&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserDidLoginEvent.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserDidLoginEvent.java Tue Sep  5 11:38:44 2006
@@ -28,4 +28,11 @@
     public UserDidLoginEvent(PortalUser pu) {
         super(pu);
     }
+
+    /**
+     * @see java.lang.Object#toString()
+     */
+    public String toString() {
+        return "UserDidLoginEvent: user=" + this.portalUser;
+    }
 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserEvent.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserEvent.java?view=diff&rev=440432&r1=440431&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserEvent.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserEvent.java Tue Sep  5 11:38:44 2006
@@ -36,4 +36,11 @@
     public PortalUser getPortalUser() {
         return this.portalUser;
     }
+
+    /**
+     * @see java.lang.Object#toString()
+     */
+    public String toString() {
+        return "UserEvent: user=" + this.portalUser;
+    }
 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserIsAccessingEvent.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserIsAccessingEvent.java?view=diff&rev=440432&r1=440431&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserIsAccessingEvent.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserIsAccessingEvent.java Tue Sep  5 11:38:44 2006
@@ -28,4 +28,11 @@
     public UserIsAccessingEvent(PortalUser pu) {
         super(pu);
     }
+
+    /**
+     * @see java.lang.Object#toString()
+     */
+    public String toString() {
+        return "UserIsAccessingEvent: user=" + this.portalUser;
+    }
 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserWillLogoutEvent.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserWillLogoutEvent.java?view=diff&rev=440432&r1=440431&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserWillLogoutEvent.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/user/UserWillLogoutEvent.java Tue Sep  5 11:38:44 2006
@@ -30,4 +30,11 @@
     public UserWillLogoutEvent(PortalUser pu) {
         super(pu);
     }
+
+    /**
+     * @see java.lang.Object#toString()
+     */
+    public String toString() {
+        return "UserWillLogoutEvent: user=" + this.portalUser;
+    }
 }

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=440432&r1=440431&r2=440432
==============================================================================
--- 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 Tue Sep  5 11:38:44 2006
@@ -128,4 +128,11 @@
     public String getDefaultLayoutKey() {
         return null;
     }
+
+    /**
+     * @see java.lang.Object#toString()
+     */
+    public String toString() {
+        return "PortalUser (" + super.toString() + "): name = " + this.getUserName();
+    }
 }

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=440432&r1=440431&r2=440432
==============================================================================
--- 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 Tue Sep  5 11:38:44 2006
@@ -42,6 +42,7 @@
 import org.apache.cocoon.portal.services.aspects.ProfileManagerAspect;
 import org.apache.cocoon.portal.services.aspects.impl.support.ProfileManagerAspectContextImpl;
 import org.apache.cocoon.portal.services.aspects.support.AspectChain;
+import org.springframework.core.Ordered;
 
 /**
  * Base class for all profile managers.
@@ -50,7 +51,7 @@
  */
 public abstract class AbstractProfileManager 
     extends AbstractComponent 
-    implements ProfileManager, Receiver, Configurable {
+    implements ProfileManager, Receiver, Configurable, Ordered {
 
     /** The configuration. */
     protected Configuration configuration;
@@ -224,4 +225,15 @@
         }
         return profile;
     }
+
+    /**
+     * This component should have a high priority (low order) as
+     * other components might access it during event processing.
+     * But the priority must be lower than the priority of the user service!
+     * @see org.springframework.core.Ordered#getOrder()
+     */
+    public int getOrder() {
+        return -1;
+    }
+
 }

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=440432&r1=440431&r2=440432
==============================================================================
--- 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 Tue Sep  5 11:38:44 2006
@@ -28,6 +28,7 @@
 import org.apache.cocoon.portal.impl.AbstractComponent;
 import org.apache.cocoon.portal.om.PortalUser;
 import org.apache.cocoon.portal.services.UserService;
+import org.springframework.core.Ordered;
 
 
 /**
@@ -35,7 +36,7 @@
  */
 public class DefaultUserService
     extends AbstractComponent
-    implements UserService, Receiver {
+    implements UserService, Receiver, Ordered {
 
     /** Attribute to store the current user. */
     protected static final String USER_ATTRIBUTE = DefaultUserService.class.getName() + "/User";
@@ -214,5 +215,14 @@
             return this.defaultLayoutKey;
         }
         return key;
+    }
+
+    /**
+     * This component should have a high priority (low order) as
+     * other components might access it during event processing.
+     * @see org.springframework.core.Ordered#getOrder()
+     */
+    public int getOrder() {
+        return -5;
     }
 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/login-html.xsl
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/login-html.xsl?view=diff&rev=440432&r1=440431&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/login-html.xsl (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/login-html.xsl Tue Sep  5 11:38:44 2006
@@ -50,7 +50,7 @@
   </xsl:template>
 
   <xsl:template match="form">
-    <form method="post" target="_top">
+    <form method="post">
       <xsl:choose>
         <xsl:when test="$resource=''">
           <xsl:attribute name="action"><xsl:value-of select="normalize-space(url)"/>?resource=portal</xsl:attribute>

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/portal-page.xsl
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/portal-page.xsl?view=diff&rev=440432&r1=440431&r2=440432
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/portal-page.xsl (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/skins/modern/styles/portal-page.xsl Tue Sep  5 11:38:44 2006
@@ -39,7 +39,7 @@
               <a href="logout"><img src="{$rsrcprefix}skin/{$skin}/images/logout-door.gif" alt="logo" width="18" height="22" border="0"/></a>
               <a href="logout">Logout</a>
               &#160;
-              <a href="tools/">Tools</a>
+              <!-- a href="tools/">Tools</a -->
             </div>
           </xsl:if>
           <div id="cocoon-portal-header-logo" >