<?xml version="1.0" encoding="UTF-8"?>
|
<!--
|
! CCPL HEADER START
|
!
|
! This work is licensed under the Creative Commons
|
! Attribution-NonCommercial-NoDerivs 3.0 Unported License.
|
! To view a copy of this license, visit
|
! http://creativecommons.org/licenses/by-nc-nd/3.0/
|
! or send a letter to Creative Commons, 444 Castro Street,
|
! Suite 900, Mountain View, California, 94041, USA.
|
!
|
! You can also obtain a copy of the license at
|
! trunk/opendj3/legal-notices/CC-BY-NC-ND.txt.
|
! See the License for the specific language governing permissions
|
! and limitations under the License.
|
!
|
! If applicable, add the following below this CCPL HEADER, with the fields
|
! enclosed by brackets "[]" replaced with your own identifying information:
|
! Portions Copyright [yyyy] [name of copyright owner]
|
!
|
! CCPL HEADER END
|
!
|
! Copyright 2011-2012 ForgeRock AS
|
!
|
-->
|
<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
|
<properties>
|
<title>About OpenDJ LDAP SDK</title>
|
<author email="opendj-dev@forgerock.org">ForgeRock AS</author>
|
</properties>
|
<body>
|
<section name="About OpenDJ LDAP SDK">
|
<p>
|
The OpenDJ LDAP SDK provides a set of modern, developer-friendly Java
|
APIs as part of the OpenDJ product suite. The product suite includes the
|
client SDK alongside command-line tools and sample code, a 100% pure
|
Java directory server, and more. You can use OpenDJ SDK to create client
|
applications for use with any server that complies with the,
|
<a href='http://tools.ietf.org/html/rfc4510'>RFC 4510: Lightweight Directory
|
Access Protocol (LDAP):
|
Technical Specification Road Map</a>
|
.
|
</p>
|
<p>
|
The OpenDJ LDAP SDK brings you easy-to-use connection management,
|
connection pooling, load balancing, and all the standard LDAP operations
|
to read and
|
write directory entries. OpenDJ LDAP SDK also lets you build
|
applications
|
with
|
capabilities defined in additional draft and
|
experimental RFCs that
|
are
|
supported by modern LDAP servers.</p>
|
</section>
|
<section name="Get the OpenDJ LDAP SDK">
|
<p>
|
You can start developing your LDAP applications now by obtaining the
|
OpenDJ
|
LDAP SDK using any of the following methods:
|
</p>
|
<subsection name="Maven">
|
<p>
|
By far the simplest method is to develop your application using Maven
|
and add the following settings to your
|
<b>pom.xml</b>
|
:
|
</p>
|
<source><repositories>
|
<repository>
|
<id>forgerock-staging-repository</id>
|
<name>ForgeRock Release Repository</name>
|
<url>http://maven.forgerock.org/repo/releases</url>
|
<snapshots>
|
<enabled>false</enabled>
|
</snapshots>
|
</repository>
|
<repository>
|
<id>forgerock-snapshots-repository</id>
|
<name>ForgeRock Snapshot Repository</name>
|
<url>http://maven.forgerock.org/repo/snapshots</url>
|
<releases>
|
<enabled>false</enabled>
|
</releases>
|
</repository>
|
</repositories>
|
|
...
|
|
<dependencies>
|
<dependency>
|
<groupId>org.forgerock.opendj</groupId>
|
<artifactId>opendj-ldap-sdk</artifactId>
|
<version>${currentSDKversion}</version>
|
</dependency>
|
</dependencies></source>
|
</subsection>
|
<subsection name="Download">
|
<p>
|
The easiest way to download the OpenDJ LDAP SDK and all of its
|
dependencies is to get either the
|
<a href="http://builds.forgerock.org/view/OpenDJ/job/OpenDJ3/lastStableBuild/org.forgerock.opendj$opendj-ldap-toolkit/artifact/org.forgerock.opendj/opendj-ldap-toolkit/${currentSDKversion}/opendj-ldap-toolkit-${currentSDKversion}.zip">OpenDJ LDAP SDK Toolkit ZIP file</a>
|
or the
|
<a href="http://builds.forgerock.org/view/OpenDJ/job/OpenDJ3/lastStableBuild/org.forgerock.opendj$opendj-ldap-sdk-examples/artifact/org.forgerock.opendj/opendj-ldap-sdk-examples/${currentSDKversion}/opendj-ldap-sdk-examples-${currentSDKversion}.jar">OpenDJ LDAP SDK Examples JAR file</a>
|
. Alternatively, if you can download the individual JARs from the
|
following locations:
|
</p>
|
<ul>
|
<li><a href="http://builds.forgerock.org/view/OpenDJ/job/OpenDJ3/lastStableBuild/org.forgerock.opendj$opendj-ldap-sdk/artifact/org.forgerock.opendj/opendj-ldap-sdk/${currentSDKversion}/opendj-ldap-sdk-${currentSDKversion}.jar">opendj-ldap-sdk-${currentSDKversion}.jar</a> - OpenDJ LDAP SDK</li>
|
<li><a href="http://maven.forgerock.org/repo/releases/org/forgerock/commons/i18n-core/${i18nFrameworkVersion}/i18n-core-${i18nFrameworkVersion}.jar">i18n-core-${i18nFrameworkVersion}.jar</a> - ForgeRock Commons I18N Framework</li>
|
<li><a href="http://search.maven.org/remotecontent?filepath=org/glassfish/grizzly/grizzly-framework/${grizzlyFrameworkVersion}/grizzly-framework-${grizzlyFrameworkVersion}.jar">grizzly-framework-${grizzlyFrameworkVersion}.jar</a> - Grizzly IO Framework</li>
|
</ul>
|
</subsection>
|
<subsection name="Build">
|
<p>
|
For the DIY enthusiasts you can build it yourself by checking out the
|
latest code using
|
<a href="source-repository.html">Subversion</a>
|
and building it with Maven 3.
|
</p>
|
</subsection>
|
</section>
|
<section name="Getting started">
|
<p>
|
The following example shows how the OpenDJ SDK may be used to
|
connect to
|
a Directory Server, authenticate, and then perform a
|
search. The search
|
results are output as LDIF to the standard
|
output:
|
</p>
|
<source>// Create an LDIF writer which will write the search results to stdout.
|
final LDIFEntryWriter writer = new LDIFEntryWriter(System.out);
|
Connection connection = null;
|
try
|
{
|
// Connect and bind to the server.
|
final LDAPConnectionFactory factory = new LDAPConnectionFactory("localhost", 1389);
|
|
connection = factory.getConnection();
|
connection.bind(userName, password);
|
|
// Read the entries and output them as LDIF.
|
final ConnectionEntryReader reader = connection.search(baseDN, scope, filter, attributes);
|
while (reader.hasNext())
|
{
|
if (reader.isEntry())
|
{
|
// Got an entry.
|
final SearchResultEntry entry = reader.readEntry();
|
writer.writeComment("Search result entry: " + entry.getName().toString());
|
writer.writeEntry(entry);
|
}
|
else
|
{
|
// Got a continuation reference.
|
final SearchResultReference ref = reader.readReference();
|
writer.writeComment("Search result reference: " + ref.getURIs().toString());
|
}
|
}
|
writer.flush();
|
}
|
catch (final Exception e)
|
{
|
// Handle exceptions...
|
System.err.println(e.getMessage());
|
}
|
finally
|
{
|
if (connection != null)
|
{
|
connection.close();
|
}
|
}</source>
|
<p>
|
You can find more examples in the <a href="../opendj-ldap-sdk-examples/index.html">OpenDJ LDAP SDK Examples</a> module.
|
</p>
|
</section>
|
</body>
|
</document>
|