You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2012/02/02 18:54:43 UTC

svn commit: r1239744 - in /directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence: ./ chapter-2/ chapter-3/

Author: elecharny
Date: Thu Feb  2 17:54:42 2012
New Revision: 1239744

URL: http://svn.apache.org/viewvc?rev=1239744&view=rev
Log:
Injected Javier's modified pages (DIRAPI-74)

Modified:
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/2-0-apache-ldap-api.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/3-0-basic-ldap-api-usage.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/8-0-ldap-related-rfcs.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-1-java-and-ldap.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-2-ldap-in-a-few-words.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-3-the-apache-ldap-api-rational.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-4-preparation-to-code.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-1-connection-and-disconnection.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-2-binding-and-unbinding.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-3-searching.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-4-adding-entries.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-5-deleting-entries.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-6-modifying-entries.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-7-moving-and-renaming-entries.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-8-comparing-entries.confluence
    directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-9-exception-management.confluence

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/2-0-apache-ldap-api.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/2-0-apache-ldap-api.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/2-0-apache-ldap-api.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/2-0-apache-ldap-api.confluence Thu Feb  2 17:54:42 2012
@@ -1,3 +1,3 @@
 h1. Apache LDAP API
 
-This chapter exposes the rational that drove us to design a new Java LDAP API.
+This chapter presents the rationale that drove us to design a new Java LDAP API.

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/3-0-basic-ldap-api-usage.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/3-0-basic-ldap-api-usage.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/3-0-basic-ldap-api-usage.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/3-0-basic-ldap-api-usage.confluence Thu Feb  2 17:54:42 2012
@@ -1,5 +1,5 @@
 h1. Basic LDAP API usage
-We provide three different set of methods to send requests to the *LDAP* server :
-* A first set which is the simplest, where the methods don't return a response, except the _search_ and _compare_ methods
-* A second set, for advanced users, giving full control to the user
+We provide three different sets of methods to send requests to the *LDAP* server:
+* A first set which is the simplest, where the methods don't return a response, except the _search_ and _compare_ methods.
+* A second set for advanced users, giving full control to the user.
 * A third set allowing the user to send asynchronous requests.
\ No newline at end of file

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/8-0-ldap-related-rfcs.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/8-0-ldap-related-rfcs.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/8-0-ldap-related-rfcs.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/8-0-ldap-related-rfcs.confluence Thu Feb  2 17:54:42 2012
@@ -1,8 +1,8 @@
 h1. LDAP related RFCs
 
-*LDAP* and *X.500* are specified through many *RFCs*. Here is the list of available *RFCs* within some category (there are around 100 RFCs available, some of them are now deprecated, some other are obsolete.
+*LDAP* and *X.500* are specified through many *RFCs*. Here is the list of available *RFCs* within some category (there are around 100 RFCs available, some of them are now deprecated, some are obsolete.
 
-This page list all the existing *RFCs*, obsolete or not.
+This page lists all the existing *RFCs*, obsolete or not.
 
 !information.png! : Informational
 !lightbulb.png!: Historic

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-1-java-and-ldap.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-1-java-and-ldap.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-1-java-and-ldap.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-1-java-and-ldap.confluence Thu Feb  2 17:54:42 2012
@@ -1,23 +1,23 @@
 h2. Java and LDAP
 
-Most developer will, at some point, face the tricky task to communicate with a *LDAP* server. *LDAP* seems to be a very simple technology, but when you get deep into it, you realize that many aspects are not well known, and not so easy to deal with.
+Most developers will, at some point, face the tricky task to communicate with a *LDAP* server. *LDAP* seems to be a very simple technology, but when you get deep into it, you realize that many aspects are not well known, and not so easy to deal with.
 
 Java is most certainly the number one language used in the enterprise, for around 10 years now. Some even call it the new *Cobol* !
 
-Those two facts make it necessary to be able to communicate with a *LDAP* server in *Java*. This is ware a convenient *API* is useful, and this is why we decided to provide this *API*.
+Those two facts make it necessary to be able to communicate with a *LDAP* server in *Java*. This is whereæ a convenient *API* is useful, and this is why we decided to provide this *API*.
 
-Of course, there are alternatives, like *JNDI*. We truly believe that those alternative aren't helping users to cope with the complexity of *LDAP*, at least they are not giving a hand to users. For instance, *JNDI* semantic are far awy from *LDAP semantic. Let's see how different it is :
+Of course, there are alternatives, like *JNDI*. We truly believe that those alternative are not helping users to cope with the complexity of *LDAP*, at least they are not giving a hand to users. For instance, *JNDI* semantics are far away from *LDAP semantics. Let's see how different this is:
 
-* _Bind_ : used in *LDAP* to authenticate a user, and to create an entry in *JNDI*
-* _Unbind_ : close the *LDAP* session in *LDAP*, delete an entry in *JNDI*
-* _Compare_ : this *LDAP* operation is mapped to a _Search_ in *JNDI*
-* Various properties have to be set in *JNDI* in order to connect or tweak the _Search_ operation, which is not convenient
-* _Attributes_ is case sensitive by default in *JNDI*, and they aren't schema aware
-* _Name_ in *JNDI* are not able to do a valid comparison in *JNDI* 
-* _NamingEnumeration_ have to be explcitly closed in *JNDI*, as they aren't closed when you disconnect, leading to some resource leaks.
+* _Bind_ : used in *LDAP* to authenticate a user, and to create an entry in *JNDI*.
+* _Unbind_ : close the *LDAP* session in *LDAP*, delete an entry in *JNDI*.
+* _Compare_ : this *LDAP* operation is mapped to a _Search_ in *JNDI*.
+* Various properties have to be set in *JNDI* in order to connect or tweak the _Search_ operation, which is not convenient.
+* _Attributes_ is case sensitive by default in *JNDI*, and they are not schema-aware.
+* _Name_ in *JNDI* are not able to do a valid comparison in *JNDI*.
+* _NamingEnumeration_ have to be explicitly closed in *JNDI*, as they are not closed when you disconnect, leading to some resource leaks.
 
-Some of those problems are also true for the existing *LDAP API*.
+Some of these problems are also true for the existing *LDAP API*'s.
 
-All in all, writing application including some *LDAP* operations in *Java* is just a painful task for most of the developers. 
+All in all, writing applications including some *LDAP* operations in *Java* is just a painful task for most developers. 
 
-Our target is to provide a better *API*, that will help them getting efficient with their *LDAP* interaction.
\ No newline at end of file
+Our objective is to provide a better *API*, that will help them be more efficient with their *LDAP* interaction.
\ No newline at end of file

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-2-ldap-in-a-few-words.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-2-ldap-in-a-few-words.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-2-ldap-in-a-few-words.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-2-ldap-in-a-few-words.confluence Thu Feb  2 17:54:42 2012
@@ -2,25 +2,25 @@ h2. LDAP in a few words
 
 h3. Introduction
 
-*LDAP* is not a new technlology. It has been around since mid 1990, as a way to mitigate the complexity of the *X.500* based servers access. It's name is an acronym for *L{*}ightweight *D{*}irectory *A{*}ccess *P{*}rotocol. Soon after the first standard has been issued, the first full *LDAP* server was written (ie, X.500 was pushed out of the equation).
+*LDAP* is not a new technology. It has been around since the mid 1990's as a way to mitigate the complexity of the *X.500*-based server access. Its name is an acronym for _Lightweight Directory Access Protocol_. Soon after the first standard had been issued, the first complete *LDAP* server was written (ie, X.500 was pushed out of the equation).
 
-We will now use the term *LDAP* and *LDAP* server for respectively the protocole and the server.
+We will now use the term *LDAP* and *LDAP* server for the protocol and the server, respectively.
 
 h3. Features
-A *LDAP* server provides access to entries, stored in a backend. It offers an interrogation mechanism allowing fast retrieval of entries. The data structure is hierarchical, and we use a schema to manage the content of entries, plus the organisation of data.
+A *LDAP* server provides access to entries stored in a backend. It offers an interrogation mechanism allowing for fast retrieval of entries. The data structure is hierarchical, and it uses a schema to manage the content of entries, plus the organization of data.
 
-A *LDAP* client first has to connect to the server, and disconnect at the end. Some operations can be done on data, searches, modification and deletion, among a few others.
+A *LDAP* client first has to connect to the server, and disconnect at the end. Some operations can be done on data, such as searches, modification and deletion.
 
-*LDAP* servers are extensible, but they all use a common protocol which makes it easy for users to request them. This API is an exemple of what *LDAP* is very good at : access data in a fast way, across servers.
+*LDAP* servers are extensible, but they all use a common protocol which makes it easy for users to use them. This API is an example of what *LDAP* is very good at: access data in a fast way across servers.
 
 h3. Characteristics
-*LDAP* servers are fast for retrievals : they have been designed for this purpose. On the other hand, modifications can be costly. This has to be understood when writing an application using a *LDAP* server as a backend.
+*LDAP* servers are fast for retrievals since they have been designed for this purpose. On the other hand, modifications can be costly. This has to be understood when writing an application that uses a *LDAP* server as a backend.
 
-Each entry is identified by it's position in the hierarchy, and we use what is called a *D{*}istinguished *N{*}ame (or *[DIRAPI:Dn]*) to describe this position in the tree. The base is also named the *DIT*, or *D{*}irectory *I{*}nformation *T{*}ree.
+Each entry is identified by its position in the hierarchy, and it uses what is called a _Distinguished Name_ (or *[Dn]*) to describe this position in the tree. The base is also named the *DIT*, or _Directory Information Tree_.
 
 h3. Programming 
 
-Nowadays, *LDAP* is a part of the *IT* and it's difficult to avoid having to deal with it. *LDAP* servers are used to manage authentication, mainly, but also authorization, and more. It's very likely that you will have to write some code to access such a *LDAP* server, and the existing *API* are a bit cumbersome. This new *LDAP API* has been defined to facilitate this kind of tasks.
+Nowadays, *LDAP* is a part of the *IT* and it is difficult to avoid having to deal with it. *LDAP* servers are used to manage not only authentication, but also authorization, and more. It is very likely that you will have to write some code to access such a *LDAP* server, and the existing *API* are a bit cumbersome. This new *LDAP API* has been defined to facilitate this kind of tasks.
 
 h3. Going further
 

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-3-the-apache-ldap-api-rational.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-3-the-apache-ldap-api-rational.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-3-the-apache-ldap-api-rational.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-3-the-apache-ldap-api-rational.confluence Thu Feb  2 17:54:42 2012
@@ -1,32 +1,32 @@
-h2. The Apache LDAP API rational
+h2. The Apache LDAP API Rationale
 
-Once we start to think about creating a new *LDAP* *API*, the first thing that comes to mind is that it could be a duplication of effort : there are already many libraries offering almost everything needed to write *LDAP* code. Some of them are :
+Once we start to think about creating a new *LDAP* *API*, the first thing that comes to mind is that it could be a duplication of effort: there are already many libraries offering almost everything needed to write *LDAP* code. Some of them are :
 * *JNDI* : the default *JDK* *API*
 * *Netscape* [LdapSdk|http://www.mozilla.org/directory/javasdk.html]
 * *OpenLDAP* [JLdap|http://www.openldap.org/jldap/]
 
-So what makes the development of a new *LDAP JAVA API* a valid effort, and not another version of *[NIH|http://en.wikipedia.org/wiki/Not_Invented_Here]* syndrom ?
+So what makes the development of a new *LDAP JAVA API* a valid effort, and not another version of *[NIH|http://en.wikipedia.org/wiki/Not_Invented_Here]* syndrom?
 
 There are many reasons why we decided to start to work on such an *API*, and we will expose them in this chapter.
 
-h3. history
-The Apache Directory Server project was first built on top of *JNDI*, but many of the internal *LDAP* structure were developed internally, just because *JNDI* was not designed specifically for *LDAP*, so it was not convenient for us to use those structure. Step by step, all of the *LDAP* objects (_Attribute_, _Entry_, _DN_, ...) were implemented again.
+h3. History
+The Apache Directory Server project was first built on top of *JNDI*, but many of the internal *LDAP* structures were developed internally, just because *JNDI* was not designed specifically for *LDAP*, so it was not convenient for us to use those structures. Step by step, all of the *LDAP* objects (_Attribute_, _Entry_, _DN_, ...) were implemented again.
 
 At some point, we needed to communicate with another *LDAP* server without having to go through *JNDI*, so we developed our own _LdapConnection_ class. This was the last step toward a full *Java API*.
 
-Strange enough, at the very same time in 2007, the *Sun* people working on *OpenDS* contacted us to know if we would agree to work on what would have become the next version of *JNDI* ([Resurrecting The Java LDAP Centric API|http://blogs.sun.com/treydrake/entry/resurrecting_the_java_ldap_centric]). Sadly, this effort soon staled, as it seemed that *JNDI2* was not anymore an urgency for *Sun*. We decided to go on but the pace was slow.
+Strangely enough, at the very same time in 2007, the *Sun* people working on *OpenDS* contacted us to know if we would agree to work on what would have become the next version of *JNDI* ([Resurrecting The Java LDAP Centric API|http://blogs.sun.com/treydrake/entry/resurrecting_the_java_ldap_centric]). Sadly, this effort soon stalled, as it seemed that *JNDI2* was not an urgency for *Sun* anymore. We decided to go on but the pace was slow.
 
-We started again to work on this API with the *OpenDS* team in 2009, and did a presentation during the 2009 *LdapCon* ([Towards a common LDAP API for the Java Platform|http://www.symas.com/ldapcon2009/papers/poitou1.shtml]). The story repeated itself with *Oracle* buying *Sun* in 2010, after months of valuable collaboration with *Sun*.
+We started again to work on this API with the *OpenDS* team in 2009 and did a presentation during the 2009 *LdapCon* ([Towards a common LDAP API for the Java Platform|http://www.symas.com/ldapcon2009/papers/poitou1.shtml]). The story repeated itself with *Oracle* buying *Sun* in 2010, after months of valuable collaboration with *Sun*.
 
-At least, we get some kind of convergence in many aspects of the *API*. We agreed on some of the key features the new *LDAP API* should offer :
-* A complete coverage of the *LDAP* protocol
-* A schema aware *API*
-* An easy to use *API*
-* An *API* taking advantage of the new *Java* construction (generics, ellipsis, NIO)
+At last, we got some kind of convergence in many aspects of the *API*. We agreed on some of the key features the new *LDAP API* should offer:
+* A complete coverage of the *LDAP* protocol.
+* A schema-aware *API*
+* An easy-to-use *API*
+* An *API* taking advantage of the new *Java* constructs (generics, ellipsis, NIO).
 
 h3. Result
-The newly defined *API* fulfill all those aspects. 
+The newly defined *API* fulfills all of those aspects. 
 
-We also wanted to make this *API* available for the masses. The Apache Software Foundation value quality and community over code, which means we think that the code is the result of a collaborative work, our users being a part of this collaboration. Every bug a user find, it's an opportunity to provide a better version of the *API*.
+We also wanted to make this *API* available for the masses. The Apache Software Foundation values quality and community over code, which means we think that the code is the result of a collaborative work, our users being a part of this collaboration. Every bug a user finds is an opportunity to provide a better version of the *API*.
 
-At he end, we are proud to deliver an *API* which is used in the Apache Directory Server, but also in the Ldap Browser. 
\ No newline at end of file
+At the end, we are proud to deliver an *API* which is used in the Apache Directory Server, but also in the LDAP Browser. 
\ No newline at end of file

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-4-preparation-to-code.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-4-preparation-to-code.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-4-preparation-to-code.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-2/2-4-preparation-to-code.confluence Thu Feb  2 17:54:42 2012
@@ -4,7 +4,7 @@ In order to develop with the *Apache Dir
 
 Second, you have to download the *[API|http://directory.apache.org/api/downloads.html]*. This package contains not only the *LDAP API*, but also all the needed jars (like _commons-lang_, _slf4j_...).
 
-If you are using *Maven*, you don't even have to refer all the libraries that are found in the package, they will be deduced automatically. You will just have to add a dependency on shared-all.jar :
+If you are using *Maven*, you don't even have to refer to all the libraries that are found in the package, since they will be deduced automatically. You will just have to add a dependency on shared-all.jar :
 
 {code:xml}
     <dependency>
@@ -13,4 +13,4 @@ If you are using *Maven*, you don't even
     </dependency>
 {code}
 
-This is it, you should be ready to code !
\ No newline at end of file
+This is it, you should be ready to code!
\ No newline at end of file

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-1-connection-and-disconnection.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-1-connection-and-disconnection.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-1-connection-and-disconnection.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-1-connection-and-disconnection.confluence Thu Feb  2 17:54:42 2012
@@ -1,35 +1,35 @@
 h2. Connection and disconnection
 
-*LDAP* is a protocol which requires the user to be connected - and eventually identified - in order to be able to send requests to the server. We maintain this connection potentially forever. What make the *LDAP* protocol different from, say, the *HTTP* protocol is that the connection must be issued explicitly. Let's see how we do that.
+*LDAP* is a protocol which requires the user to be connected--and eventually identified--in order to be able to send requests to the server. We maintain this connection potentially forever. What makes the *LDAP* protocol different from, say, the *HTTP* protocol, is that the connection must be issued explicitly. Let's see how we do that.
 
-h3. Opening a connection
+h3. Opening a Connection
 
-We can open a secure or a standard connection. 
+We can open a standard or secure connection. 
 
-h4. Standard connection
+h4. Standard Connection
 
-We can first establish a standard connection, where the data are sent and received in clear text (encoded in ASN.1 BER, but still not encrypted). This example expose the way it's done :
+We can first establish a standard connection, where the data is sent and received in clear text (encoded in ASN.1 BER, but still unencrypted). This example shows the way it's done :
 
 {code:java}
     LdapConnection connection = new LdapNetworkConnection( "localhost", 389 );
 {code}
 
-Here, we just created an unsafe connection locally, using the 389 port. Quite simple...
+Here, we just created an unsafe connection locally, using port 389. Quite simple...
 
-h4. Secure connection
+h4. Secure Connection
 
-Although the *LDAPS* (*LDAP* over *SSL*) is now considered as deprecated, many people continue to use it. The big advantage of not using *LDAPS* is that you don't need to setup two different listening ports (one for *LDAP* -389- and another one for *LDAPS* -636- ).
+Although the *LDAPS* (*LDAP* over *SSL*) is now considered deprecated, many people continue to use it. The big advantage of not using *LDAPS* is that you don't need to set up two different listening ports (one for *LDAP* -389- and another one for *LDAPS* -636- ).
 
 The only difference with the previous example is that we have to tell the connection that it has to use *SSL*, by passing *_true{_}* as a third parameter (incidentally, passing *_false{_}* set a unsafe connection).
 
-Here is an example
+Here is an example:
 
 {code:java}
     LdapConnection connection = new LdapNetworkConnection( "localhost", 636, true );
 {code}
 
-h3. Maintaining the connection opened
-We keep the connection opened for a limited period of time, defaulting to 30 seconds. This might be not long enough, so one can change this delay by calling the _setTimeOut()_ method :
+h3. Keeping the Connection Open
+We keep the connection open for a limited period of time, defaulting to 30 seconds. This might be not long enough, so one can change this delay by calling the _setTimeOut()_ method :
 
 {code:java}
     LdapConnection connection = new LdapNetworkConnection( "localhost", 389 );
@@ -39,12 +39,12 @@ We keep the connection opened for a limi
 {code}
 
 {note}
-Setting a value equal or below 0 will keep the connection opened for ever (or a soon as the connection is not explicitly closed).
+Setting a value equal to or below 0 will keep the connection open forever (as long as the connection is not explicitly closed).
 {note}
 
-h3. Closing the connection
+h3. Closing the Connection
 
-Once you don't need to use the connection anymore (remember that hodling a connection keeps a session opened on the server, and a socket opened between the client and the server), then you have to close it. This is done by calling the _close()_ method :
+Once you don't need to use the connection anymore (holding a connection keeps a session open on the server, and a socket open between the client and the server), then you have to close it. This is done by calling the _close()_ method:
 
 {code:java}
     LdapConnection connection = new LdapNetworkConnection( "localhost", 389 );

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-2-binding-and-unbinding.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-2-binding-and-unbinding.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-2-binding-and-unbinding.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-2-binding-and-unbinding.confluence Thu Feb  2 17:54:42 2012
@@ -1,12 +1,12 @@
-h2. Binding and unbinding
+h2. Binding and Unbinding
 
-In *LDAP*, if one wants to access the data in the base, the common way to do it is to bind on the server. However, it's important to understand that binding is a different beast than connection.
+In *LDAP*, if one wants to access the data in the base, the common way to do it is to bind to the server. However, it is important to understand that binding is a different operation than connecting.
 
-Creating a connection to a *LDAP* server is just about opening a socket between the client and the server. You just need to provide the address and the port. 
+Creating a connection to a *LDAP* server is just about opening a socket between the client and the server. You just need to provide the hostname or address, and the port. 
 
-The bind operation, on the other hand, create a Session which will hold some user's information for the time being of the session. Those information are quite limited, they include the user's credentials.
+The bind operation, on the other hand, creates a Session which will hold some user's information for the duration of the session. Those information are quite limited, they include the user's credentials.
 
-But it's important to know that it's possible to bind as anonymous, providing no name and password, and still be able to request the server (note though that the server can forbid such anonymous bind).
+It is important to know that it is possible to bind anonymously, providing no name and password, and still be able to request the server (note that the server can deny such anonymous bind).
 
 Once the user has finished to request the server, then he can unbind, destroying his session on the server. That does not close the connection, because, one more time, _bind != connection_.
 
@@ -15,19 +15,19 @@ You have two possible types of binds in 
 * *Simple*
 * *SASL*
 
-The first one is based on a user/password being send to the server, which check that they are valid. It's also possible to proceed an Anonymous bind explicitly.
+The first one is based on a username/password being sent to the server, which checks that they are valid. It's also possible to proceed with an Anonymous bind explicitly.
 
-The second one is more complex, and is used if you want to proceed an authentication with some specific mechanism, like *DIGEST-MD5*, *Kerberos* or certificate based.
+The second one is more complex, and is used if you want to provide authentication with some specific mechanism, like *DIGEST-MD5*, *Kerberos* or certificate based.
 
 h4. Simple Bind
-One can issue three kind of Simple bind :
+One can issue three kinds of Simple bind :
 * _anonymous bind_
-* _name/password bind_
+* _username/password bind_
 * _unauthenticated authentication bind_
 
-The first one is the easiest one, but depending on the server configuration, it will be accepted or rejected (all the servers don't allow anonymous binds)
+The first one is the easiest one, but depending on the server configuration, it will be accepted or rejected (not all the servers allow anonymous binds).
 
-Issuing an anonymous bind is very simple, you just provide no user name nor any password :
+Issuing an anonymous bind is very simple, you provide neither username nor password:
 
 {code:java}
     @Test
@@ -41,7 +41,7 @@ Issuing an anonymous bind is very simple
     }
 {code}
 
-Issuing a user/password bind is just slightly more complex, you just have to provide your user name and its password :
+Issuing a username/password bind is just slightly more complex, you just have to provide your username and its password:
 
 {code:java}
     @Test
@@ -56,12 +56,12 @@ Issuing a user/password bind is just sli
 {code}
 
 {note:warn}
-It's important to note that the user's name is a *[DIRAPI:Dn]*, not a simple name like 'John doe"
+It is important to note that the user's name is a *[DIRAPI:Dn]*, not a simple name like 'John doe"
 {note}
 
-Last, not least, there is a quite unknown feature in *LDAP* bind that allows you to issue a Bind request without providing a password. It's equivalent to an anonymous bind, except that the server can log the user's name, thus being able to trace what the user does. Servers might forbid such bind, and this will be the case if the server disallow anonymous binds.
+Last but not least, there is a quite unknown feature in *LDAP* bind that allows you to issue a Bind request without providing a password. It is equivalent to an anonymous bind, except that the server can log the user's name, thus being able to trace what the user does. Servers might forbid such bind, and this will be the case if the server disallows anonymous binds.
 
-Note that this kind of bind will be supported only if the server allows anonymous binds. It's not supported by *ApacheDS*.
+Note that this kind of bind will be supported only if the server allows anonymous binds. It is not supported by *ApacheDS*.
 
 {code:java}
     @Test
@@ -84,7 +84,7 @@ h3. Unbinding
 
 This is a trivial operation : you just send an *[UnbindRequest]* to the server, which will invalidate your session. 
 
-It's important to know that when you issue an *Unbind*, the connection is dropped. However, if you immediately try another bind, the *API* will open the connection again, using the information provided when the connection has been created. You can then do such a thing :
+It is important to know that when you issue an *Unbind*, the connection is dropped. However, if you immediately try another bind, the *API* will open the connection again, using the information provided when the connection was  created. You can do it this way:
 
 {code:java}
     @Test
@@ -100,7 +100,7 @@ It's important to know that when you iss
         assertFalse( connection.isConnected() );
         assertFalse( connection.isAuthenticated() );
 
-        // And Bind again.
+        // And bind again.
         response = connection.bind( "uid=admin,ou=system", "secret" );
         LdapResult ldapResult3 = response3.getLdapResult();
         assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult.getResultCode() );
@@ -109,7 +109,7 @@ It's important to know that when you iss
     }
 {code}
 
-If you issue a _bind_ on the same connection with some different credentials, then the existing session will be terminated on the server, and a new one will be created. All the pending requests for the initial session will be lost.
+If you issue a _bind_ on the same connection with different credentials, then the existing session will be terminated on the server, and a new one will be created. All the pending requests for the initial session will be lost.
 
-Last, not least, if you close the connection, then the session will also be terminated.
- 
+Finally, if you close the connection the session will be terminated.
+ 
\ No newline at end of file

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-3-searching.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-3-searching.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-3-searching.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-3-searching.confluence Thu Feb  2 17:54:42 2012
@@ -1,16 +1,16 @@
 h2. Searching
 
-Searching is the most important operation in *LDAP*. It has to be fast, very fast. On the other hand, as the server does not a lot of processing while looking for entries, the client has to provide many information in order to get some accurate results.
+Searching is the most important operation in *LDAP*. It has to be fast. Very fast. On the other hand, as the server does not do a lot of processing while looking for entries, the client has to provide sufficient information in order to get accurate results.
 
-The idea is to define a search *API* which is easy to use in the simplest cases, but provides all the necessary bolts if you need to send complex search requests.
+The idea is to define a search *API* that is easy to use in the simplest cases, but provides all the necessary bolts if you need to send complex search requests.
 
 {note:warn}
-This part of the API is very likely to change in the next milestone, to provide an easier way to get the results in the simple cases.
+This part of the API is very likely to change in the next milestone to provide an easier way to get the results in the simple cases.
 {note}
 
-h3. Simple search
+h3. Simple Search
 
-Let's first look at a simple search. What we basically need to process a search is a starting point in the tree, a filter, a scope. Here is an example :
+Let's first look at a simple search. What we basically need to process a search is a starting point in the tree, a filter, a scope. Here is an example:
 
 {code:java}
     @Test
@@ -35,6 +35,6 @@ Let's first look at a simple search. Wha
     }
 {code}
 
-In this example, the _connection_ has been previously created. We just search for all the entries starting at *ou=system* and their children, which have an _ObjectClass_ attribute (all the entries have such an attribute, so we should get back all the entries). The scope (_ONELEVEL_) says we just search one level under the starting base.
+In this example the _connection_ has been previously created. We just search for all the entries starting at *ou=system* and their children, which have an _ObjectClass_ attribute (all the entries have such an attribute, so we should get back all the entries). The scope (_ONELEVEL_) says we just search one level under the starting base.
 
-We get back a cursor, which can be walked forward. Every call to the _get()_ method will return a response, which will be either a _SearchResultEntry_, a _SearchResultReference_ or an _IntermediateResponse_.
\ No newline at end of file
+We get back a cursor, which can be iterated forward. Every call to the _get()_ method will return a response, which will be either a _SearchResultEntry_, a _SearchResultReference_ or an _IntermediateResponse_.
\ No newline at end of file

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-4-adding-entries.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-4-adding-entries.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-4-adding-entries.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-4-adding-entries.confluence Thu Feb  2 17:54:42 2012
@@ -1,11 +1,11 @@
-h2. Adding entries
+h2. Adding Entries
 
-Adding entries is one of the base operation a user can do on a *LDAP* server. Nevertheless, such an operation implies a lot of checks, and frequently the user gets some weird error messages. We will see how we can add an entry using the *LDAP API*, and then analyze the different error cases we can face.
+Adding entries is one of the basic operations a user can do on a *LDAP* server. Nevertheless, such an operation implies a lot of checks, and frequently the user gets some weird error messages. We will see how we can add an entry using the *LDAP API*, and then analyze the different error cases we can face.
 
-h3. Adding an entry
+h3. Adding an Entry
 We will first see the easiest way to add an entry into the server, assuming that the entry is correct. In order to add an entry, you only have to provide the place where this entry will be stored (its *[DIRAPI:Dn]*) and the list of its *[DIRAPI:Attribute]s*.
 
-Here is two examples where we inject the entry using *LDIF*:
+Here are two examples where we inject the entry using *LDIF*:
 
 {code:java}
     @Test
@@ -27,8 +27,8 @@ Here is two examples where we inject the
     }
 {code}
 
-In this basic example, we are adding a new entry, created using some *LDIF* formatted parameters, the first one being the entry's Dn.
-Note that it is possible to use some variables in the *LDIF* instead of pure text. Here is the same example, resulting to the same entry being added:
+In this basic example we are adding a new entry created using some *LDIF* formatted parameters, the first one being the entry's Dn.
+Note that it is possible to use some variables in the *LDIF* instead of pure text. Here is the same example resulting to the same entry being added:
 
 {code:java}
     @Test
@@ -55,13 +55,13 @@ Note that it is possible to use some var
 
 Down the line, what is important is that the _add()_ operation is taking a full *[DIRAPI:Entry]*. 
 
-We can also create the *[DIRAPI:Entry]* in a different way, which will be exposed in the following paragraphs.
+We can also create the *[DIRAPI:Entry]* in a different way, which will be explained in the following paragraphs.
 
 h3. Sending an *[DIRAPI:AddRequest]*
 
-Sometimes, we want more control. We can ask the server to add an entry by sending an *[DIRAPI:AddRequest]*, which allows you to send a *[DIRAPI:Control]* at the same time.
+Sometimes, we want more control. We can ask the server to add an entry by sending an *[DIRAPI:AddRequest]*, which allows you to send a *[DIRAPI:Control]* simultaneously.
 
-Here is an example (note that the control is just injected to demonstrate the feature, it simply does nothing in this case):
+Here is an example (note that the control is just injected to demonstrate the feature, it does nothing in this case):
 
 {code:java}
     @Test
@@ -90,9 +90,9 @@ Here is an example (note that the contro
     }
 {code}
 
-h4. Asynchronous addition
+h4. Asynchronous Addition
 
-Some may want to add an entry, but will not check the result immediately. It's just a matter of calling the _addAsync()_ method, which will return a _Future_ that can be checked somewhere else in the code:
+Some may want to add an entry but will not check the result immediately. It's just a matter of calling the _addAsync()_ method, which will return a _Future_ that can be checked somewhere else in the code:
 
 {code:java}
     @Test
@@ -121,22 +121,22 @@ Some may want to add an entry, but will 
     }
 {code}
 
-h3. Do, Don't
+h3. Do's and Don'ts
 
-Successfully adding an entry assume that the entry is correct, ie that the attributes and the value are compatible with the schema. There are many things checked by the server. Here is a list of constraints that you should respect in order to get your entry injected:
-* The entry must have at least one *Structural* *[DIRAPI:ObjectClass]*
-* If the entry has more than one *Structural* *[DIRAPI:ObjectClass]*, then they must be hierarchically related
-* The *[DIRAPI:ObjectClass]es* define the list of allowed *Structural* *[DIRAPI:AttributeType]s* that can be used (*MAY* and *MUST*)
-* All the *MUST* *[DIRAPI:AttributeType]s* must be present
-* Each added value must follow the *[DIRAPI:AttributeType]* *[DIRAPI:Syntax]*
-* If the *[DIRAPI:AttributeType]* is single valued, then you can't add more than one value
+Successfully adding an entry assumes that the entry is correct; i.e., that the attributes and the values are compatible with the schema. There are many things checked by the server. Here is a list of constraints that you should respect in order to get your entry injected:
+* The entry must have at least one *Structural* *[DIRAPI:ObjectClass]*.
+* If the entry has more than one *Structural* *[DIRAPI:ObjectClass]*, then they must be hierarchically related.
+* The *[DIRAPI:ObjectClass]es* define the list of allowed *Structural* *[DIRAPI:AttributeType]s* that can be used (*MAY* and *MUST*).
+* All the *MUST* *[DIRAPI:AttributeType]s* must be present.
+* Each added value must follow the *[DIRAPI:AttributeType]* *[DIRAPI:Syntax]*.
+* If the *[DIRAPI:AttributeType]* is single valued, then you can't add more than one value.
 * The entry's *[DIRAPI:Dn]* must have a parent
-* You are not allowed as a user to inject operational attributes, unless they have the *USER-MODIFICATION* flag set to true.
+* As a user you are not allowed to inject operational attributes, unless they have the *USER-MODIFICATION* flag set to true.
 
 
 There are also some other constraints, depending on the server, if it implements *[DIRAPI:NameForm]s*, *[DIRAPI:DITStructureRule]s* or *[DIRAPI:DITContentRule]s*.
 
-One other reason your entry can be rejected is that you don't have enough privilege to add it. You have to check that the server configuration allows you to add an entry where you want to add it.
+One other reason your entry can be rejected is that you don't have enough privileges to add it. You have to check that the server configuration allows you to add an entry where you want to add it.
 
 h3. Errors
 
@@ -148,4 +148,4 @@ In any other case, the server will simpl
 
 Usually, if you get an error while adding an entry, the message might be pretty tedious. Most of the cases it's because either your entry already exists, or because your entry has some schema violation.
 
-The *[DIRAPI:LdapResult]* in the response will give you a clue about what going on.
\ No newline at end of file
+The *[DIRAPI:LdapResult]* in the response will give you a clue about what is going on.
\ No newline at end of file

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-5-deleting-entries.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-5-deleting-entries.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-5-deleting-entries.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-5-deleting-entries.confluence Thu Feb  2 17:54:42 2012
@@ -1,10 +1,10 @@
 h2. Deleting entries
 
-Deleting an entry is really easy. It's just a matter to know its *[DIRAPI:Dn]*. There is one important thing to understand though : if this entry has some children, it won't be deleted.
+Deleting an entry is really easy. It's just a matter to know its *[DIRAPI:Dn]*. There is one important thing to understand though: if this entry has some children, it won't be deleted.
 
-h3. Simple entry deletion
+h3. Simple Entry Deletion
 
-We can ask the deletion by providing the entry's *[DIRAPI:Dn]*, like what is done in the following example :
+We can ask for deletion by providing the entry's *[DIRAPI:Dn]*, as in the following example :
 
 {code:java}
     @Test
@@ -20,7 +20,7 @@ We can ask the deletion by providing the
     }
 {code}
 
-Trying to delete the parent alone would leads to an error (NOT_ALLOWED_ON_NON_LEAF) :
+Trying to delete the parent alone would lead to an error (NOT_ALLOWED_ON_NON_LEAF) :
 
 {code:java}
     @Test
@@ -36,9 +36,9 @@ Trying to delete the parent alone would 
     }
 {code}
 
-h3. Recursive deletion of entries
+h3. Recursive Deletion of Entries
 
-Usually, you can't delete an entry and all of its children. However, some server accept such a request if you send a delete request and a TreeDelete control. This control is a [draft|http://tools.ietf.org/html/draft-armijo-ldap-treedelete-02], which has been implemented by *Microsoft*, *OpenDS*, *OpenDJ*. It will delete all the children and the entry itself. We don't use a normal _delete()_ method, there is a specific method, _deleteTree()_. Here is an example :
+Usually, you can't delete an entry and all of its children. However, some servers accept such a request if you send a delete request and a TreeDelete control. This control is a [draft|http://tools.ietf.org/html/draft-armijo-ldap-treedelete-02], which has been implemented by *Microsoft*, *OpenDS*, *OpenDJ*. It will delete all the children and the entry itself. We don't use a normal _delete()_ method, there is a specific method, _deleteTree()_ to accomplish the delete request in ApacheDS. Here is an example:
 
 {code:java}
     @Test
@@ -55,9 +55,9 @@ Usually, you can't delete an entry and a
     }
 {code}
 
-h3. Sending a DeleteRequest with a control
+h3. Sending a DeleteRequest with a Control
 
-It's also possible to associate a *[DIRAPI:Control]* with the delete request. In order to do that, you have to create a *[DIRAPI:DelRequest]* instance. In the following example, we will add the Delete Tree control (this make this call equivalent to the _deleteTree()_ method).
+It's also possible to associate a *[DIRAPI:Control]* with the delete request. In order to do that you have to create a *[DIRAPI:DelRequest]* instance. In the following example, we will add the Delete Tree control (this makes this call equivalent to the _deleteTree()_ method).
 
 {code:java}
     @Test
@@ -81,9 +81,9 @@ It's also possible to associate a *[DIRA
     }
 {code}
 
-h3. Asynchronous delete
+h3. Asynchronous Delete
 
-You can also decide to send an asynchronous delete request : the method will return a Future that you can check later. You have to construct a *[DIRAPI:DeleteRequest]* instance. Here is an example :
+You can also decide to send an asynchronous delete request: the method will return a Future that you can check later. You have to construct a *[DIRAPI:DeleteRequest]* instance. Here is an example :
 
 {code:java}
     @Test

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-6-modifying-entries.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-6-modifying-entries.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-6-modifying-entries.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-6-modifying-entries.confluence Thu Feb  2 17:54:42 2012
@@ -1,3 +1,3 @@
-h2. Modifying entries
+h2. Modifying Entries
 
 TODO...
\ No newline at end of file

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-7-moving-and-renaming-entries.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-7-moving-and-renaming-entries.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-7-moving-and-renaming-entries.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-7-moving-and-renaming-entries.confluence Thu Feb  2 17:54:42 2012
@@ -1,3 +1,3 @@
-h2. Moving and Renaming entries
+h2. Moving and Renaming Entries
 
 TODO...
\ No newline at end of file

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-8-comparing-entries.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-8-comparing-entries.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-8-comparing-entries.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-8-comparing-entries.confluence Thu Feb  2 17:54:42 2012
@@ -1,3 +1,3 @@
-h2. Comparing entries
+h2. Comparing Entries
 
 TODO...
\ No newline at end of file

Modified: directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-9-exception-management.confluence
URL: http://svn.apache.org/viewvc/directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-9-exception-management.confluence?rev=1239744&r1=1239743&r2=1239744&view=diff
==============================================================================
--- directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-9-exception-management.confluence (original)
+++ directory/documentation/ldap-api-manuals/trunk/src/ldap-api-user-guide-confluence/chapter-3/3-9-exception-management.confluence Thu Feb  2 17:54:42 2012
@@ -1,17 +1,17 @@
-h2. Exception management
+h2. Exception Management
 
 {scrollbar}
 
 h3. Introduction
 
-We use some dedicated exceptions for each problem we might encounter while communicating with a LDAP Server. All those exceptions as associated with a *[DIRAPI:ResultCode] value. This chapter will expose the associated exception for each of those values
+We use some dedicated exceptions for each problem we might encounter while communicating with a LDAP Server. All these exceptions are associated with a *[DIRAPI:ResultCode] value. This chapter will present the associated exception for each of those values.
 
-h3. Ldap operation Exception mapping
+h3. LDAP Operation Exception Mapping
 
-Each operation exception inherits from the _LdapOperationException_ class. Those exception are generated when sending a message to the remote server, and may be thrown as a result of the called operation. In any case, they are only issued after having had an exchange with the remote server.
+Each operation exception inherits from the _LdapOperationException_ class. Operation exceptions are generated when sending a message to the remote server, and may be thrown as a result of the called operation. In any case, they are only issued after having had an exchange with the remote server.
 
 
-The following table expose the relation between a *ResultCode* and its associated exception (note that some *ResultCodes* are not associated with an exception, they are either for a successful operation, or an intermediate result ) :
+The following table provides the relation between a *ResultCode* and its associated exception (note that some *ResultCodes* are not associated with an exception, they are either for a successful operation or an intermediate result) :
 
 || ResultCode || Exception ||
 | SUCCESS | no exception |
@@ -61,5 +61,5 @@ The following table expose the relation 
 | SIZE_LIMIT_EXCEEDED | LdapSizeLimitExceededException |
 | NO_SUCH_OPERATION | LdapNoSuchOperationException |
 
-h3. Other exceptions
+h3. Other Exceptions
 TO BE CONTINUED
\ No newline at end of file