directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r840244 - in /websites/staging/directory/trunk/content: ./ api/user-guide.html api/user-guide/1.1-java-and-ldap.html api/user-guide/1.3-apache-ldap-api-rational.html
Date Sat, 01 Dec 2012 00:25:50 GMT
Author: buildbot
Date: Sat Dec  1 00:25:49 2012
New Revision: 840244

Log:
Staging update by buildbot for directory

Modified:
    websites/staging/directory/trunk/content/   (props changed)
    websites/staging/directory/trunk/content/api/user-guide.html
    websites/staging/directory/trunk/content/api/user-guide/1.1-java-and-ldap.html
    websites/staging/directory/trunk/content/api/user-guide/1.3-apache-ldap-api-rational.html

Propchange: websites/staging/directory/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Sat Dec  1 00:25:49 2012
@@ -1 +1 @@
-1415894
+1415895

Modified: websites/staging/directory/trunk/content/api/user-guide.html
==============================================================================
--- websites/staging/directory/trunk/content/api/user-guide.html (original)
+++ websites/staging/directory/trunk/content/api/user-guide.html Sat Dec  1 00:25:49 2012
@@ -124,13 +124,14 @@ Other pages are finished (but may be rev
 <p>We are quite interested to improve the content of this guide. Feel free to provide
us feedback:
 !email.png! <a href="mailto:users@directory.apache.org">mailto:users@directory.apache.org</a></p>
 <h3 id="table-of-contents">Table of contents</h3>
-<ul>
-<li><a href="user-guide/1-introduction.html">1 - Introduction</a></li>
-<li><a href="user-guide/1.1-java-and-ldap.html">1.1 - Java and LDAP</a></li>
-<li><a href="user-guide/1.2-ldap-in-a-few-words.html">1.2 - LDAP in a few words</a></li>
-<li><a href="user-guide/1.3-apache-ldap-api-rational.html">1.3 - The Apache LDAP
API rational</a></li>
-<li><a href="user-guide/1.4-preparation-to-code.html">1.4 - Preparation to code</a></li>
-</ul>
+<div class="codehilite"><pre><span class="o">*</span> <span class="p">[</span><span
class="mi">1</span> <span class="o">-</span> <span class="n">Introduction</span><span
class="p">](</span><span class="n">user</span><span class="o">-</span><span
class="n">guide</span><span class="o">/</span><span class="mi">1</span><span
class="o">-</span><span class="n">introduction</span><span class="o">.</span><span
class="n">html</span><span class="p">)</span>
+    <span class="o">*</span>  <span class="p">[</span><span class="mf">1.1</span>
<span class="o">-</span> <span class="n">Java</span> <span class="ow">and</span>
<span class="n">LDAP</span><span class="p">](</span><span class="n">user</span><span
class="o">-</span><span class="n">guide</span><span class="o">/</span><span
class="mf">1.1</span><span class="o">-</span><span class="n">java</span><span
class="o">-</span><span class="ow">and</span><span class="o">-</span><span
class="n">ldap</span><span class="o">.</span><span class="n">html</span><span
class="p">)</span>
+    <span class="o">*</span>  <span class="p">[</span><span class="mf">1.2</span>
<span class="o">-</span> <span class="n">LDAP</span> <span class="n">in</span>
<span class="n">a</span> <span class="n">few</span> <span class="n">words</span><span
class="p">](</span><span class="n">user</span><span class="o">-</span><span
class="n">guide</span><span class="o">/</span><span class="mf">1.2</span><span
class="o">-</span><span class="n">ldap</span><span class="o">-</span><span
class="n">in</span><span class="o">-</span><span class="n">a</span><span
class="o">-</span><span class="n">few</span><span class="o">-</span><span
class="n">words</span><span class="o">.</span><span class="n">html</span><span
class="p">)</span>
+    <span class="o">*</span>  <span class="p">[</span><span class="mf">1.3</span>
<span class="o">-</span> <span class="n">The</span> <span class="n">Apache</span>
<span class="n">LDAP</span> <span class="n">API</span> <span class="n">rational</span><span
class="p">](</span><span class="n">user</span><span class="o">-</span><span
class="n">guide</span><span class="o">/</span><span class="mf">1.3</span><span
class="o">-</span><span class="n">apache</span><span class="o">-</span><span
class="n">ldap</span><span class="o">-</span><span class="n">api</span><span
class="o">-</span><span class="n">rational</span><span class="o">.</span><span
class="n">html</span><span class="p">)</span>
+    <span class="o">*</span>  <span class="p">[</span><span class="mf">1.4</span>
<span class="o">-</span> <span class="n">Preparation</span> <span
class="n">to</span> <span class="n">code</span><span class="p">](</span><span
class="n">user</span><span class="o">-</span><span class="n">guide</span><span
class="o">/</span><span class="mf">1.4</span><span class="o">-</span><span
class="n">preparation</span><span class="o">-</span><span class="n">to</span><span
class="o">-</span><span class="n">code</span><span class="o">.</span><span
class="n">html</span><span class="p">)</span>
+</pre></div>
+
+
 <p>Basic LDAP API usage (...)</p>
 <div class="codehilite"><pre><span class="n">Connection</span> <span
class="ow">and</span> <span class="n">disconnection</span>
 <span class="n">Binding</span> <span class="ow">and</span> <span
class="n">unbinding</span> <span class="p">(</span><span class="o">...</span><span
class="p">)</span>

Modified: websites/staging/directory/trunk/content/api/user-guide/1.1-java-and-ldap.html
==============================================================================
--- websites/staging/directory/trunk/content/api/user-guide/1.1-java-and-ldap.html (original)
+++ websites/staging/directory/trunk/content/api/user-guide/1.1-java-and-ldap.html Sat Dec
 1 00:25:49 2012
@@ -131,16 +131,15 @@
 <p>Java is most certainly the number one language used in the enterprise, for around
10 years now. Some even call it the new Cobol !</p>
 <p>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.</p>
 <p>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 :</p>
-<div class="codehilite"><pre><span class="o">*</span> <span class="n">Bind</span>
<span class="p">:</span> <span class="n">used</span> <span class="n">in</span>
<span class="n">LDAP</span> <span class="n">to</span> <span class="n">authenticate</span>
<span class="n">a</span> <span class="n">user</span><span class="p">,</span>
<span class="ow">and</span> <span class="n">to</span> <span class="n">create</span>
<span class="n">an</span> <span class="n">entry</span> <span class="n">in</span>
<span class="n">JNDI</span>
-<span class="o">*</span> <span class="n">Unbind</span> <span class="p">:</span>
<span class="nb">close</span> <span class="n">the</span> <span
class="n">LDAP</span> <span class="n">session</span> <span class="n">in</span>
<span class="n">LDAP</span><span class="p">,</span> <span class="nb">delete</span>
<span class="n">an</span> <span class="n">entry</span> <span class="n">in</span>
<span class="n">JNDI</span>
-<span class="o">*</span> <span class="n">Compare</span> <span
class="p">:</span> <span class="n">this</span> <span class="n">LDAP</span>
<span class="n">operation</span> <span class="n">is</span> <span
class="n">mapped</span> <span class="n">to</span> <span class="n">a</span>
<span class="n">Search</span> <span class="n">in</span> <span class="n">JNDI</span>
-<span class="o">*</span> <span class="n">Various</span> <span
class="n">properties</span> <span class="n">have</span> <span class="n">to</span>
<span class="n">be</span> <span class="n">set</span> <span class="n">in</span>
<span class="n">JNDI</span> <span class="n">in</span> <span class="n">order</span>
<span class="n">to</span> <span class="nb">connect</span> <span
class="ow">or</span> <span class="n">tweak</span> <span class="n">the</span>
<span class="n">Search</span> <span class="n">operation</span><span
class="p">,</span> <span class="n">which</span> <span class="n">is</span>
<span class="ow">not</span> <span class="n">convenient</span>
-<span class="o">*</span> <span class="n">Attributes</span> <span
class="n">is</span> <span class="k">case</span> <span class="n">sensitive</span>
<span class="n">by</span> <span class="n">default</span> <span
class="n">in</span> <span class="n">JNDI</span><span class="p">,</span>
<span class="ow">and</span> <span class="n">they</span> <span class="n">aren</span><span
class="s">&#39;t schema aware</span>
-<span class="s">* Name in JNDI are not able to do a valid comparison in JNDI</span>
-<span class="s">* NamingEnumeration have to be explcitly closed in JNDI, as they aren&#39;</span><span
class="n">t</span> <span class="n">closed</span> <span class="n">when</span>
<span class="n">you</span> <span class="n">disconnect</span><span
class="p">,</span> <span class="n">leading</span> <span class="n">to</span>
<span class="n">some</span> <span class="n">resource</span> <span
class="n">leaks</span><span class="o">.</span>
-</pre></div>
-
-
+<ul>
+<li>Bind : used in LDAP to authenticate a user, and to create an entry in JNDI</li>
+<li>Unbind : close the LDAP session in LDAP, delete an entry in JNDI</li>
+<li>Compare : this LDAP operation is mapped to a Search in JNDI</li>
+<li>Various properties have to be set in JNDI in order to connect or tweak the Search
operation, which is not convenient</li>
+<li>Attributes is case sensitive by default in JNDI, and they aren't schema aware</li>
+<li>Name in JNDI are not able to do a valid comparison in JNDI</li>
+<li>NamingEnumeration have to be explcitly closed in JNDI, as they aren't closed when
you disconnect, leading to some resource leaks.</li>
+</ul>
 <p>Some of those problems are also true for the existing LDAP API.</p>
 <p>All in all, writing application including some LDAP operations in Java is just a
painful task for most of the developers.</p>
 <p>Our target is to provide a better API, that will help them getting efficient with
their LDAP interaction.</p>

Modified: websites/staging/directory/trunk/content/api/user-guide/1.3-apache-ldap-api-rational.html
==============================================================================
--- websites/staging/directory/trunk/content/api/user-guide/1.3-apache-ldap-api-rational.html
(original)
+++ websites/staging/directory/trunk/content/api/user-guide/1.3-apache-ldap-api-rational.html
Sat Dec  1 00:25:49 2012
@@ -128,12 +128,11 @@
 
 <h1 id="13-the-apache-ldap-api-rational">1.3 - The Apache LDAP API rational</h1>
 <p>Once we start to think about creating a new <strong>LDAP</strong> <strong>API</strong>,
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 <strong>LDAP</strong>
code. Some of them are :</p>
-<div class="codehilite"><pre><span class="o">*</span> <span class="o">**</span><span
class="n">JNDI</span><span class="o">**</span> <span class="p">:</span>
<span class="n">the</span> <span class="n">default</span> <span
class="o">**</span><span class="n">JDK</span><span class="o">**</span>
<span class="o">**</span><span class="n">API</span><span class="o">**</span>
-<span class="o">*</span> <span class="o">**</span><span class="n">Netscape</span><span
class="o">**</span> <span class="p">[</span><span class="n">LdapSdk</span><span
class="p">](</span><span class="n">http:</span><span class="sr">//</span><span
class="n">www</span><span class="o">.</span><span class="n">mozilla</span><span
class="o">.</span><span class="n">org</span><span class="sr">/directory/</span><span
class="n">javasdk</span><span class="o">.</span><span class="n">html</span><span
class="p">)</span>
-<span class="o">*</span> <span class="o">**</span><span class="n">OpenLDAP</span><span
class="o">**</span> <span class="p">[</span><span class="n">JLdap</span><span
class="p">](</span><span class="n">http:</span><span class="sr">//</span><span
class="n">www</span><span class="o">.</span><span class="n">openldap</span><span
class="o">.</span><span class="n">org</span><span class="sr">/jldap/</span><span
class="p">)</span>
-</pre></div>
-
-
+<ul>
+<li><strong>JNDI</strong> : the default <strong>JDK</strong>
<strong>API</strong></li>
+<li><strong>Netscape</strong> <a href="http://www.mozilla.org/directory/javasdk.html">LdapSdk</a></li>
+<li><strong>OpenLDAP</strong> <a href="http://www.openldap.org/jldap/">JLdap</a></li>
+</ul>
 <p>So what makes the development of a new <em>LDAP JAVA API</em> a valid
effort, and not another version of <strong><a href="http://en.wikipedia.org/wiki/Not_Invented_Here">NIH</a></strong>
syndrom ?</p>
 <p>There are many reasons why we decided to start to work on such an <strong>API</strong>,
and we will expose them in this chapter.</p>
 <h2 id="history">history</h2>
@@ -142,13 +141,12 @@
 <p>Strange enough, at the very same time in 2007, the <strong>Sun</strong>
people working on <strong>OpenDS</strong> contacted us to know if we would agree
to work on what would have become the next version of <strong>JNDI</strong> (<a
href="https://blogs.oracle.com/treydrake/entry/resurrecting_the_java_ldap_centric">Resurrecting
The Java LDAP Centric API</a>. Sadly, this effort soon staled, as it seemed that <em>JNDI2</em>
was not anymore an urgency for <strong>Sun</strong>. We decided to go on but the
pace was slow.</p>
 <p>We started again to work on this API with the <strong>OpenDS</strong>
team in 2009, and did a presentation during the 2009 <strong>LdapCon</strong>
(<a href="http://www.symas.com/ldapcon2009/papers/poitou1.shtml">Towards a common LDAP
API for the Java Platform</a>). The story repeated itself with <strong>Oracle</strong>
buying <strong>Sun</strong> in 2010, after months of valuable collaboration with
<em>Sun</em>.</p>
 <p>At least, we get some kind of convergence in many aspects of the <strong>API</strong>.
We agreed on some of the key features the new <strong>LDAP API</strong> should
offer :</p>
-<div class="codehilite"><pre><span class="o">*</span> <span class="n">A</span>
<span class="n">complete</span> <span class="n">coverage</span> <span
class="n">of</span> <span class="n">the</span> <span class="o">**</span><span
class="n">LDAP</span><span class="o">**</span> <span class="n">protocol</span>
-<span class="o">*</span> <span class="n">A</span> <span class="n">schema</span>
<span class="n">aware</span> <span class="o">**</span><span class="n">API</span><span
class="o">**</span>
-<span class="o">*</span> <span class="n">An</span> <span class="n">easy</span>
<span class="n">to</span> <span class="k">use</span> <span class="o">**</span><span
class="n">API</span><span class="o">**</span>
-<span class="o">*</span> <span class="n">An</span> <span class="o">**</span><span
class="n">API</span><span class="o">**</span> <span class="n">taking</span>
<span class="n">advantage</span> <span class="n">of</span> <span
class="n">the</span> <span class="k">new</span> <span class="o">**</span><span
class="n">Java</span><span class="o">**</span> <span class="n">construction</span>
<span class="p">(</span><span class="n">generics</span><span class="p">,</span>
<span class="n">ellipsis</span><span class="p">,</span> <span class="n">NIO</span><span
class="p">)</span>
-</pre></div>
-
-
+<ul>
+<li>A complete coverage of the <strong>LDAP</strong> protocol</li>
+<li>A schema aware <strong>API</strong></li>
+<li>An easy to use <strong>API</strong></li>
+<li>An <strong>API</strong> taking advantage of the new <strong>Java</strong>
construction (generics, ellipsis, NIO)</li>
+</ul>
 <h2 id="result">Result</h2>
 <p>The newly defined <strong>API</strong> fulfill all those aspects. </p>
 <p>We also wanted to make this <strong>API</strong> 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 <strong>API</strong>.</p>



Mime
View raw message