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

Re: Fwd: Re: draft Java-api-12



Steven Sonntag wrote:
> 
> Rob Weltman wrote:
> 
> >   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 removeUnsolicitedNotificationListener(
> > LDAPResponseListener listener )
> >
> > Rob
> >
> 
> It seems natural to me that if unsolicited notifications are enabled on
> a
> listener, that the method LDAPListener.getMessageIDs() would include
> message ID 0 in the list of message IDs, and that
> LDAPConnection.abandon(0)
> and LDAPConnection.abandon(listener) could be used to removeUnsolicited
> notifications from a listener or listeners.  This raises some questions.
> 
> 1) Should getMessageIDs show messageID 0 when unsolicited notification
> are enabled?  (My vote is yes)
> 
> 2) Should the draft allow abandon to be used to remove unsolicited
> notifications?
> (this means that message ID 0 is treated like a message that never
> completes)
> 
> 3) If number two is allowed, is removeUnsolicitedNotificationListener()
> necessary?
> 
> -Steve

  I think it is easier for a client to handle unsolicited notifications as out-of-band events rather than lumped together with "normal" solicited responses. In almost all cases I would expect a client to want to know immediately that an unsolicited notification had arrived rather than having to poll and distinguish between solicited and unsolicited notifications. The event listener model reflects the paradigm of immediate out-of-band notification of unsolicited messages. Having the unsolicited messages ALSO appear in the normal message queue is confusing, error-prone, and not very useful as far as I can tell.

Rob