code: protected void initialize(CmsObject adminCms, boolean publishQueuePersistance, int publishQueueShutdowntime)
      throws CmsException {
  
          // check the driver manager
          if ((m_driverManager == null) || (m_dbContextFactory == null)) {
              throw new CmsPublishException(Messages.get().container(Messages.ERR_PUBLISH_ENGINE_NOT_INITIALIZED_0));
          }
  
          m_publishQueueShutdowntime = publishQueueShutdowntime;
  
          // initially the engine is stopped, must be restartet after full system initialization
          m_engineState = CmsPublishEngineState.ENGINE_STOPPED;
          // read the publish history from the repository
          m_publishHistory.initialize();
          // read the queue from the repository
          m_publishQueue.initialize(adminCms, publishQueuePersistance);
      }
docs: Initializes the publish engine.<p>
  
  @param adminCms the admin cms
  @param publishQueuePersistance flag if the queue is persisted
  @param publishQueueShutdowntime amount of time to wait for a publish job during shutdown
  
  @throws CmsException if something goes wrong