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

Breifly, 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: