You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2007/01/06 05:06:46 UTC
svn commit: r493295 - in /directory/trunks/apacheds:
core-unit/src/test/java/org/apache/directory/server/core/schema/
core/src/main/java/org/apache/directory/server/core/schema/
schema-bootstrap/src/main/java/org/apache/directory/server/schema/bootstra...
Author: akarasulu
Date: Fri Jan 5 20:06:45 2007
New Revision: 493295
URL: http://svn.apache.org/viewvc?view=rev&rev=493295
Log:
fixing various bugs to make the integration tests for syntax update handling work
Modified:
directory/trunks/apacheds/core-unit/src/test/java/org/apache/directory/server/core/schema/MetaSyntaxHandlerITest.java
directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java
directory/trunks/apacheds/schema-bootstrap/src/main/java/org/apache/directory/server/schema/bootstrap/NameOrNumericIdNormalizer.java
directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultOidRegistry.java
directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultSyntaxRegistry.java
Modified: directory/trunks/apacheds/core-unit/src/test/java/org/apache/directory/server/core/schema/MetaSyntaxHandlerITest.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core-unit/src/test/java/org/apache/directory/server/core/schema/MetaSyntaxHandlerITest.java?view=diff&rev=493295&r1=493294&r2=493295
==============================================================================
--- directory/trunks/apacheds/core-unit/src/test/java/org/apache/directory/server/core/schema/MetaSyntaxHandlerITest.java (original)
+++ directory/trunks/apacheds/core-unit/src/test/java/org/apache/directory/server/core/schema/MetaSyntaxHandlerITest.java Fri Jan 5 20:06:45 2007
@@ -58,7 +58,7 @@
*/
private final LdapDN getSyntaxContainer( String schemaName ) throws NamingException
{
- return new LdapDN( "ou=normalizers,cn=" + schemaName );
+ return new LdapDN( "ou=syntaxes,cn=" + schemaName );
}
Modified: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java?view=diff&rev=493295&r1=493294&r2=493295
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java (original)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java Fri Jan 5 20:06:45 2007
@@ -81,6 +81,7 @@
private final String CN_OID;
private final String M_OID_OID;
private final String OBJECTCLASS_OID;
+ private final String META_SYNTAX_OID;
private final AttributeType disabledAttributeType;
@@ -104,6 +105,7 @@
this.disabledAttributeType = attrRegistry.lookup( MetaSchemaConstants.M_DISABLED_AT );
this.M_OID_OID = oidRegistry.getOid( MetaSchemaConstants.M_OID_AT );
this.OBJECTCLASS_OID = oidRegistry.getOid( SystemSchemaConstants.OBJECT_CLASS_AT );
+ this.META_SYNTAX_OID = oidRegistry.getOid( MetaSchemaConstants.M_SYNTAX_AT );
}
@@ -289,7 +291,10 @@
}
finally
{
- ne.close();
+ if ( ne != null )
+ {
+ ne.close();
+ }
}
}
@@ -336,13 +341,13 @@
// subfilter for (| (objectClass=metaMatchingRule) (objectClass=metaAttributeType))
BranchNode or = new BranchNode( AssertionEnum.OR );
- or.addNode( new SimpleNode( SystemSchemaConstants.OBJECT_CLASS_AT,
- MetaSchemaConstants.META_MATCHING_RULE_OC, AssertionEnum.EQUALITY ) );
- or.addNode( new SimpleNode( SystemSchemaConstants.OBJECT_CLASS_AT,
- MetaSchemaConstants.META_ATTRIBUTE_TYPE_OC, AssertionEnum.EQUALITY ) );
+ or.addNode( new SimpleNode( OBJECTCLASS_OID,
+ MetaSchemaConstants.META_MATCHING_RULE_OC.toLowerCase(), AssertionEnum.EQUALITY ) );
+ or.addNode( new SimpleNode( OBJECTCLASS_OID,
+ MetaSchemaConstants.META_ATTRIBUTE_TYPE_OC.toLowerCase(), AssertionEnum.EQUALITY ) );
filter.addNode( or );
- filter.addNode( new SimpleNode( MetaSchemaConstants.M_SYNTAX_AT,
+ filter.addNode( new SimpleNode( META_SYNTAX_OID,
numericOid.toLowerCase(), AssertionEnum.EQUALITY ) );
SearchControls searchControls = new SearchControls();
@@ -359,7 +364,10 @@
}
finally
{
- ne.close();
+ if ( ne != null )
+ {
+ ne.close();
+ }
}
return set;
Modified: directory/trunks/apacheds/schema-bootstrap/src/main/java/org/apache/directory/server/schema/bootstrap/NameOrNumericIdNormalizer.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/schema-bootstrap/src/main/java/org/apache/directory/server/schema/bootstrap/NameOrNumericIdNormalizer.java?view=diff&rev=493295&r1=493294&r2=493295
==============================================================================
--- directory/trunks/apacheds/schema-bootstrap/src/main/java/org/apache/directory/server/schema/bootstrap/NameOrNumericIdNormalizer.java (original)
+++ directory/trunks/apacheds/schema-bootstrap/src/main/java/org/apache/directory/server/schema/bootstrap/NameOrNumericIdNormalizer.java Fri Jan 5 20:06:45 2007
@@ -27,6 +27,8 @@
import org.apache.directory.shared.ldap.exception.LdapNamingException;
import org.apache.directory.shared.ldap.message.ResultCodeEnum;
import org.apache.directory.shared.ldap.schema.Normalizer;
+import org.apache.directory.shared.ldap.schema.syntax.NumericOidSyntaxChecker;
+import org.apache.directory.shared.ldap.schema.syntax.OidSyntaxChecker;
import org.apache.directory.shared.ldap.util.StringTools;
@@ -42,7 +44,7 @@
public class NameOrNumericIdNormalizer implements Normalizer
{
private static final long serialVersionUID = 1L;
-
+ private NumericOidSyntaxChecker checker = new NumericOidSyntaxChecker();
private transient OidRegistry registry;
@@ -87,12 +89,21 @@
return "";
}
+ // if value is a numeric id then return it as is
+ if ( checker.isValidSyntax( strValue ) )
+ {
+ return value;
+ }
+
+ // if it is a name we need to do a lookup
if ( registry.hasOid( strValue ) )
{
return registry.getOid( strValue );
}
- throw new LdapNamingException( ResultCodeEnum.OTHER );
+ // if all else fails
+ throw new LdapNamingException( "Encountered name based id of " + value
+ + " which was not found in the OID registry" , ResultCodeEnum.OTHER );
}
Modified: directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultOidRegistry.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultOidRegistry.java?view=diff&rev=493295&r1=493294&r2=493295
==============================================================================
--- directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultOidRegistry.java (original)
+++ directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultOidRegistry.java Fri Jan 5 20:06:45 2007
@@ -303,13 +303,19 @@
{
byOid.remove( numericOid );
Iterator<String> names = byName.keySet().iterator();
+ List<String> namesToRemove = new ArrayList<String>();
while ( names.hasNext() )
{
String name = names.next();
if ( numericOid.equals( byName.get( name ) ) )
{
- byName.remove( name );
+ namesToRemove.add( name );
}
+ }
+
+ for ( String name : namesToRemove )
+ {
+ byName.remove( name );
}
}
}
Modified: directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultSyntaxRegistry.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultSyntaxRegistry.java?view=diff&rev=493295&r1=493294&r2=493295
==============================================================================
--- directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultSyntaxRegistry.java (original)
+++ directory/trunks/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultSyntaxRegistry.java Fri Jan 5 20:06:45 2007
@@ -102,6 +102,10 @@
{
oidRegistry.register( syntax.getName(), syntax.getOid() );
}
+ else
+ {
+ oidRegistry.register( syntax.getOid(), syntax.getOid() );
+ }
byOid.put( syntax.getOid(), syntax );
oidToSchema.put( syntax.getOid(), schema );