+ .build(register);
+
+ // User manager
+ CmsUserManagerImpl userManager = new CmsUserManagerImpl();
+// for (UserDirectory userDirectory : userAdmin.getUserDirectories()) {
+// // FIXME deal with properties
+// userManager.addUserDirectory(userDirectory, new HashMap<>());
+// }
+ Component<CmsUserManagerImpl> userManagerC = new Component.Builder<>(userManager) //
+ .addType(CmsUserManager.class) //
+ .addActivation(userManager::start) //
+ .addDeactivation(userManager::stop) //
+ .addDependency(userAdminC.getType(UserAdmin.class), userManager::setUserAdmin, null) //
+ .addDependency(transactionManagerC.getType(WorkTransaction.class), userManager::setUserTransaction,
+ null) //
+ .build(register);
+
+ // Content Repository
+ DeployedContentRepository contentRepository = new DeployedContentRepository();
+ Component<DeployedContentRepository> contentRepositoryC = new Component.Builder<>(contentRepository) //
+ .addType(ProvidedRepository.class) //
+ .addType(ContentRepository.class) //
+ .addActivation(contentRepository::start) //
+ .addDeactivation(contentRepository::stop) //
+ .addDependency(cmsStateC.getType(CmsState.class), contentRepository::setCmsState, null) //
+ .addDependency(uuidFactoryC.getType(UuidFactory.class), contentRepository::setUuidFactory, null) //
+ .addDependency(userManagerC.getType(CmsUserManager.class), contentRepository::setUserManager, null) //
+ .build(register);
+
+ // CMS Deployment
+ CmsDeploymentImpl cmsDeployment = new CmsDeploymentImpl();
+ Component<CmsDeploymentImpl> cmsDeploymentC = new Component.Builder<>(cmsDeployment) //
+ .addType(CmsDeployment.class) //
+ .addActivation(cmsDeployment::start) //
+ .addDeactivation(cmsDeployment::stop) //
+ .addDependency(cmsStateC.getType(CmsState.class), cmsDeployment::setCmsState, null) //
+// .addDependency(deployConfigC.getType(DeployConfig.class), cmsDeployment::setDeployConfig, null) //