You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2011/01/11 09:46:08 UTC

svn commit: r1057522 - in /directory/shared/trunk: ldap-schema/src/main/java/org/apache/directory/shared/ldap/schema/loader/ldif/ ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/

Author: kayyagari
Date: Tue Jan 11 08:46:08 2011
New Revision: 1057522

URL: http://svn.apache.org/viewvc?rev=1057522&view=rev
Log:
o fixed an issue with deleting schema objects present in a schema having a upper/mixed case name
  This issue pops up only after restarting the server after injecting a schema(with upper/mixed case name)
  (see DIRSHARED-75 for an earlier fix for loading such schema)

Modified:
    directory/shared/trunk/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schema/loader/ldif/JarLdifSchemaLoader.java
    directory/shared/trunk/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schema/loader/ldif/LdifSchemaLoader.java
    directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/AbstractSchemaLoader.java

Modified: directory/shared/trunk/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schema/loader/ldif/JarLdifSchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schema/loader/ldif/JarLdifSchemaLoader.java?rev=1057522&r1=1057521&r2=1057522&view=diff
==============================================================================
--- directory/shared/trunk/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schema/loader/ldif/JarLdifSchemaLoader.java (original)
+++ directory/shared/trunk/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schema/loader/ldif/JarLdifSchemaLoader.java Tue Jan 11 08:46:08 2011
@@ -39,6 +39,7 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.ResourceMap;
 import org.apache.directory.shared.ldap.schema.registries.AbstractSchemaLoader;
 import org.apache.directory.shared.ldap.schema.registries.Schema;
+import org.apache.directory.shared.ldap.util.StringTools;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -159,7 +160,7 @@ public class JarLdifSchemaLoader extends
     private String getSchemaDirectory( Schema schema )
     {
         return "schema" + SEPARATOR_PATTERN + "ou=schema" + SEPARATOR_PATTERN
-                        + "cn=" + schema.getSchemaName() + SEPARATOR_PATTERN;
+                        + "cn=" + StringTools.lowerCase( schema.getSchemaName() ) + SEPARATOR_PATTERN;
     }
 
 

Modified: directory/shared/trunk/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schema/loader/ldif/LdifSchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schema/loader/ldif/LdifSchemaLoader.java?rev=1057522&r1=1057521&r2=1057522&view=diff
==============================================================================
--- directory/shared/trunk/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schema/loader/ldif/LdifSchemaLoader.java (original)
+++ directory/shared/trunk/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schema/loader/ldif/LdifSchemaLoader.java Tue Jan 11 08:46:08 2011
@@ -35,6 +35,7 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.ldif.LdifReader;
 import org.apache.directory.shared.ldap.schema.registries.AbstractSchemaLoader;
 import org.apache.directory.shared.ldap.schema.registries.Schema;
+import org.apache.directory.shared.ldap.util.StringTools;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -242,7 +243,7 @@ public class LdifSchemaLoader extends Ab
      */
     private File getSchemaDirectory( Schema schema )
     {
-        return new File( new File( baseDirectory, SchemaConstants.OU_SCHEMA ), "cn=" + schema.getSchemaName() );
+        return new File( new File( baseDirectory, SchemaConstants.OU_SCHEMA ), "cn=" + StringTools.lowerCase( schema.getSchemaName() ) );
     }
 
 

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/AbstractSchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/AbstractSchemaLoader.java?rev=1057522&r1=1057521&r2=1057522&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/AbstractSchemaLoader.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/AbstractSchemaLoader.java Tue Jan 11 08:46:08 2011
@@ -53,8 +53,30 @@ public abstract class AbstractSchemaLoad
      * populated when this class is created with all the schemas present in
      * the LDIF based schema repository.
      */
-    protected final Map<String, Schema> schemaMap = new HashMap<String, Schema>();
+    protected final Map<String, Schema> schemaMap = new LowerCaseKeyMap();
 
+    /**
+     * a map implementation which converts the keys to lower case before inserting
+     */
+    private class LowerCaseKeyMap extends HashMap<String,Schema>
+    {
+        private static final long serialVersionUID = 1L;
+
+        @Override
+        public Schema put( String key, Schema value )
+        {
+            return super.put( StringTools.lowerCase( key ), value );
+        }
+
+        @Override
+        public void putAll( Map<? extends String, ? extends Schema> map )
+        {
+            for( Map.Entry<? extends String, ? extends Schema> e : map.entrySet() )
+            {
+                put( e.getKey(), e.getValue() );
+            }
+        }
+    }
 
     /**
      * {@inheritDoc}
@@ -127,7 +149,7 @@ public abstract class AbstractSchemaLoad
      */
     public void addSchema( Schema schema )
     {
-        schemaMap.put( StringTools.toLowerCase( schema.getSchemaName() ), schema );
+        schemaMap.put( schema.getSchemaName(), schema );
     }