|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
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. |
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:
|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |