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 21:30:52 UTC
svn commit: r486300 - in /directory/branches/trunks/schema/apacheds:
bootstrap-partition/
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/o...
Author: akarasulu
Date: Tue Dec 12 12:30:50 2006
New Revision: 486300
URL: http://svn.apache.org/viewvc?view=rev&rev=486300
Log:
changes ...
o changed bootstrap plug-in phase to package
o changed bootstrap plug-in goal to load
o added code that loads machingRules into schema partition
o fixed bug in NameOrNumericIdMatch
o fixed bug in schema lookups of registries
Modified:
directory/branches/trunks/schema/apacheds/bootstrap-partition/pom.xml
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/MatchingRuleRegistry.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/bootstrap/ApachemetaMatchingRuleProducer.java
directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapMatchingRuleRegistry.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/NameOrNumericIdMatch.java
directory/branches/trunks/schema/apacheds/core/src/main/schema/apachemeta.schema
Modified: directory/branches/trunks/schema/apacheds/bootstrap-partition/pom.xml
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/bootstrap-partition/pom.xml?view=diff&rev=486300&r1=486299&r2=486300
==============================================================================
--- directory/branches/trunks/schema/apacheds/bootstrap-partition/pom.xml (original)
+++ directory/branches/trunks/schema/apacheds/bootstrap-partition/pom.xml Tue Dec 12 12:30:50 2006
@@ -37,14 +37,14 @@
<plugin>
<groupId>org.apache.directory.server</groupId>
<artifactId>apacheds-bootstrap-plugin</artifactId>
- <configuration>
- <indexedAttributes>
- <indexedAttribute>objectClass</indexedAttribute>
- <indexedAttribute>ou</indexedAttribute>
- <indexedAttribute>cn</indexedAttribute>
- <indexedAttribute>m-oid</indexedAttribute>
- </indexedAttributes>
- <bootstrapSchemaClasses>
+ <configuration>
+ <indexedAttributes>
+ <indexedAttribute>objectClass</indexedAttribute>
+ <indexedAttribute>ou</indexedAttribute>
+ <indexedAttribute>cn</indexedAttribute>
+ <indexedAttribute>m-oid</indexedAttribute>
+ </indexedAttributes>
+ <bootstrapSchemaClasses>
<bootstrapSchemaClass>org.apache.directory.server.core.schema.bootstrap.ApachednsSchema</bootstrapSchemaClass>
<bootstrapSchemaClass>org.apache.directory.server.core.schema.bootstrap.AutofsSchema</bootstrapSchemaClass>
<bootstrapSchemaClass>org.apache.directory.server.core.schema.bootstrap.CollectiveSchema</bootstrapSchemaClass>
@@ -62,7 +62,7 @@
<executions>
<execution>
<goals>
- <goal>generate</goal>
+ <goal>load</goal>
</goals>
</execution>
</executions>
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=486300&r1=486299&r2=486300
==============================================================================
--- 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 12:30:50 2006
@@ -22,7 +22,10 @@
import java.util.Comparator;
+import javax.naming.NamingException;
+import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
+import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import org.apache.directory.shared.ldap.schema.AttributeType;
@@ -46,6 +49,8 @@
*/
public class AttributesFactory
{
+ private static final String META_MATCHING_RULE_OC = "metaMatchingRule";
+
private static final String META_NORMALIZER_OC = "metaNormalizer";
private static final String META_SYNTAX_OC = "metaSyntax";
@@ -95,6 +100,8 @@
private static final String M_HUMAN_READIBLE_AT = "m-humanReadible";
private static final Object META_COMPARATOR_OC = "metaComparator";
+
+ private static final String M_SYNTAX_AT = "m-syntax";
/*
private static final String _AT = "";
@@ -154,10 +161,26 @@
}
- public Attributes getAttributes( MatchingRule matchingRule )
+ public Attributes getAttributes( MatchingRule matchingRule ) throws NamingException
{
BasicAttributes entry = new BasicAttributes( OBJECT_CLASS_AT, "top", true );
- entry.get( OBJECT_CLASS_AT ).add( "" );
+ entry.get( OBJECT_CLASS_AT ).add( META_MATCHING_RULE_OC );
+ entry.put( M_OID_AT, matchingRule.getOid() );
+ entry.put( M_SYNTAX_AT, matchingRule.getSyntax().getOid() );
+ entry.put( M_OBSOLETE_AT, getBoolean( matchingRule.isObsolete() ) );
+
+ Attribute attr = new BasicAttribute( M_NAME_AT );
+ for ( String name: matchingRule.getNames() )
+ {
+ attr.add( name );
+ }
+ entry.put( attr );
+
+ if ( matchingRule.getDescription() != null )
+ {
+ entry.put( M_DESC_AT, matchingRule.getDescription() );
+ }
+
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=486300&r1=486299&r2=486300
==============================================================================
--- 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 12:30:50 2006
@@ -36,6 +36,7 @@
import org.apache.directory.server.core.configuration.MutableStartupConfiguration;
import org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmPartition;
import org.apache.directory.server.core.schema.ComparatorRegistry;
+import org.apache.directory.server.core.schema.MatchingRuleRegistry;
import org.apache.directory.server.core.schema.NormalizerRegistry;
import org.apache.directory.server.core.schema.Registries;
import org.apache.directory.server.core.schema.SyntaxCheckerRegistry;
@@ -51,6 +52,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.MatchingRule;
import org.apache.directory.shared.ldap.schema.Normalizer;
import org.apache.directory.shared.ldap.schema.Syntax;
import org.apache.directory.shared.ldap.schema.syntax.SyntaxChecker;
@@ -62,9 +64,9 @@
/**
* A plugin used to pre-load meta schema entries into the schema partition.
*
- * @goal generate
+ * @goal load
* @description creates and pre-loads ApacheDS schema partition
- * @phase generate-sources
+ * @phase package
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
@@ -130,6 +132,7 @@
addSyntaxes();
addNormalizers();
addComparators();
+ addMatchingRules();
listEntries();
}
@@ -150,6 +153,31 @@
}
+ private void addMatchingRules() throws NamingException
+ {
+ getLog().info( "------------------------------------------------------------------------" );
+ getLog().info( " Adding matchingRules" );
+ getLog().info( "------------------------------------------------------------------------" );
+
+ MatchingRuleRegistry matchingRuleRegistry = registries.getMatchingRuleRegistry();
+ Iterator<MatchingRule> ii = matchingRuleRegistry.iterator();
+ while ( ii.hasNext() )
+ {
+ MatchingRule mr = ii.next();
+ getLog().info( "Adding matchingRule with oid = " + mr.getOid() );
+ String schemaName = matchingRuleRegistry.getSchemaName( mr.getOid() );
+ LdapDN dn = checkCreateSchema( schemaName );
+ dn.add( "ou=matchingRules" );
+ dn.normalize( registries.getAttributeTypeRegistry().getNormalizerMapping() );
+ checkCreateContainer( dn );
+ Attributes entry = attributesFactory.getAttributes( mr );
+ dn.add( "m-oid=" + mr.getOid() );
+ dn.normalize( registries.getAttributeTypeRegistry().getNormalizerMapping() );
+ partition.add( dn, entry );
+ }
+ }
+
+
private void addComparators() throws NamingException
{
getLog().info( "------------------------------------------------------------------------" );
Modified: directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MatchingRuleRegistry.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MatchingRuleRegistry.java?view=diff&rev=486300&r1=486299&r2=486300
==============================================================================
--- directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MatchingRuleRegistry.java (original)
+++ directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MatchingRuleRegistry.java Tue Dec 12 12:30:50 2006
@@ -83,5 +83,5 @@
*
* @return an iterator over all MatchingRules in registry
*/
- Iterator list();
+ Iterator<MatchingRule> iterator();
}
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=486300&r1=486299&r2=486300
==============================================================================
--- 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 12:30:50 2006
@@ -303,10 +303,10 @@
if ( returnAllOperationalAttributes || set.contains( "matchingrules" ) )
{
attr = new LockableAttributeImpl( "matchingRules" );
- Iterator list = registries.getMatchingRuleRegistry().list();
+ Iterator<MatchingRule> list = registries.getMatchingRuleRegistry().iterator();
while ( list.hasNext() )
{
- MatchingRule mr = ( MatchingRule ) list.next();
+ MatchingRule mr = list.next();
attr.add( SchemaUtils.render( mr ).toString() );
}
attrs.put( attr );
Modified: directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/ApachemetaMatchingRuleProducer.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/ApachemetaMatchingRuleProducer.java?view=diff&rev=486300&r1=486299&r2=486300
==============================================================================
--- directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/ApachemetaMatchingRuleProducer.java (original)
+++ directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/ApachemetaMatchingRuleProducer.java Tue Dec 12 12:30:50 2006
@@ -67,10 +67,10 @@
{
MatchingRule matchingRule = null;
- matchingRule = new ObjectClassTypeMatch();
+ matchingRule = new NameOrNumericIdMatch( registries.getOidRegistry() );
cb.schemaObjectProduced( this, matchingRule.getOid(), matchingRule );
- matchingRule = new NameOrNumericIdMatch( registries.getOidRegistry() );
+ matchingRule = new ObjectClassTypeMatch();
cb.schemaObjectProduced( this, matchingRule.getOid(), matchingRule );
matchingRule = new NumericOidMatch( registries.getSyntaxRegistry() );
Modified: directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapMatchingRuleRegistry.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapMatchingRuleRegistry.java?view=diff&rev=486300&r1=486299&r2=486300
==============================================================================
--- directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapMatchingRuleRegistry.java (original)
+++ directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/BootstrapMatchingRuleRegistry.java Tue Dec 12 12:30:50 2006
@@ -45,9 +45,9 @@
/** static class logger */
private final static Logger log = LoggerFactory.getLogger( BootstrapMatchingRuleRegistry.class );
/** a map using an OID for the key and a MatchingRule for the value */
- private final Map byOid;
+ private final Map<String,MatchingRule> byOid;
/** maps an OID to a schema name*/
- private final Map oidToSchema;
+ private final Map<String,String> oidToSchema;
/** the registry used to resolve names to OIDs */
private final OidRegistry oidRegistry;
@@ -64,9 +64,9 @@
*/
public BootstrapMatchingRuleRegistry(OidRegistry oidRegistry)
{
- this.oidToSchema = new HashMap();
+ this.oidToSchema = new HashMap<String,String>();
this.oidRegistry = oidRegistry;
- this.byOid = new HashMap();
+ this.byOid = new HashMap<String,MatchingRule>();
}
@@ -157,7 +157,7 @@
}
- public Iterator list()
+ public Iterator<MatchingRule> iterator()
{
return byOid.values().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=486300&r1=486299&r2=486300
==============================================================================
--- 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 12:30:50 2006
@@ -203,7 +203,7 @@
resolve( at, errors );
}
- list = matchingRuleRegistry.list();
+ list = matchingRuleRegistry.iterator();
while ( list.hasNext() )
{
MatchingRule mr = ( MatchingRule ) list.next();
Modified: directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/NameOrNumericIdMatch.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/NameOrNumericIdMatch.java?view=diff&rev=486300&r1=486299&r2=486300
==============================================================================
--- directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/NameOrNumericIdMatch.java (original)
+++ directory/branches/trunks/schema/apacheds/core/src/main/java/org/apache/directory/server/core/schema/bootstrap/NameOrNumericIdMatch.java Tue Dec 12 12:30:50 2006
@@ -56,6 +56,7 @@
{
this.normalizer = new NameOrNumericIdNormalizer( registry );
this.comparator = new NameOrNumericIdComparator( registry );
+ this.syntax = new ApachemetaSyntaxProducer.NameOrNumericIdSyntax();
}
@@ -63,6 +64,7 @@
{
this.normalizer = new NameOrNumericIdNormalizer( registries.getOidRegistry() );
this.comparator = new NameOrNumericIdComparator( registries.getOidRegistry() );
+ this.syntax = new ApachemetaSyntaxProducer.NameOrNumericIdSyntax();
}
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=486300&r1=486299&r2=486300
==============================================================================
--- 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 12:30:50 2006
@@ -151,8 +151,8 @@
DESC 'Meta definition of the MatchingRule object'
SUP metaTop
STRUCTURAL
- MUST m-syntax
- MAY ( m-obsolete $ m-extensionAttributeType )
+ MUST ( m-oid $ m-syntax $ m-name )
+ MAY ( m-obsolete $ m-description )
)
# --- MetaDITStructureRule objectclass ----------------------------------------
@@ -335,9 +335,9 @@
SINGLE-VALUE
)
-# --- m-attributeTypeSyntaxsyntax AttributeType -------------------------------
-attributetype ( 1.3.6.1.4.1.18060.0.4.0.2.14 NAME 'm-attributeTypesyntax'
- DESC 'The attributeType syntax'
+# --- m-syntax AttributeType -------------------------------
+attributetype ( 1.3.6.1.4.1.18060.0.4.0.2.14 NAME 'm-syntax'
+ DESC 'The syntax OID for attributeTypes and matchingRules'
EQUALITY nameOrNumericIdMatch
SYNTAX 1.3.6.1.4.1.18060.0.4.0.0.2
SINGLE-VALUE