<?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-2013 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">${project.organization.name}</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>${mavenRepoReleases}</url>
|
<snapshots>
|
<enabled>false</enabled>
|
</snapshots>
|
</repository>
|
<repository>
|
<id>forgerock-snapshots-repository</id>
|
<name>ForgeRock Snapshot Repository</name>
|
<url>${mavenRepoSnapshots}</url>
|
<releases>
|
<enabled>false</enabled>
|
</releases>
|
</repository>
|
</repositories></source>
|
<p>
|
The following dependency will load both the OpenDJ Core APIs and the
|
OpenDJ Grizzly network transport:
|
</p>
|
<source><dependencies>
|
<dependency>
|
<groupId>${project.groupId}</groupId>
|
<artifactId>${project.artifactId}</artifactId>
|
<version>${project.version}</version>
|
<type>pom</type>
|
</dependency>
|
</dependencies></source>
|
<p>
|
In some use-cases, such as developing LDAP unit tests or embedded
|
LDAP applications, the network transport is not required, in which
|
case you can simply declare a dependency on the OpenDJ core APIs:
|
</p>
|
<source><dependencies>
|
<dependency>
|
<groupId>${project.groupId}</groupId>
|
<artifactId>opendj-core</artifactId>
|
<version>${project.version}</version>
|
</dependency>
|
</dependencies></source>
|
</subsection>
|
<subsection name="Download">
|
<p>
|
If you are not using Maven then you will need to download a pre-built
|
binary from the ForgeRock Maven repository, along with any compile
|
time <a href="dependencies.html">dependencies</a>:
|
</p>
|
<ul>
|
<li><a href="${mavenRepoReleases}/org/forgerock/opendj/opendj-core">Stable releases</a></li>
|
<li><a href="${mavenRepoSnapshots}/org/forgerock/opendj/opendj-core/${project.version}">Latest development snapshot</a></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>
|