public function load(Config $config)
 {
     $this->resourceMap = CacheManager::loadResource(self::CONTEXT_RESOURCE_NAME, CacheManager::APPLICATION_SCOPE);
     if ($this->resourceMap == null) {
         ApplicationInitializer::loadAssets(ASSETS_DIRECTORY);
         $this->resourceMap = $this->loadResourceMap($this->getClasses());
         CacheManager::saveResource(self::CONTEXT_RESOURCE_NAME, $this->resourceMap, CacheManager::APPLICATION_SCOPE);
     }
     $this->createResources();
     $this->loadDataSources($config->getDataSources());
     return new ApplicationContext($this->resources);
 }