diff --git a/core-tiger/src/main/java/org/springframework/ldap/ldif/LdapAttribute.java b/core-tiger/src/main/java/org/springframework/ldap/core/LdapAttribute.java
similarity index 95%
rename from core-tiger/src/main/java/org/springframework/ldap/ldif/LdapAttribute.java
rename to core-tiger/src/main/java/org/springframework/ldap/core/LdapAttribute.java
index 7b46a5c7..0066e298 100644
--- a/core-tiger/src/main/java/org/springframework/ldap/ldif/LdapAttribute.java
+++ b/core-tiger/src/main/java/org/springframework/ldap/core/LdapAttribute.java
@@ -1,7 +1,4 @@
-/**
- * Extends BasicAttribute adding support for options.
- */
-package org.springframework.ldap.ldif;
+package org.springframework.ldap.core;
import java.util.Collection;
import java.util.HashSet;
@@ -18,7 +15,6 @@ import javax.naming.directory.BasicAttribute;
* {@link java.lang.String}.
*
* @author Keith Barlow
- *
*/
public class LdapAttribute extends BasicAttribute {
diff --git a/core-tiger/src/main/java/org/springframework/ldap/ldif/LdapAttributes.java b/core-tiger/src/main/java/org/springframework/ldap/core/LdapAttributes.java
similarity index 95%
rename from core-tiger/src/main/java/org/springframework/ldap/ldif/LdapAttributes.java
rename to core-tiger/src/main/java/org/springframework/ldap/core/LdapAttributes.java
index f61417f5..037cbd5b 100644
--- a/core-tiger/src/main/java/org/springframework/ldap/ldif/LdapAttributes.java
+++ b/core-tiger/src/main/java/org/springframework/ldap/core/LdapAttributes.java
@@ -1,7 +1,4 @@
-/**
- * Extends BasicAttributes adding support for DNs.
- */
-package org.springframework.ldap.ldif;
+package org.springframework.ldap.core;
import java.net.URI;
diff --git a/core-tiger/src/main/java/org/springframework/ldap/ldif/InvalidAttributeFormatException.java b/core-tiger/src/main/java/org/springframework/ldap/ldif/InvalidAttributeFormatException.java
index fca3f970..8a7398bb 100644
--- a/core-tiger/src/main/java/org/springframework/ldap/ldif/InvalidAttributeFormatException.java
+++ b/core-tiger/src/main/java/org/springframework/ldap/ldif/InvalidAttributeFormatException.java
@@ -1,6 +1,3 @@
-/**
- *
- */
package org.springframework.ldap.ldif;
import org.springframework.ldap.NamingException;
@@ -9,7 +6,6 @@ import org.springframework.ldap.NamingException;
* Thrown whenever a parsed attribute does not conform to LDAP specifications.
*
* @author Keith Barlow
- *
*/
public class InvalidAttributeFormatException extends NamingException {
diff --git a/core-tiger/src/main/java/org/springframework/ldap/ldif/InvalidRecordFormatException.java b/core-tiger/src/main/java/org/springframework/ldap/ldif/InvalidRecordFormatException.java
index d89b6664..07b6a7b4 100644
--- a/core-tiger/src/main/java/org/springframework/ldap/ldif/InvalidRecordFormatException.java
+++ b/core-tiger/src/main/java/org/springframework/ldap/ldif/InvalidRecordFormatException.java
@@ -1,6 +1,3 @@
-/**
- *
- */
package org.springframework.ldap.ldif;
import org.springframework.ldap.NamingException;
@@ -9,7 +6,6 @@ import org.springframework.ldap.NamingException;
* Thrown whenever a parsed record does not conform to LDAP specifications.
*
* @author Keith Barlow
- *
*/
public class InvalidRecordFormatException extends NamingException {
diff --git a/core-tiger/src/main/java/org/springframework/ldap/ldif/parser/LDIFParser.java b/core-tiger/src/main/java/org/springframework/ldap/ldif/parser/LdifParser.java
similarity index 87%
rename from core-tiger/src/main/java/org/springframework/ldap/ldif/parser/LDIFParser.java
rename to core-tiger/src/main/java/org/springframework/ldap/ldif/parser/LdifParser.java
index 14c6bfc7..77e4fcff 100644
--- a/core-tiger/src/main/java/org/springframework/ldap/ldif/parser/LDIFParser.java
+++ b/core-tiger/src/main/java/org/springframework/ldap/ldif/parser/LdifParser.java
@@ -12,12 +12,13 @@ import javax.naming.directory.Attribute;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.ldap.core.DistinguishedName;
+import org.springframework.ldap.core.LdapAttributes;
import org.springframework.ldap.ldif.InvalidAttributeFormatException;
import org.springframework.ldap.ldif.InvalidRecordFormatException;
-import org.springframework.ldap.ldif.LdapAttributes;
import org.springframework.ldap.ldif.support.AttributeValidationPolicy;
import org.springframework.ldap.ldif.support.DefaultAttributeValidationPolicy;
import org.springframework.ldap.ldif.support.LineIdentifier;
@@ -27,13 +28,13 @@ import org.springframework.ldap.schema.Specification;
import org.springframework.util.Assert;
/**
- * The {@link LDIFParser LDIFParser} is the main class of the {@link org.springframework.ldap.ldif} package.
+ * The {@link LdifParser LdifParser} is the main class of the {@link org.springframework.ldap.ldif} package.
* This class reads lines from a resource and assembles them into an {@link LdapAttributes LdapAttributes} object.
- * The {@link LDIFParser LDIFParser} does ignores changetype LDIF entries as their usefulness in the
+ * The {@link LdifParser LdifParser} does ignores changetype LDIF entries as their usefulness in the
* context of an application has yet to be determined.
*
* Design
- * {@link LDIFPaser LDIFParser} provides the main interface for operation but requires three supporting classes to
+ * {@link LdifParser LdifParser} provides the main interface for operation but requires three supporting classes to
* enable operation:
*
* - {@link SeparatorPolicy SeparatorPolicy} - establishes the mechanism by which lines are assembled into attributes.
@@ -48,7 +49,7 @@ import org.springframework.util.Assert;
* lines and appends them to the buffer until it encounters the start of a new attribute or an end of record
* delimiter. When the new attribute or end of record is encountered, the buffer is passed to the
* {@link AttributeValidationPolicy AttributeValidationPolicy} which ensures the buffer conforms to a valid
- * attribute definition as defined in RFC2849 and returns an {@link org.springframework.ldap.ldif.LdapAttribute LdapAttribute} object
+ * attribute definition as defined in RFC2849 and returns an {@link org.springframework.ldap.core.LdapAttribute LdapAttribute} object
* which is then added to the record, an {@link LdapAttributes LdapAttributes} object. Upon encountering the
* end of record, the record is validated by the {@link Specification Specification} policy and,
* if valid, returned to the requester.
@@ -60,9 +61,9 @@ import org.springframework.util.Assert;
* @author Keith Barlow
*
*/
-public class LDIFParser implements Parser {
+public class LdifParser implements Parser, InitializingBean {
- private static final Log log = LogFactory.getLog(LDIFParser.class);
+ private static final Log log = LogFactory.getLog(LdifParser.class);
/**
* The resource to parse.
@@ -87,12 +88,12 @@ public class LDIFParser implements Parser {
/**
* The RecordSpecification for validating records produced.
*/
- private Specification recordSpecification = new DefaultSchemaSpecification();
+ private Specification specification = new DefaultSchemaSpecification();
/**
* Default constructor.
*/
- public LDIFParser() {
+ public LdifParser() {
}
@@ -101,7 +102,7 @@ public class LDIFParser implements Parser {
*
* @param resource The resource to parse.
*/
- public LDIFParser(Resource resource) {
+ public LdifParser(Resource resource) {
this.resource = resource;
}
@@ -110,7 +111,7 @@ public class LDIFParser implements Parser {
*
* @param file The file to parse.
*/
- public LDIFParser(File file) {
+ public LdifParser(File file) {
this.resource = new FileSystemResource(file);
}
@@ -141,28 +142,19 @@ public class LDIFParser implements Parser {
* @param specification
*/
public void setRecordSpecification(Specification specification) {
- this.recordSpecification = specification;
+ this.specification = specification;
}
public void setResource(Resource resource) {
this.resource = resource;
}
- public void afterPropertiesSet() throws Exception {
-
- }
-
public void open() throws IOException {
Assert.notNull(resource, "Resource must be set.");
- Assert.isTrue(resource.exists(), resource.getDescription() + ": resource does not exist!");
- Assert.isTrue(resource.isReadable(), "Resource is not readable.");
-
- reader = new BufferedReader(new InputStreamReader(resource.getInputStream()));
-
+ reader = new BufferedReader(new InputStreamReader(resource.getInputStream()));
}
- public void close() throws IOException {
-
+ public void close() throws IOException {
if (resource.isOpen())
reader.close();
}
@@ -245,9 +237,9 @@ public class LDIFParser implements Parser {
//flush buffer.
addAttributeToRecord(builder.toString(), record);
- log.debug("satisfied: " + recordSpecification.isSatisfiedBy(record));
+ log.debug("satisfied: " + specification.isSatisfiedBy(record));
- if (recordSpecification.isSatisfiedBy(record)) {
+ if (specification.isSatisfiedBy(record)) {
log.trace("Returning record.");
return record;
@@ -316,5 +308,10 @@ public class LDIFParser implements Parser {
record = null;
}
}
-
+
+ public void afterPropertiesSet() throws Exception {
+ Assert.notNull(resource, "A resource to parse is required.");
+ Assert.isTrue(resource.exists(), resource.getDescription() + ": resource does not exist!");
+ Assert.isTrue(resource.isReadable(), "Resource is not readable.");
+ }
}
diff --git a/core-tiger/src/main/java/org/springframework/ldap/ldif/parser/Parser.java b/core-tiger/src/main/java/org/springframework/ldap/ldif/parser/Parser.java
index d889816f..1af81e7a 100644
--- a/core-tiger/src/main/java/org/springframework/ldap/ldif/parser/Parser.java
+++ b/core-tiger/src/main/java/org/springframework/ldap/ldif/parser/Parser.java
@@ -4,44 +4,43 @@ import java.io.IOException;
import javax.naming.directory.Attributes;
-import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.io.Resource;
/**
* The Parser interface represents the required methods to be implemented by parser utilities.
* These methods are the base set of methods needed to provide parsing ability.
- * @author Keith Barlow
*
+ * @author Keith Barlow
*/
-public interface Parser extends InitializingBean {
+public interface Parser {
/**
* Sets the resource to parse.
*
* @param resource The resource to parse.
*/
- public void setResource(Resource resource);
+ void setResource(Resource resource);
/**
* Opens the resource: the resource must be opened prior to parsing.
*
* @throws IOException if a problem is encountered while trying to open the resource.
*/
- public void open() throws IOException;
+ void open() throws IOException;
/**
* Closes the resource after parsing.
*
* @throws IOException if a problem is encountered while trying to close the resource.
*/
- public void close() throws IOException;
+ void close() throws IOException;
/**
* Resets the line read parser.
*
* @throws Exception if a problem is encountered while trying to reset the resource.
*/
- public void reset() throws IOException;
+ void reset() throws IOException;
/**
* True if the resource contains more records; false otherwise.
@@ -49,7 +48,7 @@ public interface Parser extends InitializingBean {
* @return boolean indicating whether or not the end of record has been reached.
* @throws IOException if a problem is encountered while trying to validate the resource is ready.
*/
- public boolean hasMoreRecords() throws IOException;
+ boolean hasMoreRecords() throws IOException;
/**
* Parses the next record from the resource.
@@ -57,6 +56,6 @@ public interface Parser extends InitializingBean {
* @return LdapAttributes object representing the record parsed.
* @throws IOException if a problem is encountered while trying to read from the resource.
*/
- public Attributes getRecord() throws IOException;
+ Attributes getRecord() throws IOException;
}
diff --git a/core-tiger/src/main/java/org/springframework/ldap/ldif/support/AttributeValidationPolicy.java b/core-tiger/src/main/java/org/springframework/ldap/ldif/support/AttributeValidationPolicy.java
index 71be142a..9a990ae3 100644
--- a/core-tiger/src/main/java/org/springframework/ldap/ldif/support/AttributeValidationPolicy.java
+++ b/core-tiger/src/main/java/org/springframework/ldap/ldif/support/AttributeValidationPolicy.java
@@ -4,8 +4,8 @@ import javax.naming.directory.Attribute;
/**
* Interface defining the required methods for AttributeValidationPolicies.
- * @author Keith Barlow
*
+ * @author Keith Barlow
*/
public interface AttributeValidationPolicy {
@@ -15,6 +15,6 @@ public interface AttributeValidationPolicy {
* @param buffer
* @return LdapAttribute representing the attribute parsed.
*/
- public Attribute parse(String buffer);
+ Attribute parse(String buffer);
}
diff --git a/core-tiger/src/main/java/org/springframework/ldap/ldif/support/DefaultAttributeValidationPolicy.java b/core-tiger/src/main/java/org/springframework/ldap/ldif/support/DefaultAttributeValidationPolicy.java
index cba01d7b..d2698df2 100644
--- a/core-tiger/src/main/java/org/springframework/ldap/ldif/support/DefaultAttributeValidationPolicy.java
+++ b/core-tiger/src/main/java/org/springframework/ldap/ldif/support/DefaultAttributeValidationPolicy.java
@@ -1,15 +1,3 @@
-/**
- * Attribute validation policy
- *
- * Meets the standards imposed by RFC 2849 for the "LDAP Data Interchange Format (LDIF)
- * - Technical Specification".
- *
- * Special attention is called to URL support: RFC 2849 requires that
- * LDIFs support URLs as defined in 1738; however, RFC 1738 has been updated by several RFCs including
- * RFC 1808, RFC 2396, and RFC 3986 (which obsoleted the formers). Unsupported features of this
- * implementation of URL identification include query strings and fragments in HTTP URLs.
- *
- */
package org.springframework.ldap.ldif.support;
import java.io.IOException;
@@ -24,16 +12,23 @@ import javax.naming.directory.Attribute;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.springframework.ldap.core.LdapAttribute;
import org.springframework.ldap.ldif.InvalidAttributeFormatException;
-import org.springframework.ldap.ldif.LdapAttribute;
import sun.misc.BASE64Decoder;
/**
* Ensures the buffer represents a valid attribute as defined by RFC2849.
*
+ * Meets the standards imposed by RFC 2849 for the "LDAP Data Interchange Format (LDIF)
+ * - Technical Specification".
+ *
+ * Special attention is called to URL support: RFC 2849 requires that
+ * LDIFs support URLs as defined in 1738; however, RFC 1738 has been updated by several RFCs including
+ * RFC 1808, RFC 2396, and RFC 3986 (which obsoleted the formers). Unsupported features of this
+ * implementation of URL identification include query strings and fragments in HTTP URLs.
+ *
* @author Keith Barlow
- *
*/
@SuppressWarnings("unused")
public class DefaultAttributeValidationPolicy implements AttributeValidationPolicy {
diff --git a/core-tiger/src/main/java/org/springframework/ldap/ldif/support/SeparatorPolicy.java b/core-tiger/src/main/java/org/springframework/ldap/ldif/support/SeparatorPolicy.java
index 8e3c0693..ec210e8f 100644
--- a/core-tiger/src/main/java/org/springframework/ldap/ldif/support/SeparatorPolicy.java
+++ b/core-tiger/src/main/java/org/springframework/ldap/ldif/support/SeparatorPolicy.java
@@ -1,6 +1,3 @@
-/**
- * Policy object for enforcing LDIF record separation rules. Designed explicitly for use in LDIFParser.
- */
package org.springframework.ldap.ldif.support;
import org.apache.commons.lang.StringUtils;
@@ -8,14 +5,14 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
- * This default separator policy should really not be required to be
- * replaced but it is modular just in case.
+ * Policy object for enforcing LDIF record separation rules. Designed explicitly
+ * for use in LdifParser. This default separator policy should really not be
+ * required to be replaced but it is modular just in case.
*
- * This class applies the separation policy prescribed in RFC2849
- * for LDIF files and identifies the line type from the input.
+ * This class applies the separation policy prescribed in RFC2849 for LDIF files
+ * and identifies the line type from the input.
*
* @author Keith Barlow
- *
*/
public class SeparatorPolicy {
diff --git a/core-tiger/src/main/java/org/springframework/ldap/schema/DefaultSchemaSpecification.java b/core-tiger/src/main/java/org/springframework/ldap/schema/DefaultSchemaSpecification.java
index cdd94629..aa12144c 100644
--- a/core-tiger/src/main/java/org/springframework/ldap/schema/DefaultSchemaSpecification.java
+++ b/core-tiger/src/main/java/org/springframework/ldap/schema/DefaultSchemaSpecification.java
@@ -3,8 +3,8 @@ package org.springframework.ldap.schema;
import javax.naming.NamingException;
import org.springframework.ldap.core.DistinguishedName;
+import org.springframework.ldap.core.LdapAttributes;
import org.springframework.ldap.core.LdapRdn;
-import org.springframework.ldap.ldif.LdapAttributes;
import sun.misc.BASE64Encoder;
@@ -20,7 +20,6 @@ import sun.misc.BASE64Encoder;
*
*
* @author Keith Barlow
- *
*/
public class DefaultSchemaSpecification implements Specification {
diff --git a/core-tiger/src/main/java/org/springframework/ldap/schema/Specification.java b/core-tiger/src/main/java/org/springframework/ldap/schema/Specification.java
index 504b6765..2d1139a2 100644
--- a/core-tiger/src/main/java/org/springframework/ldap/schema/Specification.java
+++ b/core-tiger/src/main/java/org/springframework/ldap/schema/Specification.java
@@ -4,7 +4,7 @@ import javax.naming.NamingException;
/**
* The specification interface is implemented to declare rules that
- * a record must conform to. The motiviation behind this class was
+ * a record must conform to. The motivation behind this class was
* to provide a mechanism to enable schema validations.
*
* @author Keith Barlow
diff --git a/core-tiger/src/test/java/org/springframework/ldap/ldif/DefaultAttributeValidationPolicyTest.java b/core-tiger/src/test/java/org/springframework/ldap/ldif/DefaultAttributeValidationPolicyTest.java
index b4677d05..edc3065d 100644
--- a/core-tiger/src/test/java/org/springframework/ldap/ldif/DefaultAttributeValidationPolicyTest.java
+++ b/core-tiger/src/test/java/org/springframework/ldap/ldif/DefaultAttributeValidationPolicyTest.java
@@ -12,7 +12,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized.Parameters;
import org.junit.runners.Parameterized;
-import org.springframework.ldap.ldif.LdapAttribute;
+import org.springframework.ldap.core.LdapAttribute;
import org.springframework.ldap.ldif.support.DefaultAttributeValidationPolicy;
import sun.misc.BASE64Decoder;
@@ -23,7 +23,6 @@ import sun.misc.BASE64Decoder;
* the requirements for attribute values prescribed in RFC2849.
*
* @author Keith Barlow
- *
*/
@RunWith(Parameterized.class)
public class DefaultAttributeValidationPolicyTest {
diff --git a/core-tiger/src/test/java/org/springframework/ldap/ldif/LDIFParserTest.java b/core-tiger/src/test/java/org/springframework/ldap/ldif/LdifParserTest.java
similarity index 69%
rename from core-tiger/src/test/java/org/springframework/ldap/ldif/LDIFParserTest.java
rename to core-tiger/src/test/java/org/springframework/ldap/ldif/LdifParserTest.java
index df84506f..84bcd2c6 100644
--- a/core-tiger/src/test/java/org/springframework/ldap/ldif/LDIFParserTest.java
+++ b/core-tiger/src/test/java/org/springframework/ldap/ldif/LdifParserTest.java
@@ -10,39 +10,40 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.core.io.ClassPathResource;
-import org.springframework.ldap.ldif.LdapAttributes;
-import org.springframework.ldap.ldif.parser.LDIFParser;
+import org.springframework.ldap.core.LdapAttributes;
+import org.springframework.ldap.ldif.parser.LdifParser;
/**
- * Unit test for LDIFParser.
+ * Unit test for LdifParser.
*
- * Test results in complete end to end test of all LDIFParser functionality:
- * 1.) Open a file
- * 2.) Read lines and compose an attribute.
- * 3.) Parse the attribute and create a LdapAttribute object.
- * 4.) Repeat until end of record (Identify end of record).
- * 5.) Return a valid LdapAttributes object.
- * 6.) Close file upon completion.
+ * Test results in complete end to end test of all LdifParser functionality:
+ *
+ * - Open a file
+ *
- Read lines and compose an attribute.
+ *
- Parse the attribute and create a LdapAttribute object.
+ *
- Repeat until end of record (Identify end of record).
+ *
- Return a valid LdapAttributes object.
+ *
- Close file upon completion.
+ *
*
* Provided test file is comprised of sample LDIFs from RFC2849 and exhausts the full range of
* the functionality prescribed by RFC2849 for the LDAP Data Interchange Format (LDIF).
*
* @author Keith Barlow
- *
*/
-public class LDIFParserTest {
+public class LdifParserTest {
- private static Log log = LogFactory.getLog(LDIFParserTest.class);
+ private static Log log = LogFactory.getLog(LdifParserTest.class);
- private LDIFParser parser;
+ private LdifParser parser;
/**
* Default constructor: loads a preselected resource with sample LDIF entries.
* Each entry is parsed and checked for a DN and objectclass. Output is printed for visual verification
* of LDIF correctness.
*/
- public LDIFParserTest() {
- parser = new LDIFParser(new ClassPathResource("test.ldif"));
+ public LdifParserTest() {
+ parser = new LdifParser(new ClassPathResource("test.ldif"));
}
/**