index.xml.vm revision 47296dcccca008c937a201c9301a3b231dd3b47f
<?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>&lt;repositories>
&lt;repository>
&lt;id>forgerock-staging-repository&lt;/id>
&lt;name>ForgeRock Release Repository&lt;/name>
&lt;url>${mavenRepoReleases}&lt;/url>
&lt;snapshots>
&lt;enabled>false&lt;/enabled>
&lt;/snapshots>
&lt;/repository>
&lt;repository>
&lt;id>forgerock-snapshots-repository&lt;/id>
&lt;name>ForgeRock Snapshot Repository&lt;/name>
&lt;url>${mavenRepoSnapshots}&lt;/url>
&lt;releases>
&lt;enabled>false&lt;/enabled>
&lt;/releases>
&lt;/repository>
&lt;/repositories></source>
<p>
The following dependency will load both the OpenDJ Core APIs and the
OpenDJ Grizzly network transport:
</p>
<source>&lt;dependencies>
&lt;dependency>
&lt;groupId>${project.groupId}&lt;/groupId>
&lt;artifactId>${project.artifactId}&lt;/artifactId>
&lt;version>${project.version}&lt;/version>
&lt;type>pom&lt;/type>
&lt;/dependency>
&lt;/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>&lt;dependencies>
&lt;dependency>
&lt;groupId>${project.groupId}&lt;/groupId>
&lt;artifactId>opendj-core&lt;/artifactId>
&lt;version>${project.version}&lt;/version>
&lt;/dependency>
&lt;/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>