David Blevins wrote:
Sorry, was referring to this thread. Seems like it's winding down
and just looking for a clear idea of what the current thinking is.
David,
since you are here - a few SFSB questions...
what provisions does the EJB spec make for timing out of SFSBs, if any ?
what metadata does this require associated with each session ?
what provisions/requirements over and above these does OpenEJB make/have ?
I seem to remember that SFSBs need notification on
activation/passivation ? is this correct ? are any other notifications
required ?
Is it possible for one client to pass the handle of an SFSB to another ?
Does the spec touch on this ? Does it ever happen ?
Aside from lifecycle management, retrieval and timing out, what other
requirements might OpenEJB have for SFSB management ?
Are Local SFSBs to be considered Serialisable/Passivatable/Migratable or
not ?
and finally :
Would it be simple to change OpenEJB to use an SFSB handle that included
an ID to a 'SuperSession' (Object containing all Session objects
pertaining to a single client for a given Server) along with an ID to
particular 'SubSession' (The SFSB itself) within this 'SuperSession',
instead of whatever scheme you currently use ?
looking forward to some interesting answers...
Jules
-David
On Mar 7, 2006, at 9:36 AM, Dain Sundstrom wrote:
Looks good.
-dain
On Mar 6, 2006, at 12:49 AM, Greg Wilkins wrote:
Dain Sundstrom wrote:
My guess is we're going to need to add an event notification
system to
the Session APIs. What do you think about just crib off of the
servlet
ones. I think we could just smash the three session listener
interfaces into something like this:
public interface SessionListener extends Listener {
void valueBound(SessionEvent event);
void valueUnbound(SessionEvent event);
void attributeAdded(SessionEvent event);
void attributeRemoved(SessionEvent event);
void attributeRemoved(SessionEvent event);
I think you mean:
void attributeReplaced(SessionEvent event);
void valueBound(SessionEvent event);
void valueUnbound(SessionEvent event);
void sessionCreated(SessionEvent event)
void sessionDestroyed(SessionEvent event)
}
public class SessionEvent extends Event {
Session getSession();
String getName();
String getValue();
}
We would bind a listener with a method on the Locator:
void addSessionListener(SessionListener listener);
void removeSessionListener(SessionListener listener);
that would certainly do it - the only change I'd like to see
is that the SessionEvent is
public class SessionEvent extends Event {
Session getSession();
String getName();
String getOldValue();
String getNewValue();
}
As it is confusing for remove and replace what getValue() returns.
Also as the bound/unbound events are actually called on the
value itself, you need both old and new values so you can call
unbind and bind during a replace.
cheers
--
"Open Source is a self-assembling organism. You dangle a piece of
string into a super-saturated solution and a whole operating-system
crystallises out around it."
/**********************************
* Jules Gosnell
* Partner
* Core Developers Network (Europe)
*
* www.coredevelopers.net
*
* Open Source Training & Support.
**********************************/