Hi guys,

here is the new initialization process for partitions (summarized) :

Hierarchy :
-----------
AbstractPartition (initialize)
  AbstractBTreePartition (---)
    AbstractXdbmPartition (---)
      AvlPartition (doInit)
        AbstractLdifPartition (---)
          LdifPartition (doInit)
          ReadOnlyConfigurationPartition (doInit)
          SingleFileLdifPartition (doInit)
      JdbmPartition (doInit)
  DefaultPartitionNexus (doInit)
  SchemaPartition (doInit)


AbstractPartition
-----------------
initialize()
{
  if not initialized
    call doInit()
    initialized = true
}

AbstractBTreePartition
----------------------
-- no init --

DefaultPartitionNexus
---------------------
doInit()
{
  if not initialized
    register the controls in the rootDSE
    for each partition, do
      if the partition is not initialized, then call partition.initialize()
      update the partitionTree and the namingContexts
    done
}

SchemaPartition
---------------
doInit()
{
  if not initialized then
    set the wrapped partition's ID, suffixDn and schemaManager
    call wrapped partition's initialize() method
    create the synchronizer
}

AbstractXdbmPartition
---------------------
-- no init --

AvlPartition
------------
doInit()
{
  if not initialized then
    create an optimizer
    create a searchEngine
    create the master table
    setup the system and user indexes
}

JdbmPartition
-------------
doInit()
{
  if not initialized then
    create an optimizer
    create a searchEngine
    create the directory
    setup the system and user indexes
    create the recordManager
    create the master table
    delete unused indexes
}

AbstractLdifPartition
---------------------
-- no init --

LdifPartition
-------------
doInit()
{
  if not initialized then
    compute the directory where the ldif files are stored
    call the AvlPartition.doInit()
    if we have an existing directory
      load the entries into the AVLPartition
    else
      create the underlying files
store the context entry in the AVLPartition (not clear where we get it from…)
}

ReadOnlyConfigurationPartition
------------------------------
doInit()
{
  if not initialized
    call the AvlPartition.doInit()
    load the ldif entries into the AvlPartition
}

SingleFileLdifPartition
-----------------------
doInit()
{
  if not initialized
    call the AvlPartition.doInit()
    load the ldif entries into the AvlPartition
}

--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to