Author: elecharny Date: Wed Aug 29 14:19:32 2012 New Revision: 1378571 URL: http://svn.apache.org/viewvc?rev=1378571&view=rev Log: Moved from Long to UUID : o Changed the OneAlias and SubAlias AT to use UUIDMatch instead of IntegerMatch o Added a Strings.getUUID( Long ) method that return a UUID String from a least significant bits o Fixed the UuidSyntaxChecker to return true if we pass an UUID o Changed the UuidComparator to take an UUID parameter instead of a String Modified: directory/shared/branches/shared-mvbt/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/UuidComparator.java directory/shared/branches/shared-mvbt/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/syntaxCheckers/UuidSyntaxChecker.java directory/shared/branches/shared-mvbt/ldap/schema/data/src/main/resources/schema/ou=schema/cn=apache/ou=attributetypes/m-oid=1.3.6.1.4.1.18060.0.4.1.2.5.ldif directory/shared/branches/shared-mvbt/ldap/schema/data/src/main/resources/schema/ou=schema/cn=apache/ou=attributetypes/m-oid=1.3.6.1.4.1.18060.0.4.1.2.6.ldif directory/shared/branches/shared-mvbt/util/src/main/java/org/apache/directory/shared/util/Strings.java Modified: directory/shared/branches/shared-mvbt/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/UuidComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-mvbt/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/UuidComparator.java?rev=1378571&r1=1378570&r2=1378571&view=diff ============================================================================== --- directory/shared/branches/shared-mvbt/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/UuidComparator.java (original) +++ directory/shared/branches/shared-mvbt/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/UuidComparator.java Wed Aug 29 14:19:32 2012 @@ -20,7 +20,8 @@ package org.apache.directory.shared.ldap.model.schema.comparators; -import org.apache.directory.shared.ldap.model.schema.LdapComparator; +import java.util.UUID; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,7 +31,7 @@ import org.slf4j.LoggerFactory; * * @author Apache Directory Project */ -public class UuidComparator extends LdapComparator +public class UuidComparator extends SerializableComparator { /** The serial version UID */ private static final long serialVersionUID = 2L; @@ -38,6 +39,8 @@ public class UuidComparator extends Ldap /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( UuidComparator.class ); + public static UuidComparator INSTANCE = new UuidComparator( "1.3.6.1.1.16.4" ); + /** * The UUIDComparator constructor. Its OID is the UUIDMatch matching @@ -71,4 +74,28 @@ public class UuidComparator extends Ldap return uuid1.compareTo( uuid2 ); } + + + /** + * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) + */ + public int compare( UUID uuid1, UUID uuid2 ) + { + LOG.debug( "comparing UUID objects '{}' with '{}'", uuid1, uuid2 ); + + // ------------------------------------------------------------------- + // Handle some basis cases + // ------------------------------------------------------------------- + if ( uuid1 == null ) + { + return ( uuid2 == null ) ? 0 : -1; + } + + if ( uuid2 == null ) + { + return 1; + } + + return uuid1.compareTo( uuid2 ); + } } Modified: directory/shared/branches/shared-mvbt/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/syntaxCheckers/UuidSyntaxChecker.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-mvbt/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/syntaxCheckers/UuidSyntaxChecker.java?rev=1378571&r1=1378570&r2=1378571&view=diff ============================================================================== --- directory/shared/branches/shared-mvbt/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/syntaxCheckers/UuidSyntaxChecker.java (original) +++ directory/shared/branches/shared-mvbt/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/syntaxCheckers/UuidSyntaxChecker.java Wed Aug 29 14:19:32 2012 @@ -20,6 +20,8 @@ package org.apache.directory.shared.ldap.model.schema.syntaxCheckers; +import java.util.UUID; + import org.apache.directory.shared.ldap.model.constants.SchemaConstants; import org.apache.directory.shared.ldap.model.schema.SyntaxChecker; import org.apache.directory.shared.util.Strings; @@ -61,6 +63,11 @@ public class UuidSyntaxChecker extends S return false; } + if ( value instanceof UUID ) + { + return true; + } + if ( !( value instanceof String ) ) { LOG.debug( "Syntax invalid for '{}'", value ); Modified: directory/shared/branches/shared-mvbt/ldap/schema/data/src/main/resources/schema/ou=schema/cn=apache/ou=attributetypes/m-oid=1.3.6.1.4.1.18060.0.4.1.2.5.ldif URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-mvbt/ldap/schema/data/src/main/resources/schema/ou%3Dschema/cn%3Dapache/ou%3Dattributetypes/m-oid%3D1.3.6.1.4.1.18060.0.4.1.2.5.ldif?rev=1378571&r1=1378570&r2=1378571&view=diff ============================================================================== --- directory/shared/branches/shared-mvbt/ldap/schema/data/src/main/resources/schema/ou=schema/cn=apache/ou=attributetypes/m-oid=1.3.6.1.4.1.18060.0.4.1.2.5.ldif (original) +++ directory/shared/branches/shared-mvbt/ldap/schema/data/src/main/resources/schema/ou=schema/cn=apache/ou=attributetypes/m-oid=1.3.6.1.4.1.18060.0.4.1.2.5.ldif Wed Aug 29 14:19:32 2012 @@ -9,8 +9,8 @@ m-nousermodification: TRUE objectclass: metaAttributeType objectclass: metaTop objectclass: top -m-syntax: 1.3.6.1.4.1.1466.115.121.1.27 +m-syntax: 1.3.6.1.1.16.1 m-usage: DSA_OPERATION m-name: apacheOneAlias creatorsname: uid=admin,ou=system -m-equality: integerMatch +m-equality: uuidMatch Modified: directory/shared/branches/shared-mvbt/ldap/schema/data/src/main/resources/schema/ou=schema/cn=apache/ou=attributetypes/m-oid=1.3.6.1.4.1.18060.0.4.1.2.6.ldif URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-mvbt/ldap/schema/data/src/main/resources/schema/ou%3Dschema/cn%3Dapache/ou%3Dattributetypes/m-oid%3D1.3.6.1.4.1.18060.0.4.1.2.6.ldif?rev=1378571&r1=1378570&r2=1378571&view=diff ============================================================================== --- directory/shared/branches/shared-mvbt/ldap/schema/data/src/main/resources/schema/ou=schema/cn=apache/ou=attributetypes/m-oid=1.3.6.1.4.1.18060.0.4.1.2.6.ldif (original) +++ directory/shared/branches/shared-mvbt/ldap/schema/data/src/main/resources/schema/ou=schema/cn=apache/ou=attributetypes/m-oid=1.3.6.1.4.1.18060.0.4.1.2.6.ldif Wed Aug 29 14:19:32 2012 @@ -9,8 +9,8 @@ m-nousermodification: TRUE objectclass: metaAttributeType objectclass: metaTop objectclass: top -m-syntax: 1.3.6.1.4.1.1466.115.121.1.27 +m-syntax: 1.3.6.1.1.16.1 m-usage: DSA_OPERATION m-name: apacheSubAlias creatorsname: uid=admin,ou=system -m-equality: integerMatch +m-equality: uuidMatch Modified: directory/shared/branches/shared-mvbt/util/src/main/java/org/apache/directory/shared/util/Strings.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-mvbt/util/src/main/java/org/apache/directory/shared/util/Strings.java?rev=1378571&r1=1378570&r2=1378571&view=diff ============================================================================== --- directory/shared/branches/shared-mvbt/util/src/main/java/org/apache/directory/shared/util/Strings.java (original) +++ directory/shared/branches/shared-mvbt/util/src/main/java/org/apache/directory/shared/util/Strings.java Wed Aug 29 14:19:32 2012 @@ -34,6 +34,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; +import java.util.UUID; import org.apache.directory.shared.i18n.I18n; import org.slf4j.Logger; @@ -2183,4 +2184,16 @@ public final class Strings { return getString( data, 0, data.length, charset ); } + + + /** + * Create a new UUID using a long as the least significant bits + * + * @param value The least significant bits. + * @return + */ + public static UUID getUUID( long value ) + { + return new UUID( 0, value ); + } }