On Wed, Jan 4, 2012 at 8:55 PM,  <papega...@apache.org> wrote:
> Updated Branches:
>  refs/heads/wicket-1.5.x ec53d1b75 -> b01790689
>
>
> WICKET-4212: Add ISessionStore BindListener
>
>
> Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
> Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b0179068
> Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b0179068
> Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b0179068
>
> Branch: refs/heads/wicket-1.5.x
> Commit: b01790689f54327ba755e5250dfe7d15c8059c06
> Parents: eb86ba3
> Author: Emond Papegaaij <papega...@apache.org>
> Authored: Wed Nov 9 15:31:56 2011 +0100
> Committer: Emond Papegaaij <papega...@apache.org>
> Committed: Wed Jan 4 17:56:13 2012 +0100
>
> ----------------------------------------------------------------------
>  .../apache/wicket/session/HttpSessionStore.java    |   34 +++++++++++++
>  .../org/apache/wicket/session/ISessionStore.java   |   38 +++++++++++++++
>  2 files changed, 72 insertions(+), 0 deletions(-)
> ----------------------------------------------------------------------
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/b0179068/wicket-core/src/main/java/org/apache/wicket/session/HttpSessionStore.java
> ----------------------------------------------------------------------
> diff --git 
> a/wicket-core/src/main/java/org/apache/wicket/session/HttpSessionStore.java 
> b/wicket-core/src/main/java/org/apache/wicket/session/HttpSessionStore.java
> index 68e2a1a..07d3e6d 100644
> --- 
> a/wicket-core/src/main/java/org/apache/wicket/session/HttpSessionStore.java
> +++ 
> b/wicket-core/src/main/java/org/apache/wicket/session/HttpSessionStore.java
> @@ -55,6 +55,8 @@ public class HttpSessionStore implements ISessionStore
>        /** */
>        private final Set<UnboundListener> unboundListeners = new 
> CopyOnWriteArraySet<UnboundListener>();
>
> +       private final Set<BindListener> bindListeners = new 
> CopyOnWriteArraySet<BindListener>();
> +
>        /**
>         * Construct.
>         */
> @@ -102,6 +104,10 @@ public class HttpSessionStore implements ISessionStore
>                {
>                        // call template method
>                        onBind(request, newSession);
> +                       for (BindListener listener : getBindListeners())
> +                       {
> +                               listener.bindingSession(request, newSession);
> +                       }
>
>                        HttpSession httpSession = getHttpSession(request, 
> false);
>
> @@ -354,6 +360,34 @@ public class HttpSessionStore implements ISessionStore
>        }
>
>        /**
> +        * Registers listener invoked when session is bound.
> +        *
> +        * @param listener
> +        */
> +       public void registerBindListener(BindListener listener)
> +       {
> +               bindListeners.add(listener);
> +       }
> +
> +       /**
> +        * Unregisters listener invoked when session is bound.
> +        *
> +        * @param listener
> +        */
> +       public void unregisterBindListener(BindListener listener)
> +       {
> +               bindListeners.remove(listener);
> +       }
> +
> +       /**
> +        * @return The list of registered bind listeners
> +        */
> +       public Set<BindListener> getBindListeners()
> +       {
> +               return Collections.unmodifiableSet(bindListeners);
> +       }
> +
> +       /**
>         * Reacts on unbinding from the session by cleaning up the session 
> related data.
>         */
>        protected static final class SessionBindingListener
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/b0179068/wicket-core/src/main/java/org/apache/wicket/session/ISessionStore.java
> ----------------------------------------------------------------------
> diff --git 
> a/wicket-core/src/main/java/org/apache/wicket/session/ISessionStore.java 
> b/wicket-core/src/main/java/org/apache/wicket/session/ISessionStore.java
> index f4894d7..ead4444 100644
> --- a/wicket-core/src/main/java/org/apache/wicket/session/ISessionStore.java
> +++ b/wicket-core/src/main/java/org/apache/wicket/session/ISessionStore.java
> @@ -180,4 +180,42 @@ public interface ISessionStore
>         * @return The list of registered unbound listeners
>         */
>        Set<UnboundListener> getUnboundListener();
> +
> +       /**
> +        * Listener invoked when session is bound.
> +        */
> +       public interface BindListener
> +       {
> +               /**
> +                * Informs the listener that a session is about to be bound. 
> Note that this method is also
> +                * called for {@link Session#isTemporary() temporary 
> sessions}.
> +                *
> +                * @param request
> +                *            The request the session is bound in
> +                * @param newSession
> +                *            The session that will be bound
> +                */
> +               void bindingSession(Request request, Session newSession);
> +       }
> +
> +       // TODO Wicket.next add these methods to the interface

What's the purpose of these commented methods ?
I understand you didn't add them because of API change but why added
them as commented ?

> +       /**
> +        * Registers listener invoked when session is bound.
> +        *
> +        * @param listener
> +        */
> +       // void registerBindListener(BindListener listener);
> +
> +       /**
> +        * Unregisters listener invoked when session is bound.
> +        *
> +        * @param listener
> +        */
> +       // void unregisterBindListener(BindListener listener);
> +
> +       /**
> +        * @return The list of registered bind listeners
> +        */
> +       // Set<BindListener> getBindListener();
> +
>  }
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

Reply via email to