Package org.apache.directory.server.schema.bootstrap

See:
          Description

Interface Summary
BootstrapProducer A schema object producer which uses a callback to announce object creation rather than completely returning objects in bulk.
BootstrapSchema A configuration of related Schema objects bundled together and identified as a group.
ProducerCallback A BootstrapProducer's callback used to announce object creation.
Schema Base schema interface.
 

Class Summary
AbstractBootstrapProducer An abstract producer implementation.
AbstractBootstrapProducer.BootstrapAttributeType A concrete mutable attributeType implementation for bootstrapping which uses registries for dynamically resolving dependent objects.
AbstractBootstrapProducer.BootstrapMatchingRule  
AbstractBootstrapProducer.BootstrapObjectClass A concrete mutable objectClass implementation for bootstrapping which uses registries for dynamically resolving dependent objects.
AbstractBootstrapProducer.BootstrapSyntax A mutable Syntax for the bootstrap phase that uses the syntaxCheckerRegistry to dynamically resolve syntax checkers.
AbstractBootstrapSchema Abstract bootstrap schema implementation.
ApacheComparatorProducer A producer of Comparator objects for the eve schema.
ApacheMatchingRuleProducer A producer of MatchingRule objects for the eve schema.
ApachemetaComparatorProducer A producer of Comparator objects for the apachemeta schema.
ApachemetaComparatorProducer.DeepTrimToLowerNormalizingComparator  
ApachemetaComparatorProducer.ObjectClassTypeComparator  
ApachemetaMatchingRuleProducer A producer of MatchingRule objects for the apachemeta schema.
ApachemetaMatchingRuleProducer.NumericOidMatch  
ApachemetaMatchingRuleProducer.ObjectClassTypeMatch  
ApachemetaMatchingRuleProducer.RuleIdMatch  
ApachemetaMatchingRuleProducer.SupDITStructureRuleMatch  
ApachemetaNormalizerProducer A producer of Normalizer objects for the apachemeta schema.
ApachemetaSyntaxCheckerProducer A producer of SyntaxChecker objects for the apachemeta schema.
ApachemetaSyntaxProducer A producer of Syntax objects for the apachemeta schema.
ApachemetaSyntaxProducer.NameOrNumericIdSyntax  
ApachemetaSyntaxProducer.NumberSyntax  
ApachemetaSyntaxProducer.NumericOidSyntax  
ApachemetaSyntaxProducer.ObjectClassTypeSyntax  
ApachemetaSyntaxProducer.ObjectNameSyntax  
ApacheNormalizerProducer A producer of Normalizer objects for the eve schema.
ApacheSyntaxProducer A producer of Syntax objects for the apache schema.
BootstrapSchemaLoader Class which handles bootstrap schema class file loading.
NameOrNumericIdComparator A comparator that sorts OIDs based on their numeric id value.
NameOrNumericIdMatch Document me!
NameOrNumericIdNormalizer A name or numeric id normalizer.
NisComparatorProducer A producer of Comparator objects for the nis schema.
NisComparatorProducer.DeepTrimCachingNormalizingComparator  
NisMatchingRuleProducer A producer of MatchingRule objects for the nis schema.
NisNormalizerProducer A producer of Normalizer objects for the nis schema.
NisNormalizerProducer.CachingDeepTrimNormalizer  
NisSyntaxCheckerProducer A producer of SyntaxChecker objects for the nis schema.
NisSyntaxProducer A producer of Syntax objects for the nis schema.
SystemComparatorProducer Document this class.
SystemComparatorProducer.DeepTrimCachingNormalizingComparator  
SystemComparatorProducer.DeepTrimToLowerCachingNormalizingComparator  
SystemComparatorProducer.NameAndOptionalUIDCachingNormalizingComparator This caching NormalizingComparator would be a good thing to have, sadly we can't use it as the registries are not available here ...
SystemMatchingRuleProducer A simple maching rule configuration where objects and java code are used to create matching rules.
SystemNormalizerProducer A bootstrap producer which creates and announces newly created Normalizers for various matchingRules in the core schema.
SystemNormalizerProducer.CachingDeepTrimNormalizer  
SystemNormalizerProducer.CachingDeepTrimToLowerNormalizer  
SystemNormalizerProducer.CachingDnNormalizer  
SystemSyntaxCheckerProducer A producer of SyntaxCheckers for the core schema.
SystemSyntaxProducer A simple Syntax factory for the core LDAP schema in Section 4.3.2 of RFC2252.
 

Enum Summary
ProducerTypeEnum Type safe enum for an BootstrapProducer tyoes.
 

Package org.apache.directory.server.schema.bootstrap Description

 

Contains interfaces and classes used for bootstrap schema object loading and configuration.

Briefly, before delving into the reasons behind our choices, we would like to summarize what is here. First off each schema entity of significance whether defined by the protocol or not is introduced into the system using a bootstrap configuration set class. This is a class that implements a specific interface for creating all the needed schema objects to establish a baseline within the system. All such schema objects generated will be owned by the directory administrator. Furthermore these objects are temporary and can be overridden in the solid state using altered versions that are authoritative definitions within the system backend.

Just what does all this mean? Hard coded schema objects in Java classes which implement a configuration set interface can be loaded into the system and used while bootstrapping it. If this is the first time bootstrapping, meaning these objects are NOT found within the system backend, they will be persisted into the system backend at the very end of the bootstrap stage so they can be resolved in the solid state. Changes to these objects via LDAP within the system backend by the admin persist across bootstrap sessions. They persist because the bootstrap object is never stored in the system backend if a record for that object already exists.

Why are we storing a configuration directly in Java code? First off the likelihood of altering schema object fields to bootstrap the system is highly unlikely. Secondly most of these objects are published static entities and changing them would have serious repercussions. Hence its highly unlikely that these objects will change and there is no need to get complex to try to have an external representation for these schema objects. The representation of these objects as entries and attributes within the directory is enough of an external representation. Schema manipulation tools already exist for making changes so why have another additional mechanism/representation as well.


Notes:

Version:
$Rev$, $Date$
Author:
Apache Directory Project


Copyright © 2003-2009 Apache Software Foundation. All Rights Reserved.