directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From akaras...@apache.org
Subject svn commit: rev 6221 - in incubator/directory/ldap/trunk/eve/backend/schema: common/api/src/java/org/apache/eve/schema comparator/api comparator/api/src/java/org comparator/api/src/java/org/apache comparator/api/src/java/org/apache/eve comparator/api/src/java/org/apache/eve/schema matching/api matching/bootstrap-impl matching/bootstrap-impl/conf matching/bootstrap-impl/src matching/bootstrap-impl/src/docbook matching/bootstrap-impl/src/images matching/bootstrap-impl/src/java matching/bootstrap-impl/src/java/org matching/bootstrap-impl/src/java/org/apache matching/bootstrap-impl/src/java/org/apache/eve matching/bootstrap-impl/src/java/org/apache/eve/schema matching/bootstrap-impl/xdocs normalizer normalizer/api normalizer/api/src normalizer/api/src/java normalizer/api/src/java/org normalizer/api/src/java/org/apache normalizer/api/src/java/org/apache/eve normalizer/api/src/java/org/apache/eve/schema
Date Mon, 19 Jan 2004 03:17:05 GMT
Author: akarasulu
Date: Sun Jan 18 19:17:04 2004
New Revision: 6221

Added:
   incubator/directory/ldap/trunk/eve/backend/schema/common/api/src/java/org/apache/eve/schema/DefaultMatchingRule.java
   incubator/directory/ldap/trunk/eve/backend/schema/common/api/src/java/org/apache/eve/schema/SchemaObject.java
   incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/project.properties
   incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/project.xml
   incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/src/java/org/
   incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/src/java/org/apache/
   incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/src/java/org/apache/eve/
   incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/src/java/org/apache/eve/schema/
   incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/src/java/org/apache/eve/schema/ComparatorRegistry.java
   incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/src/java/org/apache/eve/schema/ComparatorRegistryMonitor.java
   incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/src/java/org/apache/eve/schema/ComparatorRegistryMonitorAdapter.java
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/.classpath
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/.project
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/conf/
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/conf/block.xml
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/conf/config.xml
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/conf/debug.xml
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/maven.xml
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/project.properties
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/project.xml
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/docbook/
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/images/
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/AvalonMatchingRuleFactory.java
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/AvalonMatchingRuleRegistryMonitor.java
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/BootstrapMatchingRuleRegistry.java
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/MerlinBootstrapMatchingRuleRegistry.java
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/MerlinBootstrapMatchingRuleRegistry.xconfig
   incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/xdocs/
   incubator/directory/ldap/trunk/eve/backend/schema/normalizer/
   incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/   (props changed)
   incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/project.properties
   incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/project.xml
   incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/
   incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/java/
   incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/java/org/
   incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/java/org/apache/
   incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/java/org/apache/eve/
   incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/java/org/apache/eve/schema/
   incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/java/org/apache/eve/schema/NormalizerRegistry.java
   incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/java/org/apache/eve/schema/NormalizerRegistryMonitor.java
   incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/java/org/apache/eve/schema/NormalizerRegistryMonitorAdapter.java
Modified:
   incubator/directory/ldap/trunk/eve/backend/schema/common/api/src/java/org/apache/eve/schema/Normalizer.java
   incubator/directory/ldap/trunk/eve/backend/schema/matching/api/   (props changed)
Log:
adding normalizer, comparator, matchingRule registries

Added: incubator/directory/ldap/trunk/eve/backend/schema/common/api/src/java/org/apache/eve/schema/DefaultMatchingRule.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/common/api/src/java/org/apache/eve/schema/DefaultMatchingRule.java	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,213 @@
+/*
+
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of  source code must  retain the above copyright  notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve" 
+    and "Apache Software Foundation"  must not be used to endorse or promote
+    products derived  from this  software without  prior written
+    permission. For written permission, please contact apache@apache.org.
+
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf of the Apache Software  Foundation. For more  information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.eve.schema ;
+
+
+import java.util.Comparator ;
+
+
+/**
+ * The default MatchingRule implementation.
+ *
+ * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
+ * @author $LastChangedBy$
+ * @version $LastChangedRevision$
+ */
+public class DefaultMatchingRule implements MatchingRule
+{
+    /** the object identifier */
+    private final String m_oid ;
+    /** the syntax this matching rule can be applied to */
+    private final Syntax m_syntax ;
+    /** comparator used to compare and match values of the associated syntax */
+    private final Comparator m_comparator ;
+    /** normalizer used to transform values to a canonical form */
+    private final Normalizer m_normalizer ;
+
+    /** isObsolete boolean flag */
+    private boolean m_isObsolete = false ;
+    /** a short descriptive name */
+    private String m_name = null ;
+    /** a description about this MatchingRule */
+    private String m_description = null ;
+    
+    
+    // ------------------------------------------------------------------------
+    // C O N S T R U C T O R S
+    // ------------------------------------------------------------------------
+
+    
+    /**
+     * Creates a MatchingRule using the minimal set of required information.
+     * 
+     * @param a_oid the object identifier for this matching rule
+     * @param a_syntax the syntax this matching rule is applicable to
+     * @param a_comparator the comparator used by this matching rule to compare
+     *      and match values of the associated syntax
+     * @param a_normalizer the normalizer used to transform syntax values to a
+     *      canonical form.
+     */
+    public DefaultMatchingRule( String a_oid, 
+                                Syntax a_syntax, 
+								Comparator a_comparator, 
+                                Normalizer a_normalizer )
+    {
+        m_oid = a_oid ;
+        m_syntax = a_syntax ;
+        m_comparator = a_comparator ;
+        m_normalizer = a_normalizer ;
+    }
+    
+
+    // ------------------------------------------------------------------------
+    // P U B L I C   A C C E S S O R S 
+    // ------------------------------------------------------------------------
+
+    
+    /**
+     * @see org.apache.eve.schema.MatchingRule#getDescription()
+     */
+    public String getDescription()
+    {
+        return m_description ;
+    }
+    
+
+    /**
+     * @see org.apache.eve.schema.MatchingRule#getName()
+     */
+    public String getName()
+    {
+        return m_name ;
+    }
+
+    
+    /**
+     * @see org.apache.eve.schema.MatchingRule#getOid()
+     */
+    public String getOid()
+    {
+        return m_oid ;
+    }
+    
+
+    /**
+     * @see org.apache.eve.schema.MatchingRule#getSyntax()
+     */
+    public Syntax getSyntax()
+    {
+        return m_syntax ;
+    }
+    
+
+    /**
+     * @see org.apache.eve.schema.MatchingRule#isObsolete()
+     */
+    public boolean isObsolete()
+    {
+        return m_isObsolete ;
+    }
+    
+
+    /**
+     * @see org.apache.eve.schema.MatchingRule#getComparator()
+     */
+    public Comparator getComparator()
+    {
+        return m_comparator ;
+    }
+
+    
+    /**
+     * @see org.apache.eve.schema.MatchingRule#getNormalizer()
+     */
+    public Normalizer getNormalizer()
+    {
+        return m_normalizer ;
+    }
+
+
+    // ------------------------------------------------------------------------
+    // P R O T E C T E D   M U T A T O R S
+    // ------------------------------------------------------------------------
+
+    
+    /**
+     * Sets a short description for this MatchingRule.
+     * 
+     * @param a_description the description to set
+     */
+    protected void setDescription(String a_description)
+    {
+        m_description = a_description;
+    }
+
+    
+    /**
+     * Sets this MatchingRule's isObsolete flag.
+     * 
+     * @param a_isObsolete whether or not this object is obsolete.
+     */
+    protected void setObsolete( boolean a_isObsolete )
+    {
+        m_isObsolete = a_isObsolete ;
+    }
+
+    
+    /**
+     * Sets the short descriptive name for this MatchingRule.
+     * 
+     * @param a_name The name to set
+     */
+    protected void setName( String a_name )
+    {
+        m_name = a_name ;
+    }
+}

Modified: incubator/directory/ldap/trunk/eve/backend/schema/common/api/src/java/org/apache/eve/schema/Normalizer.java
==============================================================================
--- incubator/directory/ldap/trunk/eve/backend/schema/common/api/src/java/org/apache/eve/schema/Normalizer.java	(original)
+++ incubator/directory/ldap/trunk/eve/backend/schema/common/api/src/java/org/apache/eve/schema/Normalizer.java	Sun Jan 18 19:17:04 2004
@@ -63,13 +63,6 @@
 public interface Normalizer
 {
     /**
-     * Gets the matching rule OID associated with this normalizer.
-     *
-     * @return the OID for the matching rule
-     */
-    String getMatchingRule() ;
-    
-    /**
      * Gets the normalized value.
      *
      * @param a_value the value to normalize

Added: incubator/directory/ldap/trunk/eve/backend/schema/common/api/src/java/org/apache/eve/schema/SchemaObject.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/common/api/src/java/org/apache/eve/schema/SchemaObject.java	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,69 @@
+/*
+
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of  source code must  retain the above copyright  notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve" 
+    and "Apache Software Foundation"  must not be used to endorse or promote
+    products derived  from this  software without  prior written
+    permission. For written permission, please contact apache@apache.org.
+
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf of the Apache Software  Foundation. For more  information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.eve.schema ;
+
+
+/**
+ * Most schema objects have some common attributes.  This super interface 
+ * represents the minimum set of properties exposed by a SchemaObject.
+ *
+ * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
+ * @author $LastChangedBy$
+ * @version $LastChangedRevision$
+ */
+public interface SchemaObject
+{
+    /**
+     * Gets a short description about this SchemaObject.
+     *  
+     * @return a short description about this SchemaObject
+     */
+    String getDescription() ;
+}

Added: incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/project.properties
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/project.properties	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,14 @@
+maven.javadoc.private=true
+maven.javadoc.overview=src/java/org/apache/eve/schema/overview.html
+maven.javadoc.customtags=tag1 tag2
+
+tag1.name=todo
+tag1.description=To Do:
+tag1.enabled=true
+tag1.scope=all
+
+tag2.name=task
+tag2.description=Task:
+tag2.enabled=false
+tag2.scope=all
+

Added: incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/project.xml
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/project.xml	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project>
+    <extend>${basedir}/../../../../project.xml</extend>
+    <groupId>directory</groupId>
+    <id>eve-backend-schema-comparator-api</id>
+  
+    <name>Eve Backend Schema's Comparator Registry API</name>
+    <package>org.apache.eve.schema</package>
+    <currentVersion>SNAPSHOT</currentVersion>
+    <inceptionYear>2002</inceptionYear>
+      
+    <shortDescription>Eve Backend Schema's Comparator Registry API</shortDescription>
+
+    <description>
+        Eve's backend subsystem contains several components to manage schema
+        objects.  One of those components is a name to Comparator registry.
+        The registry is responsible for looking up and adding comparators.
+    </description>
+      
+</project>
+

Added: incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/src/java/org/apache/eve/schema/ComparatorRegistry.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/src/java/org/apache/eve/schema/ComparatorRegistry.java	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,99 @@
+/*
+
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of  source code must  retain the above copyright  notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve" 
+    and "Apache Software Foundation"  must not be used to endorse or promote
+    products derived  from this  software without  prior written
+    permission. For written permission, please contact apache@apache.org.
+
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf of the Apache Software  Foundation. For more  information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.eve.schema ;
+
+
+import java.util.Comparator ;
+
+import javax.naming.NamingException ;
+
+
+/**
+ * Comparator registry component's service interface.
+ *
+ * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
+ * @author $LastChangedBy$
+ * @version $LastChangedRevision$
+ */
+public interface ComparatorRegistry
+{
+    /** Avalon service role */
+    String ROLE = ComparatorRegistry.class.getName() ;
+    
+    /**
+     * Registers a Comparator with this registry.
+     * 
+     * @param a_comparator the Comparator to register
+     * @throws NamingException if the Comparator is already registered or the 
+     *      registration operation is not supported
+     */
+    void register( Comparator a_comparator, String a_oid ) 
+        throws NamingException ;
+    
+    /**
+     * Looks up a Comparator by its unique Object Identifier.
+     * 
+     * @param a_oid the object identifier
+     * @return the Comparator for the oid
+     * @throws NamingException if there is a backing store failure or the 
+     *      Comparator does not exist.
+     */
+    Comparator lookup( String a_oid ) throws NamingException ;
+
+    /**
+     * Checks to see if a Comparator exists.  Backing store failures simply 
+     * return false.
+     * 
+     * @param a_oid the object identifier
+     * @return true if a Comparator definition exists for the oid, false 
+     *      otherwise
+     */
+    boolean hasComparator( String a_oid ) ;
+}

Added: incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/src/java/org/apache/eve/schema/ComparatorRegistryMonitor.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/src/java/org/apache/eve/schema/ComparatorRegistryMonitor.java	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,96 @@
+/*
+
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of  source code must  retain the above copyright  notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve" 
+    and "Apache Software Foundation"  must not be used to endorse or promote
+    products derived  from this  software without  prior written
+    permission. For written permission, please contact apache@apache.org.
+
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf of the Apache Software  Foundation. For more  information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.eve.schema ;
+
+
+import java.util.Comparator ;
+
+import javax.naming.NamingException ;
+
+
+/**
+ * Monitor interface for a ComparatorRegistry.
+ *
+ * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
+ * @author $Author: akarasulu $
+ * @version $Rev: 1463 $
+ */
+public interface ComparatorRegistryMonitor
+{
+    /**
+     * Monitors when a Comparator is registered successfully.
+     * 
+     * @param a_comparator the Comparator registered
+     */
+    void registered( Comparator a_comparator ) ;
+
+    /**
+     * Monitors when a Comparator is successfully looked up.
+     * 
+     * @param a_comparator the Comparator looked up
+     */
+    void lookedUp( Comparator a_comparator ) ;
+
+    /**
+     * Monitors when a lookup attempt fails.
+     * 
+     * @param a_oid the OID for the Comparator to lookup
+     * @param a_fault the exception to be thrown for the fault
+     */
+    void lookupFailed( String a_oid, NamingException a_fault ) ;
+    
+    /**
+     * Monitors when a registration attempt fails.
+     * 
+     * @param a_comparator the Comparator which failed registration
+     * @param a_fault the exception to be thrown for the fault
+     */
+    void registerFailed( Comparator a_comparator, NamingException a_fault ) ; 
+}

Added: incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/src/java/org/apache/eve/schema/ComparatorRegistryMonitorAdapter.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/comparator/api/src/java/org/apache/eve/schema/ComparatorRegistryMonitorAdapter.java	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,103 @@
+/*
+
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of  source code must  retain the above copyright  notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve" 
+    and "Apache Software Foundation"  must not be used to endorse or promote
+    products derived  from this  software without  prior written
+    permission. For written permission, please contact apache@apache.org.
+
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf of the Apache Software  Foundation. For more  information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.eve.schema ;
+
+
+import java.util.Comparator ;
+
+import javax.naming.NamingException ;
+
+
+/**
+ * An adapter for the ComparatorRegistry's monitor.
+ *
+ * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
+ * @author $Author: akarasulu $
+ * @version $Rev: 1463 $
+ */
+public class ComparatorRegistryMonitorAdapter 
+    implements ComparatorRegistryMonitor
+{
+    /* (non-Javadoc)
+     * @see org.apache.eve.schema.ComparatorRegistryMonitor#registered(
+     * org.apache.eve.schema.Comparator)
+     */
+    public void registered( Comparator a_comparator)
+    {
+    }
+
+    
+    /* (non-Javadoc)
+     * @see org.apache.eve.schema.ComparatorRegistryMonitor#lookedUp(
+     * org.apache.eve.schema.Comparator)
+     */
+    public void lookedUp( Comparator a_comparator )
+    {
+    }
+
+    
+    /* (non-Javadoc)
+     * @see org.apache.eve.schema.ComparatorRegistryMonitor#lookupFailed(
+     * java.lang.String, javax.naming.NamingException)
+     */
+    public void lookupFailed( String a_oid, NamingException a_fault )
+    {
+    }
+
+    
+    /* (non-Javadoc)
+     * @see org.apache.eve.schema.ComparatorRegistryMonitor#registerFailed(
+     * org.apache.eve.schema.Comparator, javax.naming.NamingException)
+     */
+    public void registerFailed( Comparator a_comparator, 
+                                NamingException a_fault )
+    {
+    }
+}

Added: incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/.classpath
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/.classpath	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+    <classpathentry kind="src" path="src/java"/>
+    <classpathentry kind="var" path="JRE_LIB" sourcepath="JRE_SRC"/>
+    <classpathentry kind="var" path="MAVEN_REPO/avalon-framework/jars/avalon-framework-api-4.1.5.jar"/>
+    <classpathentry kind="src" path="/eve-backend-schema-common-api"/>
+    <classpathentry kind="src" path="/eve-backend-schema-oid-api"/>
+    <classpathentry kind="src" path="/eve-backend-schema-matching-api"/>
+    <classpathentry kind="var" path="MAVEN_REPO/commons-lang/jars/commons-lang-2.0.jar"/>
+    <classpathentry kind="var" path="MAVEN_REPO/directory/jars/eve-backend-schema-matching-api-SNAPSHOT.jar"/>
+    <classpathentry kind="src" path="/eve-backend-schema-syntax-api"/>
+    <classpathentry kind="output" path="target/classes"/>
+</classpath>

Added: incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/.project
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/.project	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>eve-backend-schema-matching-bootstrap-impl</name>
+	<comment>Eve&apos;s backend subsystem contains several components to manage schema objects. One of those components is a OID to Syntax registry for all schema syntaxes. The registry is responsible for adding new syntaxes by OID as well as enabling the lookup of Syntaxs based on OID. This project contains the SyntaxRegistry implementation used at server startup rather than the solid state syntax registry. The reason for the separate services is to reduce cyclic dependency. The bootstrap implementation unlike the solid state implementation does not depend on the system backend to store syntax information. So this version of the component allows the system backend which depends on schema information to startup without having a cyclic dependency.</comment>
+	<projects>
+		<project>eve-backend-schema-common-api</project>
+		<project>eve-backend-schema-matching-api</project>
+		<project>eve-backend-schema-oid-api</project>
+		<project>eve-backend-schema-syntax-api</project>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Added: incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/conf/block.xml
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/conf/block.xml	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<container name="server">
+
+  <classloader>
+    <classpath>
+      <repository>
+        <resource id="avalon-framework:avalon-framework-api" version="4.1.5"/>
+        <resource id="commons-lang:commons-lang" version="2.0"/>
+        <resource id="directory:eve-backend-schema-common-api" version="SNAPSHOT"/>
+        <resource id="directory:eve-backend-schema-oid-api" version="SNAPSHOT"/>
+        <resource id="directory:eve-backend-schema-oid-impl" version="SNAPSHOT"/>
+        <resource id="directory:eve-backend-schema-matching-api" version="SNAPSHOT"/>
+      </repository>
+    </classpath>
+  </classloader>
+
+  <component
+    name="oid-registry" 
+    class="org.apache.eve.schema.MerlinOidRegistry"/>
+  <component
+    name="boostrap-matching-rule-registry" 
+    class="org.apache.eve.schema.MerlinBootstrapMatchingRuleRegistry"/>
+</container>

Added: incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/conf/config.xml
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/conf/config.xml	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<targets>
+  <target path="/server/bootstrap-matching-rule-registry">
+    <categories priority="DEBUG"/>
+  </target>
+</targets>

Added: incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/conf/debug.xml
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/conf/debug.xml	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<kernel>
+
+  <!-- logging system parameters -->
+  <logging target="default" priority="DEBUG" name="kernel">
+  </logging>
+
+</kernel>
+

Added: incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/maven.xml
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/maven.xml	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,38 @@
+<project default="java:compile"
+    xmlns:j="jelly:core"
+    xmlns:u="jelly:util"
+    xmlns:ant="jelly:ant"
+    xmlns:maven="jelly:maven"
+    xmlns:m="maven"
+    xmlns:deploy="deploy">
+    
+    <preGoal name="site">
+        <attainGoal name="docbook:transform"/>
+    </preGoal>
+
+    <postGoal name="site">
+        <attainGoal name="server:copy-images"/>
+    </postGoal>
+
+    <goal name="server:copy-images">
+        <copy toDir="target/docs/images">
+            <fileSet dir="${basedir}/src/images">
+                <include name="*.gif"/>
+            </fileSet>
+        </copy>
+    </goal>
+    
+    <goal name="cleanall">
+        <attainGoal name="clean"/>
+        <delete dir="home"/>
+    </goal>
+    
+    <postGoal name="java:compile">
+        <attainGoal name="avalon:meta"/>
+    </postGoal>
+    
+    <postGoal name="aspectj:compile">
+        <attainGoal name="avalon:meta"/>
+    </postGoal>
+    
+</project>

Added: incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/project.properties
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/project.properties	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,16 @@
+maven.javadoc.private=true
+maven.javadoc.overview=src/java/org/apache/eve/schema/overview.html
+maven.javadoc.customtags=tag1 tag2
+
+tag1.name=todo
+tag1.description=To Do:
+tag1.enabled=true
+tag1.scope=all
+
+tag2.name=task
+tag2.description=Task:
+tag2.enabled=false
+tag2.scope=all
+
+merlin.debug=true
+maven.license.licenseFile=../../../../../../../LICENSE.txt

Added: incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/project.xml
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/project.xml	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project>
+    <extend>${basedir}/../../../../project.xml</extend>
+    <groupId>directory</groupId>
+    <id>eve-backend-schema-matching-bootstrap-impl</id>
+  
+    <name>Eve Backend Schema's Bootstrap MatchingRule Registry Implementation</name>
+    <package>org.apache.eve.schema</package>
+    <currentVersion>SNAPSHOT</currentVersion>
+    <inceptionYear>2002</inceptionYear>
+      
+    <shortDescription>Eve Backend Schema's Bootstrap MatchingRule Registry Implementation</shortDescription>
+
+    <description>
+        Eve's backend subsystem contains several components to manage schema
+        objects.  One of those components is a OID to MatchingRule registry for
+        schema matchingRule.  The registry is responsible for adding new 
+        matchingRules by OID as well as enabling the lookup of matchingRules
+        based on OID.  This project contains the MatchingRuleRegistry 
+        implementation used at server startup rather than the solid state 
+        matchingRule registry.  The reason for the separate services is to 
+        reduce cyclic dependency.
+
+        The bootstrap implementation unlike the solid state implementation 
+        does not depend on the system backend to store matchingRule information.
+        So this version of the component allows the system backend which 
+        depends on schema information to startup without having a cyclic
+        dependency.
+    </description>
+
+    <dependencies>
+      <dependency>
+        <groupId>directory</groupId>
+        <artifactId>eve-backend-schema-common-api</artifactId>
+        <version>SNAPSHOT</version>
+        <url>http://directory.apache.org/eve/backend/schema/common/api</url>
+      </dependency>
+
+      <dependency>
+        <groupId>directory</groupId>
+        <artifactId>eve-backend-schema-oid-api</artifactId>
+        <version>SNAPSHOT</version>
+        <url>http://directory.apache.org/eve/backend/schema/oid/api</url>
+      </dependency>
+
+      <dependency>
+        <groupId>directory</groupId>
+        <artifactId>eve-backend-schema-matching-api</artifactId>
+        <version>SNAPSHOT</version>
+        <url>http://directory.apache.org/eve/backend/schema/matching/api</url>
+      </dependency>
+
+      <dependency>
+        <groupId>commons-lang</groupId>
+        <artifactId>commons-lang</artifactId>
+        <version>2.0</version>
+        <url>http://jakarta.apache.org/commons/lang</url>
+      </dependency>
+      
+      <dependency>
+        <groupId>avalon-framework</groupId>
+        <artifactId>avalon-framework-api</artifactId>
+        <version>4.1.5</version>
+        <url>http://avalon.apache.org/framework</url>
+      </dependency>
+    </dependencies>
+</project>
+

Added: incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/AvalonMatchingRuleFactory.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/AvalonMatchingRuleFactory.java	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,172 @@
+/*
+
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of  source code must  retain the above copyright  notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve" 
+    and "Apache Software Foundation"  must not be used to endorse or promote
+    products derived  from this  software without  prior written
+    permission. For written permission, please contact apache@apache.org.
+
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf of the Apache Software  Foundation. For more  information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.eve.schema ;
+
+
+import java.util.Comparator;
+
+import org.apache.avalon.framework.configuration.Configuration ;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+
+
+/**
+ * A MatchingRule factory that creates MatchingRules using Avalon Configuration
+ * information associated with a component.
+ *
+ * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
+ * @author $LastChangedBy$
+ * @version $LastChangedRevision$
+ */
+public class AvalonMatchingRuleFactory
+{
+    /** singleton factory instance */
+    private static AvalonMatchingRuleFactory s_instance = null ;
+    
+    
+    /**
+     * Creates a factory singleton checking to make sure it was not 
+     * instantiated before.
+     */
+    private AvalonMatchingRuleFactory()
+    {
+        if ( s_instance == null )
+        {
+            return ;
+        }
+        
+        throw new IllegalStateException( "Attempt to re-instantiate " +
+                "singleton." ) ;
+    }
+    
+
+    /**
+     * Gets access to a singleton instance of a syntax generating factory.
+     * 
+     * @return the singleton factory
+     */
+    public static AvalonMatchingRuleFactory getInstance()
+    {
+        if ( s_instance == null )
+        {    
+            s_instance = new AvalonMatchingRuleFactory() ;
+        }
+        
+        return s_instance ;
+    }
+
+    
+    /**
+     * Creates a MatchingRule instance using a Configuration object.
+     * 
+     * @param a_config an Avalon components Configuration object.
+     * @return the MatchingRule represented by the Configuration
+     * @throws ConfigurationException if there is an error with 
+     *      the Configuration
+     */
+    public MatchingRule create( Configuration a_config, 
+                                SyntaxRegistry a_syntaxes )
+        throws ConfigurationException
+    {
+        AvalonMatchingRule l_matchingRule = null ;
+        SyntaxChecker l_checker = null ;
+        String l_oid = a_config.getChild( "oid" ).getValue() ;
+
+        // l_matchingRule = new AvalonMatchingRule( l_oid ) ;
+        if ( true ) throw new ConfigurationException( 
+                    "not implemented yet" ) ;
+        
+        if ( a_config.getChild( "description" ).getValue( null ) != null )
+        {    
+            l_matchingRule.setDescription( a_config.getChild( "description" )
+                    .getValue() ) ;
+        }
+        
+        if ( a_config.getChild( "name" ).getValue( null ) != null )
+        {    
+            l_matchingRule.setName( a_config.getChild( "name" )
+                    .getValue() ) ;
+        }
+        
+        return l_matchingRule ;
+    }
+    
+    
+    /**
+     * Class used to safely expose mutators on the Syntax bean.
+     *
+     * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
+     * @author $Author: akarasulu $
+     * @version $Rev: 1465 $
+     */
+    private class AvalonMatchingRule extends DefaultMatchingRule
+    {
+        AvalonMatchingRule( String a_oid, Syntax a_syntax, 
+                Comparator a_comparator, Normalizer a_normalizer ) 
+            throws ConfigurationException
+        {
+            super( a_oid, a_syntax, a_comparator, a_normalizer ) ;
+        }
+        
+        public void setDescription( String a_description )
+        {
+            super.setDescription( a_description ) ;
+        }
+        
+        public void setName( String a_name )
+        {
+            super.setName( a_name ) ;
+        }
+
+        public void setObsolete( boolean a_isObsolete )
+        {
+            super.setObsolete( a_isObsolete ) ;
+        }
+    }
+}

Added: incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/AvalonMatchingRuleRegistryMonitor.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/AvalonMatchingRuleRegistryMonitor.java	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,127 @@
+/*
+
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of  source code must  retain the above copyright  notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve" 
+    and "Apache Software Foundation"  must not be used to endorse or promote
+    products derived  from this  software without  prior written
+    permission. For written permission, please contact apache@apache.org.
+
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf of the Apache Software  Foundation. For more  information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.eve.schema;
+
+
+import javax.naming.NamingException ;
+
+import org.apache.commons.lang.exception.ExceptionUtils ;
+import org.apache.avalon.framework.logger.AbstractLogEnabled ;
+
+
+/**
+ * A monitor that works with Avalon containers based on framework interfaces.
+ *
+ * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
+ * @author $Author: akarasulu $
+ * @version $Rev: 1465 $
+ */
+public class AvalonMatchingRuleRegistryMonitor
+    extends AbstractLogEnabled
+    implements MatchingRuleRegistryMonitor
+{
+    /**
+     * @see org.apache.eve.schema.MatchingRuleRegistryMonitor#registered(
+     * org.apache.eve.schema.MatchingRule)
+     */
+    public void registered( MatchingRule a_MatchingRule )
+    {
+        if( getLogger().isDebugEnabled() )
+        {
+            getLogger().debug( "MatchingRule " + a_MatchingRule.getOid() + " ("
+                    + a_MatchingRule.getName() + ") registered" ) ;
+        }
+    }
+
+    
+    /**
+     * @see org.apache.eve.schema.MatchingRuleRegistryMonitor#lookedUp(
+     * org.apache.eve.schema.MatchingRule)
+     */
+    public void lookedUp( MatchingRule a_MatchingRule )
+    {
+        if( getLogger().isDebugEnabled() )
+        {
+            getLogger().debug( "MatchingRule " + a_MatchingRule.getOid() + " ("
+                    + a_MatchingRule.getName() + ") looked up" ) ;
+        }
+    }
+
+    
+    /**
+     * @see org.apache.eve.schema.MatchingRuleRegistryMonitor#lookupFailed(
+     * java.lang.String, javax.naming.NamingException)
+     */
+    public void lookupFailed( String a_oid, NamingException a_fault )
+    {
+        if( getLogger().isInfoEnabled() )
+        {
+            getLogger().info( "MatchingRule with OID " + a_oid 
+                    + " lookup failed:\n" 
+                    + ExceptionUtils.getStackTrace( a_fault ) ) ;
+        }
+    }
+
+    
+    /**
+     * @see org.apache.eve.schema.MatchingRuleRegistryMonitor#registerFailed(
+     * org.apache.eve.schema.MatchingRule, javax.naming.NamingException)
+     */
+    public void registerFailed( MatchingRule a_MatchingRule, 
+                                NamingException a_fault )
+    {
+        if( getLogger().isInfoEnabled() )
+        {
+            getLogger().info( "MatchingRule " + a_MatchingRule.getOid() + " ("
+                    + a_MatchingRule.getName() + ") registration failed: " 
+                    + ExceptionUtils.getStackTrace( a_fault ) ) ;
+        }
+    }
+}

Added: incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/BootstrapMatchingRuleRegistry.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/BootstrapMatchingRuleRegistry.java	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,205 @@
+/*
+
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of  source code must  retain the above copyright  notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve" 
+    and "Apache Software Foundation"  must not be used to endorse or promote
+    products derived  from this  software without  prior written
+    permission. For written permission, please contact apache@apache.org.
+
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf of the Apache Software  Foundation. For more  information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.eve.schema ;
+
+
+import java.util.Map ;
+import java.util.HashMap ;
+
+import javax.naming.NamingException ;
+import javax.naming.OperationNotSupportedException ;
+
+
+/**
+ * A MatchingRuleRegistry service available during server startup when other 
+ * resources like a system backend for a backing store is unavailable to 
+ * solid state registries.
+ *
+ * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
+ * @author $Author: akarasulu $
+ * @version $Rev: 6196 $
+ */
+public class BootstrapMatchingRuleRegistry implements MatchingRuleRegistry
+{
+    /** a map using an OID for the key and a MatchingRule for the value */
+    private final Map m_matchingRules ;
+    /** the OID registry used to register new MatchingRule OIDs */
+    private final OidRegistry m_registry ;
+    /** a monitor used to track noteable registry events */
+    private MatchingRuleRegistryMonitor m_monitor = null ; 
+    
+    
+    // ------------------------------------------------------------------------
+    // C O N S T R U C T O R S
+    // ------------------------------------------------------------------------
+    
+    
+    /**
+     * Creates a BootstrapMatchingRuleRegistry using existing MatchingRulees 
+     * for lookups.
+     * 
+     * @param a_matchingRules a map of OIDs to their respective MatchingRule 
+     *      objects
+     */
+    public BootstrapMatchingRuleRegistry( MatchingRule[] a_matchingRules, 
+                                    OidRegistry a_registry )
+    {
+        this ( a_matchingRules, a_registry, 
+               new MatchingRuleRegistryMonitorAdapter() ) ;
+    }
+
+        
+    /**
+     * Creates a BootstrapMatchingRuleRegistry using existing MatchingRulees 
+     * for lookups.
+     * 
+     * @param a_matchingRules a map of OIDs to their respective MatchingRule 
+     *      objects
+     */
+    public BootstrapMatchingRuleRegistry( MatchingRule[] a_matchingRules, 
+                                    OidRegistry a_registry,
+                                    MatchingRuleRegistryMonitor a_monitor )
+    {
+        m_monitor = a_monitor ; 
+        m_registry = a_registry ;
+        m_matchingRules = new HashMap() ;
+        
+        for ( int ii = 0; ii < a_matchingRules.length; ii++ )
+        {
+            m_matchingRules.put( a_matchingRules[ii].getOid(), 
+                    a_matchingRules[ii] ) ;
+            m_registry.register( a_matchingRules[ii].getOid(), 
+                    a_matchingRules[ii].getOid() ) ;
+            if ( a_matchingRules[ii].getName() != null )
+            {    
+                m_registry.register( a_matchingRules[ii].getName(), 
+                        a_matchingRules[ii].getOid() ) ;
+            }
+            
+            m_monitor.registered( a_matchingRules[ii] ) ;
+        }
+    }
+    
+
+    // ------------------------------------------------------------------------
+    // MatchingRuleRegistry interface methods
+    // ------------------------------------------------------------------------
+    
+    
+    /**
+     * @see org.apache.eve.schema.MatchingRuleRegistry#lookup(java.lang.String)
+     */
+    public MatchingRule lookup( String a_oid ) throws NamingException
+    {
+        if ( m_matchingRules.containsKey( a_oid ) )
+        {
+            MatchingRule l_MatchingRule = ( MatchingRule ) 
+                m_matchingRules.get( a_oid ) ;
+            m_monitor.lookedUp( l_MatchingRule ) ;
+            return l_MatchingRule ;
+        }
+        
+        NamingException l_fault = new NamingException( 
+                "Unknown MatchingRule OID " + a_oid ) ;
+        m_monitor.lookupFailed( a_oid, l_fault ) ;
+        throw l_fault ;
+    }
+    
+
+    /**
+     * @see org.apache.eve.schema.MatchingRuleRegistry#register(
+     * org.apache.eve.schema.MatchingRule)
+     */
+    public void register( MatchingRule a_MatchingRule ) throws NamingException
+    {
+        NamingException l_fault = new OperationNotSupportedException( 
+                "MatchingRule registration on read-only bootstrap " +
+                "MatchingRuleRegistry not supported." ) ;
+        m_monitor.registerFailed( a_MatchingRule, l_fault ) ;
+        throw l_fault ;
+    }
+
+    
+    /**
+     * @see org.apache.eve.schema.MatchingRuleRegistry#hasMatchingRule(
+     * java.lang.String)
+     */
+    public boolean hasMatchingRule( String a_oid )
+    {
+        return m_matchingRules.containsKey( a_oid ) ;
+    }
+
+
+    // ------------------------------------------------------------------------
+    // package friendly monitor methods
+    // ------------------------------------------------------------------------
+    
+    
+    /**
+     * Gets the monitor for this registry.
+     * 
+     * @return the monitor
+     */
+    MatchingRuleRegistryMonitor getMonitor()
+    {
+        return m_monitor ;
+    }
+
+    
+    /**
+     * Sets the monitor for this registry.
+     * 
+     * @param a_monitor the monitor to set
+     */
+    void setMonitor( MatchingRuleRegistryMonitor a_monitor )
+    {
+        m_monitor = a_monitor ;
+    }
+}

Added: incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/MerlinBootstrapMatchingRuleRegistry.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/MerlinBootstrapMatchingRuleRegistry.java	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,181 @@
+/*
+
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of  source code must  retain the above copyright  notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve" 
+    and "Apache Software Foundation"  must not be used to endorse or promote
+    products derived  from this  software without  prior written
+    permission. For written permission, please contact apache@apache.org.
+
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf of the Apache Software  Foundation. For more  information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.eve.schema ;
+
+
+import javax.naming.NamingException ;
+
+import org.apache.avalon.framework.service.Serviceable ;
+import org.apache.avalon.framework.service.ServiceManager ;
+import org.apache.avalon.framework.activity.Initializable ;
+import org.apache.avalon.framework.service.ServiceException ;
+import org.apache.avalon.framework.logger.AbstractLogEnabled ;
+import org.apache.avalon.framework.configuration.Configurable ;
+import org.apache.avalon.framework.configuration.Configuration ;
+import org.apache.avalon.framework.configuration.ConfigurationException ;
+
+
+/**
+ * Merlin specific wrapper for the BootstrapMatchingRuleRegistry.
+ *
+ * @avalon.component name="bootstrap-matching-rule-registry" 
+ *      lifestyle="singleton"
+ * @avalon.service type="org.apache.eve.schema.MatchingRuleRegistry" 
+ *      version="1.0"
+ * 
+ * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
+ * @author $Author: akarasulu $
+ * @version $Rev: 1468 $
+ */
+public class MerlinBootstrapMatchingRuleRegistry
+    extends AbstractLogEnabled
+    implements Configurable, Serviceable, Initializable, MatchingRuleRegistry
+{
+    /** the OID registry we need to construct the MatchingRuleRegistry */
+    private OidRegistry m_oidReg ;
+    /** the syntax registry to get syntax objects from */
+    private SyntaxRegistry m_synReg ;
+    /** the wrapped delegate bootstrap MatchingRuleRegistry to use */
+    private MatchingRuleRegistry m_mrReg ;
+    /** the MatchingRulees to provide lookups on */
+    private MatchingRule[] m_matchingRules ;
+    
+    
+    // ------------------------------------------------------------------------
+    // MatchingRuleRegistry interface methods
+    // ------------------------------------------------------------------------
+
+    
+    /**
+     * @see org.apache.eve.schema.MatchingRuleRegistry#lookup(java.lang.String)
+     */
+    public MatchingRule lookup( String a_oid ) throws NamingException
+    {
+        return m_mrReg.lookup( a_oid ) ;
+    }
+
+    
+    /**
+     * @see org.apache.eve.schema.MatchingRuleRegistry#register(
+     * org.apache.eve.schema.MatchingRule)
+     */
+    public void register( MatchingRule a_MatchingRule ) throws NamingException
+    {
+        m_mrReg.register( a_MatchingRule ) ;
+    }
+
+    
+    /**
+     * @see org.apache.eve.schema.MatchingRuleRegistry#hasMatchingRule(java.lang.String)
+     */
+    public boolean hasMatchingRule( String a_oid )
+    {
+        return m_mrReg.hasMatchingRule( a_oid ) ;
+    }
+    
+    
+    // ------------------------------------------------------------------------
+    // Avalon life-cycle methods
+    // ------------------------------------------------------------------------
+
+    
+    /**
+     * @see org.apache.avalon.framework.configuration.Configurable#configure(
+     * org.apache.avalon.framework.configuration.Configuration)
+     */
+    public void configure( Configuration a_conf ) throws ConfigurationException
+    {
+        Configuration [] l_matchingRules = 
+            a_conf.getChildren( "MatchingRule" ) ;
+        AvalonMatchingRuleFactory l_factory = 
+            AvalonMatchingRuleFactory.getInstance() ;
+        
+        m_matchingRules = new MatchingRule[ l_matchingRules.length ] ;
+        
+        for ( int ii = 0 ; ii < l_matchingRules.length ; ii++ )
+        {
+            m_matchingRules[ii] = l_factory
+                .create( l_matchingRules[ii], m_synReg ) ;
+        }
+        
+        throw new ConfigurationException( "configuration not implemented" ) ;
+    }
+    
+    
+    /**
+     * @avalon.dependency type="org.apache.eve.schema.OidRegistry"
+     *         key="oid-registry" version="1.0" 
+     * @avalon.dependency type="org.apache.eve.schema.SyntaxRegistry"
+     *         key="syntax-registry" version="1.0" 
+     * 
+     * @see org.apache.avalon.framework.service.Serviceable#service(
+     * org.apache.avalon.framework.service.ServiceManager)
+     */
+    public void service( ServiceManager a_manager ) throws ServiceException
+    {
+        m_oidReg = ( OidRegistry ) a_manager.lookup( "oid-registry" ) ;
+        m_synReg = ( SyntaxRegistry ) a_manager.lookup( "syntax-registry" ) ;
+    }
+
+
+    /**
+     * @see org.apache.avalon.framework.activity.Initializable#initialize()
+     */
+    public void initialize() throws Exception
+    {
+        AvalonMatchingRuleRegistryMonitor l_monitor = 
+            new AvalonMatchingRuleRegistryMonitor() ;
+        l_monitor.enableLogging( getLogger() ) ;
+        BootstrapMatchingRuleRegistry l_registry = 
+            new BootstrapMatchingRuleRegistry( m_matchingRules, m_oidReg, 
+                l_monitor ) ;
+        m_mrReg = l_registry ;
+    }
+}

Added: incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/MerlinBootstrapMatchingRuleRegistry.xconfig
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/matching/bootstrap-impl/src/java/org/apache/eve/schema/MerlinBootstrapMatchingRuleRegistry.xconfig	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,246 @@
+  <!-- ===================================================================
+
+    The following private LDAPd IANA numbers are reserved for backends:
+        
+        1.2.6.1.4.1.18060.1
+        
+    The following private LDAPd IANA number base is reserved for use by
+    the SystemBackend specifically:
+    
+        1.2.6.1.4.1.18060.1.1
+        
+    The following private LDAPd IANA number base is reserved for use by
+    SystemBackend Syntaxes:
+    
+        1.2.6.1.4.1.18060.1.1.1
+        
+    The following private LDAPd IANA number base is reserved for use by
+    SystemBackend MatchingRules:
+    
+        1.2.6.1.4.1.18060.1.1.2
+            
+            * 1.2.6.1.4.1.18060.1.1.2.1 - tolowerDeepTrimDNMatch
+            * 1.2.6.1.4.1.18060.1.1.2.2 - exactDNMatch
+        
+    The following private LDAPd IANA number base is reserved for use by
+    SystemBackend AttributeTypes:
+    
+        1.2.6.1.4.1.18060.1.1.3
+        
+            * 1.2.6.1.4.1.18060.1.1.3.1 - _ndn
+            * 1.2.6.1.4.1.18060.1.1.3.2 - _updn
+            * 1.2.6.1.4.1.18060.1.1.3.3 - _existance
+            * 1.2.6.1.4.1.18060.1.1.3.4 - _hierarchy
+
+    The following private LDAPd IANA number base is reserved for use by
+    SystemBackend ObjectClasses:
+    
+        1.2.6.1.4.1.18060.1.1.4
+
+  ==================================================================== -->
+    
+<configuration>
+
+    <!-- ===============================================================
+                            Private MatchingRules
+    ================================================================ -->
+    
+    <matching-rule>
+        <oid>1.2.6.1.4.1.18060.1.1.2.1</oid>
+        <name>tolowerDeepTrimDNMatch</name>
+        <syntax>1.3.6.1.4.1.1466.115.121.1.12</syntax>
+        <description>
+            When performing multiple adjoining whitespace characters are 
+            treated the same as an individual space, and leading and trailing 
+            whitespace is ignored within a name component.  The equality
+            matchingRule for the attributeType of a name component's attribute
+            is presumed to be caseIgnoreMatch when determining the means to 
+            normalize its value.  Obviously such normalization is independent 
+            of schema.  
+            
+            This matching rule is used by the attributeType for the normalized 
+            dn index.  It makes the SystamBackend namingContext very sensitive
+            to the attributeTypes used to construct distinguished and relative
+            distinguished names.  Attributes used as components within a 
+            distinguished name must use the caseIgnoreMatch matchingRule for 
+            equality matching.  The use of caseExactMatch equality matching
+            attributes within distinguished name components will appear to cause
+            a loss of case resolution: case differentiation is not possible within
+            the DN and its components.
+        </description>
+                
+        <comparator>
+            <built-in>compareDeepTrimToLowerDN</built-in>
+        </comparator>
+                
+        <normalizer>
+            <built-in>deepTrimToLowerDN</built-in>
+        </normalizer>
+    </matching-rule>
+    
+    <matching-rule>
+        <oid>1.2.6.1.4.1.18060.1.1.2.2</oid>
+        <name>exactDNMatch</name>
+        <syntax>1.3.6.1.4.1.1466.115.121.1.15</syntax>
+        <description>
+            When performing multiple adjoining whitespace characters are 
+            treated as is.  The equality matchingRule for the attributeType of 
+            a name component's attribute is presumed to be caseExactMatch so 
+            essentially no value normalization occurs.
+
+            This matching rule is used by the attributeType for the user provide
+            dn index.  It enables the directory server to return distinguished 
+            names as they were provided by the user without formating.
+        </description>
+                
+        <comparator>
+            <built-in>compareExactDN</built-in>
+        </comparator>
+                
+        <normalizer>
+            <built-in>as-is</built-in>
+        </normalizer>
+    </matching-rule>
+
+    <!-- ===============================================================
+                            Public MatchingRules
+    ================================================================ -->
+
+    <matching-rule>
+        <oid>2.5.13.1</oid>
+        <name>distinguishedNameMatch</name>
+        <syntax>1.3.6.1.4.1.1466.115.121.1.12</syntax>
+        <description>
+            When performing multiple adjoining whitespace characters are 
+            treated the same as an individual space, and leading and trailing 
+            whitespace is ignored within a name component.  The equality
+            matchingRule for the attributeType of a name component's attribute
+            is presumed to be caseIgnoreMatch when determining the means to 
+            normalize its value.  Obviously such normalization is independent 
+            of schema.  
+            
+            This matching rule is used by the attributeType for the normalized 
+            dn index.  It makes the SystamBackend namingContext very sensitive
+            to the attributeTypes used to construct distinguished and relative
+            distinguished names.  Attributes used as components within a 
+            distinguished name must use the caseIgnoreMatch matchingRule for 
+            equality matching.  The use of caseExactMatch equality matching
+            attributes within distinguished name components will appear to cause
+            a loss of case resolution: case differentiation is not possible 
+            within the DN and its components.
+        </description>
+                
+        <comparator>
+            <built-in>compareDeepTrimToLowerDN</built-in>
+        </comparator>
+                
+        <normalizer>
+            <built-in>deepTrimToLowerDN</built-in>
+        </normalizer>
+    </matching-rule>
+    
+    <matching-rule>
+        <oid>2.5.13.2</oid>
+        <name>caseIgnoreMatch</name>
+        <syntax>1.3.6.1.4.1.1466.115.121.1.15</syntax>
+        <description>
+            When performing the caseIgnoreMatch, caseIgnoreListMatch, 
+            telephoneNumberMatch, caseExactIA5Match and caseIgnoreIA5Match, 
+            multiple adjoining whitespace characters are treated the same 
+            as an individual space, and leading and trailing whitespace is 
+            ignored.
+        </description>
+                
+        <comparator>
+            <built-in>compareToIgnoreCase</built-in>
+        </comparator>
+                
+        <normalizer>
+            <built-in>deepTrimToLower</built-in>
+        </normalizer>
+    </matching-rule>
+    
+    <matching-rule>
+        <oid>2.5.13.4</oid>
+        <name>caseIgnoreSubstringsMatch</name>
+        <syntax>1.3.6.1.4.1.1466.115.121.1.58</syntax>
+        <description>
+            The Substring Assertion is encoded according to the following BNF: 
+
+                substring = [initial] any [final]
+                initial = value
+                any = "*" *(value "*")
+                final = value
+
+            The production is UTF-8 encoded string. Should the backslash or 
+            asterix characters be present in a production of , they are quoted 
+            as described in section 4.3. 
+        </description>
+                
+        <comparator>
+            <built-in>compareToIgnoreCase</built-in>
+        </comparator>
+                
+        <normalizer>
+            <built-in>deepTrimToLower</built-in>
+        </normalizer>
+    </matching-rule>
+
+    <matching-rule>
+        <oid>2.5.13.14</oid>
+        <name>integerMatch</name>
+        <syntax>1.3.6.1.4.1.1466.115.121.1.27</syntax>
+        <description>
+            Matches integers as strings.
+        </description>
+                
+        <comparator>
+            <built-in>compareBigInteger</built-in>
+        </comparator>
+                
+        <normalizer>
+            <built-in>as-is</built-in>
+        </normalizer>
+    </matching-rule>
+
+    <matching-rule>
+        <oid>2.5.13.0</oid>
+        <name>objectIdentifierMatch</name>
+        <syntax>1.3.6.1.4.1.1466.115.121.1.38</syntax>
+        
+        <description>
+            The assertion syntax is the same as the value syntax. If the client 
+            supplies a filter using an objectIdentifierMatch whose matchValue 
+            oid is in the "descr" form, and the oid is not recognized by the 
+            server, then the filter is Undefined. 
+        </description>
+
+        <comparator>
+            <built-in>compareObjectIdentifier</built-in>
+        </comparator>
+        
+        <normalizer>
+            <built-in>objectIdentifierNormalizer</built-in>
+        </normalizer>
+    </matching-rule>
+    
+    <matching-rule>
+        <oid>2.5.13.23</oid>
+        <name>uniqueMemberMatch</name>
+        <syntax>1.3.6.1.4.1.1466.115.121.1.34</syntax>
+        
+        <description>
+            The assertion syntax is the same as the value syntax. 
+        </description>
+
+        <comparator>
+            <built-in>compareDeepTrimToLowerDN</built-in>
+        </comparator>
+        
+        <normalizer>
+            <built-in>deepTrimToLowerDN</built-in>
+        </normalizer>
+    </matching-rule>
+    
+    
+</configuration>

Added: incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/project.properties
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/project.properties	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,14 @@
+maven.javadoc.private=true
+maven.javadoc.overview=src/java/org/apache/eve/schema/overview.html
+maven.javadoc.customtags=tag1 tag2
+
+tag1.name=todo
+tag1.description=To Do:
+tag1.enabled=true
+tag1.scope=all
+
+tag2.name=task
+tag2.description=Task:
+tag2.enabled=false
+tag2.scope=all
+

Added: incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/project.xml
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/project.xml	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project>
+    <extend>${basedir}/../../../../project.xml</extend>
+    <groupId>directory</groupId>
+    <id>eve-backend-schema-normalizer-api</id>
+  
+    <name>Eve Backend Schema's Normalizer Registry API</name>
+    <package>org.apache.eve.schema</package>
+    <currentVersion>SNAPSHOT</currentVersion>
+    <inceptionYear>2002</inceptionYear>
+      
+    <shortDescription>Eve Backend Schema's Normalizer Registry API</shortDescription>
+
+    <description>
+        Eve's backend subsystem contains several components to manage schema
+        objects.  One of those components is a name to Normalizer registry.
+        The registry is responsible for looking up and adding Normalizers.
+    </description>
+      
+    <dependencies>
+      <dependency>
+        <groupId>directory</groupId>
+        <artifactId>eve-backend-schema-common-api</artifactId>
+        <version>SNAPSHOT</version>
+        <url>http://directory.apache.org/eve/backend/schema/common/api</url>
+      </dependency>
+    </dependencies>
+</project>
+

Added: incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/java/org/apache/eve/schema/NormalizerRegistry.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/java/org/apache/eve/schema/NormalizerRegistry.java	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,97 @@
+/*
+
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of  source code must  retain the above copyright  notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve" 
+    and "Apache Software Foundation"  must not be used to endorse or promote
+    products derived  from this  software without  prior written
+    permission. For written permission, please contact apache@apache.org.
+
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf of the Apache Software  Foundation. For more  information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.eve.schema ;
+
+
+import javax.naming.NamingException ;
+
+
+/**
+ * Normalizer registry component's service interface.
+ *
+ * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
+ * @author $LastChangedBy$
+ * @version $LastChangedRevision$
+ */
+public interface NormalizerRegistry
+{
+    /** Avalon service role */
+    String ROLE = NormalizerRegistry.class.getName() ;
+    
+    /**
+     * Registers a Normalizer with this registry.
+     * 
+     * @param a_normalizer the Normalizer to register
+     * @throws NamingException if the Normalizer is already registered or the 
+     *      registration operation is not supported
+     */
+    void register( Normalizer a_normalizer, String a_oid ) 
+        throws NamingException ;
+    
+    /**
+     * Looks up a Normalizer by its unique Object Identifier.
+     * 
+     * @param a_oid the object identifier
+     * @return the Normalizer for the oid
+     * @throws NamingException if there is a backing store failure or the 
+     *      Normalizer does not exist.
+     */
+    Normalizer lookup( String a_oid ) throws NamingException ;
+
+    /**
+     * Checks to see if a Normalizer exists.  Backing store failures simply 
+     * return false.
+     * 
+     * @param a_oid the object identifier
+     * @return true if a Normalizer definition exists for the oid, false 
+     *      otherwise
+     */
+    boolean hasNormalizer( String a_oid ) ;
+}

Added: incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/java/org/apache/eve/schema/NormalizerRegistryMonitor.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/java/org/apache/eve/schema/NormalizerRegistryMonitor.java	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,94 @@
+/*
+
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of  source code must  retain the above copyright  notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve" 
+    and "Apache Software Foundation"  must not be used to endorse or promote
+    products derived  from this  software without  prior written
+    permission. For written permission, please contact apache@apache.org.
+
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf of the Apache Software  Foundation. For more  information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.eve.schema ;
+
+
+import javax.naming.NamingException ;
+
+
+/**
+ * Monitor interface for a NormalizerRegistry.
+ *
+ * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
+ * @author $Author: akarasulu $
+ * @version $Rev: 1463 $
+ */
+public interface NormalizerRegistryMonitor
+{
+    /**
+     * Monitors when a Normalizer is registered successfully.
+     * 
+     * @param a_normalizer the Normalizer registered
+     */
+    void registered( Normalizer a_normalizer ) ;
+
+    /**
+     * Monitors when a Normalizer is successfully looked up.
+     * 
+     * @param a_normalizer the Normalizer looked up
+     */
+    void lookedUp( Normalizer a_normalizer ) ;
+
+    /**
+     * Monitors when a lookup attempt fails.
+     * 
+     * @param a_oid the OID for the Normalizer to lookup
+     * @param a_fault the exception to be thrown for the fault
+     */
+    void lookupFailed( String a_oid, NamingException a_fault ) ;
+    
+    /**
+     * Monitors when a registration attempt fails.
+     * 
+     * @param a_normalizer the Normalizer which failed registration
+     * @param a_fault the exception to be thrown for the fault
+     */
+    void registerFailed( Normalizer a_normalizer, NamingException a_fault ) ; 
+}

Added: incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/java/org/apache/eve/schema/NormalizerRegistryMonitorAdapter.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/normalizer/api/src/java/org/apache/eve/schema/NormalizerRegistryMonitorAdapter.java	Sun Jan 18 19:17:04 2004
@@ -0,0 +1,101 @@
+/*
+
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of  source code must  retain the above copyright  notice,
+    this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve" 
+    and "Apache Software Foundation"  must not be used to endorse or promote
+    products derived  from this  software without  prior written
+    permission. For written permission, please contact apache@apache.org.
+
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf of the Apache Software  Foundation. For more  information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.eve.schema ;
+
+
+import javax.naming.NamingException ;
+
+
+/**
+ * An adapter for the NormalizerRegistry's monitor.
+ *
+ * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
+ * @author $Author: akarasulu $
+ * @version $Rev: 1463 $
+ */
+public class NormalizerRegistryMonitorAdapter 
+    implements NormalizerRegistryMonitor
+{
+    /* (non-Javadoc)
+     * @see org.apache.eve.schema.NormalizerRegistryMonitor#registered(
+     * org.apache.eve.schema.Normalizer)
+     */
+    public void registered( Normalizer a_normalizer)
+    {
+    }
+
+    
+    /* (non-Javadoc)
+     * @see org.apache.eve.schema.NormalizerRegistryMonitor#lookedUp(
+     * org.apache.eve.schema.Normalizer)
+     */
+    public void lookedUp( Normalizer a_normalizer )
+    {
+    }
+
+    
+    /* (non-Javadoc)
+     * @see org.apache.eve.schema.NormalizerRegistryMonitor#lookupFailed(
+     * java.lang.String, javax.naming.NamingException)
+     */
+    public void lookupFailed( String a_oid, NamingException a_fault )
+    {
+    }
+
+    
+    /* (non-Javadoc)
+     * @see org.apache.eve.schema.NormalizerRegistryMonitor#registerFailed(
+     * org.apache.eve.schema.Normalizer, javax.naming.NamingException)
+     */
+    public void registerFailed( Normalizer a_normalizer, 
+                                NamingException a_fault )
+    {
+    }
+}

Mime
View raw message