code: public void init(CmsConfigurationManager configurationManager, I_CmsDbContextFactory dbContextFactory)
      throws CmsException, Exception {
  
          // initialize the access-module.
          if (CmsLog.INIT.isInfoEnabled()) {
              CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_DRIVER_MANAGER_START_PHASE4_0));
          }
          // store local reference to the memory monitor to avoid multiple lookups through the OpenCms singelton
          m_monitor = OpenCms.getMemoryMonitor();
  
          CmsSystemConfiguration systemConfiguation = (CmsSystemConfiguration)configurationManager.getConfiguration(
              CmsSystemConfiguration.class);
          CmsCacheSettings settings = systemConfiguation.getCacheSettings();
  
          // initialize the key generator
          m_keyGenerator = (I_CmsCacheKey)Class.forName(settings.getCacheKeyGenerator()).newInstance();
  
          // initialize the HTML link validator
          m_htmlLinkValidator = new CmsRelationSystemValidator(this);
  
          // fills the defaults if needed
          CmsDbContext dbc1 = dbContextFactory.getDbContext();
          getUserDriver().fillDefaults(dbc1);
          getProjectDriver().fillDefaults(dbc1);
  
          // set the driver manager in the publish engine
          m_publishEngine.setDriverManager(this);
          // create the root organizational unit if needed
          CmsDbContext dbc2 = dbContextFactory.getDbContext(
              new CmsRequestContext(
                  readUser(dbc1, OpenCms.getDefaultUsers().getUserAdmin()),
                  readProject(dbc1, CmsProject.ONLINE_PROJECT_ID),
                  null,
                  CmsSiteMatcher.DEFAULT_MATCHER,
                  "",
                  false,
                  null,
                  null,
                  null,
                  0,
                  null,
                  null,
                  ""));
          dbc1.clear();
          getUserDriver().createRootOrganizationalUnit(dbc2);
          dbc2.clear();
      }
docs: Initializes the driver and sets up all required modules and connections.<p>
  
  @param configurationManager the configuration manager
  @param dbContextFactory the db context factory
  
  @throws CmsException if something goes wrong
  @throws Exception if something goes wrong