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

New features/Defect fixes and Enhancements to JLDAP



all,
The following chages were checked-in to JLDAP project.

New Features:
1.Implementation of The Java SASL Application Program Interface 
as specified in JSR28 and draft-weltman-java-sasl-05.txt 

2.Implementation of DIGESTMD5 SASL Mechanism.

3.Implementation of EXTERNAL SASL Mechanism.

========== End of new features section =======================

Defect Fixes and Enhancements:
1.1    Deprecated Code : Due to changes in the IETF drafts from version
13 to 18, 
changes  had to be made to the code that required deprecating many
methods. 
For complete details see the drafts in the
draft-ietf-ldapext-ldap-java-api-18.txt. 
The following lists the key changes to the draft that required
deprecating  the methods:

1.1.1 Renamed Listener classes to MessageQueue
      LDAPListener renamed to LDAPMessageQueue.
      LDAPResponseListener renamed to LDAPResponseQueue.
      LDAPSearchListener renamed to LDAPSearchQueue.

      abstract class LDAPMessageQueue
      class LDAPResponseListener extends LDAPMessageQueue
      class LDAPResponseQueue extends LDAPResponseListener
      class LDAPSearchListener extends LDAPMessageQueue
      class LDAPSearchQueue extends LDAPSearchListener

The key functionality is in the abstract class LDAPMessageQueue.  The
classes 
LDAPResponseListener and LDAPSearchListener  is eliminated.  The code
in 
LDAPConnection and other classes which was referencing LDAPxxxxListener
classes 
for backwards compatibility has been be changed to LDAPxxxxxQueue
classes.  
The classes affected by this change are:

    LDAPConnection.java
    LDAPListener.java
    LDAPMessageQueue.java
    LDAPResponseListener.java
    LDAPResponseQueue.java
    LDAPSearchListener.java
    LDAPSearchQueue.java
                 
1.1.2 Renamed Referral handling classes

    LDAPRebind renamed to LDAPAuthHandler.
    LDAPRebindAuth renamed to LDAPAuthProvider.
    interface LDAPReferralHandler
    interface LDAPAuthHandler extends LDAPReferralHandler
    interface LDAPRebind extends LDAPReferralHandler
    class LDAPRebindAuth

    Classes LDAPRebind and LDAPRebindAuth is removed, and references 
    changed appropriately.  Files affected:
        LDAPConnection.java
        LDAPRebind.java
        LDAPRebindAuth.java

1.1.3 LDAPModificationSet replaced by LDAPModificaton[]

Files that were referencing LDAPModificationSet were:
         LDAPAttributeSchema.java
         LDAPConnection.java
         LDAPModificationSet.java
         LDAPObjectClassSchema.java
         LDAPSchema.java
         LDAPSyntaxSchema.java

These files have been modified to use LDAPModificaton[] instead  
of LDAPModificationSet  and LDAPModificationSet class is removed.

1.1.4 LDAPAttributeSet implements java.util.set

This change caused an incompatibility with previous release.
The incompatibility is outlined in the README files as follows:

"LDAPSchemaElement now extends LDAPAttribute.This  means that 
LDAPSchemaElement inherits the getName method from LDAPAttribute
which has the same signature   as the getName method of
LDAPSchemaElement,
but the two methods differ in functionality.  Thus, the getName method
of 
LDAPSchemaElement has been removed from the  IETF draft and from the 
API in this release. To fix  your application, use the getNames method
of
LDAPSchemaElement instead of getName."  

Other methods made obsolete by this change is removed

1.1.5 bind methods in LDAP Connection

All bind() signatures which take String instead of  byte[] for password

are marked deperecated since these  methods were removed from the 
draft.We didnt removed these  methods and simply marked them 
deprecated as it is common for applications to use String values
passwords.

Replaced Hashtable with Map in SASL bind methods.  Since these are not

implemented, we did no deprecation here.

1.1.6 Schema changes

The LDAPSchema class previously acted like an I/O class, but this did
not fit
well into the rest of the model. In draft 18, all schema I/O was moved
to 
LDAPConnection (see fetchSchema and getSchemaDN).  The LDAPSchema 
class was integrated into the rest of the classes by  extending
LDAPEntry. 
 However, this change caused a compatibility problem with previous 
releases and is explained in the README.txt file as follows:

"LDAPSchema now extends LDAPEntry.  This means that LDAPSchema inherits

the getAttribute method from LDAPEntry which has the same signature as
the
getAttribute method of LDAPSchema, but the two methods differ in
functionality. 
Thus, the getAttribute method of LDAPSchema has been removed from the
IETF 
draft and from the API in this release. To fix your application, use
the 
getAttributeSchema method of LDAPSchema instead of getAttribute."

Other schema files were changed because various methods were renamed to

include the "Schema" as part of the method name. Schema files that
were
having deprecated methods are:

  LDAPAttributeSchema.java
  LDAPObjectClassSchema.java
  LDAPSchema.java
  LDAPSchemaElement.java
  LDAPSyntaxSchema.java

These files are changed to remove the deprecated methods. Files in 
com/novell/ldap which were having deprecated methods:
   LDAPAttributeSchema.java
   LDAPAttributeSet.java
   LDAPBind.java
   LDAPCompareAttrNames.java
   LDAPConnection.java
   LDAPConstraints.java
   LDAPEntryComparator.java
   LDAPException.java
   LDAPListener.java
   LDAPMessageQueue.java
   LDAPModificationSet.java
   LDAPObjectClassSchema.java
   LDAPRebind.java
   LDAPRebindAuth.java
   LDAPResponseListener.java
   LDAPResponseQueue.java
   LDAPSchema.java
   LDAPSchemaElement.java
   LDAPSearchListener.java
   LDAPSearchQueue.java
   LDAPSearchResults.java
   LDAPSecureSocketFactory.java
   LDAPSyntaxSchema.java
   LDAPUrl.java

These files are changed to remove the deprecated methods. Files in 
com/novell/ldap/extensions which were having deprecated methods:-
   AbortNamingContextOperationRequest.java
   CreateNamingContextRequest.java
   CreateOrphanNamingContextRequest.java
   GetContextIdentityNameRequest.java
   GetContextIdentityNameResponse.java
   MergeNamingContextsRequest.java
   NamingContextEntryCountRequest.java
   NamingContextEntryCountResponse.java
   NamingContextSyncRequest.java
   RemoveOrphanNamingContextRequest.java "

These files are changed to remove the deprecated methods.

2.Added a method to the LDAPConnection class ( isConnectionAlive() )
which 
checks whether a connection is still alive or not.

3.Defect Fixed  - LDIFWriter WriteEntry doesn't insert newline after
record

4.Remove usage of PARAM_ERROR from NDK

5.Defect Fixed - Casting error in
com.novell.ldap.LDAPSearchConstraints(ITS#2688)

6.Defect Fixed - LDAPAttributeSet.iterator() returns iterator of
com.novell.ldap.LDAPAttribute, not org.ietf.ldap.LDAP (ITS#2674)

7.Defect Fixed - Passing null to LDAPAttribute constructor (ITS#2683)

========= end of Defect Fixes and Enhancements section ==============


Thanks