From 1bdaea8aa8a27af126ea1e4d990c4319a682af2a Mon Sep 17 00:00:00 2001 From: Ulrik Sandberg Date: Fri, 16 Jan 2009 21:49:30 +0000 Subject: [PATCH] Added site generation. --- changelog.txt | 4 +- parent/pom.xml | 2 +- pom.xml | 475 +++++++++--------- src/assembly/minimal.xml | 2 +- src/assembly/with-dependencies.xml | 2 +- src/docbkx/index.xml | 47 ++ src/docbkx/overview.xml | 11 +- .../images/NamingException.png | Bin src/docbkx/{ => resources}/images/banner4.jpg | Bin src/docbkx/{ => resources}/images/bannerR.gif | Bin src/docbkx/{ => resources}/images/logo.png | Bin .../images/package-dependencies.png | Bin src/docbkx/resources/images/s2_box_logo.png | Bin 0 -> 6877 bytes .../resources/images/xdev-spring_logo.jpg | Bin 0 -> 37376 bytes src/docbkx/resources/xsl/html.xsl | 2 +- src/docbkx/resources/xsl/html_chunk.xsl | 14 +- src/docbkx/spring-ldap-reference.xml | 50 -- src/site/apt/downloads/releases.apt | 15 + src/site/apt/downloads/snapshots.apt | 32 ++ src/site/apt/reference.apt | 11 + src/site/apt/resources.apt | 28 ++ src/site/apt/upgrading.apt | 42 ++ src/site/fml/faq.fml | 80 +++ src/site/resources/images/external.png | Bin 0 -> 230 bytes src/site/resources/images/logos/bamboo.png | Bin 0 -> 1635 bytes src/site/resources/images/logos/contegix.png | Bin 0 -> 4540 bytes src/site/resources/images/logos/jira.png | Bin 0 -> 3491 bytes src/site/resources/images/logos/s101d.png | Bin 0 -> 1938 bytes src/site/resources/images/logos/spring.png | Bin 0 -> 6591 bytes src/site/resources/images/spring-ldap.png | Bin 0 -> 23834 bytes src/site/site.xml | 53 ++ src/site/xdoc/index.xml | 39 ++ 32 files changed, 592 insertions(+), 317 deletions(-) create mode 100644 src/docbkx/index.xml rename src/docbkx/{ => resources}/images/NamingException.png (100%) rename src/docbkx/{ => resources}/images/banner4.jpg (100%) rename src/docbkx/{ => resources}/images/bannerR.gif (100%) rename src/docbkx/{ => resources}/images/logo.png (100%) rename src/docbkx/{ => resources}/images/package-dependencies.png (100%) create mode 100644 src/docbkx/resources/images/s2_box_logo.png create mode 100644 src/docbkx/resources/images/xdev-spring_logo.jpg delete mode 100644 src/docbkx/spring-ldap-reference.xml create mode 100644 src/site/apt/downloads/releases.apt create mode 100644 src/site/apt/downloads/snapshots.apt create mode 100644 src/site/apt/reference.apt create mode 100644 src/site/apt/resources.apt create mode 100644 src/site/apt/upgrading.apt create mode 100644 src/site/fml/faq.fml create mode 100644 src/site/resources/images/external.png create mode 100644 src/site/resources/images/logos/bamboo.png create mode 100644 src/site/resources/images/logos/contegix.png create mode 100644 src/site/resources/images/logos/jira.png create mode 100644 src/site/resources/images/logos/s101d.png create mode 100644 src/site/resources/images/logos/spring.png create mode 100644 src/site/resources/images/spring-ldap.png create mode 100644 src/site/site.xml create mode 100644 src/site/xdoc/index.xml diff --git a/changelog.txt b/changelog.txt index a5575b0b..1f86e107 100644 --- a/changelog.txt +++ b/changelog.txt @@ -71,7 +71,7 @@ Changes in version 1.3.0.RC1 (Oct 2008) * The hard dependency on LDAP Booster Pack has now been completely removed, preventing NoClassDefFoundErrors when using Paged Results without that - library on the classpath. (LDAP-110, LDAP-118) + library on the classpath. (LDAP-110, LDAP-118) * The dreaded problem with '\' in Distinguished Names is now resolved. (LDAP-50, LDAP-109) @@ -95,7 +95,7 @@ Changes in version 1.3.0.RC1 (Oct 2008) * Added configuration property to AbstractContextSource to specify referral behavior. Setting this property to 'follow' will enable referrals to be - automatically followed, provieded that the name server environment is properly + automatically followed, provided that the name server environment is properly set up. * Now using Maven for building internally. (LDAP-80, LDAP-82, LDAP-95) diff --git a/parent/pom.xml b/parent/pom.xml index 5f9a55ec..0a0f70b8 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -194,7 +194,7 @@ - + org.springframework.ldap spring-ldap-core diff --git a/pom.xml b/pom.xml index 98c6376d..5af6f1eb 100644 --- a/pom.xml +++ b/pom.xml @@ -1,45 +1,41 @@ - - + 4.0.0 - org.springframework.ldap spring-ldap 1.3.0.CI-SNAPSHOT - pom Spring LDAP - - Spring LDAP is a Java library for simplifying LDAP operations, based on the pattern of Spring's JdbcTemplate. The framework relieves - the user of common chores, such as looking up and closing contexts, looping through results, encoding/decoding values and filters, - and more. - - The LdapTemplate class encapsulates all the plumbing work involved in traditional LDAP programming, such as creating a DirContext, - looping through NamingEnumerations, handling exceptions and cleaning up resources. This leaves the programmer to handle the important - stuff - where to find data (DNs and Filters) and what do do with it (map to and from domain objects, bind, modify, unbind, etc.), in - the same way that JdbcTemplate relieves the programmer of all but the actual SQL and how the data maps to the domain model. - - In addition to this, Spring LDAP provides transaction support, a pooling library, exception translation from NamingExceptions to a - mirrored unchecked Exception hierarchy, as well as several utilities for working with filters, LDAP paths and Attributes. - - + Spring LDAP is a Java library for simplifying LDAP + operations, based on the pattern of Spring's JdbcTemplate. The + framework relieves the user of common chores, such as looking up and + closing contexts, looping through results, encoding/decoding values + and filters, and more. The LdapTemplate class encapsulates all the + plumbing work involved in traditional LDAP programming, such as + creating a DirContext, looping through NamingEnumerations, handling + exceptions and cleaning up resources. This leaves the programmer to + handle the important stuff - where to find data (DNs and Filters) and + what do do with it (map to and from domain objects, bind, modify, + unbind, etc.), in the same way that JdbcTemplate relieves the + programmer of all but the actual SQL and how the data maps to the + domain model. In addition to this, Spring LDAP provides transaction + support, a pooling library, exception translation from + NamingExceptions to a mirrored unchecked Exception hierarchy, as well + as several utilities for working with filters, LDAP paths and + Attributes. http://springframework.org/ldap - JIRA - http://opensource.atlassian.com/projects/spring/browse/LDAP + http://jira.springframework.org/browse/LDAP bamboo - http://build.springframework.org/ + http://build.springframework.org/browse/LDAP 2006 @@ -103,16 +99,14 @@ - scm:svn:https://springframework.svn.sourceforge.net/svnroot/springframework/spring-ldap/trunk + scm:svn:https://springframework.svn.sourceforge.net/svnroot/springframework/spring-ldap/trunk - scm:svn:https://springframework.svn.sourceforge.net/svnroot/springframework/spring-ldap/trunk + scm:svn:https://springframework.svn.sourceforge.net/svnroot/springframework/spring-ldap/trunk http://fisheye3.cenqua.com/browse/springframework/spring-ldap/trunk - ${basedir}/src/docbkx - ${basedir}/target/site/guide 2.5.6 @@ -122,121 +116,120 @@ test-support test - - - samples - - samples - - - - release - - - - maven-dependency-plugin - - - copy-dependencies - package - - copy - - - + + + samples + + samples + + + + release + + + + maven-dependency-plugin + + + copy-dependencies + package + + copy + + + - - org.springframework - spring-core - ${spring.version} - ${project.build.directory}/dependency/spring/ - - - org.springframework - spring-beans - ${spring.version} - ${project.build.directory}/dependency/spring/ - - - org.springframework - spring-context - ${spring.version} - ${project.build.directory}/dependency/spring/ - - - org.springframework - spring-jdbc - ${spring.version} - ${project.build.directory}/dependency/spring/ - - - org.springframework - spring-tx - ${spring.version} - ${project.build.directory}/dependency/spring/ - + + org.springframework + spring-core + ${spring.version} + ${project.build.directory}/dependency/spring/ + + + org.springframework + spring-beans + ${spring.version} + ${project.build.directory}/dependency/spring/ + + + org.springframework + spring-context + ${spring.version} + ${project.build.directory}/dependency/spring/ + + + org.springframework + spring-jdbc + ${spring.version} + ${project.build.directory}/dependency/spring/ + + + org.springframework + spring-tx + ${spring.version} + ${project.build.directory}/dependency/spring/ + - - com.sun - ldapbp - 1.0 - ${project.build.directory}/dependency/sun/ - + + com.sun + ldapbp + 1.0 + ${project.build.directory}/dependency/sun/ + - - commons-lang - commons-lang - 2.3 - ${project.build.directory}/dependency/jakarta-commons/ - - - commons-pool - commons-pool - 1.3 - ${project.build.directory}/dependency/jakarta-commons/ - + + commons-lang + commons-lang + 2.3 + ${project.build.directory}/dependency/jakarta-commons/ + + + commons-pool + commons-pool + 1.3 + ${project.build.directory}/dependency/jakarta-commons/ + - - commons-logging - commons-logging - 1.0.4 - ${project.build.directory}/dependency/jakarta-commons/ - - - log4j - log4j - 1.2.9 - ${project.build.directory}/dependency/log4j/ - - - - - - - - maven-assembly-plugin - 2.2-beta-2 - false - - - with-dependencies - package - - single - - - - src/assembly/with-dependencies.xml - - - - - - - - - - + + commons-logging + commons-logging + 1.0.4 + ${project.build.directory}/dependency/jakarta-commons/ + + + log4j + log4j + 1.2.9 + ${project.build.directory}/dependency/log4j/ + + + + + + + + maven-assembly-plugin + 2.2-beta-2 + false + + + with-dependencies + package + + single + + + + src/assembly/with-dependencies.xml + + + + + + + + + maven central repo @@ -252,93 +245,70 @@ - - - org.springframework.aws - spring-aws-maven - 1.2.2 - - - - maven-assembly-plugin - 2.2-beta-2 - false - - - all-jar - package - - single - - - false - - - true - - - ${pom.version} - - - - src/assembly/all.xml - - - - - sources - package - - single - - - - - true - - - ${pom.version} - - - - src/assembly/sources.xml - - - - - minimal-zip - package - - single - - - false - - src/assembly/minimal.xml - - - - - - maven-eclipse-plugin - - true - - - - org.apache.maven.plugins - maven-surefire-plugin - 2.4.2 - - once - + maven-assembly-plugin + 2.2-beta-2 + false + + + all-jar + package + + single + + + + + true + + + ${pom.version} + + + + src/assembly/all.xml + + + + + sources + package + + single + + + + + true + + + ${pom.version} + + + + src/assembly/sources.xml + + + + + minimal-zip + package + + single + + + + src/assembly/minimal.xml + + + + com.agilejava.docbkx docbkx-maven-plugin - 2.0.7 + 2.0.6 @@ -357,16 +327,12 @@ - spring-ldap-reference.xml + index.xml true - true css/html.css - - src/docbkx/resources/xsl/html_chunk.xsl - - - src/docbkx/resources/xsl/fopdf.xsl - + true + src/docbkx/resources/xsl/html_chunk.xsl + src/docbkx/resources/xsl/fopdf.xsl version @@ -380,15 +346,15 @@ - - + + + @@ -396,24 +362,24 @@ - - maven-jxr-plugin - - true - - - - maven-surefire-report-plugin - - true - - + + maven-jxr-plugin + + true + + + + maven-surefire-report-plugin + + true + + maven-javadoc-plugin true true -
Spring LDAP Integration
+
Spring LDAP Framework
true ${basedir}/src/main/javadoc/javadoc.css ${basedir}/src/main/javadoc/overview.html @@ -433,9 +399,16 @@
- - maven-project-info-reports-plugin - + + maven-project-info-reports-plugin +
- + + + org.springframework + spring-core + ${spring.version} + + + \ No newline at end of file diff --git a/src/assembly/minimal.xml b/src/assembly/minimal.xml index 3d5ef6ce..0d46b579 100644 --- a/src/assembly/minimal.xml +++ b/src/assembly/minimal.xml @@ -24,7 +24,7 @@ - target/${artifactId}-${version}.jar + target/${artifactId}-${version}-all.jar dist diff --git a/src/assembly/with-dependencies.xml b/src/assembly/with-dependencies.xml index 2a5fb1d7..0e7343ea 100644 --- a/src/assembly/with-dependencies.xml +++ b/src/assembly/with-dependencies.xml @@ -32,7 +32,7 @@ - target/${artifactId}-${version}.jar + target/${artifactId}-${version}-all.jar dist diff --git a/src/docbkx/index.xml b/src/docbkx/index.xml new file mode 100644 index 00000000..ecd11c27 --- /dev/null +++ b/src/docbkx/index.xml @@ -0,0 +1,47 @@ + + + + + Spring LDAP - Reference Documentation + &version; + + + + Mattias + Arthursson + + + Ulrik + Sandberg + + + Eric + Dalquist + + + + + + Copies of this document may be made for your own use and + for distribution to others, provided that you do not + charge any fee for such copies and further provided that + each copy contains this Copyright Notice, whether + distributed in print or electronically. + + + + + + + + + + + + + + + + + diff --git a/src/docbkx/overview.xml b/src/docbkx/overview.xml index 3ae0cda7..45706a5e 100644 --- a/src/docbkx/overview.xml +++ b/src/docbkx/overview.xml @@ -5,7 +5,7 @@ Overview - Spring-LDAP (Spring LDAP (http://www.springframework.org/ldap) is a library for simpler LDAP programming in Java, built on the same principles as the Spring LDAP package structure - - + + + + + diff --git a/src/docbkx/images/NamingException.png b/src/docbkx/resources/images/NamingException.png similarity index 100% rename from src/docbkx/images/NamingException.png rename to src/docbkx/resources/images/NamingException.png diff --git a/src/docbkx/images/banner4.jpg b/src/docbkx/resources/images/banner4.jpg similarity index 100% rename from src/docbkx/images/banner4.jpg rename to src/docbkx/resources/images/banner4.jpg diff --git a/src/docbkx/images/bannerR.gif b/src/docbkx/resources/images/bannerR.gif similarity index 100% rename from src/docbkx/images/bannerR.gif rename to src/docbkx/resources/images/bannerR.gif diff --git a/src/docbkx/images/logo.png b/src/docbkx/resources/images/logo.png similarity index 100% rename from src/docbkx/images/logo.png rename to src/docbkx/resources/images/logo.png diff --git a/src/docbkx/images/package-dependencies.png b/src/docbkx/resources/images/package-dependencies.png similarity index 100% rename from src/docbkx/images/package-dependencies.png rename to src/docbkx/resources/images/package-dependencies.png diff --git a/src/docbkx/resources/images/s2_box_logo.png b/src/docbkx/resources/images/s2_box_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8c778a57940f0da55628282e6a77aa5904542c54 GIT binary patch literal 6877 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 literal 0 HcmV?d00001 diff --git a/src/docbkx/resources/images/xdev-spring_logo.jpg b/src/docbkx/resources/images/xdev-spring_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..622962ee3c89651ded6aea73c854d7ad44f880f5 GIT binary patch literal 37376 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 literal 0 HcmV?d00001 diff --git a/src/docbkx/resources/xsl/html.xsl b/src/docbkx/resources/xsl/html.xsl index aa7930ba..015b02c9 100644 --- a/src/docbkx/resources/xsl/html.xsl +++ b/src/docbkx/resources/xsl/html.xsl @@ -1,7 +1,7 @@ 1 - + @@ -187,8 +187,8 @@ - Sponsored by SpringSource + Sponsored by Jayway diff --git a/src/docbkx/spring-ldap-reference.xml b/src/docbkx/spring-ldap-reference.xml deleted file mode 100644 index cc3fea19..00000000 --- a/src/docbkx/spring-ldap-reference.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - Spring LDAP - Reference Documentation - Version 1.3-RC1 - 2008 - - - Mattias - Arthursson - - - Ulrik - Sandberg - - - Eric - Dalquist - - - - - - Copies of this document may be made for your own use and - for distribution to others, provided that you do not - charge any fee for such copies and further provided that - each copy contains this Copyright Notice, whether - distributed in print or electronically. - - - - - - - - - - - - - - - - - - diff --git a/src/site/apt/downloads/releases.apt b/src/site/apt/downloads/releases.apt new file mode 100644 index 00000000..9f1b2d62 --- /dev/null +++ b/src/site/apt/downloads/releases.apt @@ -0,0 +1,15 @@ + --------- + Downloads + --------- + +Downloads + +* Get the latest Spring LDAP releases here + + * <> + + * {{{http://sourceforge.net/project/showfiles.php?group_id=73357&package_id=202038&release_id=560004}Download}} | {{{http://sourceforge.net/project/shownotes.php?group_id=73357&release_id=560004}Changelog}} | {{{http://forum.springframework.org/showthread.php?t=47223}Announcement}} + + * <> + + * {{{snapshots.html}Download nightly snapshots}} diff --git a/src/site/apt/downloads/snapshots.apt b/src/site/apt/downloads/snapshots.apt new file mode 100644 index 00000000..c25188a8 --- /dev/null +++ b/src/site/apt/downloads/snapshots.apt @@ -0,0 +1,32 @@ + --------- + Snapshots + --------- + +Snapshot Builds + + These builds are provided for testing and development purposes only. They are built by a Bamboo process + automatically using the latest snapshot from Subversion. + + The snapshots are deployed to a Maven2 snapshot repository. To use it, just add the following repository to the POM: + ++--------------- + + spring-s3 + Springframework Maven SNAPSHOT Repository + http://s3.amazonaws.com/maven.springframework.org/snapshot + ++--------------- + + Individual dependencies can then be added like so: + ++--------------- + + org.springframework.ldap + spring-ldap-core + 1.3.0.CI-SNAPSHOT + ++--------------- + + Additionally, there are + {{{http://static.springframework.org/spring-ldap/downloads/1.3-snapshot-download.php}zips}} + available which contain all jars. diff --git a/src/site/apt/reference.apt b/src/site/apt/reference.apt new file mode 100644 index 00000000..dfaf85bf --- /dev/null +++ b/src/site/apt/reference.apt @@ -0,0 +1,11 @@ + ---------------- + Reference Manual + ---------------- + +Reference Manual + + The reference manual is available as HTML, and as PDF. + + * View the {{{reference/html/index.html}HTML version}} + + * Download the {{{reference/pdf/spring-ldap-reference.pdf}PDF version}} diff --git a/src/site/apt/resources.apt b/src/site/apt/resources.apt new file mode 100644 index 00000000..af8b8892 --- /dev/null +++ b/src/site/apt/resources.apt @@ -0,0 +1,28 @@ + ------------------- + Resources and Tools + ------------------- + +Resources + + On this page, we give some general resources related to LDAP. Note that these + resources are generic, and not tied to Spring LDAP. + +* LDAP + + +** RFCs + + * {{{http://www.ietf.org/rfc/rfc2251.txt}RFC 2251}}, LDAPv3 spec + + * {{{http://www.ietf.org/rfc/rfc2252.txt}RFC 2252}}, Attribute Syntax Definitions + + * {{{http://www.ietf.org/rfc/rfc2253.txt}RFC 2253}}, Distinguished Names + + * {{{http://www.ietf.org/rfc/rfc2254.txt}RFC 2254}}, LDAP Search Filters + + * {{{http://www.ietf.org/rfc/rfc2255.txt}RFC 2255}}, LDAP URL Format + + * {{{http://www.ietf.org/rfc/rfc2256.txt}RFC 2256}}, X.500 User Schema for use with LDAPv3 + + * {{{http://www.ietf.org/rfc/rfc2696.txt}RFC 2696}}, LDAP Control Extension for Simple Paged Results + diff --git a/src/site/apt/upgrading.apt b/src/site/apt/upgrading.apt new file mode 100644 index 00000000..0728fbbc --- /dev/null +++ b/src/site/apt/upgrading.apt @@ -0,0 +1,42 @@ + --------- + Upgrading + --------- + +Upgrading from version 1.3.0-RC1 to 1.3.0 + + Some minor changes were made between version 1.3.0-RC1 and 1.3.0. + + * PagedResultsRequestControl has been deprecated in favor of the more appropriately named + PagedResultsDirContextProcessor. + + * The default value of the <<>> property of DirContextSource has been changed + from <<>> to <<>>. + +Upgrading from version 1.2.1 to 1.3.0 + + Some minor changes were made since version 1.2.1. The following +should help most users the project update their applications: + + * NameNotFoundException is no longer silently ignored in searches. It is possible + to use the old behavior by setting the <<>> property + to true in LdapTemplate. + + * Removed AcegiAuthenticationSource - use SpringSecurityAuthenticationSource + (included with Spring Security) instead. + + * Removed deprecated method <<>> in AbstractContextSource. + + * DirContextAdapter#getStringAttributes, getObjectAttributes, and + getAttributeSortedStringSet now all return null if the requested Attribute + is not present, and an empty result (array or set) if present but empty. + + * Probably the most requested feature of all - a plain method for simple + authentication is now provided in the ContextSource interface. + + * DistinguishedName now returns compactly formatted String representations + from toString, e.g.: + <<>> + rather than + <<>> + To keep using the old formatting (for backward compatibility) set the + system property <<>> to <<>>. diff --git a/src/site/fml/faq.fml b/src/site/fml/faq.fml new file mode 100644 index 00000000..e7ce734b --- /dev/null +++ b/src/site/fml/faq.fml @@ -0,0 +1,80 @@ + + + + diff --git a/src/site/resources/images/external.png b/src/site/resources/images/external.png new file mode 100644 index 0000000000000000000000000000000000000000..3f999fc88b360074e41f38c3b4bc06ccb3bb7cf8 GIT binary patch literal 230 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 literal 0 HcmV?d00001 diff --git a/src/site/resources/images/logos/jira.png b/src/site/resources/images/logos/jira.png new file mode 100644 index 0000000000000000000000000000000000000000..006aca67d26f84bd12a1c8ffd2648a4d253cef8d GIT binary patch literal 3491 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 Y4+}m0o{J_@;{X5v07*qoM6N<$g7=Co2><{9 literal 0 HcmV?d00001 diff --git a/src/site/resources/images/logos/spring.png b/src/site/resources/images/logos/spring.png new file mode 100644 index 0000000000000000000000000000000000000000..e773b170ade16615b0a0c9b79099f5bb8477d396 GIT binary patch literal 6591 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 literal 0 HcmV?d00001 diff --git a/src/site/resources/images/spring-ldap.png b/src/site/resources/images/spring-ldap.png new file mode 100644 index 0000000000000000000000000000000000000000..31396b8a49cd65687bce18f95777cd610d195c5c GIT binary patch literal 23834 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 + + + org.springframework.maven.skins + maven-spring-skin + 1.0.4 + + + + Spring LDAP + images/spring-ldap.png + http://www.springframework.org/ldap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml new file mode 100644 index 00000000..2d72cfbd --- /dev/null +++ b/src/site/xdoc/index.xml @@ -0,0 +1,39 @@ + + + Home + + +

What is Spring LDAP?

+

Spring LDAP is a result of applying the template approach found in + for example JdbcTemplate, in the JNDI world. Spring LDAP aims to + eliminate the need for writing raw JNDI/LDAP applications. +

+

Key Features

+
    +
  • Simplifies Coding: The LdapTemplate class encapsulates all the + plumbing work involved in traditional LDAP programming, such as + creating a DirContext, looping through NamingEnumerations, handling + exceptions and cleaning up resources. This leaves the programmer to + handle the important stuff - where to find data (DNs and Filters) and + what do do with it (map to and from domain objects, bind, modify, + unbind, etc.), in the same way that JdbcTemplate relieves the + programmer of all but the actual SQL and how the data maps to the + domain model.
  • +
  • Pooling Library: The built-in JNDI pooling support is very + limited, and actually has a few deficiencies. Spring LDAP provides a + much more flexible and powerful pooling library.
  • +
  • Reuses your Spring expertise: Spring LDAP uses Spring application + contexts for all configuration, which should help Spring developers get + up-to-speed nice and quickly. Also, the architecture of Spring LDAP + resembles that of Spring JDBC.
  • +
  • Supports Transactions: The LDAP standard does not specify transaction support. + Spring LDAP provides a client-side compensating transaction library to fill the void.
  • +
  • Integrates with Spring Security: The authentication system of Spring LDAP provides + integration with Spring Security. + In fact, Spring Security uses Spring LDAP for its LDAP integration.
  • +
  • Built by Maven: This assists you in effectively reusing the Spring LDAP artifacts + in your own Maven-based projects.
  • +
  • Apache license. You can confidently use Spring LDAP in your project.
  • +
+ +
\ No newline at end of file