Apache Directory Server / CHANGES.txt

NOTE:  Regarding ApacheDS Releases

  We use even minor numbers to denote stable releases and release branches 
  where new features are not added but only bug fixes are made.  Odd numbered
  releases and branches are for experimental feature release branches of which
  several releases may occur.  For example after 0.9 below there may be 0.9.1,
  0.9.2 ... 0.9.n et. cetera. until there is a feature freeze and a stable
  release is created like 0.10.

Changes in 0.9.2 (since 0.9.1)
 o 3.5x boost in performance due to changes to DnComparator by Emmanuel Lecharny
 o Fixed Server Bugs:
    * [DIREVE-165] - Parser failure on name: Antlr exception trace: line 15:7: unexpected char: '#'
    * [DIREVE-167] - specification of server.xml arg. file when starting DS fails if server.xml is specified with absolute path
    * [DIREVE-173] - On modifyRdn server now adds additional Rdn attribute
    * [DIREVE-176] - Admin user is missing the required cn and dn attributes on initial startup.
    * [DIREVE-177] - The bahavior of LockableAttributesImpl.put() is different from that of BasicAttributes.
    * [DIREVE-178] - Custom authenticator is never called
    * [DIREVE-179] - NormalizationService is failing to parse escaped names
    * [DIREVE-180] - Problem with the shutdown sequence.
    * [DIREVE-188] - JdbmContextPartition doesn't search an attribute added by MODIFY operation at first.
    * [DIREVE-210] - All User Attribures ("*") is not supported
    * [DIREVE-215] - Wrong error messages for some operations
    * [DIREVE-216] - Adding new object classes to an entry removes the old ones
    * [DIREVE-217] - ExceptionService bypasses all interceptors in the chain.
    * [DIREVE-219] - RFC3673 (all operational attributes) support is incomplete
    * [DIREVE-220] - Modify operation attempt on admin uid removes the uid attribute
    * [DIREVE-221] - search on specific object class results in java.lang.NoSuchMethodError
    * [DIREVE-226] - Compare operation on non existing or invalid attributes causes wrong return codes
    * [DIREVE-227] - Fetching the schema fails on some LDAP clients
    * [DIREVE-228] - Schema container issue.
    * [DIREVE-230] - Deletion of RDN and objectClass attribute
    * [DIREVE-232] - Modify operation (removal) provides wrong return codes in two situations.
 o New Server Features:
    * [DIREVE-128] - setup command line arguments (property parameters)
    * [DIREVE-212] - Ability to add/remove ContextPartitions in runtime
    * [DIREVE-213] - Design DIT structure for storing server and service configuration information within the ou=system partition
    * [DIREVE-214] - Make Interceptor chains runtime configurable
 o Server Improvements:
    * [DIREVE-189] - is being bundled by the jar:resource goal - override it in maven.xml
    * [DIREVE-209] - standalone script should use apacheds-server.xml by default
    * [DIREVE-211] - Add vendorVersion to attributes of Root DSE
 o Server Tasks:
    * [DIREVE-50] - Logging IBS
 o LDAP Common Fixed Bugs:
    * [DIRLDAP-23] - DnParser throws IOException in Java 5
    * [DIRLDAP-24] - Ldif parser does not accept comments
    * [DIRLDAP-26] - Ldif file could have multi-lines atrribute values
    * [DIRLDAP-29] - Class SnickersEncoder does not send data with a WritableByteChannel on Linux
    * [DIRLDAP-34] - DnParser does not respect RFC2253
    * [DIRLDAP-36] - Order of multi-valued RDN should not matters while comparing
    * [DIRLDAP-39] - Unicode Attributes allowed in a DN (but not in the RFC 2253!)
    * [DIRLDAP-44] - Invalid rule in filter grammar
 o Added LDAP Common Improvements:
    * [DIRLDAP-48] - The type of the subtree base in the SubtreeSpecification bean should be Name instead String
    * [DIRLDAP-49] - new Subtree Specification (RFC 3672) implementation

Changes in 0.9.1 (since 0.9)
 o Used SpringFramework to demonstrate runtime configuration
 o Removed dependency on AspectJ within the core
 o Started using SLF4J and NLog4J eventually to replace commons logging
 o Enabled multiple instances to exist for a single JVM
 o Added support for multiple calls to InitialContext with different principals
 o Added ContextFactoryService interface that gives user more control to 
   available ContextFactories in a JVM.
 o Refactoring ...
   o Created new partition package placing all store related classes there
     (see org.apache.ldap.server.partition)
   o JdbmDatabase is replaced with JdbmContextPartition to simplify its design.
   o Made CoreContextFactory more extensible using pre post stage hooks
   o Simplified property based configuration using POJOs
     (see org.apache.ldap.server.configuration)
   o Extracted JNDI configuration management into JNDI Utils
   o Using separate configuration beans for shutdown, sync and startup
   o Redesigned Interceptor interface to be more user-friendly so that
     Intereceptor implementations look cleaner.
 o Fixed bugs
   o DIREVE-155
   o DIREVE-175

Changes in 0.9 (since 0.8)

 o Added Preferences implementation for system settings (user Prefs not done)
 o Added support for JNDI state factories and object factories
 o Added schema support for object and state factories - plugin is prep'd for
   generating these from schema definitions and domain models: code to do this
   just needs to be added.
 o Added factory.hints property to help drive the selection of a object
   factory when there are multiple alternatives
 o Added Authenticator (thanks to Endi)
 o Added support for multiple types of custom backends (thanks to Endi)
 o 0.9 now uses MINA instead of apseda for massive performance and concurrency
   gains.  MINA is the network layer for Apache Directory.
 o Revamped interceptor factory: interceptors easier to manage and to add
   custom interceptors.  Design is similar to filter chaining.  Excellent 
   feature that makes extending and configuring interceptors for the server
   a breeze.
 o Several performance improvements
 o Refactored and cleaned up APIs in general
 o Several documentation improvements were made with slight revamp and the
   addition of docs for new features
 o Perhaps the latest most exciting feature is the addition of the Kerberos 
   provider plugin which is a full Kerberos V service listening by default on
   port 88.  The plugin uses the Directory Network layer (MINA) to service
   UDP and TCP requests to the KDC and it uses the ApacheDS DIT to store its 
   entires without any netork latency or unnecessary security exposure.  
 o Fixed bugs with filter parser in LDAP common affecting server
 o Fixed issues with authenticating to server
 o Corrected broken simple authentication and annonymous binds
 o Cleaned up user partition creation and configurationn
 o Created and added better user and developer guide information
 o Corrected case problems with attribute type names
 o Added proper ou=schema presentation of schema objects
 o Added Samba schema
 o Created and added new distinguished name normalized
 o Added DHCP schema
 o Fixed bug when trying to shutdown the server via JNDI
 o Changed package structure to accomodate growth better
 o We now try to take next available port if user does not have access rights
   for 389 or the alt port specified is already in use
 o Moved logic to start up LDAP and Kerberos providers out into main
   subproject, leaving a new base class for a context factory implementation
   called the CoreContextFactory
 o Exited incubator so all groupIds were finalized
 o Rearranged the SVN repository to reflect better project demarcations