[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