[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: draft Java-api-12




Rob Weltman wrote:

> Steve Sonntag wrote:
>
>>  I have been thinking about the specification forunsolicited
>> notifications in the Java api draft version 12. The draft has two
>> methods in LDAPConnectionthat are concerned with Unsolicited
>> Notifications: one sets a flag indicating whether to keep or
>> discardunsolicited notifications:
>> setUnsolocitedNotifications(boolean flag)the other gets the value of
>> the flag Unsolicited notifications are retrieved by callingthe
>> getResponse(0) method from one of theListener classes.  the "0"
>> indicates message ID 0. The problem is that a listener has
>> association witha connection only when a request is in progressusing
>> that listener.  A listener in an application with5 connections open
>> could be servicing requestson all five connections or on none of
>> them.  UsinggetResponse from the listener class to getUnsolicited
>> notifications is problematic.  If no requestsare outstanding on the
>> listener, there is no associationwith a connection, so it is not
>> possible to checkfor unsolicited notifications. It would seem that
>> the only reliable way to check forand get unsolicited notifications
>> would be throughthe LDAPConnection class itself and not through the
>> listener.classes. Two more LDAPConnection methods - ugh, butperhaps
>> necessary? Anyone have any better ideas? -Steve
>> ------------------------
>> Steve Sonntag
>> Novell, Inc., the leading provider of Net services software
>
>
>   It might be better instead to eliminate the current unsolicited
> notification methods and instead have methods to add and remove
> listeners for usolicited notifications. The implementation can then
> discard unsolicited notifications if there are no listeners. For
> example (I haven't thought this through completely yet):
>
> LDAPConnection
>
> public LDAPResponseListener addUnsolicitedNotificationListener(
> LDAPResponseListener listener )
>
> public void addUnsolicitedNotificationListener( LDAPResponseListener
> listener )
>
> Rob
>

I like your idea Rob, it fits much better with the rest of the
architecture.

I have a few questions:

Are multiple UnsolicitedNotificationListeners allowed on a given
connection.
What would the behavior be in such a situation.  The name seems to
indicate
that multiple are allowed.

My take is that only one unsolicited notification listener exists for a
given connection.
Of course, that listener may be servicing multiple connections (using
the first method
to create it).  I am not sure of the purpose for the second method.
Would the first method be more clearly named
"setUnsolicitedNotificationListener",
implying there is only one?

I assume that getResponse() blocks if no unsolicited notifications are
available.

getMessageIds would return an array with 0 being one of the message ID
values.

Could this listener be merged with a regular listener?  There seems no
reason why it
couldn't.

How does one remove an unsolicited notification listener, or was your
second
method meant to be a delUnsolicitedNotificationListener?

-Steve

--
------------------------
Steve Sonntag
Novell, Inc., the leading provider of Net services software