<commit_before><?xml version="1.0" encoding="UTF-8"?>
<chapter id="introduction">
  <title>Introduction</title>

  <sect1 id="introduction-overview">
    <title>Overview</title>

    <para>Spring-LDAP (<ulink
    url="http://www.springframework.org/ldap">http://www.springframework.org/ldap</ulink>)
    is a library for simpler LDAP programming in Java, built on the same
    principles as the <ulink
    url="http://static.springframework.org/spring/docs/current/api/org/springframework/jdbc/core/JdbcTemplate.html">JdbcTemplate</ulink>
    in Spring JDBC. It completely eliminates the need to worry about creating
    and closing <literal>LdapContext</literal> and looping through
    <literal>NamingEnumeration</literal>. It also provides a more
    comprehensive unchecked Exception hierarchy, built on Spring's
    <literal>DataAccessException</literal>. As a bonus, it also contains
    classes for dynamically building LDAP filters and DNs (Distinguished
    Names).</para>

    <para>Consider, for example, a method that should search some storage for
    all persons and return their names in a list. Using JDBC, we would create
    a <emphasis>connection</emphasis> and execute a <emphasis>query</emphasis>
    using a <emphasis>statement</emphasis>. We would then loop over the
    <emphasis>result set</emphasis> and retrieve the
    <emphasis>column</emphasis> we want, adding it to a list. In contrast,
    using Java LDAP, we would create a <emphasis>context</emphasis> and
    perform a <emphasis>search</emphasis> using a <emphasis>search
    filter</emphasis>. We would then loop over the resulting <emphasis>naming
    enumeration</emphasis> and retrieve the <emphasis>attribute</emphasis> we
    want, adding it to a list.</para>

    <para>The traditional way of implementing this person name search method
    in Java LDAP looks like this, where the code marked as bold actually
    performs tasks related to the business purpose of the method:</para>
<commit_msg>Minor fix in ref docs<commit_after><?xml version="1.0" encoding="UTF-8"?>
<chapter id="introduction">
  <title>Introduction</title>

  <sect1 id="introduction-overview">
    <title>Overview</title>

    <para>Spring-LDAP (<ulink
    url="http://www.springframework.org/ldap">http://www.springframework.org/ldap</ulink>)
    is a library for simpler LDAP programming in Java, built on the same
    principles as the <ulink
    url="http://static.springframework.org/spring/docs/current/api/org/springframework/jdbc/core/JdbcTemplate.html">JdbcTemplate</ulink>
    in Spring JDBC. It completely eliminates the need to worry about creating
    and closing <literal>LdapContext</literal> and looping through
    <literal>NamingEnumeration</literal>. It also provides a more
    comprehensive unchecked Exception hierarchy, built on Spring's
    <literal>DataAccessException</literal>. As a bonus, it also contains
    classes for dynamically building LDAP filters and DNs (Distinguished
    Names), LDAP attribute management, and client-side LDAP transaction management.</para>

    <para>Consider, for example, a method that should search some storage for
    all persons and return their names in a list. Using JDBC, we would create
    a <emphasis>connection</emphasis> and execute a <emphasis>query</emphasis>
    using a <emphasis>statement</emphasis>. We would then loop over the
    <emphasis>result set</emphasis> and retrieve the
    <emphasis>column</emphasis> we want, adding it to a list. In contrast,
    using Java LDAP, we would create a <emphasis>context</emphasis> and
    perform a <emphasis>search</emphasis> using a <emphasis>search
    filter</emphasis>. We would then loop over the resulting <emphasis>naming
    enumeration</emphasis> and retrieve the <emphasis>attribute</emphasis> we
    want, adding it to a list.</para>

    <para>The traditional way of implementing this person name search method
    in Java LDAP looks like this, where the code marked as bold actually
    performs tasks related to the business purpose of the method:</para>

{'fraction_non_alphanumeric': 0.092501233349778, 'fraction_numerical': 0.001973359644795264, 'mean_word_length': 4.307591623036649, 'pattern_counts': {'":': 0, '<': 89, '<?xml version=': 2, '>': 89, 'https://': 0, 'lorem ipsum': 0, 'www.': 4, 'xml': 2}, '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': '3302950', 'n_tokens_mistral': 1110, 'n_tokens_neox': 1042, 'n_words': 416}