You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2009/06/02 16:54:56 UTC
svn commit: r781049 - in /directory/shared/trunk/ldap/src:
main/java/org/apache/directory/shared/ldap/csn/
main/java/org/apache/directory/shared/ldap/schema/comparators/
main/java/org/apache/directory/shared/ldap/schema/syntaxes/
test/java/org/apache/d...
Author: elecharny
Date: Tue Jun 2 14:54:56 2009
New Revision: 781049
URL: http://svn.apache.org/viewvc?rev=781049&view=rev
Log:
* Fixed the CSN classes
* Renamed CSN to Csn, etc
o Added the code into the CsnSid classes
Added:
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/Csn.java
- copied, changed from r780307, directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CSN.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CsnFactory.java
- copied, changed from r780307, directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CSNFactory.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparator.java
- copied, changed from r780307, directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CSNComparator.java
directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CsnFactoryTest.java
- copied, changed from r780307, directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CSNFactoryTest.java
directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CsnTest.java
- copied, changed from r780307, directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CSNTest.java
directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparatorTest.java
- copied, changed from r780307, directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CSNComparatorTest.java
directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CsnSidComparatorTest.java
directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/CsnSidSyntaxCheckerTest.java
directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/CsnSyntaxCheckerTest.java
Removed:
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CSN.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CSNFactory.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CSNComparator.java
directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CSNFactoryTest.java
directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CSNTest.java
directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CSNComparatorTest.java
Modified:
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/InvalidCSNException.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnSidComparator.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/UUIDComparator.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntaxes/CsnSidSyntaxChecker.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntaxes/CsnSyntaxChecker.java
Copied: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/Csn.java (from r780307, directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CSN.java)
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/Csn.java?p2=directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/Csn.java&p1=directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CSN.java&r1=780307&r2=781049&rev=781049&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CSN.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/Csn.java Tue Jun 2 14:54:56 2009
@@ -53,7 +53,7 @@
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
-public class CSN implements Serializable, Comparable<CSN>
+public class Csn implements Serializable, Comparable<Csn>
{
/**
* Declares the Serial Version Uid.
@@ -65,7 +65,7 @@
private static final long serialVersionUID = 1L;
/** The logger for this class */
- private static final Logger LOG = LoggerFactory.getLogger( CSN.class );
+ private static final Logger LOG = LoggerFactory.getLogger( Csn.class );
/** The timeStamp of this operation */
private final long timestamp;
@@ -102,7 +102,7 @@
* @param replicaId Replica ID where modification occurred (<tt>[-_A-Za-z0-9]{1,16}</tt>)
* @param operationNumber Operation number in a modification operation
*/
- public CSN( long timestamp, int changeCount, int replicaId, int operationNumber )
+ public Csn( long timestamp, int changeCount, int replicaId, int operationNumber )
{
this.timestamp = timestamp;
this.replicaId = replicaId;
@@ -119,7 +119,7 @@
*
* @param value The String containing the CSN
*/
- public CSN( String value ) throws InvalidCSNException
+ public Csn( String value ) throws InvalidCSNException
{
if ( StringTools.isEmpty( value ) )
{
@@ -318,9 +318,24 @@
}
// And add the milliseconds and microseconds now
+ String millisStr = timestampStr.substring( 15, 21 );
+
+ if ( StringTools.isEmpty( millisStr ) )
+ {
+ return false;
+ }
+
+ for ( int i = 0; i < 6; i++ )
+ {
+ if ( !StringTools.isDigit( millisStr, i ) )
+ {
+ return false;
+ }
+ }
+
try
{
- Integer.valueOf( timestampStr.substring( 15, 21 ) );
+ Integer.valueOf( millisStr );
}
catch ( NumberFormatException nfe )
{
@@ -337,8 +352,26 @@
String changeCountStr = value.substring( sepTS + 1, sepCC ).trim();
+ if ( StringTools.isEmpty( changeCountStr ) )
+ {
+ return false;
+ }
+
+ if ( changeCountStr.length() != 6 )
+ {
+ return false;
+ }
+
try
{
+ for ( int i = 0; i < 6; i++ )
+ {
+ if ( !StringTools.isHex( changeCountStr, i ) )
+ {
+ return false;
+ }
+ }
+
Integer.parseInt( changeCountStr, 16 );
}
catch ( NumberFormatException nfe )
@@ -361,6 +394,19 @@
return false;
}
+ if ( replicaIdStr.length() != 3 )
+ {
+ return false;
+ }
+
+ for ( int i = 0; i < 3; i++ )
+ {
+ if ( !StringTools.isHex( replicaIdStr, i ) )
+ {
+ return false;
+ }
+ }
+
try
{
Integer.parseInt( replicaIdStr, 16 );
@@ -378,6 +424,19 @@
String operationNumberStr = value.substring( sepRI + 1 ).trim();
+ if ( operationNumberStr.length() != 6 )
+ {
+ return false;
+ }
+
+ for ( int i = 0; i < 6; i++ )
+ {
+ if ( !StringTools.isHex( operationNumberStr, i ) )
+ {
+ return false;
+ }
+ }
+
try
{
Integer.parseInt( operationNumberStr, 16 );
@@ -396,10 +455,10 @@
*
* @param value The byte array which contains the serialized CSN
*/
- /** Package protected */ CSN( byte[] value )
+ Csn( byte[] value )
{
csnStr = StringTools.utf8ToString( value );
- CSN csn = new CSN( csnStr );
+ Csn csn = new Csn( csnStr );
timestamp = csn.timestamp;
changeCount = csn.changeCount;
replicaId = csn.replicaId;
@@ -538,12 +597,12 @@
return true;
}
- if ( !( o instanceof CSN ) )
+ if ( !( o instanceof Csn ) )
{
return false;
}
- CSN that = ( CSN ) o;
+ Csn that = ( Csn ) o;
return
( timestamp == that.timestamp ) &&
@@ -562,7 +621,7 @@
* @return a negative integer, zero, or a positive integer as this object
* is less than, equal to, or greater than the specified object.
*/
- public int compareTo( CSN csn )
+ public int compareTo( Csn csn )
{
if ( csn == null )
{
Copied: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CsnFactory.java (from r780307, directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CSNFactory.java)
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CsnFactory.java?p2=directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CsnFactory.java&p1=directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CSNFactory.java&r1=780307&r2=781049&rev=781049&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CSNFactory.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/CsnFactory.java Tue Jun 2 14:54:56 2009
@@ -21,11 +21,11 @@
/**
- * Generates a new {@link CSN}.
+ * Generates a new {@link Csn}.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
-public class CSNFactory
+public class CsnFactory
{
/** The last timestamp */
private static volatile long lastTimestamp;
@@ -34,21 +34,21 @@
private static volatile int changeCount;
- public CSNFactory()
+ public CsnFactory()
{
changeCount = 0;
}
/**
- * Returns a new {@link CSN}.
+ * Returns a new {@link Csn}.
* Generated CSN can be duplicate if user generates CSNs more than 2G
* times a milliseconds.
*
* @param replicaId Replica ID. ReplicaID must be 1-3 digit alphanumeric
* value (from 000 to fff).
*/
- public CSN newInstance( int replicaId )
+ public Csn newInstance( int replicaId )
{
long newTimestamp = System.currentTimeMillis();
@@ -63,12 +63,12 @@
changeCount = 0;
}
- return new CSN( lastTimestamp, changeCount, replicaId, 0 );
+ return new Csn( lastTimestamp, changeCount, replicaId, 0 );
}
/**
- * Returns a new {@link CSN} created from the given values.
+ * Returns a new {@link Csn} created from the given values.
*
* This method is <b>not</b> to be used except for test purposes.
*
@@ -76,9 +76,9 @@
* @param replicaId Replica ID. ReplicaID must be 1-3 digit value
* @param changeCount The change count to use
*/
- public CSN newInstance( long timestamp, int replicaId, int changeCount )
+ public Csn newInstance( long timestamp, int replicaId, int changeCount )
{
- return new CSN( timestamp, changeCount, replicaId, 0 );
+ return new Csn( timestamp, changeCount, replicaId, 0 );
}
@@ -88,8 +88,8 @@
*
* @param expirationDate The time up to the first CSN we want to keep
*/
- public CSN newInstance( long expirationDate )
+ public Csn newInstance( long expirationDate )
{
- return new CSN( expirationDate, Integer.MAX_VALUE, -1, Integer.MAX_VALUE );
+ return new Csn( expirationDate, Integer.MAX_VALUE, -1, Integer.MAX_VALUE );
}
}
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/InvalidCSNException.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/InvalidCSNException.java?rev=781049&r1=781048&r2=781049&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/InvalidCSNException.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/csn/InvalidCSNException.java Tue Jun 2 14:54:56 2009
@@ -22,7 +22,7 @@
/**
* A {@link RuntimeException} which is thrown when a wrong string
- * representation is specified to create a new {@link CSN}.
+ * representation is specified to create a new {@link Csn}.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
Copied: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparator.java (from r780307, directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CSNComparator.java)
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparator.java?p2=directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparator.java&p1=directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CSNComparator.java&r1=780307&r2=781049&rev=781049&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CSNComparator.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparator.java Tue Jun 2 14:54:56 2009
@@ -22,7 +22,7 @@
import java.util.Comparator;
-import org.apache.directory.shared.ldap.csn.CSN;
+import org.apache.directory.shared.ldap.csn.Csn;
/**
@@ -37,31 +37,34 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public class CSNComparator implements Comparator<CSN>
+public class CsnComparator implements Comparator<String>
{
/** A static instance of this comparator */
- public static final Comparator<CSN> INSTANCE = new CSNComparator();
+ public static final Comparator<String> INSTANCE = new CsnComparator();
/**
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
*/
- public int compare( CSN csn1, CSN csn2 )
+ public int compare( String csnStr1, String csnStr2 )
{
// -------------------------------------------------------------------
// Handle some basis cases
// -------------------------------------------------------------------
- if ( csn1 == null )
+ if ( csnStr1 == null )
{
- return ( csn2 == null ) ? 0 : -1;
+ return ( csnStr2 == null ) ? 0 : -1;
}
- if ( csn2 == null )
+ if ( csnStr2 == null )
{
return 1;
}
+ Csn csn1 = new Csn( csnStr1 );
+ Csn csn2 = new Csn( csnStr2 );
+
if ( csn1.getTimestamp() != csn2.getTimestamp() )
{
return ( csn1.getTimestamp() < csn2.getTimestamp() ? -1 : 1 );
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnSidComparator.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnSidComparator.java?rev=781049&r1=781048&r2=781049&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnSidComparator.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnSidComparator.java Tue Jun 2 14:54:56 2009
@@ -22,64 +22,68 @@
import java.util.Comparator;
-import org.apache.directory.shared.ldap.csn.CSN;
-
/**
* A comparator for CSN SID.
*
- * The CSN are ordered depending on an evaluation of its component, in this order :
- * - time,
- * - changeCount,
- * - sid
- * - modifierNumber
+ * The SID is supposed to be an hexadecimal number between 0x0 and 0xfff
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public class CsnSidComparator implements Comparator<CSN>
+public class CsnSidComparator implements Comparator<String>
{
/** A static instance of this comparator */
- public static final Comparator<CSN> INSTANCE = new CsnSidComparator();
+ public static final Comparator<String> INSTANCE = new CsnSidComparator();
/**
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
*/
- public int compare( CSN csn1, CSN csn2 )
+ public int compare( String sidStr1, String sidStr2 )
{
// -------------------------------------------------------------------
// Handle some basis cases
// -------------------------------------------------------------------
- if ( csn1 == null )
+ if ( sidStr1 == null )
{
- return ( csn2 == null ) ? 0 : -1;
+ return ( sidStr2 == null ) ? 0 : -1;
}
- if ( csn2 == null )
+ if ( sidStr2 == null )
{
return 1;
}
- if ( csn1.getTimestamp() != csn2.getTimestamp() )
+ int sid1 = 0;
+ int sid2 = 0;
+
+ try
{
- return ( csn1.getTimestamp() < csn2.getTimestamp() ? -1 : 1 );
+ sid1 = Integer.parseInt( sidStr1, 16 );
}
-
- if ( csn1.getChangeCount() != csn2.getChangeCount() )
+ catch ( NumberFormatException nfe )
{
- return ( csn1.getChangeCount() < csn2.getChangeCount() ? -1 : 1 );
+ return -1;
}
- if ( csn1.getReplicaId() != csn2.getReplicaId() )
+ try
{
- return ( csn1.getReplicaId() < csn2.getReplicaId() ? -1 : 1 );
+ sid2 = Integer.parseInt( sidStr2, 16 );
+ }
+ catch ( NumberFormatException nfe )
+ {
+ return 1;
}
- if ( csn1.getOperationNumber() != csn2.getOperationNumber() )
+ if ( sid1 > sid2 )
+ {
+ return 1;
+ }
+ else if ( sid2 > sid1 )
{
- return ( csn1.getOperationNumber() < csn2.getOperationNumber() ? -1 : 1 );
+ return -1;
}
return 0;
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/UUIDComparator.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/UUIDComparator.java?rev=781049&r1=781048&r2=781049&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/UUIDComparator.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/UUIDComparator.java Tue Jun 2 14:54:56 2009
@@ -21,7 +21,6 @@
import java.util.Comparator;
-import java.util.UUID;
/**
@@ -30,16 +29,16 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public class UUIDComparator implements Comparator<UUID>
+public class UUIDComparator implements Comparator<byte[]>
{
/** A static instance of this comparator */
- public static final Comparator<UUID> INSTANCE = new UUIDComparator();
+ public static final Comparator<byte[]> INSTANCE = new UUIDComparator();
/**
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
*/
- public int compare( UUID uuid1, UUID uuid2 )
+ public int compare( byte[] uuid1, byte[] uuid2 )
{
// -------------------------------------------------------------------
// Handle some basis cases
@@ -54,6 +53,32 @@
return 1;
}
- return uuid1.compareTo( uuid2 );
+ if ( uuid1.length < uuid2.length )
+ {
+ return -1;
+ }
+ else if ( uuid1.length > uuid2.length )
+ {
+ return 1;
+ }
+
+ for ( int pos = 0; pos < uuid1.length; pos++ )
+ {
+ if ( uuid1[pos] == uuid2[pos ] )
+ {
+ continue;
+ }
+
+ if ( uuid1[pos] < uuid2[pos] )
+ {
+ return -1;
+ }
+ else
+ {
+ return 1;
+ }
+ }
+
+ return 0;
}
}
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntaxes/CsnSidSyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntaxes/CsnSidSyntaxChecker.java?rev=781049&r1=781048&r2=781049&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntaxes/CsnSidSyntaxChecker.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntaxes/CsnSidSyntaxChecker.java Tue Jun 2 14:54:56 2009
@@ -77,8 +77,30 @@
{
return false;
}
+
+ String sidStr = (String)value;
+
+ if ( sidStr.length() > 3 )
+ {
+ return false;
+ }
- // TODO : add the check
- return false;
+ // The SID must be an hexadecimal number between 0x00 and 0xFFF
+
+ try
+ {
+ int sid = Integer.parseInt( sidStr, 16 );
+
+ if ( ( sid < 0 ) || ( sid > 0x0fff ) )
+ {
+ return false;
+ }
+ }
+ catch ( NumberFormatException nfe )
+ {
+ return false;
+ }
+
+ return true;
}
}
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntaxes/CsnSyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntaxes/CsnSyntaxChecker.java?rev=781049&r1=781048&r2=781049&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntaxes/CsnSyntaxChecker.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntaxes/CsnSyntaxChecker.java Tue Jun 2 14:54:56 2009
@@ -20,7 +20,7 @@
package org.apache.directory.shared.ldap.schema.syntaxes;
import org.apache.directory.shared.ldap.constants.SchemaConstants;
-import org.apache.directory.shared.ldap.csn.CSN;
+import org.apache.directory.shared.ldap.csn.Csn;
import org.apache.directory.shared.ldap.csn.InvalidCSNException;
import org.apache.directory.shared.ldap.schema.AbstractSyntaxChecker;
import org.apache.directory.shared.ldap.schema.SyntaxChecker;
@@ -85,7 +85,7 @@
// It must be a valid CSN : try to create a new one.
try
{
- return CSN.isValid( csnStr );
+ return Csn.isValid( csnStr );
}
catch ( InvalidCSNException icsne )
{
Copied: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CsnFactoryTest.java (from r780307, directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CSNFactoryTest.java)
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CsnFactoryTest.java?p2=directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CsnFactoryTest.java&p1=directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CSNFactoryTest.java&r1=780307&r2=781049&rev=781049&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CSNFactoryTest.java (original)
+++ directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CsnFactoryTest.java Tue Jun 2 14:54:56 2009
@@ -31,7 +31,7 @@
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
-public class CSNFactoryTest
+public class CsnFactoryTest
{
private static final int NUM_GENERATES = 10;
@@ -44,9 +44,9 @@
public void testUnique()
{
int replicaID = 001;
- CSNFactory defaultCSNFactory = new CSNFactory();
+ CsnFactory defaultCSNFactory = new CsnFactory();
- CSN[] csns = new CSN[NUM_GENERATES];
+ Csn[] csns = new Csn[NUM_GENERATES];
for ( int i = 0; i < NUM_GENERATES; i++ )
{
Copied: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CsnTest.java (from r780307, directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CSNTest.java)
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CsnTest.java?p2=directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CsnTest.java&p1=directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CSNTest.java&r1=780307&r2=781049&rev=781049&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CSNTest.java (original)
+++ directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/csn/CsnTest.java Tue Jun 2 14:54:56 2009
@@ -37,7 +37,7 @@
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
-public class CSNTest
+public class CsnTest
{
private SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMddHHmmss.123456'Z'" );
@@ -46,7 +46,7 @@
{
long ts = System.currentTimeMillis();
- CSN csn = new CSN( sdf.format( new Date( ts ) ) + "#123456#abc#654321" );
+ Csn csn = new Csn( sdf.format( new Date( ts ) ) + "#123456#abc#654321" );
assertEquals( ts/1000, csn.getTimestamp()/1000 );
@@ -62,7 +62,7 @@
{
try
{
- new CSN( (String)null );
+ new Csn( (String)null );
fail();
}
catch ( InvalidCSNException ice )
@@ -77,7 +77,7 @@
{
try
{
- new CSN( "" );
+ new Csn( "" );
fail();
}
catch ( InvalidCSNException ice )
@@ -92,7 +92,7 @@
{
try
{
- new CSN( sdf.format( new Date( System.currentTimeMillis() ) ) );
+ new Csn( sdf.format( new Date( System.currentTimeMillis() ) ) );
fail();
}
catch ( InvalidCSNException ice )
@@ -108,7 +108,7 @@
try
{
// A missing 'Z'
- new CSN( "20010101000000.000000#000001#abc#000001" );
+ new Csn( "20010101000000.000000#000001#abc#000001" );
fail();
}
catch ( InvalidCSNException ice )
@@ -119,7 +119,7 @@
try
{
// Missing milliseconds
- new CSN( "20000101000000.Z#000001#abc#000001" );
+ new Csn( "20000101000000.Z#000001#abc#000001" );
fail();
}
catch ( InvalidCSNException ice )
@@ -130,7 +130,7 @@
try
{
// Missing dot
- new CSN( "20010101000000000000Z#0x1#abc#0x1" );
+ new Csn( "20010101000000000000Z#0x1#abc#0x1" );
fail();
}
catch ( InvalidCSNException ice )
@@ -141,7 +141,7 @@
try
{
// Missing dot and millis
- new CSN( "20010101000000Z#000001#abc#000001" );
+ new Csn( "20010101000000Z#000001#abc#000001" );
fail();
}
catch ( InvalidCSNException ice )
@@ -152,7 +152,7 @@
try
{
// Invalid date
- new CSN( "200A01010000Z#000001#abc#000001" );
+ new Csn( "200A01010000Z#000001#abc#000001" );
fail();
}
catch ( InvalidCSNException ice )
@@ -167,7 +167,7 @@
{
try
{
- new CSN( "#000001#abc#000001" );
+ new Csn( "#000001#abc#000001" );
fail();
}
catch ( InvalidCSNException ice )
@@ -182,7 +182,7 @@
{
try
{
- new CSN( "20010101000000.000000Z##abc#000001" );
+ new Csn( "20010101000000.000000Z##abc#000001" );
fail();
}
catch ( InvalidCSNException ice )
@@ -197,7 +197,7 @@
{
try
{
- new CSN( "20010101000000.000000Z#00#abc#000001" );
+ new Csn( "20010101000000.000000Z#00#abc#000001" );
fail();
}
catch ( InvalidCSNException ice )
@@ -207,7 +207,7 @@
try
{
- new CSN( "20010101000000.000000Z#00000G#abc#000001" );
+ new Csn( "20010101000000.000000Z#00000G#abc#000001" );
fail();
}
catch ( InvalidCSNException ice )
@@ -222,7 +222,7 @@
{
try
{
- new CSN( "20010101000000.000000Z#000001##000001" );
+ new Csn( "20010101000000.000000Z#000001##000001" );
fail();
}
catch ( InvalidCSNException ice )
@@ -237,7 +237,7 @@
{
try
{
- new CSN( "20010101000000.000000Z#000001#a12-b3é#000001" );
+ new Csn( "20010101000000.000000Z#000001#a12-b3é#000001" );
fail();
}
catch ( InvalidCSNException ice )
@@ -252,7 +252,7 @@
{
try
{
- new CSN( "20010101000000.000000Z#000000#abc" );
+ new Csn( "20010101000000.000000Z#000000#abc" );
fail();
}
catch ( InvalidCSNException ice )
@@ -262,7 +262,7 @@
try
{
- new CSN( "20010101000000.000000Z#000000#abc# " );
+ new Csn( "20010101000000.000000Z#000000#abc# " );
fail();
}
catch ( InvalidCSNException ice )
@@ -277,7 +277,7 @@
{
try
{
- new CSN( "20010101000000.000000Z#000000#abc#000zzz" );
+ new Csn( "20010101000000.000000Z#000000#abc#000zzz" );
fail();
}
catch ( InvalidCSNException ice )
@@ -287,7 +287,7 @@
try
{
- new CSN( "20010101000000.000000Z#000000#abc#00000" );
+ new Csn( "20010101000000.000000Z#000000#abc#00000" );
fail();
}
catch ( InvalidCSNException ice )
@@ -297,7 +297,7 @@
try
{
- new CSN( "20010101000000.000000Z#000000#abc#" );
+ new Csn( "20010101000000.000000Z#000000#abc#" );
fail();
}
catch ( InvalidCSNException ice )
@@ -307,7 +307,7 @@
try
{
- new CSN( "20010101000000.000000Z#000000#abc#00000G" );
+ new Csn( "20010101000000.000000Z#000000#abc#00000G" );
fail();
}
catch ( InvalidCSNException ice )
@@ -320,7 +320,7 @@
@Test
public void testCSNToBytes()
{
- CSN csn = new CSN( "20010101000000.000000Z#000000#abc#000001" );
+ Csn csn = new Csn( "20010101000000.000000Z#000000#abc#000001" );
byte[] bytes = csn.getBytes();
@@ -335,7 +335,7 @@
assertTrue( Arrays.equals( expected, bytes ) );
- CSN deserializedCSN = new CSN( bytes );
+ Csn deserializedCSN = new Csn( bytes );
assertEquals( csn, deserializedCSN );
}
}
Copied: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparatorTest.java (from r780307, directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CSNComparatorTest.java)
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparatorTest.java?p2=directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparatorTest.java&p1=directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CSNComparatorTest.java&r1=780307&r2=781049&rev=781049&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CSNComparatorTest.java (original)
+++ directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparatorTest.java Tue Jun 2 14:54:56 2009
@@ -19,7 +19,7 @@
*/
package org.apache.directory.shared.ldap.schema.comparators;
-import org.apache.directory.shared.ldap.csn.CSN;
+import org.apache.directory.shared.ldap.csn.Csn;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
@@ -31,30 +31,26 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public class CSNComparatorTest
+public class CsnComparatorTest
{
- private CSNComparator comparator;
+ private CsnComparator comparator;
@Before
public void init()
{
- comparator = new CSNComparator();
+ comparator = new CsnComparator();
}
@Test
public void testNullCSNs()
{
- CSN csn1 = null;
- CSN csn2 = null;
+ assertEquals( 0, comparator.compare( null, null ) );
- assertEquals( 0, comparator.compare( csn1, csn2 ) );
-
- csn2 = new CSN( System.currentTimeMillis(), 1, 1, 1 );
- assertEquals( -1, comparator.compare( csn1, csn2 ) );
+ Csn csn2 = new Csn( System.currentTimeMillis(), 1, 1, 1 );
+ assertEquals( -1, comparator.compare( null, csn2.toString() ) );
- CSN csn3 = null;
- assertEquals( 1, comparator.compare( csn2, csn3 ) );
+ assertEquals( 1, comparator.compare( csn2.toString(), null ) );
}
@@ -62,10 +58,10 @@
public void testEqualsCSNs()
{
long t0 = System.currentTimeMillis();
- CSN csn1 = new CSN( t0, 0, 0, 0 );
- CSN csn2 = new CSN( t0, 0, 0, 0 );
+ Csn csn1 = new Csn( t0, 0, 0, 0 );
+ Csn csn2 = new Csn( t0, 0, 0, 0 );
- assertEquals( 0, comparator.compare( csn1, csn2 ) );
+ assertEquals( 0, comparator.compare( csn1.toString(), csn2.toString() ) );
}
@@ -74,11 +70,11 @@
{
long t0 = System.currentTimeMillis();
long t1 = System.currentTimeMillis() + 1000;
- CSN csn1 = new CSN( t0, 0, 0, 0 );
- CSN csn2 = new CSN( t1, 0, 0, 0 );
+ Csn csn1 = new Csn( t0, 0, 0, 0 );
+ Csn csn2 = new Csn( t1, 0, 0, 0 );
- assertEquals( -1, comparator.compare( csn1, csn2 ) );
- assertEquals( 1, comparator.compare( csn2, csn1 ) );
+ assertEquals( -1, comparator.compare( csn1.toString(), csn2.toString() ) );
+ assertEquals( 1, comparator.compare( csn2.toString(), csn1.toString() ) );
}
@@ -86,11 +82,11 @@
public void testDifferentChangeCountCSNs()
{
long t0 = System.currentTimeMillis();
- CSN csn1 = new CSN( t0, 0, 0, 0 );
- CSN csn2 = new CSN( t0, 1, 0, 0 );
+ Csn csn1 = new Csn( t0, 0, 0, 0 );
+ Csn csn2 = new Csn( t0, 1, 0, 0 );
- assertEquals( -1, comparator.compare( csn1, csn2 ) );
- assertEquals( 1, comparator.compare( csn2, csn1 ) );
+ assertEquals( -1, comparator.compare( csn1.toString(), csn2.toString() ) );
+ assertEquals( 1, comparator.compare( csn2.toString(), csn1.toString() ) );
}
@@ -98,11 +94,11 @@
public void testDifferentReplicaIdCSNs()
{
long t0 = System.currentTimeMillis();
- CSN csn1 = new CSN( t0, 0, 0, 0 );
- CSN csn2 = new CSN( t0, 0, 1, 0 );
+ Csn csn1 = new Csn( t0, 0, 0, 0 );
+ Csn csn2 = new Csn( t0, 0, 1, 0 );
- assertEquals( -1, comparator.compare( csn1, csn2 ) );
- assertEquals( 1, comparator.compare( csn2, csn1 ) );
+ assertEquals( -1, comparator.compare( csn1.toString(), csn2.toString() ) );
+ assertEquals( 1, comparator.compare( csn2.toString(), csn1.toString() ) );
}
@@ -110,10 +106,10 @@
public void testDifferentOperationNumberCSNs()
{
long t0 = System.currentTimeMillis();
- CSN csn1 = new CSN( t0, 0, 0, 0 );
- CSN csn2 = new CSN( t0, 0, 0, 1 );
+ Csn csn1 = new Csn( t0, 0, 0, 0 );
+ Csn csn2 = new Csn( t0, 0, 0, 1 );
- assertEquals( -1, comparator.compare( csn1, csn2 ) );
- assertEquals( 1, comparator.compare( csn2, csn1 ) );
+ assertEquals( -1, comparator.compare( csn1.toString(), csn2.toString() ) );
+ assertEquals( 1, comparator.compare( csn2.toString(), csn1.toString() ) );
}
}
Added: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CsnSidComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CsnSidComparatorTest.java?rev=781049&view=auto
==============================================================================
--- directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CsnSidComparatorTest.java (added)
+++ directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/comparators/CsnSidComparatorTest.java Tue Jun 2 14:54:56 2009
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.shared.ldap.schema.comparators;
+
+import org.junit.Before;
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+
+/**
+ * Test the CSN comparator
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class CsnSidComparatorTest
+{
+ private CsnSidComparator comparator;
+
+ @Before
+ public void init()
+ {
+ comparator = new CsnSidComparator();
+ }
+
+
+ @Test
+ public void testNullSids()
+ {
+ assertEquals( 0, comparator.compare( null, null ) );
+
+ assertEquals( -1, comparator.compare( null, "000" ) );
+
+ assertEquals( 1, comparator.compare( "000", null ) );
+ }
+
+
+ @Test
+ public void testEqualsSids()
+ {
+ assertEquals( 0, comparator.compare( "000", "000" ) );
+ assertEquals( 0, comparator.compare( "000", "0" ) );
+ assertEquals( 0, comparator.compare( "fff", "fff" ) );
+ }
+
+
+
+ @Test
+ public void testDifferentSids()
+ {
+ assertEquals( -1, comparator.compare( "123", "456" ) );
+ assertEquals( 1, comparator.compare( "FFF", "000" ) );
+ assertEquals( 1, comparator.compare( "FFF", "GGG" ) );
+ }
+}
Added: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/CsnSidSyntaxCheckerTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/CsnSidSyntaxCheckerTest.java?rev=781049&view=auto
==============================================================================
--- directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/CsnSidSyntaxCheckerTest.java (added)
+++ directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/CsnSidSyntaxCheckerTest.java Tue Jun 2 14:54:56 2009
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.shared.ldap.schema.syntax;
+
+import org.apache.directory.shared.ldap.schema.syntaxes.CsnSidSyntaxChecker;
+
+import org.junit.Test;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Test cases for CsnSidSyntaxChecker.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class CsnSidSyntaxCheckerTest
+{
+ CsnSidSyntaxChecker checker = new CsnSidSyntaxChecker();
+
+
+ @Test
+ public void testNullCsnSid()
+ {
+ assertFalse( checker.isValidSyntax( null ) );
+ }
+
+
+ @Test
+ public void testEmptyCsnSid()
+ {
+ assertFalse( checker.isValidSyntax( "" ) );
+ }
+
+
+ @Test
+ public void testValidCsnSid()
+ {
+ assertTrue( checker.isValidSyntax( "000" ) );
+ assertTrue( checker.isValidSyntax( "0" ) );
+ assertTrue( checker.isValidSyntax( "123" ) );
+ assertTrue( checker.isValidSyntax( "fff" ) );
+ assertTrue( checker.isValidSyntax( "FFF" ) );
+ }
+
+
+ @Test
+ public void testInvalidCsnSid()
+ {
+ assertFalse( checker.isValidSyntax( "Ggg" ) );
+ assertFalse( checker.isValidSyntax( "0-0" ) );
+ assertFalse( checker.isValidSyntax( "-1" ) );
+ assertFalse( checker.isValidSyntax( "0000" ) );
+ }
+}
Added: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/CsnSyntaxCheckerTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/CsnSyntaxCheckerTest.java?rev=781049&view=auto
==============================================================================
--- directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/CsnSyntaxCheckerTest.java (added)
+++ directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/CsnSyntaxCheckerTest.java Tue Jun 2 14:54:56 2009
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.shared.ldap.schema.syntax;
+
+import org.apache.directory.shared.ldap.schema.syntaxes.CsnSyntaxChecker;
+
+import org.junit.Test;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Test cases for CsnSyntaxChecker.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class CsnSyntaxCheckerTest
+{
+ CsnSyntaxChecker checker = new CsnSyntaxChecker();
+
+
+ @Test
+ public void testNullCsn()
+ {
+ assertFalse( checker.isValidSyntax( null ) );
+ }
+
+
+ @Test
+ public void testEmptyCsn()
+ {
+ assertFalse( checker.isValidSyntax( "" ) );
+ }
+
+
+ /**
+ * Test that a replicaId not being an integer between 000 and fff
+ * is seen as invalid
+ */
+ @Test
+ public void testBadReplicaId()
+ {
+ assertFalse( checker.isValidSyntax( "20090602120000.100000Z#000000##000000" ) );
+ assertFalse( checker.isValidSyntax( "20090602120000.100000Z#000000#00P#000000" ) );
+ assertFalse( checker.isValidSyntax( "20090602120000.100000Z#000000#-1#000000" ) );
+ assertFalse( checker.isValidSyntax( "20090602120000.100000Z#000000#-01#000000" ) );
+ assertFalse( checker.isValidSyntax( "20090602120000.100000Z#000000#0#000000" ) );
+ assertFalse( checker.isValidSyntax( "20090602120000.100000Z#000000#0 0#000000" ) );
+ assertFalse( checker.isValidSyntax( "20090602120000.100000Z#000000# #000000" ) );
+ }
+
+
+ /**
+ * Test that a replicaId is a valid number between 000 and fff
+ */
+ @Test
+ public void testValidReplicaId()
+ {
+ assertTrue( checker.isValidSyntax( "20090602120000.100000Z#000000#000#000000" ) );
+ assertTrue( checker.isValidSyntax( "20090602120000.100000Z#000000#00f#000000" ) );
+ assertTrue( checker.isValidSyntax( "20090602120000.100000Z#000000#fff#000000" ) );
+ assertTrue( checker.isValidSyntax( "20090602120000.100000Z#000000#123#000000" ) );
+ }
+}