docs: @Override
      public void initialize(JsMessagingEngine engine) throws Exception {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "initialize", engine);
  
          // Get the admin factory class
          try {
              jsaf = JsAdminFactory.getInstance();
          } catch (Exception e) {
              // No FFDC code needed
          }
  
          // Synchronize on stateChangeLock to manage the startup of the engine with
          // potential addition of new engine components via dynamic config.
  //        processor = _mainImpl.mpService.getService().getInstance();
          ListIterator<ComponentList> li = null;
          boolean initializationFailed = false;
  
          synchronized (stateChangeLock) {
  
              setState(STATE_INITIALIZING);
              for (int i = 0; i < NUM_STOP_PHASES; i++)
              {
                  stopSequence[i] = new Vector<ComponentList>();
              }
              try
              {
                  _messageStore = JsMainAdminComponentImpl.messageStoreRef.getService();
  
              } catch (Exception e1) {
                  // TODO Auto-generated catch block
                  e1.printStackTrace();
              }
  
              _messageProcessor = loadClass(JsConstants.SIB_CLASS_MP, STOP_PHASE_1, true);
  
              // Initialize any engine components
              initializationFailed = false;
  
          } // synchronized(stateChangeLock)
          try {
              //Initialize the message store 
              _messageStore.initialize(this);
              //Initialize the message processor 
              _messageProcessor.initialize(this);
              setState(STATE_INITIALIZED);
          } catch (Exception e) {
              com.ibm.ws.ffdc.FFDCFilter.processException(e, CLASS_NAME + ".<init>", "625", this);
              SibTr.error(tc, "ME_CANNOT_BE_INITIALIZED_SIAS0033", new Object[] { _name, "MessageProcessor.java", "initialize()" });
              SibTr.exception(tc, e);
              initializationFailed = true;
  
          }
          if (initializationFailed) {
              destroy();
              // Cleanup finished...
              // Change state to UNINITIALIZED
              setState(STATE_UNINITIALIZED);
          } else {
              setState(STATE_INITIALIZED);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "initialize");
      }