Java 4.0 BETA Release Notes

## BETA
Netscape Directory SDK 4.0 for Java
Release Notes

Last updated August 03, 1999

These release notes apply to the Netscape Directory SDK 4.0 for Java. Please read these notes before using the product.

- What's New
- Bugs Fixed Since 3.10
- Reporting Problems

Here is a summary of new features:

### Changes to Java LDAP API

- Added `LDAPBind` interface for sophisticated client management of referral authentication.
- `LDAPControl` has new methods `register()` and `newInstance()`, to support dynamic registration and instantiation of server response controls.
- `LDAPConnection.getServerControls()` automatically parses controls. As a result, calling `parseResponse()`is no longer necessary.
- `LDAPSearchConstraints` has been divided into `LDAPConstraints` and a subclass `LDAPSearchConstraints`. `LDAPConstraints` contains only methods implemented in the interface which apply to all operations (not parameters passed to the server). `LDAPSearchConstraints` is unchanged. All `LDAPConnection` methods that take `LDAPSearchConstraints` as an argument (except for read and search methods) change to pass `LDAPConstraints` instead.
- When searching from `LDAPConnection`, retrieval of server response controls is moved to LDAPSearchResults. So you would call
`LDAPSearchResults.getResponseControls()` instead of `LDAPConnection.getResponseControls()`. For backwards compatibility, you can still get the controls from LDAPConnection, but it is recommended for new code to get them from LDAPSearchResults.
- Added support for transparent failover connection policies. The available policies are: (1) serial , (2) parallel with no delay and (3) parallel with delay. See `LDAPConnection.setConnSetupDelay()`.
- `LDAPConnection` has a new method `reconnect()` which first disconnects and then connects and binds again using the same parameters and mechanisms.
- Added support for connection pools. See `netscape.ldap.util.ConnectionPool` in the online JavaDocs.
- Added `LDAPInterruptedException` which is thrown if an LDAP operation is interrupted.
- `LDAPSchema` and the associated schema element classes now fully support RFC2252.

New asynchronous Java LDAP API

This new API works at a low level, close to the LDAP protocol, providing a means for mutiplexing LDAP operations from the same thread. For detailed information, see Internet Draft for The Java LDAP Application Program Interface.

- New interface `LDAPAsynchronousConnection` is defined.
- `LDAPConnection` implements the asynchronous interface and supports both synchronous as well as asynchronous programming models.
- New classes for asynchronously receiving server response messages: `LDAPResponseListener`, `LDAPSearchListener`.
- New classes for representing LDAP messages: `LDAPMessage`,`LDAPResponse`,`LDAPExtendedResponse`,`LDAPSearchResult and LDAPSearchResponseReference.`

Support for the Java Naming and Directory Interface (JNDI) Service Provider

The JNDI service provider support for event notification is implemented more efficiently on top of the asynchronous Java LDAP API. For more information on JNDI, see the java.sun website and the Release Notes for the Netscape LDAP Service Provider for JNDI.

Simple Authentication and Security Layer (SASL) API changes

The new SASL API is rewritten including new SASL interface classes. For more information, see the Internet Draft for Simple Authentication and Security Layer (SASL). You will need to have `jaas.jar` in your CLASSPATH if you are using SASL authentication.

BUGS FIXED SINCE 3.10

> 355365 `LDAPSearchResults.getCount()` returns 0 for synchronous search
> 342196 SmartUpdate for java LDAP SDK doesn't work for Comm 4.5
> 346367 -1 incorrectly encoded in BERIntegral
> 357382 Can't compile JNDI SP with JDK 1.2
> 357361 Filter code doesn't work with JDK 1.2
> 351004 Applet in Communicator can't fetch error string
> 313834 "rejects" file on import (e.g. LDAPModify) contains binary
> 339833 RFE: smarter failover
> 325394 `getCount()` after sorting throws exception
> 330523 `DN.equals()` does not normalize
> 354615 `DN.contains()` implemented and documented incorrectly
> 339633 The SDK should catch `Exception`, not `Throwable`
> 352056 `LDAPModify` should support LDIF version 1
> 351022 `LDAPCompareAttrNames` should allow specifying a locale
> 350624 `LDAPSearch` aborts on size limit exception
> 350998 Search timeout not handled correctly
> 350997 `LDAPSchemaElement` needs modify() method
> 350996 `LDAPBasePropertySupport` should enable referrals
> 350995 `LDAPBasePropertySupport` should enable referrals
> 347586 Schema interpretations are specific to Netscape
> 357772 `LDAPFilter` gets array bounds exception
> 357526 Syntactically incorrect filter is causing disconnect
> 355904 Cannot set cache after `LDAPConnection` is connected
> 355942 `LDAPCache` changes contents of attributes to return
> 354503 The SDK calls `Thread.stop()/suspend()/resume()`
> 355215 VLV controls don't support optional context field
> 354347 SDK doesn't support all schema options of RFC 2252
> 353306 LDAP Beans don't handle referrals
> 353305 LDAPIsMember doesn't handle dynamic groups
> 353187 Ensure that SDK works with Java 2
> 351926 Must call System.exit() to shutdown SDK
> 351719 LDAPModificationSet has no toString method
> 339632 The SDK should not use Thread.stop()
> 329534 `getCount` doesnt work in asynchronous search
> 330261 `StringIndexOutOfBoundsException` if searched for backslash " \ "
> 116611 SASLMechanismFactory is missing getMechanisms method
> 353307 `LDAPGetEntries` should allow choice of attributes to return
> 353308 `LDAPModificationSet` is missing a toString method
> 358370 Incorrect tag written for `UTCTime BER`
> 358371 Missing and incorrect javadocs for `BER`
> 356470 Should support latest LDIF specification
> 324606 RFE: get attribute values as vector
> 354682 Should treat `null` for filter as meaning `objectclass=*`
> 354997 Unneeded public `add` methods in `LDAPSchema`
> 339831 RFE: connection pool support
> 359305 Smart Failover should not auto-connect after disconnect()
> 346368 BERReal incomplete and incorrect
> 352804 netscape.ldap.util.DN class does not consider "" a valid DN
> 344077 Maybe wrong tag used for extended operation
> 359855 No way to specify custom qualifiers in object class definition
> 359580 LDAPConnection.setMaxBacklog() doesn't work
> 359646 modDN doesn't work

REPORTING PROBLEMS

Please submit your problem via the the Bugzilla bugsystem . Use the "LDAP Java SDK" component.

If you have additional questions or need more information about the LDAP Java SDK, see the directory newsgroup at Mozilla and the Directory Developers newsgroup at Netscape DevEdge.

For more Internet development resources, try Netscape TechSearch

| DevEdge Online FAQ Developer Response Center Join DevEdge Program |  | Copyright © 1999 Netscape Communications Corporation. This site powered by: Netscape Enterprise Server and Netscape Compass Server. |