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 2006/12/12 19:28:56 UTC

svn commit: r486268 - in /directory/branches/trunks/schema/apacheds: bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/ core/src/main/java/org/apache/directory/server/core/schema/ core/src/main/java/org/apache/directory/s...

Author: akarasulu
Date: Tue Dec 12 10:28:55 2006
New Revision: 486268

URL: http://svn.apache.org/viewvc?view=rev&rev=486268
Log:
added code for loading in syntaxes now into bootstrap partition

Modified:
    directory/branches/trunks/schema/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/AttributesFactory.java
    directory/branches/trunks/schema/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/BootstrapPlugin.java
    directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java
    directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SyntaxRegistry.java
    directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapRegistries.java
    directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapSyntaxRegistry.java
    directory/branches/trunks/schema/apacheds/core/src/main/schema/apachemeta.schema

Modified: directory/branches/trunks/schema/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/AttributesFactory.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/AttributesFactory.java?view=diff&rev=486268&r1=486267&r2=486268
==============================================================================
--- directory/branches/trunks/schema/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/AttributesFactory.java (original)
+++ directory/branches/trunks/schema/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/AttributesFactory.java Tue Dec 12 10:28:55 2006
@@ -46,92 +46,169 @@
  */
 public class AttributesFactory
 {
+    private static final String META_SYNTAX_CHECKER_OC = "metaSyntaxChecker";
+
+    private static final String OBJECT_CLASS_AT = "objectClass";
+    
+    /*
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.9  | m-extensionObjectClass      |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.10 | m-supAttributeType          |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.11 | m-equality                  |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.12 | m-ordering                  |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.13 | m-substr                    |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.14 | m-syntax                    |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.15 | m-singleValue               |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.16 | m-collective                |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.17 | m-noUserModification        |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.18 | m-usage                     |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.19 | m-extensionAttributeType    |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.20 | m-ruleId                    |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.21 | m-form                      |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.22 | m-supDITStructureRule       |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.23 | m-extensionDITStructureRule |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.24 | m-oc                        |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.25 | m-extensionNameForm         |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.26 | m-aux                       |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.27 | m-not                       |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.28 | m-extensionDITContentRule   |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.29 | m-applies                   |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.30 | m-extensionMatchingRuleUse  |
+    #         | 1.3.6.1.4.1.18060.0.4.0.2.31 | m-matchingRuleSyntax        |
+    */
+    
+    private static final String M_OID_AT = "m-oid";
+    private static final String M_NAME_AT = "m-name";
+    private static final String M_DESC_AT = "m-description";
+    private static final String M_OBSOLETE_AT = "m-obsolete";
+    private static final String M_SUB_OBJECT_CLASS_AT = "m-supObjectClass";
+    private static final String M_MUST_AT = "m-must";
+    private static final String M_MAY_AT = "m-may";
+    private static final String M_TYPE_OBJECT_CLASS_AT = "m-typeObjectClass";
+
+    private static final String M_FQCN_AT = "m-fqcn";
+    private static final String M_BYTECODE_AT = "m-bytecode";
+
+    private static final String M_HUMAN_READIBLE_AT = "m-humanReadible";
+    
+/*
+    private static final String _AT = "";
+    private static final String _AT = "";
+    private static final String _AT = "";
+    private static final String _AT = "";
+    private static final String _AT = "";
+    private static final String _AT = "";
+    private static final String _AT = "";
+    private static final String _AT = "";
+*/
+    
     public Attributes getAttributes( SyntaxChecker syntaxChecker )
     {
-        BasicAttributes entry = new BasicAttributes( "objectClass", "top", true );
-        entry.get( "objectClass" ).add( "metaSyntaxChecker" );
-        entry.put( "m-oid", syntaxChecker.getSyntaxOid() );
-        entry.put( "m-fqcn", syntaxChecker.getClass().getName() );
+        BasicAttributes entry = new BasicAttributes( OBJECT_CLASS_AT, "top", true );
+        entry.get( OBJECT_CLASS_AT ).add( META_SYNTAX_CHECKER_OC );
+        entry.put( M_OID_AT, syntaxChecker.getSyntaxOid() );
+        entry.put( M_FQCN_AT, syntaxChecker.getClass().getName() );
         return entry;
     }
 
     
+    private final String getBoolean( boolean value )
+    {
+        if ( value ) 
+        {
+            return "TRUE";
+        }
+        else
+        {
+            return "FALSE";
+        }
+    }
+    
+    
     public Attributes getAttributes( Syntax syntax )
     {
-        BasicAttributes entry = new BasicAttributes( "objectClass", "top", true );
-        entry.get( "objectClass" ).add( "" );
+        BasicAttributes entry = new BasicAttributes( OBJECT_CLASS_AT, "top", true );
+        entry.get( OBJECT_CLASS_AT ).add( "metaSyntax" );
+        entry.put( M_OID_AT, syntax.getOid() );
+        entry.put( M_OBSOLETE_AT, getBoolean( syntax.isObsolete() ) );
+        entry.put( M_HUMAN_READIBLE_AT, getBoolean( syntax.isHumanReadible() ) );
+        
+        if ( syntax.getDescription() != null )
+        {
+            entry.put( M_DESC_AT, syntax.getDescription() );
+        }
+        
         return entry;
     }
 
     
     public Attributes getAttributes( Normalizer normalizer )
     {
-        BasicAttributes entry = new BasicAttributes( "objectClass", "top", true );
-        entry.get( "objectClass" ).add( "" );
+        BasicAttributes entry = new BasicAttributes( OBJECT_CLASS_AT, "top", true );
+        entry.get( OBJECT_CLASS_AT ).add( "" );
         return entry;
     }
 
     
     public Attributes getAttributes( Comparator<Object> comparator )
     {
-        BasicAttributes entry = new BasicAttributes( "objectClass", "top", true );
-        entry.get( "objectClass" ).add( "" );
+        BasicAttributes entry = new BasicAttributes( OBJECT_CLASS_AT, "top", true );
+        entry.get( OBJECT_CLASS_AT ).add( "" );
         return entry;
     }
 
     
     public Attributes getAttributes( MatchingRule matchingRule )
     {
-        BasicAttributes entry = new BasicAttributes( "objectClass", "top", true );
-        entry.get( "objectClass" ).add( "" );
+        BasicAttributes entry = new BasicAttributes( OBJECT_CLASS_AT, "top", true );
+        entry.get( OBJECT_CLASS_AT ).add( "" );
         return entry;
     }
 
     
     public Attributes getAttributes( MatchingRuleUse matchingRuleUse )
     {
-        BasicAttributes entry = new BasicAttributes( "objectClass", "top", true );
-        entry.get( "objectClass" ).add( "" );
+        BasicAttributes entry = new BasicAttributes( OBJECT_CLASS_AT, "top", true );
+        entry.get( OBJECT_CLASS_AT ).add( "" );
         return entry;
     }
 
     
     public Attributes getAttributes( DITStructureRule dITStructureRule )
     {
-        BasicAttributes entry = new BasicAttributes( "objectClass", "top", true );
-        entry.get( "objectClass" ).add( "" );
+        BasicAttributes entry = new BasicAttributes( OBJECT_CLASS_AT, "top", true );
+        entry.get( OBJECT_CLASS_AT ).add( "" );
         return entry;
     }
 
     
     public Attributes getAttributes( DITContentRule dITContentRule )
     {
-        BasicAttributes entry = new BasicAttributes( "objectClass", "top", true );
-        entry.get( "objectClass" ).add( "" );
+        BasicAttributes entry = new BasicAttributes( OBJECT_CLASS_AT, "top", true );
+        entry.get( OBJECT_CLASS_AT ).add( "" );
         return entry;
     }
 
     
     public Attributes getAttributes( NameForm nameForm )
     {
-        BasicAttributes entry = new BasicAttributes( "objectClass", "top", true );
-        entry.get( "objectClass" ).add( "" );
+        BasicAttributes entry = new BasicAttributes( OBJECT_CLASS_AT, "top", true );
+        entry.get( OBJECT_CLASS_AT ).add( "" );
         return entry;
     }
 
     
     public Attributes getAttributes( AttributeType attributeType )
     {
-        BasicAttributes entry = new BasicAttributes( "objectClass", "top", true );
-        entry.get( "objectClass" ).add( "" );
+        BasicAttributes entry = new BasicAttributes( OBJECT_CLASS_AT, "top", true );
+        entry.get( OBJECT_CLASS_AT ).add( "" );
         return entry;
     }
 
     
     public Attributes getAttributes( ObjectClass objectClass )
     {
-        BasicAttributes entry = new BasicAttributes( "objectClass", "top", true );
-        entry.get( "objectClass" ).add( "" );
+        BasicAttributes entry = new BasicAttributes( OBJECT_CLASS_AT, "top", true );
+        entry.get( OBJECT_CLASS_AT ).add( "" );
         return entry;
     }
 }

Modified: directory/branches/trunks/schema/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/BootstrapPlugin.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/BootstrapPlugin.java?view=diff&rev=486268&r1=486267&r2=486268
==============================================================================
--- directory/branches/trunks/schema/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/BootstrapPlugin.java (original)
+++ directory/branches/trunks/schema/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/BootstrapPlugin.java Tue Dec 12 10:28:55 2006
@@ -37,6 +37,7 @@
 import org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmPartition;
 import org.apache.directory.server.core.schema.Registries;
 import org.apache.directory.server.core.schema.SyntaxCheckerRegistry;
+import org.apache.directory.server.core.schema.SyntaxRegistry;
 import org.apache.directory.server.core.schema.bootstrap.ApacheSchema;
 import org.apache.directory.server.core.schema.bootstrap.ApachemetaSchema;
 import org.apache.directory.server.core.schema.bootstrap.BootstrapRegistries;
@@ -48,6 +49,7 @@
 import org.apache.directory.shared.ldap.filter.PresenceNode;
 import org.apache.directory.shared.ldap.message.LockableAttributesImpl;
 import org.apache.directory.shared.ldap.name.LdapDN;
+import org.apache.directory.shared.ldap.schema.Syntax;
 import org.apache.directory.shared.ldap.schema.syntax.SyntaxChecker;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -122,7 +124,9 @@
             }
 
             addSyntaxCheckers();
-            verifySyntaxCheckers();
+            addSyntaxes();
+            
+            listEntries();
         }
         catch ( NamingException e )
         {
@@ -141,6 +145,56 @@
     }
 
     
+    private void addSyntaxes() throws NamingException
+    {
+        getLog().info( "------------------------------------------------------------------------" );
+        getLog().info( " Adding syntaxes " );
+        getLog().info( "------------------------------------------------------------------------" );
+
+        SyntaxRegistry syntaxRegistry = registries.getSyntaxRegistry();
+        Iterator<Syntax> ii = syntaxRegistry.iterator();
+        while ( ii.hasNext() )
+        {
+            Syntax syntax = ii.next();
+            getLog().info( "Adding syntax with oid = " + syntax.getOid() );
+            String schemaName = syntaxRegistry.getSchemaName( syntax.getOid() );
+            LdapDN dn = checkCreateSchema( schemaName );
+            dn.add( "ou=syntaxes" );
+            dn.normalize( registries.getAttributeTypeRegistry().getNormalizerMapping() );
+            checkCreateContainer( dn );
+            Attributes entry = attributesFactory.getAttributes( syntax );
+            dn.add( "m-oid=" + syntax.getOid() );
+            dn.normalize( registries.getAttributeTypeRegistry().getNormalizerMapping() );
+            partition.add( dn, entry );
+        }
+    }
+
+
+    private void addSyntaxCheckers() throws NamingException
+    {
+        getLog().info( "------------------------------------------------------------------------" );
+        getLog().info( " Adding syntaxCheckers " );
+        getLog().info( "------------------------------------------------------------------------" );
+
+        SyntaxCheckerRegistry syntaxCheckerRegistry = registries.getSyntaxCheckerRegistry();
+        Iterator<SyntaxChecker> ii = syntaxCheckerRegistry.iterator();
+        while ( ii.hasNext() )
+        {
+            SyntaxChecker syntaxChecker = ii.next();
+            getLog().info( "Adding syntax checker with oid = " + syntaxChecker.getSyntaxOid() );
+            String schemaName = syntaxCheckerRegistry.getSchemaName( syntaxChecker.getSyntaxOid() );
+            LdapDN dn = checkCreateSchema( schemaName );
+            dn.add( "ou=syntaxCheckers" );
+            dn.normalize( registries.getAttributeTypeRegistry().getNormalizerMapping() );
+            checkCreateContainer( dn );
+            Attributes entry = attributesFactory.getAttributes( syntaxChecker );
+            dn.add( "m-oid=" + syntaxChecker.getSyntaxOid() );
+            dn.normalize( registries.getAttributeTypeRegistry().getNormalizerMapping() );
+            partition.add( dn, entry );
+        }
+    }
+    
+    
     /**
      * Creates the configuration and initializes the partition so we can start
      * adding entries into it.
@@ -211,7 +265,7 @@
         schemas.add( new ApachemetaSchema() );
         schemas.add( new CoreSchema() );
         
-        getLog().info( "------------------------------------------------------" );
+        getLog().info( "------------------------------------------------------------------------" );
         getLog().info( "Found bootstrap schemas: " );
 
         // start loading other schemas from the plugin's configuration section
@@ -241,7 +295,7 @@
             
             getLog().info( "\t" + schemaClassName );
         }
-        getLog().info( "------------------------------------------------------" );
+        getLog().info( "------------------------------------------------------------------------" );
         
         BootstrapSchemaLoader loader = new BootstrapSchemaLoader();
         try
@@ -256,7 +310,7 @@
     }
     
 
-    private void verifySyntaxCheckers() throws NamingException
+    private void listEntries() throws NamingException
     {
         LdapDN dn = new LdapDN( "ou=schema" );
         dn.normalize( registries.getAttributeTypeRegistry().getNormalizerMapping() );
@@ -273,27 +327,6 @@
     }
 
 
-    private void addSyntaxCheckers() throws NamingException
-    {
-        SyntaxCheckerRegistry syntaxCheckerRegistry = registries.getSyntaxCheckerRegistry();
-        Iterator<SyntaxChecker> ii = syntaxCheckerRegistry.iterator();
-        while ( ii.hasNext() )
-        {
-            SyntaxChecker syntaxChecker = ii.next();
-            getLog().info( "Adding syntax checker with oid = " + syntaxChecker.getSyntaxOid() );
-            String schemaName = syntaxCheckerRegistry.getSchemaName( syntaxChecker.getSyntaxOid() );
-            LdapDN dn = checkCreateSchema( schemaName );
-            dn.add( "ou=syntaxCheckers" );
-            dn.normalize( registries.getAttributeTypeRegistry().getNormalizerMapping() );
-            checkCreateContainer( dn );
-            Attributes entry = attributesFactory.getAttributes( syntaxChecker );
-            dn.add( "m-oid=" + syntaxChecker.getSyntaxOid() );
-            dn.normalize( registries.getAttributeTypeRegistry().getNormalizerMapping() );
-            partition.add( dn, entry );
-        }
-    }
-    
-    
     private void checkCreateContainer( LdapDN dn ) throws NamingException
     {
         if ( partition.hasEntry( dn ) )

Modified: directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java?view=diff&rev=486268&r1=486267&r2=486268
==============================================================================
--- directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java (original)
+++ directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java Tue Dec 12 10:28:55 2006
@@ -327,10 +327,10 @@
         if ( returnAllOperationalAttributes || set.contains( "ldapsyntaxes" ) )
         {
             attr = new LockableAttributeImpl( "ldapSyntaxes" );
-            Iterator list = registries.getSyntaxRegistry().list();
+            Iterator<Syntax> list = registries.getSyntaxRegistry().iterator();
             while ( list.hasNext() )
             {
-                Syntax syntax = ( Syntax ) list.next();
+                Syntax syntax = list.next();
                 attr.add( SchemaUtils.render( syntax ).toString() );
             }
             attrs.put( attr );

Modified: directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SyntaxRegistry.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SyntaxRegistry.java?view=diff&rev=486268&r1=486267&r2=486268
==============================================================================
--- directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SyntaxRegistry.java (original)
+++ directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SyntaxRegistry.java Tue Dec 12 10:28:55 2006
@@ -82,5 +82,5 @@
      *
      * @return an Iterator over all the Syntaxes within this registry
      */
-    Iterator list();
+    Iterator<Syntax> iterator();
 }

Modified: directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapRegistries.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapRegistries.java?view=diff&rev=486268&r1=486267&r2=486268
==============================================================================
--- directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapRegistries.java (original)
+++ directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapRegistries.java Tue Dec 12 10:28:55 2006
@@ -210,7 +210,7 @@
             resolve( mr, errors );
         }
 
-        list = syntaxRegistry.list();
+        list = syntaxRegistry.iterator();
         while ( list.hasNext() )
         {
             Syntax syntax = ( Syntax ) list.next();

Modified: directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapSyntaxRegistry.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapSyntaxRegistry.java?view=diff&rev=486268&r1=486267&r2=486268
==============================================================================
--- directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapSyntaxRegistry.java (original)
+++ directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapSyntaxRegistry.java Tue Dec 12 10:28:55 2006
@@ -45,9 +45,9 @@
     /** static class logger */
     private final static Logger log = LoggerFactory.getLogger( BootstrapSyntaxRegistry.class );
     /** a map of entries using an OID for the key and a Syntax for the value */
-    private final Map byOid;
+    private final Map<String,Syntax> byOid;
     /** maps an OID to a schema name*/
-    private final Map oidToSchema;
+    private final Map<String,String> oidToSchema;
     /** the OID oidRegistry this oidRegistry uses to register new syntax OIDs */
     private final OidRegistry oidRegistry;
 
@@ -62,8 +62,8 @@
     public BootstrapSyntaxRegistry(OidRegistry registry)
     {
         this.oidRegistry = registry;
-        this.byOid = new HashMap();
-        this.oidToSchema = new HashMap();
+        this.byOid = new HashMap<String,Syntax>();
+        this.oidToSchema = new HashMap<String,String>();
     }
 
 
@@ -140,7 +140,7 @@
     }
 
 
-    public Iterator list()
+    public Iterator<Syntax> iterator()
     {
         return byOid.values().iterator();
     }

Modified: directory/branches/trunks/schema/apacheds/core/src/main/schema/apachemeta.schema
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/core/src/main/schema/apachemeta.schema?view=diff&rev=486268&r1=486267&r2=486268
==============================================================================
--- directory/branches/trunks/schema/apacheds/core/src/main/schema/apachemeta.schema (original)
+++ directory/branches/trunks/schema/apacheds/core/src/main/schema/apachemeta.schema Tue Dec 12 10:28:55 2006
@@ -47,7 +47,7 @@
 #         | 1.3.6.1.4.1.18060.0.4.0.2.2  | m-name                      |
 #         | 1.3.6.1.4.1.18060.0.4.0.2.3  | m-description               |
 #         | 1.3.6.1.4.1.18060.0.4.0.2.4  | m-obsolete                  |
-#         | 1.3.6.1.4.1.18060.0.4.0.2.5  | m-supObjectclass            |
+#         | 1.3.6.1.4.1.18060.0.4.0.2.5  | m-supObjectClass            |
 #         | 1.3.6.1.4.1.18060.0.4.0.2.6  | m-must                      |
 #         | 1.3.6.1.4.1.18060.0.4.0.2.7  | m-may                       |
 #         | 1.3.6.1.4.1.18060.0.4.0.2.8  | m-typeObjectClass           |
@@ -76,6 +76,7 @@
 #         | 1.3.6.1.4.1.18060.0.4.0.2.31 | m-matchingRuleSyntax        |
 #         | 1.3.6.1.4.1.18060.0.4.0.2.32 | m-fqcn                      |
 #         | 1.3.6.1.4.1.18060.0.4.0.2.33 | m-bytecode                  |
+#         | 1.3.6.1.4.1.18060.0.4.0.2.34 | m-humanReadible             |
 #         +------------------------------+-----------------------------+
 #
 #         +------------------------------+-----------------------------+
@@ -138,6 +139,8 @@
     DESC 'Meta definition of the Syntax object'
     SUP metaTop
     STRUCTURAL
+    MUST ( m-oid $ m-humanReadible )
+    MAY ( m-obsolete $ m-description )
 )
 
 # --- MetaMatchingRule objectclass --------------------------------------------
@@ -242,8 +245,8 @@
     SINGLE-VALUE
 )
 
-# --- m-supObjectclass AttributeType -----------------------------------------
-attributetype ( 1.3.6.1.4.1.18060.0.4.0.2.5 NAME 'm-supObjectclass'
+# --- m-supObjectClass AttributeType -----------------------------------------
+attributetype ( 1.3.6.1.4.1.18060.0.4.0.2.5 NAME 'm-supObjectClass'
     DESC 'The list of superiors'
     EQUALITY nameOrNumericIdMatch
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.38
@@ -454,5 +457,13 @@
 attributetype ( 1.3.6.1.4.1.18060.0.4.0.2.33 NAME 'm-bytecode'
     DESC 'The Java bytecode for a code based schema entity'
     SYNTAX 1.3.6.1.4.1.1466.115.121.1.5
+    SINGLE-VALUE
+)
+
+# --- m-bytecode AttributeType --------------------------------
+attributetype ( 1.3.6.1.4.1.18060.0.4.0.2.34 NAME 'm-humanReadible'
+    DESC 'whether or not a syntax is human readible'
+    EQUALITY booleanMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
     SINGLE-VALUE
 )