Subject: Re: Open issues with the Java LDAP API draft

From: "Javed Khan" <[email-masked]>
Date: Thu, 25 Jan 2001 16:00:37 -0700

There should not be any interoperability issues with controls if
we remove the newInstance method.  

The SDK has responsibility for creating the appropriate LDAPControl 
object.  How it creates it is up to the implementation.  Of course, 
depending upon controls that might have been registered the SDK
might have to call a constructor of an application specified Class.  But again
when and how this constructor get called is up to the implementation.

Javed

>>> Rob Weltman <[email-masked]> Thursday, January 25, 2001 3:16:44 PM >>>
  That would kill interoperability. A SASL layer that worked with one implementation of the LDAP API would not work with another, and a control written for one implementation would not work with another implementation.

Rob

Steve Sonntag wrote:

>    There are several methods that an application will never use: LDAPConnection.setInputStreamLDAPConnection.getInputStreamLDAPConnection.setOutputStreamLDAPConnection.getOutputStreamLDAPControl.newInstance It is my feeling that these should not be defined in the Java API draft,even though functions like these may be defined as public insome implementations.  These implementions use these in the API itself,but the application does not use them. These functions force an implementation style, but the draft should notforce any style of implementation.  The draft should define only the applicationinterfaces. These methods should be removed from the draft. -Steve ------------------------
> Steve Sonntag
> Novell, Inc., the leading provider of Net services software

---

From: Rob Weltman <[email-masked]>
Date: Sat, 27 Jan 2001 22:32:12 -0800

OK, that's true. The SDK can instantiate response controls using the LDAPControl constructor signature, based on the control having been registered. So we can eliminate newInstance. newInstance was intended to take the BER-encoding of a control and instantiate a control, but we can assume that an SDK implementation has already parsed the BER into its components and will use the components to instantiate a control.

  But if we remove the other four methods (for getting and setting the input and output stream), how would one apply a SASL security layer?

Rob

Javed Khan wrote:

>  There should not be any interoperability issues with controls ifwe remove the newInstance method. The SDK has responsibility for creating the appropriate LDAPControlobject.  How it creates it is up to the implementation.  Of course,depending upon controls that might have been registered the SDKmight have to call a constructor of an application specified Class.  But againwhen and how this constructor get called is up to the implementation. Javed >>> Rob Weltman <[email-masked]> Thursday, January 25, 2001 3:16:44 PM >>>