code: public void init (Injector injector)
          throws Exception
      {
          // output general system information
          SystemInfo si = new SystemInfo();
          log.info("Starting up", "server", getClass().getSimpleName(), "os", si.osToString(),
              "jvm", si.jvmToString());
  
          registerSignalHandlers(injector);
  
          // initialize our deprecated legacy static references
          omgr = _omgr;
          invmgr = _invmgr;
  
          // configure the dobject manager with our access controller
          _omgr.setDefaultAccessController(createDefaultObjectAccessController());
  
          // start the main and auth invoker threads
          ((PresentsInvoker)_invoker).start(this);
          _authInvoker.start();
          ((PresentsInvoker)_invoker).addInterdependentInvoker(_authInvoker);
  
          // provide our client manager with the injector it needs
          _clmgr.setInjector(injector);
  
          // Create our socket opening objects now that we know what ports we're using.
          _lifecycle.addComponent(_socketAcceptor = createSocketAcceptor());
          _datagramReader =
              new DatagramChannelReader(getDatagramHostname(), getDatagramPorts(), _conmgr);
          _lifecycle.addComponent(_datagramReader);
  
          // initialize the time base services
          TimeBaseProvider.init(_invmgr, _omgr);
  
          // make the client manager shut down before the invoker and dobj threads; this helps
          // application code to avoid long chains of shutdown constraints
          _lifecycle.addShutdownConstraint(
              _clmgr, Lifecycle.Constraint.RUNS_BEFORE, (PresentsInvoker)_invoker);
  
          // initialize all of our registered components
          _lifecycle.init();
      }
docs: Initializes all of the server services and prepares for operation.