/**
  * Initializes the Object framework.
  *
  * @return void
  * @author Robert Lemke <*****@*****.**>
  * @see initialize()
  */
 public function initializeObjectManager()
 {
     $this->objectFactory = new \F3\FLOW3\Object\ObjectFactory();
     $objectBuilder = new \F3\FLOW3\Object\ObjectBuilder();
     $objectBuilder->injectConfigurationManager($this->configurationManager);
     $singletonObjectsRegistry = new \F3\FLOW3\Object\TransientRegistry();
     $preliminaryReflectionService = new \F3\FLOW3\Reflection\ReflectionService();
     $this->objectManager = new \F3\FLOW3\Object\ObjectManager();
     $this->objectManager->injectSingletonObjectsRegistry($singletonObjectsRegistry);
     $this->objectManager->injectObjectBuilder($objectBuilder);
     $this->objectManager->injectObjectFactory($this->objectFactory);
     $this->objectManager->injectReflectionService($preliminaryReflectionService);
     $this->objectManager->injectConfigurationManager($this->configurationManager);
     $this->objectManager->setContext($this->context);
     $this->objectManager->initializeManager();
     // Remove the preliminary reflection service and rebuild it, this time with the proper object configuration:
     $singletonObjectsRegistry->removeObject('F3\\FLOW3\\Reflection\\ReflectionService');
     $this->objectManager->injectReflectionService($this->objectManager->getObject('F3\\FLOW3\\Reflection\\ReflectionService'));
     $singletonObjectsRegistry->putObject('F3\\FLOW3\\Resource\\ClassLoader', $this->classLoader);
     $singletonObjectsRegistry->putObject('F3\\FLOW3\\Configuration\\ConfigurationManager', $this->configurationManager);
     $this->configurationManager->injectEnvironment($this->objectManager->getObject('F3\\FLOW3\\Utility\\Environment'));
 }