<commit_before>Spring LDAP CHANGELOG
=====================
http://www.springframework.org/ldap

http://www.ietf.org/rfc/rfc1960.txt
http://www.ietf.org/rfc/rfc2251.txt
http://www.ietf.org/rfc/rfc2252.txt
http://www.ietf.org/rfc/rfc2253.txt
http://www.ietf.org/rfc/rfc2254.txt
http://www.ietf.org/rfc/rfc2255.txt
http://www.ietf.org/rfc/rfc2256.txt
http://www.ietf.org/rfc/rfc2696.txt

Changes in version 1.3.0 (Jan 2009)
-------------------------------------------
* Added methods for simple LDAP 'bind' authentication in LdapOperations and
  SimpleLdapOperations. The methods will perform a search given a supplied
  filter, call ContextSource#getContext(dn, password), and optionally callback
  to a supplied instance to perform an LDAP operation on the context.
 
* Re-used the same fix for LDAP-109 and LDAP-50 that was used in
  DefaultDirObjectFactory to secure the DirContextAdapter constructors from
  invalid CompositeNames.

* Made sure DirContextOperations#addAttributeValue(String, Object) does not add
  any duplicate values per default; added alternate method:
  DirContextOperations#addAttributeValue(String, Object, boolean) to enable
  behavior other than the default (i.e. allowing duplicates).

* Made sure that DirContextAdapter#setDn() throws exception if in update mode
  (The value is not set anyway, and this was previously silently ignored).
  
* Improved more search methods that take handlers so that they will work
  with handlers that use ContextMappers, eg ContextMapperCallbackHandler.
  (LDAP-162)

* Made sure article sample tests are possible to run without running web
  application (i.e. tests automatically start internal LDAP server). (LDAP-143)
  
* SortControlDirContextProcessor no longer has hard dependencies to controls in
  LDAP Booster Pack. (LDAP-159)
  
* Common code in DirContextProcessor implementations has been pulled up to a
  base class called
AbstractFallbackRequestAndResponseControlDirContextProcessor.
  (LDAP-161)

* PagedResultsRequestControl has been deprecated in favor of
  PagedResultsDirContextProcessor, which takes advantage of the new
  AbstractFallbackRequestAndResponseControlDirContextProcessor. (LDAP-160)

* Added spring-tx as required dependency (the DataAccessExceptions require
  this). 
  
* Added demo projects to simplify refactoring demonstrations. (LDAP-154)

Changes in version 1.3.0.RC1 (Oct 2008)<commit_msg>Updated changelog with all resolved issues for 1.3.0<commit_after>Spring LDAP CHANGELOG
=====================
http://www.springframework.org/ldap

http://www.ietf.org/rfc/rfc1960.txt
http://www.ietf.org/rfc/rfc2251.txt
http://www.ietf.org/rfc/rfc2252.txt
http://www.ietf.org/rfc/rfc2253.txt
http://www.ietf.org/rfc/rfc2254.txt
http://www.ietf.org/rfc/rfc2255.txt
http://www.ietf.org/rfc/rfc2256.txt
http://www.ietf.org/rfc/rfc2696.txt

Changes in version 1.3.0 (Jan 2009)
-------------------------------------------
* Added methods for simple LDAP 'bind' authentication in LdapOperations and
  SimpleLdapOperations. The methods will perform a search given a supplied
  filter, call ContextSource#getContext(dn, password), and optionally callback
  to a supplied instance to perform an LDAP operation on the context.
 
* Re-used the same fix for LDAP-109 and LDAP-50 that was used in
  DefaultDirObjectFactory to secure the DirContextAdapter constructors from
  invalid CompositeNames.

* Made sure DirContextOperations#addAttributeValue(String, Object) does not add
  any duplicate values per default; added alternate method:
  DirContextOperations#addAttributeValue(String, Object, boolean) to enable
  behavior other than the default (i.e. allowing duplicates).

* Made sure that DirContextAdapter#setDn() throws exception if in update mode
  (The value is not set anyway, and this was previously silently ignored).
  
* Improved more search methods that take handlers so that they will work
  with handlers that use ContextMappers, e.g. ContextMapperCallbackHandler.
  (LDAP-162)

* Made sure article sample tests are possible to run without running web
  application (i.e. tests automatically start internal LDAP server). (LDAP-143)
  
* SortControlDirContextProcessor no longer has hard dependencies to controls in
  LDAP Booster Pack. (LDAP-159)
  
* Common code in DirContextProcessor implementations has been pulled up to a
  base class called AbstractFallbackRequestAndResponseControlDirContextProcessor.
  (LDAP-161)

* PagedResultsRequestControl has been deprecated in favor of
  PagedResultsDirContextProcessor, which takes advantage of the new
  AbstractFallbackRequestAndResponseControlDirContextProcessor. (LDAP-160)

* Added spring-tx as required dependency (the DataAccessExceptions require
  this). 
  
* Added demo projects to simplify refactoring demonstrations. (LDAP-154)

* Added LdapEntryIdentification, a simple bean containing the DNs of an LDAP
  entry, relative to the base context as well as absolute. Also added
  special ContextMapper implementation producing these entries;
  LdapEntryIdentificationContextMapper. (LDAP-149)
  
* Added LdapTemplate#searchForObject(base, filter, mapper) and 
  SimpleLdapTemplate#searchForObject(base, filter, mapper); methods 
  to search for a single object, analogous to JdbcTemplate#queryForObject().
  (LDAP-150)
  
* DistinguishedName now correctly adheres to the equals/hashCode contract.
  LDAP-151
  
* Various improvements to immutability of DistinguishedNames throughout the
  framework. DistinguishedName#immutableDistinguishedName now produces a truly
  immutable copy of the original. Also made sure that it is not possible to
  accidentally alter the internal state of e.g. DirContextAdapter by modifying
  its DistinguishedName - copies are now returned in DirContextAdapter#getDn() 
  and DirContextAdapter#getBase(). (LDAP-146)
  
* Added LdapTemplate#rebind(DirContextOperations). (LDAP-144)
  
* Added PresentFilter and NotPresentFilter to simplify searching for presence 
  or absence of an attribute. (LDAP-152)
  
* Added DirContextAdapter constructor that takes its DN as a String. (LDAP-145)

Changes in version 1.3.0.RC1 (Oct 2008)
{'fraction_non_alphanumeric': 0.08634505314799673, 'fraction_numerical': 0.026819296811120195, 'mean_word_length': 4.495058400718778, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 18, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3338154', 'n_tokens_mistral': 1833, 'n_tokens_neox': 1705, 'n_words': 617}