You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Felix Knecht <fe...@apache.org> on 2010/01/21 11:36:08 UTC
Re: svn commit: r896599 [3/30] - in /directory/apacheds/trunk: ./
avl-partition/ avl-partition/src/ avl-partition/src/main/ avl-partition/src/main/java/
avl-partition/src/main/java/org/ avl-partition/src/main/java/org/apache/
avl-partition/src/main/java/or...
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
This doesn't seems to be JDK1.5 compliant (at least for me):
[INFO] Compilation failure
/home/felix/svn/apache/directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerBinaryValue.java:[376,24]
compare(capture of ? super byte[],capture of ? super byte[]) in
java.util.Comparator<capture of ? super byte[]> cannot be applied to
(byte[],byte[])
/home/felix/svn/apache/directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerBinaryValue.java:[503,37]
compare(capture of ? super byte[],capture of ? super byte[]) in
java.util.Comparator<capture of ? super byte[]> cannot be applied to
(byte[],byte[])
~/svn/apache/directory/apacheds/trunk $ java -version
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_22-b03, mixed mode)
Regards
Felix
On 06.01.2010 19:27, elecharny@apache.org wrote:
> Modified: directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerBinaryValue.java
> URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerBinaryValue.java?rev=896599&r1=896598&r2=896599&view=diff
> ==============================================================================
> --- directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerBinaryValue.java (original)
> +++ directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerBinaryValue.java Wed Jan 6 18:26:43 2010
> @@ -32,6 +32,7 @@
> import org.apache.directory.shared.ldap.entry.Value;
> import org.apache.directory.shared.ldap.entry.client.ClientBinaryValue;
> import org.apache.directory.shared.ldap.schema.AttributeType;
> +import org.apache.directory.shared.ldap.schema.LdapComparator;
> import org.apache.directory.shared.ldap.schema.MatchingRule;
> import org.apache.directory.shared.ldap.schema.Normalizer;
> import org.apache.directory.shared.ldap.schema.comparators.ByteArrayComparator;
> @@ -53,7 +54,7 @@
> {
> /** Used for serialization */
> private static final long serialVersionUID = 2L;
> -
> +
> /** logger for reporting errors that might not be handled properly upstream */
> private static final Logger LOG = LoggerFactory.getLogger( ServerBinaryValue.class );
>
> @@ -73,38 +74,31 @@
> */
> protected String logAssert( String message )
> {
> - LOG.error( message );
> + LOG.error( message );
> return message;
> }
>
> -
> +
> /**
> * Check the attributeType member. It should not be null,
> * and it should contains a syntax.
> */
> protected String checkAttributeType( AttributeType attributeType )
> {
> - try
> + if ( attributeType == null )
> {
> - if ( attributeType == null )
> - {
> - return "The AttributeType parameter should not be null";
> - }
> -
> - if ( attributeType.getSyntax() == null )
> - {
> - return "There is no Syntax associated with this attributeType";
> - }
> -
> - return null;
> + return "The AttributeType parameter should not be null";
> }
> - catch ( NamingException ne )
> +
> + if ( attributeType.getSyntax() == null )
> {
> - return "This AttributeType is incorrect";
> + return "There is no Syntax associated with this attributeType";
> }
> +
> + return null;
> }
>
> -
> +
> // -----------------------------------------------------------------------
> // Constructors
> // -----------------------------------------------------------------------
> @@ -116,27 +110,20 @@
> public ServerBinaryValue( AttributeType attributeType )
> {
> super();
> -
> +
> if ( attributeType == null )
> {
> throw new IllegalArgumentException( "The AttributeType parameter should not be null" );
> }
>
> - try
> + if ( attributeType.getSyntax() == null )
> {
> - if ( attributeType.getSyntax() == null )
> - {
> - throw new IllegalArgumentException( "There is no Syntax associated with this attributeType" );
> - }
> -
> - if ( attributeType.getSyntax().isHumanReadable() )
> - {
> - LOG.warn( "Treating a value of a human readible attribute {} as binary: ", attributeType.getName() );
> - }
> + throw new IllegalArgumentException( "There is no Syntax associated with this attributeType" );
> }
> - catch( NamingException e )
> +
> + if ( attributeType.getSyntax().isHumanReadable() )
> {
> - LOG.error( "Failed to resolve syntax for attributeType {}", attributeType, e );
> + LOG.warn( "Treating a value of a human readible attribute {} as binary: ", attributeType.getName() );
> }
>
> this.attributeType = attributeType;
> @@ -164,7 +151,7 @@
> * @param wrapped the value to wrap which can be null
> * @param normalizedValue the normalized value
> */
> - /** No protection */
> + /** No protection */
> ServerBinaryValue( AttributeType attributeType, byte[] wrapped, byte[] normalizedValue, boolean same, boolean valid )
> {
> super( wrapped );
> @@ -172,7 +159,7 @@
> this.attributeType = attributeType;
> this.normalizedValue = normalizedValue;
> this.valid = valid;
> - this.same = same;
> + this.same = same;
> //this.oid = attributeType.getOid();
> }
>
> @@ -187,11 +174,11 @@
> // Bypass the normalization if it has already been done.
> return;
> }
> -
> +
> if ( wrapped != null )
> {
> Normalizer normalizer = getNormalizer();
> -
> +
> if ( normalizer == null )
> {
> normalizedValue = wrapped;
> @@ -213,9 +200,9 @@
> }
> }
>
> -
> +
> /**
> - * Gets the normalized (cannonical) representation for the wrapped string.
> + * Gets the normalized (canonical) representation for the wrapped string.
> * If the wrapped String is null, null is returned, otherwise the normalized
> * form is returned. If no the normalizedValue is null, then this method
> * will attempt to generate it from the wrapped value: repeated calls to
> @@ -259,7 +246,7 @@
> *
> * @return gets the normalized value
> */
> - public byte[] getNormalizedValue()
> + public byte[] getNormalizedValue()
> {
> if ( isNull() )
> {
> @@ -315,7 +302,7 @@
>
> if ( normalizedValue != null )
> {
> - byte[] copy = new byte[ normalizedValue.length ];
> + byte[] copy = new byte[normalizedValue.length];
> System.arraycopy( normalizedValue, 0, copy, 0, normalizedValue.length );
> return copy;
> }
> @@ -342,20 +329,11 @@
> return valid;
> }
>
> - try
> - {
> - valid = attributeType.getSyntax().getSyntaxChecker().isValidSyntax( getReference() );
> - }
> - catch ( NamingException ne )
> - {
> - String message = "Cannot check the syntax : " + ne.getMessage();
> - LOG.error( message );
> - valid = false;
> - }
> -
> + valid = attributeType.getSyntax().getSyntaxChecker().isValidSyntax( getReference() );
> +
> return valid;
> }
> -
> +
>
> /**
> *
> @@ -378,7 +356,7 @@
> }
> else
> {
> - if ( ( value == null ) || value.isNull() )
> + if ( ( value == null ) || value.isNull() )
> {
> return 1;
> }
> @@ -390,29 +368,30 @@
>
> try
> {
> - Comparator<? super Value<byte[]>> comparator = getComparator();
> -
> + Comparator<? super byte[]> comparator = getLdapComparator();
> +
> if ( comparator != null )
> {
> - return getComparator().compare( getNormalizedValueReference(), binaryValue.getNormalizedValueReference() );
> + return comparator
> + .compare( getNormalizedValueReference(), binaryValue.getNormalizedValueReference() );
> }
> else
> {
> - return ByteArrayComparator.INSTANCE.compare( getNormalizedValueReference(),
> - binaryValue.getNormalizedValueReference() );
> + return new ByteArrayComparator( null ).compare( getNormalizedValueReference(), binaryValue
> + .getNormalizedValueReference() );
> }
> }
> catch ( NamingException e )
> {
> - String msg = "Failed to compare normalized values for " + Arrays.toString( getReference() )
> - + " and " + value;
> + String msg = "Failed to compare normalized values for " + Arrays.toString( getReference() ) + " and "
> + + value;
> LOG.error( msg, e );
> throw new IllegalStateException( msg, e );
> }
> }
>
> - String message = "I don't really know how to compare anything other " +
> - "than ServerBinaryValues at this point in time.";
> + String message = "I don't really know how to compare anything other "
> + + "than ServerBinaryValues at this point in time.";
> LOG.error( message );
> throw new NotImplementedException( message );
> }
> @@ -485,18 +464,18 @@
> return true;
> }
>
> - if ( ! ( obj instanceof ServerBinaryValue ) )
> + if ( !( obj instanceof ServerBinaryValue ) )
> {
> return false;
> }
>
> ServerBinaryValue other = ( ServerBinaryValue ) obj;
> -
> +
> if ( !attributeType.equals( other.attributeType ) )
> {
> return false;
> }
> -
> +
> if ( isNull() )
> {
> return other.isNull();
> @@ -512,7 +491,7 @@
> {
> try
> {
> - Comparator<byte[]> comparator = getComparator();
> + LdapComparator<? super byte[]> comparator = getLdapComparator();
>
> // Compare normalized values
> if ( comparator == null )
> @@ -555,7 +534,7 @@
>
> if ( mr == null )
> {
> - mr = attributeType.getSubstr();
> + mr = attributeType.getSubstring();
> }
>
> return mr;
> @@ -589,7 +568,7 @@
> * @return a comparator associated with the attributeType or null if one cannot be found
> * @throws NamingException if resolution of schema entities fail
> */
> - private Comparator getComparator() throws NamingException
> + private LdapComparator<? super Object> getLdapComparator() throws NamingException
> {
> MatchingRule mr = getMatchingRule();
>
> @@ -598,23 +577,23 @@
> return null;
> }
>
> - return mr.getComparator();
> + return mr.getLdapComparator();
> }
> -
> -
> +
> +
> /**
> * @return a copy of the current value
> */
> public ServerBinaryValue clone()
> {
> - ServerBinaryValue clone = (ServerBinaryValue)super.clone();
> -
> + ServerBinaryValue clone = ( ServerBinaryValue ) super.clone();
> +
> if ( normalizedValue != null )
> {
> - clone.normalizedValue = new byte[ normalizedValue.length ];
> + clone.normalizedValue = new byte[normalizedValue.length];
> System.arraycopy( normalizedValue, 0, clone.normalizedValue, 0, normalizedValue.length );
> }
> -
> +
> return clone;
> }
>
> @@ -624,13 +603,13 @@
> *
> * We can't use this method for a ServerBinaryValue, as we have to feed the value
> * with an AttributeType object
> - */
> + */
> public void writeExternal( ObjectOutput out ) throws IOException
> {
> throw new IllegalStateException( "Cannot use standard serialization for a ServerStringValue" );
> }
> -
> -
> +
> +
> /**
> * We will write the value and the normalized value, only
> * if the normalized value is different.
> @@ -655,18 +634,18 @@
> {
> // write a the wrapped length
> out.writeInt( wrapped.length );
> -
> +
> // Write the data if not empty
> if ( wrapped.length > 0 )
> {
> // The data
> out.write( wrapped );
> -
> +
> // Normalize the data
> try
> {
> normalize();
> -
> +
> if ( !normalized )
> {
> // We may not have a normalizer. Just get out
> @@ -677,7 +656,7 @@
> {
> // Write a flag indicating that the data has been normalized
> out.writeBoolean( true );
> -
> +
> if ( Arrays.equals( getReference(), normalizedValue ) )
> {
> // Write the 'same = true' flag
> @@ -687,10 +666,10 @@
> {
> // Write the 'same = false' flag
> out.writeBoolean( false );
> -
> +
> // Write the normalized value length
> - out.write( normalizedValue.length );
> -
> + out.writeInt( normalizedValue.length );
> +
> if ( normalizedValue.length > 0 )
> {
> // Write the normalized value if not empty
> @@ -715,7 +694,7 @@
> }
> }
>
> -
> +
> /**
> * @see Externalizable#readExternal(ObjectInput)
> *
> @@ -726,7 +705,7 @@
> {
> throw new IllegalStateException( "Cannot use standard serialization for a ServerStringValue" );
> }
> -
> +
>
> /**
> *
> @@ -740,7 +719,7 @@
> {
> // The UP value length
> int wrappedLength = in.readInt();
> -
> +
> if ( wrappedLength == -1 )
> {
> // If the value is null, the length will be set to -1
> @@ -749,35 +728,35 @@
> }
> else if ( wrappedLength == 0 )
> {
> - wrapped = StringTools.EMPTY_BYTES;
> - same = true;
> - normalized = true;
> - normalizedValue = wrapped;
> + wrapped = StringTools.EMPTY_BYTES;
> + same = true;
> + normalized = true;
> + normalizedValue = wrapped;
> }
> else
> {
> wrapped = new byte[wrappedLength];
> -
> +
> // Read the data
> in.readFully( wrapped );
> -
> +
> // Check if we have a normalized value
> normalized = in.readBoolean();
> -
> +
> if ( normalized )
> {
> // Read the 'same' flag
> same = in.readBoolean();
> -
> +
> if ( !same )
> {
> // Read the normalizedvalue length
> int normalizedLength = in.readInt();
> -
> +
> if ( normalizedLength > 0 )
> {
> normalizedValue = new byte[normalizedLength];
> -
> +
> // Read the normalized value
> in.read( normalizedValue, 0, normalizedLength );
> }
> @@ -794,4 +773,4 @@
> }
> }
> }
> -}
> +}
>
> Modified: directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntrySerializer.java
> URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntrySerializer.java?rev=896599&r1=896598&r2=896599&view=diff
> ==============================================================================
> --- directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntrySerializer.java (original)
> +++ directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntrySerializer.java Wed Jan 6 18:26:43 2010
> @@ -25,12 +25,12 @@
> import java.io.ObjectInputStream;
> import java.io.ObjectOutputStream;
>
> -import org.apache.directory.server.schema.registries.Registries;
> +import jdbm.helper.Serializer;
> +
> +import org.apache.directory.shared.ldap.schema.SchemaManager;
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
>
> -import jdbm.helper.Serializer;
> -
>
> /**
> * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
> @@ -48,18 +48,18 @@
> */
> private static final boolean IS_DEBUG = LOG.isDebugEnabled();
>
> - /** The registries reference */
> - private transient Registries registries;
> + /** The schemaManager reference */
> + private transient SchemaManager schemaManager;
>
>
> /**
> * Creates a new instance of ServerEntrySerializer.
> *
> - * @param registries The reference to the global registries
> + * @param schemaManager The reference to the global schemaManager
> */
> - public ServerEntrySerializer( Registries registries )
> + public ServerEntrySerializer( SchemaManager schemaManager )
> {
> - this.registries = registries;
> + this.schemaManager = schemaManager;
> }
>
>
> @@ -144,7 +144,7 @@
> {
> ObjectInputStream in = new ObjectInputStream( new ByteArrayInputStream( bytes ) );
>
> - DefaultServerEntry serverEntry = new DefaultServerEntry( registries );
> + DefaultServerEntry serverEntry = new DefaultServerEntry( schemaManager );
>
> try
> {
>
> Modified: directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntryUtils.java
> URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntryUtils.java?rev=896599&r1=896598&r2=896599&view=diff
> ==============================================================================
> --- directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntryUtils.java (original)
> +++ directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntryUtils.java Wed Jan 6 18:26:43 2010
> @@ -35,15 +35,15 @@
> import javax.naming.directory.ModificationItem;
> import javax.naming.directory.SearchResult;
>
> -import org.apache.directory.server.schema.registries.AttributeTypeRegistry;
> -import org.apache.directory.server.schema.registries.Registries;
> import org.apache.directory.shared.ldap.constants.SchemaConstants;
> import org.apache.directory.shared.ldap.entry.EntryAttribute;
> import org.apache.directory.shared.ldap.entry.Modification;
> import org.apache.directory.shared.ldap.entry.ModificationOperation;
> import org.apache.directory.shared.ldap.entry.Value;
> +import org.apache.directory.shared.ldap.exception.LdapInvalidAttributeIdentifierException;
> import org.apache.directory.shared.ldap.name.LdapDN;
> import org.apache.directory.shared.ldap.schema.AttributeType;
> +import org.apache.directory.shared.ldap.schema.SchemaManager;
> import org.apache.directory.shared.ldap.schema.SchemaUtils;
> import org.apache.directory.shared.ldap.util.EmptyEnumeration;
> import org.apache.directory.shared.ldap.util.StringTools;
> @@ -195,14 +195,14 @@
> *
> * @throws InvalidAttributeIdentifierException If we get an invalid attribute
> */
> - public static ServerEntry toServerEntry( Attributes attributes, LdapDN dn, Registries registries )
> + public static ServerEntry toServerEntry( Attributes attributes, LdapDN dn, SchemaManager schemaManager )
> throws InvalidAttributeIdentifierException
> {
> if ( attributes instanceof BasicAttributes )
> {
> try
> {
> - ServerEntry entry = new DefaultServerEntry( registries, dn );
> + ServerEntry entry = new DefaultServerEntry( schemaManager, dn );
>
> for ( NamingEnumeration<? extends Attribute> attrs = attributes.getAll(); attrs.hasMoreElements(); )
> {
> @@ -212,7 +212,7 @@
> String id = SchemaUtils.stripOptions( attributeId );
> Set<String> options = SchemaUtils.getOptions( attributeId );
> // TODO : handle options.
> - AttributeType attributeType = registries.getAttributeTypeRegistry().lookup( id );
> + AttributeType attributeType = schemaManager.lookupAttributeTypeRegistry( id );
> ServerAttribute serverAttribute = ServerEntryUtils.toServerAttribute( attr, attributeType );
>
> if ( serverAttribute != null )
> @@ -244,12 +244,12 @@
> * @return the resultant entry after the modification has taken place
> * @throws NamingException if there are problems accessing attributes
> */
> - public static ServerEntry getTargetEntry( Modification mod, ServerEntry entry, Registries registries ) throws NamingException
> + public static ServerEntry getTargetEntry( Modification mod, ServerEntry entry, SchemaManager schemaManager ) throws NamingException
> {
> ServerEntry targetEntry = ( ServerEntry ) entry.clone();
> ModificationOperation modOp = mod.getOperation();
> String id = mod.getAttribute().getId();
> - AttributeType attributeType = registries.getAttributeTypeRegistry().lookup( id );
> + AttributeType attributeType = schemaManager.lookupAttributeTypeRegistry( id );
>
> switch ( modOp )
> {
> @@ -397,7 +397,7 @@
> * @throws NamingException
> */
> public static List<Modification> convertToServerModification( List<ModificationItem> modificationItems,
> - AttributeTypeRegistry atRegistry ) throws NamingException
> + SchemaManager schemaManager ) throws NamingException
> {
> if ( modificationItems != null )
> {
> @@ -405,7 +405,7 @@
>
> for ( ModificationItem modificationItem: modificationItems )
> {
> - AttributeType attributeType = atRegistry.lookup( modificationItem.getAttribute().getID() );
> + AttributeType attributeType = schemaManager.lookupAttributeTypeRegistry( modificationItem.getAttribute().getID() );
> modifications.add( toServerModification( modificationItem, attributeType ) );
> }
>
> @@ -442,7 +442,7 @@
>
>
> public static List<Modification> toServerModification( Modification[] modifications,
> - AttributeTypeRegistry atRegistry ) throws NamingException
> + SchemaManager schemaManager ) throws NamingException
> {
> if ( modifications != null )
> {
> @@ -459,25 +459,21 @@
> // DIRSERVER-646 Fix: Replacing an unknown attribute with no values
> // (deletion) causes an error
> // -------------------------------------------------------------------
> -
> - // TODO - after removing JNDI we need to make the server handle
> - // this in the codec
> -
> - if ( ! atRegistry.hasAttributeType( id )
> + if ( ! schemaManager.getAttributeTypeRegistry().contains( id )
> && modification.getAttribute().size() == 0
> && modification.getOperation() == ModificationOperation.REPLACE_ATTRIBUTE )
> {
> - continue;
> + // The attributeType does not exist in the schema.
> + // It's an error
> + String message = "The AttributeType '" + id + "' does not exist in the schema";
> + throw new LdapInvalidAttributeIdentifierException( message );
> + }
> + else
> + {
> + // TODO : handle options
> + AttributeType attributeType = schemaManager.lookupAttributeTypeRegistry( id );
> + modificationsList.add( toServerModification( modification, attributeType ) );
> }
> -
> - // -------------------------------------------------------------------
> - // END DIRSERVER-646 Fix
> - // -------------------------------------------------------------------
> -
> -
> - // TODO : handle options
> - AttributeType attributeType = atRegistry.lookup( id );
> - modificationsList.add( toServerModification( modification, attributeType ) );
> }
>
> return modificationsList;
> @@ -490,7 +486,7 @@
>
>
> public static List<Modification> toServerModification( ModificationItem[] modifications,
> - AttributeTypeRegistry atRegistry ) throws NamingException
> + SchemaManager schemaManager ) throws NamingException
> {
> if ( modifications != null )
> {
> @@ -510,7 +506,7 @@
> // TODO - after removing JNDI we need to make the server handle
> // this in the codec
>
> - if ( ! atRegistry.hasAttributeType( id )
> + if ( ! schemaManager.getAttributeTypeRegistry().contains( id )
> && modification.getAttribute().size() == 0
> && modification.getModificationOp() == DirContext.REPLACE_ATTRIBUTE )
> {
> @@ -523,7 +519,7 @@
>
>
> // TODO : handle options
> - AttributeType attributeType = atRegistry.lookup( id );
> + AttributeType attributeType = schemaManager.lookupAttributeTypeRegistry( id );
> modificationsList.add( toServerModification( (ModificationItem)modification, attributeType ) );
> }
>
> @@ -616,7 +612,7 @@
> ServerSearchResult rec = result.next();
>
> SearchResult searchResult = new SearchResult(
> - rec.getDn().getUpName(),
> + rec.getDn().getName(),
> rec.getObject(),
> toBasicAttributes( rec.getServerEntry() ),
> rec.isRelative() );
> @@ -644,7 +640,7 @@
> ServerSearchResult rec = result.next();
>
> SearchResult searchResult = new SearchResult(
> - rec.getDn().getUpName(),
> + rec.getDn().getName(),
> rec.getObject(),
> toBasicAttributes( rec.getServerEntry() ),
> rec.isRelative() );
>
> Modified: directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerModification.java
> URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerModification.java?rev=896599&r1=896598&r2=896599&view=diff
> ==============================================================================
> --- directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerModification.java (original)
> +++ directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerModification.java Wed Jan 6 18:26:43 2010
> @@ -24,15 +24,13 @@
> import java.io.ObjectOutput;
>
> import javax.naming.NamingException;
> -//import javax.naming.directory.DirContext;
>
> -import org.apache.directory.server.schema.registries.AttributeTypeRegistry;
> -import org.apache.directory.server.schema.registries.Registries;
> import org.apache.directory.shared.ldap.entry.EntryAttribute;
> import org.apache.directory.shared.ldap.entry.Modification;
> import org.apache.directory.shared.ldap.entry.ModificationOperation;
> import org.apache.directory.shared.ldap.entry.client.ClientModification;
> import org.apache.directory.shared.ldap.schema.AttributeType;
> +import org.apache.directory.shared.ldap.schema.SchemaManager;
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
>
> @@ -81,7 +79,7 @@
> }
>
>
> - public ServerModification( Registries registries, Modification modification )
> + public ServerModification( SchemaManager schemaManager, Modification modification )
> {
> operation = modification.getOperation();
>
> @@ -97,7 +95,7 @@
> }
> else
> {
> - at = registries.getAttributeTypeRegistry().lookup( modAttribute.getId() );
> + at = schemaManager.lookupAttributeTypeRegistry( modAttribute.getId() );
> }
>
> attribute = new DefaultServerAttribute( at, modAttribute );
> @@ -278,7 +276,7 @@
> * @throws ClassNotFoundException if we weren't able to construct a Modification instance
> * @throws NamingException If we didn't found the AttributeType in the registries
> */
> - public void deserialize( ObjectInput in, AttributeTypeRegistry atRegistry ) throws IOException, ClassNotFoundException, NamingException
> + public void deserialize( ObjectInput in, SchemaManager schemaManager ) throws IOException, ClassNotFoundException, NamingException
> {
> // Read the operation
> int op = in.readInt();
> @@ -289,7 +287,7 @@
> String oid = in.readUTF();
>
> // Lookup for tha associated AttributeType
> - AttributeType attributeType = atRegistry.lookup( oid );
> + AttributeType attributeType = schemaManager.lookupAttributeTypeRegistry( oid );
>
> attribute = new DefaultServerAttribute( attributeType );
>
>
> Modified: directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerSearchResult.java
> URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerSearchResult.java?rev=896599&r1=896598&r2=896599&view=diff
> ==============================================================================
> --- directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerSearchResult.java (original)
> +++ directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerSearchResult.java Wed Jan 6 18:26:43 2010
> @@ -131,7 +131,7 @@
> */
> public String toString()
> {
> - String name = (dn == null ? "null" : ( dn == LdapDN.EMPTY_LDAPDN ? "\"\"" : dn.getUpName() ) );
> + String name = (dn == null ? "null" : ( dn == LdapDN.EMPTY_LDAPDN ? "\"\"" : dn.getName() ) );
> return "ServerSearchResult : " + name + "\n" + serverEntry;
> }
> }
>
> Modified: directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerStringValue.java
> URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerStringValue.java?rev=896599&r1=896598&r2=896599&view=diff
> ==============================================================================
> --- directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerStringValue.java (original)
> +++ directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerStringValue.java Wed Jan 6 18:26:43 2010
> @@ -23,7 +23,6 @@
> import java.io.IOException;
> import java.io.ObjectInput;
> import java.io.ObjectOutput;
> -import java.util.Comparator;
>
> import javax.naming.NamingException;
>
> @@ -31,6 +30,7 @@
> import org.apache.directory.shared.ldap.entry.Value;
> import org.apache.directory.shared.ldap.entry.client.ClientStringValue;
> import org.apache.directory.shared.ldap.schema.AttributeType;
> +import org.apache.directory.shared.ldap.schema.LdapComparator;
> import org.apache.directory.shared.ldap.schema.MatchingRule;
> import org.apache.directory.shared.ldap.schema.Normalizer;
> import org.slf4j.Logger;
> @@ -77,24 +77,17 @@
> */
> protected String checkAttributeType( AttributeType attributeType )
> {
> - try
> + if ( attributeType == null )
> {
> - if ( attributeType == null )
> - {
> - return "The AttributeType parameter should not be null";
> - }
> -
> - if ( attributeType.getSyntax() == null )
> - {
> - return "There is no Syntax associated with this attributeType";
> - }
> -
> - return null;
> + return "The AttributeType parameter should not be null";
> }
> - catch ( NamingException ne )
> +
> + if ( attributeType.getSyntax() == null )
> {
> - return "This AttributeType is incorrect";
> + return "There is no Syntax associated with this attributeType";
> }
> +
> + return null;
> }
>
>
> @@ -115,22 +108,15 @@
> throw new IllegalArgumentException( "The AttributeType parameter should not be null" );
> }
>
> - try
> + if ( attributeType.getSyntax() == null )
> {
> - if ( attributeType.getSyntax() == null )
> - {
> - throw new IllegalArgumentException( "There is no Syntax associated with this attributeType" );
> - }
> -
> - if ( ! attributeType.getSyntax().isHumanReadable() )
> - {
> - LOG.warn( "Treating a value of a binary attribute {} as a String: " +
> - "\nthis could cause data corruption!", attributeType.getName() );
> - }
> + throw new IllegalArgumentException( "There is no Syntax associated with this attributeType" );
> }
> - catch( NamingException e )
> +
> + if ( ! attributeType.getSyntax().isHumanReadable() )
> {
> - LOG.error( "Failed to resolve syntax for attributeType {}", attributeType, e );
> + LOG.warn( "Treating a value of a binary attribute {} as a String: " +
> + "\nthis could cause data corruption!", attributeType.getName() );
> }
>
> this.attributeType = attributeType;
> @@ -269,16 +255,7 @@
> return valid;
> }
>
> - try
> - {
> - valid = attributeType.getSyntax().getSyntaxChecker().isValidSyntax( get() );
> - }
> - catch ( NamingException ne )
> - {
> - String message = "Cannot check the syntax : " + ne.getMessage();
> - LOG.error( message );
> - valid = false;
> - }
> + valid = attributeType.getSyntax().getSyntaxChecker().isValidSyntax( get() );
>
> return valid;
> }
> @@ -336,7 +313,7 @@
> try
> {
> //noinspection unchecked
> - return getComparator().compare( getNormalizedValue(), stringValue.getNormalizedValue() );
> + return getLdapComparator().compare( getNormalizedValue(), stringValue.getNormalizedValue() );
> }
> catch ( NamingException e )
> {
> @@ -436,7 +413,7 @@
> {
> try
> {
> - Comparator<String> comparator = getComparator();
> + LdapComparator<? super Object> comparator = getLdapComparator();
>
> // Compare normalized values
> if ( comparator == null )
> @@ -445,7 +422,15 @@
> }
> else
> {
> - return comparator.compare( getNormalizedValue(), other.getNormalizedValue() ) == 0;
> + if ( isNormalized() )
> + {
> + return comparator.compare( getNormalizedValue(), other.getNormalizedValue() ) == 0;
> + }
> + else
> + {
> + Normalizer normalizer = attributeType.getEquality().getNormalizer();
> + return comparator.compare( normalizer.normalize( get() ), normalizer.normalize( other.get() ) ) == 0;
> + }
> }
> }
> catch ( NamingException ne )
> @@ -481,7 +466,7 @@
>
> if ( mr == null )
> {
> - mr = attributeType.getSubstr();
> + mr = attributeType.getSubstring();
> }
>
> return mr;
> @@ -549,7 +534,7 @@
> * @return a comparator associated with the attributeType or null if one cannot be found
> * @throws NamingException if resolution of schema entities fail
> */
> - private Comparator getComparator() throws NamingException
> + private LdapComparator<? super Object> getLdapComparator() throws NamingException
> {
> MatchingRule mr = getMatchingRule();
>
> @@ -558,7 +543,7 @@
> return null;
> }
>
> - return mr.getComparator();
> + return mr.getLdapComparator();
> }
>
>
>
> Modified: directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/TestServerEntryUtils.java
> URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/TestServerEntryUtils.java?rev=896599&r1=896598&r2=896599&view=diff
> ==============================================================================
> --- directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/TestServerEntryUtils.java (original)
> +++ directory/apacheds/trunk/core-entry/src/main/java/org/apache/directory/server/core/entry/TestServerEntryUtils.java Wed Jan 6 18:26:43 2010
> @@ -19,21 +19,16 @@
> */
> package org.apache.directory.server.core.entry;
>
> -import java.util.Comparator;
> -
> import javax.naming.NamingException;
> -import javax.naming.directory.InvalidAttributeValueException;
>
> import org.apache.directory.shared.ldap.entry.Value;
> import org.apache.directory.shared.ldap.entry.client.ClientBinaryValue;
> import org.apache.directory.shared.ldap.entry.client.ClientStringValue;
> -import org.apache.directory.shared.ldap.schema.AbstractAttributeType;
> -import org.apache.directory.shared.ldap.schema.AbstractMatchingRule;
> -import org.apache.directory.shared.ldap.schema.AbstractSyntax;
> import org.apache.directory.shared.ldap.schema.AttributeType;
> +import org.apache.directory.shared.ldap.schema.LdapComparator;
> +import org.apache.directory.shared.ldap.schema.LdapSyntax;
> import org.apache.directory.shared.ldap.schema.MatchingRule;
> import org.apache.directory.shared.ldap.schema.Normalizer;
> -import org.apache.directory.shared.ldap.schema.Syntax;
> import org.apache.directory.shared.ldap.schema.SyntaxChecker;
> import org.apache.directory.shared.ldap.schema.comparators.ByteArrayComparator;
> import org.apache.directory.shared.ldap.schema.normalizers.DeepTrimToLowerNormalizer;
> @@ -50,165 +45,66 @@
> /**
> * A local Syntax class for tests
> */
> - static class AT extends AbstractAttributeType
> + static class AT extends AttributeType
> {
> private static final long serialVersionUID = 0L;
> - AttributeType superior;
> - Syntax syntax;
> - MatchingRule equality;
> - MatchingRule ordering;
> - MatchingRule substr;
>
> protected AT( String oid )
> {
> super( oid );
> }
> -
> - public AttributeType getSuperior() throws NamingException
> - {
> - return superior;
> - }
> -
> -
> - public Syntax getSyntax() throws NamingException
> - {
> - return syntax;
> - }
> -
> -
> - public MatchingRule getEquality() throws NamingException
> - {
> - return equality;
> - }
> -
> -
> - public MatchingRule getOrdering() throws NamingException
> - {
> - return ordering;
> - }
> -
> -
> - public MatchingRule getSubstr() throws NamingException
> - {
> - return substr;
> - }
> -
> -
> - public void setSuperior( AttributeType superior )
> - {
> - this.superior = superior;
> - }
> -
> -
> - public void setSyntax( Syntax syntax )
> - {
> - this.syntax = syntax;
> - }
> -
> -
> - public void setEquality( MatchingRule equality )
> - {
> - this.equality = equality;
> - }
> -
> -
> - public void setOrdering( MatchingRule ordering )
> - {
> - this.ordering = ordering;
> - }
> -
> -
> - public void setSubstr( MatchingRule substr )
> - {
> - this.substr = substr;
> - }
> }
>
> + public static MatchingRule matchingRuleFactory( String oid )
> + {
> + MatchingRule matchingRule = new MatchingRule( oid );
> +
> + return matchingRule;
> + }
> /**
> * A local MatchingRule class for tests
> */
> - static class MR extends AbstractMatchingRule
> + static class MR extends MatchingRule
> {
> private static final long serialVersionUID = 0L;
> - Syntax syntax;
> - Comparator comparator;
> - Normalizer normalizer;
>
> protected MR( String oid )
> {
> super( oid );
> }
> -
> - public Syntax getSyntax() throws NamingException
> - {
> - return syntax;
> - }
> -
> - public Comparator getComparator() throws NamingException
> - {
> - return comparator;
> - }
> -
> -
> - public Normalizer getNormalizer() throws NamingException
> - {
> - return normalizer;
> - }
> -
> -
> - public void setSyntax( Syntax syntax )
> - {
> - this.syntax = syntax;
> - }
> -
> -
> - public void setComparator( Comparator<?> comparator )
> - {
> - this.comparator = comparator;
> - }
> -
> -
> - public void setNormalizer( Normalizer normalizer )
> - {
> - this.normalizer = normalizer;
> - }
> }
>
>
> /**
> * A local Syntax class used for the tests
> */
> - static class S extends AbstractSyntax
> + public static LdapSyntax syntaxFactory( String oid, boolean humanReadable )
> + {
> + LdapSyntax ldapSyntax = new LdapSyntax( oid );
> +
> + ldapSyntax.setHumanReadable( humanReadable );
> +
> + return ldapSyntax;
> + }
> + static class S extends LdapSyntax
> {
> private static final long serialVersionUID = 0L;
> - SyntaxChecker checker;
>
> public S( String oid, boolean humanReadible )
> {
> - super( oid, humanReadible );
> - }
> -
> - public void setSyntaxChecker( SyntaxChecker checker )
> - {
> - this.checker = checker;
> - }
> -
> - public SyntaxChecker getSyntaxChecker() throws NamingException
> - {
> - return checker;
> + super( oid, "", humanReadible );
> }
> }
>
> /* no protection*/ static AttributeType getCaseIgnoringAttributeNoNumbersType()
> {
> - S s = new S( "1.1.1.1", true );
> + AttributeType attributeType = new AttributeType( "1.1.3.1" );
> + LdapSyntax syntax = new LdapSyntax( "1.1.1.1", "", true );
>
> - s.setSyntaxChecker( new SyntaxChecker()
> + syntax.setSyntaxChecker( new SyntaxChecker( "1.1.2.1" )
> {
> - public String getSyntaxOid()
> - {
> - return "1.1.1.1";
> - }
> + private static final long serialVersionUID = 0L;
> +
> public boolean isValidSyntax( Object value )
> {
> if ( !( value instanceof String ) )
> @@ -227,20 +123,16 @@
> }
> return true;
> }
> -
> - public void assertSyntax( Object value ) throws NamingException
> - {
> - if ( ! isValidSyntax( value ) )
> - {
> - throw new InvalidAttributeValueException();
> - }
> - }
> } );
> +
> + MatchingRule matchingRule = new MatchingRule( "1.1.2.1" );
> + matchingRule.setSyntax( syntax );
> +
>
> - final MR mr = new MR( "1.1.2.1" );
> - mr.syntax = s;
> - mr.comparator = new Comparator<String>()
> + matchingRule.setLdapComparator( new LdapComparator<String>( matchingRule.getOid() )
> {
> + private static final long serialVersionUID = 0L;
> +
> public int compare( String o1, String o2 )
> {
> return ( o1 == null ?
> @@ -265,12 +157,11 @@
>
> throw new IllegalArgumentException( "Not a valid value" );
> }
> - };
> + } );
>
> - mr.normalizer = new Normalizer()
> + Normalizer normalizer = new Normalizer( "1.1.1" )
> {
> - // The serial UID
> - private static final long serialVersionUID = 1L;
> + private static final long serialVersionUID = 0L;
>
> public Value<?> normalize( Value<?> value ) throws NamingException
> {
> @@ -289,98 +180,77 @@
> }
> };
>
> - AT at = new AT( "1.1.3.1" );
> - at.setEquality( mr );
> - at.setSyntax( s );
> - return at;
> + matchingRule.setNormalizer( normalizer );
> +
> + attributeType.setEquality( matchingRule );
> + attributeType.setSyntax( syntax );
> +
> + return attributeType;
> }
>
>
> /* no protection*/ static AttributeType getIA5StringAttributeType()
> {
> - AT at = new AT( "1.1" );
> -
> - S s = new S( "1.1.1", true );
> + AttributeType attributeType = new AttributeType( "1.1" );
> + attributeType.addName( "1.1" );
> + LdapSyntax syntax = new LdapSyntax( "1.1.1", "", true );
>
> - s.setSyntaxChecker( new SyntaxChecker()
> + syntax.setSyntaxChecker( new SyntaxChecker( "1.1.2" )
> {
> - public String getSyntaxOid()
> - {
> - return "1.1.1";
> - }
> + private static final long serialVersionUID = 0L;
> +
> public boolean isValidSyntax( Object value )
> {
> return ((String)value == null) || (((String)value).length() < 7) ;
> }
> -
> - public void assertSyntax( Object value ) throws NamingException
> - {
> - if ( ! isValidSyntax( value ) )
> - {
> - throw new InvalidAttributeValueException();
> - }
> - }
> } );
> +
> + MatchingRule matchingRule = new MatchingRule( "1.1.2" );
> + matchingRule.setSyntax( syntax );
> +
>
> - final MR mr = new MR( "1.1.2" );
> - mr.syntax = s;
> - mr.comparator = new Comparator<String>()
> + matchingRule.setLdapComparator( new LdapComparator<String>( matchingRule.getOid() )
> {
> + private static final long serialVersionUID = 0L;
> +
> public int compare( String o1, String o2 )
> {
> return ( ( o1 == null ) ?
> ( o2 == null ? 0 : -1 ) :
> ( o2 == null ? 1 : o1.compareTo( o2 ) ) );
> }
> - };
> + } );
> +
> + matchingRule.setNormalizer( new DeepTrimToLowerNormalizer( matchingRule.getOid() ) );
>
> - mr.normalizer = new DeepTrimToLowerNormalizer();
> + attributeType.setEquality( matchingRule );
> + attributeType.setSyntax( syntax );
>
> - at.setEquality( mr );
> - at.setSyntax( s );
> - return at;
> + return attributeType;
> }
>
>
> /* No protection */ static AttributeType getBytesAttributeType()
> {
> - AT at = new AT( "1.2" );
> + AttributeType attributeType = new AttributeType( "1.2" );
> + LdapSyntax syntax = new LdapSyntax( "1.2.1", "", true );
>
> - S s = new S( "1.2.1", true );
> -
> - s.setSyntaxChecker( new SyntaxChecker()
> + syntax.setSyntaxChecker( new SyntaxChecker( "1.2.1" )
> {
> - public String getSyntaxOid()
> - {
> - return "1.2.1";
> - }
> + private static final long serialVersionUID = 0L;
> +
> public boolean isValidSyntax( Object value )
> {
> return ( value == null ) || ( ((byte[])value).length < 5 );
> }
> -
> - public void assertSyntax( Object value ) throws NamingException
> - {
> - if ( ! isValidSyntax( value ) )
> - {
> - throw new InvalidAttributeValueException();
> - }
> - }
> } );
>
> - final MR mr = new MR( "1.2.2" );
> - mr.syntax = s;
> - mr.comparator = new Comparator<byte[]>()
> - {
> - public int compare( byte[] o1, byte[] o2 )
> - {
> - return ( ( o1 == null ) ?
> - ( o2 == null ? 0 : -1 ) :
> - ( o2 == null ? 1 : ByteArrayComparator.INSTANCE.compare( o1, o2 ) ) );
> - }
> - };
> + MatchingRule matchingRule = new MatchingRule( "1.2.2" );
> + matchingRule.setSyntax( syntax );
> +
> + matchingRule.setLdapComparator( new ByteArrayComparator( "1.2.2" ) );
>
> - mr.normalizer = new Normalizer()
> + matchingRule.setNormalizer( new Normalizer( "1.1.1" )
> {
> // The serial UID
> private static final long serialVersionUID = 1L;
> @@ -411,10 +281,11 @@
> {
> throw new IllegalStateException( "expected byte[] to normalize" );
> }
> - };
> + } );
>
> - at.setEquality( mr );
> - at.setSyntax( s );
> - return at;
> + attributeType.setEquality( matchingRule );
> + attributeType.setSyntax( syntax );
> +
> + return attributeType;
> }
> }
>
> Modified: directory/apacheds/trunk/core-entry/src/test/java/org/apache/directory/server/core/entry/DefaultServerAttributeTest.java
> URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-entry/src/test/java/org/apache/directory/server/core/entry/DefaultServerAttributeTest.java?rev=896599&r1=896598&r2=896599&view=diff
> ==============================================================================
> --- directory/apacheds/trunk/core-entry/src/test/java/org/apache/directory/server/core/entry/DefaultServerAttributeTest.java (original)
> +++ directory/apacheds/trunk/core-entry/src/test/java/org/apache/directory/server/core/entry/DefaultServerAttributeTest.java Wed Jan 6 18:26:43 2010
> @@ -19,16 +19,17 @@
> package org.apache.directory.server.core.entry;
>
>
> -import static org.junit.Assert.assertNotSame;
> -import static org.junit.Assert.assertTrue;
> -import static org.junit.Assert.assertFalse;
> import static org.junit.Assert.assertEquals;
> -import static org.junit.Assert.assertNull;
> +import static org.junit.Assert.assertFalse;
> import static org.junit.Assert.assertNotNull;
> +import static org.junit.Assert.assertNotSame;
> +import static org.junit.Assert.assertNull;
> +import static org.junit.Assert.assertTrue;
> import static org.junit.Assert.fail;
>
> import java.io.ByteArrayInputStream;
> import java.io.ByteArrayOutputStream;
> +import java.io.File;
> import java.io.IOException;
> import java.io.ObjectInputStream;
> import java.io.ObjectOutputStream;
> @@ -42,18 +43,7 @@
> import javax.naming.NamingException;
> import javax.naming.directory.InvalidAttributeValueException;
>
> -import org.apache.directory.server.schema.bootstrap.ApacheSchema;
> -import org.apache.directory.server.schema.bootstrap.ApachemetaSchema;
> -import org.apache.directory.server.schema.bootstrap.BootstrapSchemaLoader;
> -import org.apache.directory.server.schema.bootstrap.CoreSchema;
> -import org.apache.directory.server.schema.bootstrap.CosineSchema;
> -import org.apache.directory.server.schema.bootstrap.InetorgpersonSchema;
> -import org.apache.directory.server.schema.bootstrap.Schema;
> -import org.apache.directory.server.schema.bootstrap.SystemSchema;
> -import org.apache.directory.server.schema.registries.DefaultOidRegistry;
> -import org.apache.directory.server.schema.registries.DefaultRegistries;
> -import org.apache.directory.server.schema.registries.OidRegistry;
> -import org.apache.directory.server.schema.registries.Registries;
> +import org.apache.commons.io.FileUtils;
> import org.apache.directory.shared.ldap.entry.EntryAttribute;
> import org.apache.directory.shared.ldap.entry.Value;
> import org.apache.directory.shared.ldap.entry.client.ClientAttribute;
> @@ -61,8 +51,13 @@
> import org.apache.directory.shared.ldap.entry.client.ClientStringValue;
> import org.apache.directory.shared.ldap.entry.client.DefaultClientAttribute;
> import org.apache.directory.shared.ldap.schema.AttributeType;
> +import org.apache.directory.shared.ldap.schema.SchemaManager;
> +import org.apache.directory.shared.ldap.schema.ldif.extractor.SchemaLdifExtractor;
> +import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
> +import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
> +import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
> +import org.apache.directory.shared.ldap.util.ExceptionUtils;
> import org.apache.directory.shared.ldap.util.StringTools;
> -
> import org.junit.BeforeClass;
> import org.junit.Test;
>
> @@ -75,9 +70,7 @@
> */
> public class DefaultServerAttributeTest
> {
> - private static BootstrapSchemaLoader loader;
> - private static Registries registries;
> - private static OidRegistry oidRegistry;
> + private static LdifSchemaLoader loader;
>
> private static AttributeType atCN;
> private static AttributeType atSN;
> @@ -105,30 +98,46 @@
> private static final ClientBinaryValue BIN_VALUE3 = new ClientBinaryValue( BYTES3 );
> private static final ClientBinaryValue BIN_VALUE4 = new ClientBinaryValue( BYTES4 );
>
> +
> /**
> * Initialize the registries once for the whole test suite
> */
> @BeforeClass
> public static void setup() throws Exception
> {
> - loader = new BootstrapSchemaLoader();
> - oidRegistry = new DefaultOidRegistry();
> - registries = new DefaultRegistries( "bootstrap", loader, oidRegistry );
> -
> - // load essential bootstrap schemas
> - Set<Schema> bootstrapSchemas = new HashSet<Schema>();
> - bootstrapSchemas.add( new ApachemetaSchema() );
> - bootstrapSchemas.add( new ApacheSchema() );
> - bootstrapSchemas.add( new CoreSchema() );
> - bootstrapSchemas.add( new SystemSchema() );
> - bootstrapSchemas.add( new InetorgpersonSchema() );
> - bootstrapSchemas.add( new CosineSchema() );
> - loader.loadWithDependencies( bootstrapSchemas, registries );
> -
> - atCN = registries.getAttributeTypeRegistry().lookup( "cn" );
> - atC = registries.getAttributeTypeRegistry().lookup( "c" );
> - atSN = registries.getAttributeTypeRegistry().lookup( "sn" );
> - atPwd = registries.getAttributeTypeRegistry().lookup( "userpassword" );
> + String workingDirectory = System.getProperty( "workingDirectory" );
> +
> + if ( workingDirectory == null )
> + {
> + String path = DefaultServerAttributeTest.class.getResource( "" ).getPath();
> + int targetPos = path.indexOf( "target" );
> + workingDirectory = path.substring( 0, targetPos + 6 );
> + }
> +
> + // Cleanup the target directory
> + File schemaRepository = new File( workingDirectory, "schema" );
> + FileUtils.deleteDirectory( schemaRepository );
> +
> + SchemaLdifExtractor extractor = new DefaultSchemaLdifExtractor( new File( workingDirectory ) );
> + extractor.extractOrCopy( true );
> + loader = new LdifSchemaLoader( schemaRepository );
> + SchemaManager schemaManager = new DefaultSchemaManager( loader );
> +
> + schemaManager.loadAllEnabled();
> +
> + List<Throwable> errors = schemaManager.getErrors();
> +
> + if ( errors.size() != 0 )
> + {
> + // We have inconsistencies : log them and exit.
> + throw new RuntimeException( "Inconsistent schemas : " +
> + ExceptionUtils.printErrors( errors ) );
> + }
> +
> + atCN = schemaManager.lookupAttributeTypeRegistry( "cn" );
> + atC = schemaManager.lookupAttributeTypeRegistry( "c" );
> + atSN = schemaManager.lookupAttributeTypeRegistry( "sn" );
> + atPwd = schemaManager.lookupAttributeTypeRegistry( "userpassword" );
> }
>
> /**
> @@ -573,8 +582,8 @@
> {
> ServerAttribute attr = new DefaultServerAttribute( atCN );
>
> - // No value, this should be valid
> - assertTrue( attr.isValid() );
> + // No value, this should not be valid
> + assertFalse( attr.isValid() );
>
> attr.add( "test", "test2", "A123\\;" );
> assertTrue( attr.isValid() );
> @@ -2097,7 +2106,7 @@
> assertEquals( "cn", dsaSer.getUpId() );
> assertEquals( 0, dsaSer.size() );
> assertTrue( dsaSer.isHR() );
> - assertTrue( dsaSer.isValid() );
> + assertFalse( dsaSer.isValid() );
> }
>
>
>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAktYLhgACgkQ2lZVCB08qHEVdACggfSPAGWoIoypmj5WmjF13Ddd
tmYAoKJSgsBFp1Rsa7u0DeaAVcyu6ACf
=Ax6y
-----END PGP SIGNATURE-----
Re: svn commit: r896599 [3/30] - in /directory/apacheds/trunk: ./
avl-partition/ avl-partition/src/ avl-partition/src/main/ avl-partition/src/main/java/
avl-partition/src/main/java/org/ avl-partition/src/main/java/org/apache/
avl-partition/src/main/java/or...
Posted by Emmanuel Lecharny <el...@gmail.com>.
Felix Knecht a écrit :
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> This doesn't seems to be JDK1.5 compliant (at least for me):
>
I confirm. I will fix that.
--
Regards,
Cordialement,
Emmanuel Lécharny
www.nextury.com