public YamsDiModule(YamsConfig config, IDeploymentRepository deploymentRepository, IDeploymentStatusWriter deploymentStatusWriter, IUpdateSessionManager updateSessionManager) { _container = RegisterTypes(config, deploymentRepository, deploymentStatusWriter, updateSessionManager).Build(); }
private static void RegisterApplicationConfigSymbolResolver(ContainerBuilder builder) { builder.Register <IApplicationConfigSymbolResolver>(c => { YamsConfig config = c.Resolve <YamsConfig>(); return(new ApplicationConfigSymbolResolver(config.ClusterId, config.InstanceId, config.ClusterProperties)); }).SingleInstance(); }
private static void RegisterApplicationConfigSymbolResolver(IUnityContainer container) { container.RegisterType <IApplicationConfigSymbolResolver>(new ContainerControlledLifetimeManager(), new InjectionFactory(c => { YamsConfig config = c.Resolve <YamsConfig>(); return(new ApplicationConfigSymbolResolver(config.CloudServiceDeploymentId, config.RoleInstanceId)); })); }
public static IYamsService Create(YamsConfig yamsConfig, string deploymentRepositoryStorageConnectionString, string updateSessionStorageConnectionString) { IUpdateSessionManager updateSessionManager = new AzureBlobStorageUpdateSessionDiModule( yamsConfig.ClusterId, yamsConfig.InstanceId, yamsConfig.InstanceUpdateDomain, updateSessionStorageConnectionString).UpdateSessionManager; IDeploymentRepository deploymentRepository = BlobStorageDeploymentRepository.Create(deploymentRepositoryStorageConnectionString); return new YamsDiModule(yamsConfig, deploymentRepository, updateSessionManager).YamsService; }
public static IYamsService Create(YamsConfig yamsConfig, string deploymentRepositoryStorageConnectionString, string updateSessionStorageConnectionString) { IUpdateSessionManager updateSessionManager = new AzureBlobStorageUpdateSessionDiModule( yamsConfig.ClusterDeploymentId, yamsConfig.InstanceId, yamsConfig.InstanceUpdateDomain, updateSessionStorageConnectionString).UpdateSessionManager; IDeploymentRepository deploymentRepository = new BlobStorageDeploymentRepository(deploymentRepositoryStorageConnectionString); return(new YamsDiModule(yamsConfig, deploymentRepository, updateSessionManager).YamsService); }
public static ContainerBuilder RegisterTypes(YamsConfig config, IDeploymentRepository deploymentRepository, IDeploymentStatusWriter deploymentStatusWriter, IUpdateSessionManager updateSessionManager) { var builder = new ContainerBuilder(); RegisterConfig(builder, config); RegisterProcessFactory(builder); RegisterProcessStopper(builder); RegisterApplicationConfigSymbolResolver(builder); RegisterApplicationConfigParser(builder); RegisterConfigurableApplicationFactory(builder); RegisterApplicationDeploymentDirectory(builder); RegisterApplicationPool(builder); RegisterApplicationInstaller(builder); RegisterApplicationDownloader(builder); RegisterApplicationUpdateManager(builder); RegisterDeploymentWatcher(builder); builder.RegisterInstance(updateSessionManager); builder.RegisterInstance(deploymentRepository); builder.RegisterInstance(deploymentStatusWriter); builder.RegisterType <YamsService>().As <IYamsService>().SingleInstance(); RegisterAppDeploymentMatcher(builder); builder.RegisterType <DiagnosticsTraceWriter>().As <ITraceWriter>().SingleInstance(); builder.RegisterType <JsonSerializer>().As <IJsonSerializer>().SingleInstance(); builder.RegisterType <Os.System>().As <ISystem>().SingleInstance(); return(builder); }
public static ContainerBuilder RegisterTypes(YamsConfig config, IDeploymentRepository deploymentRepository, IUpdateSessionManager updateSessionManager) { var builder = new ContainerBuilder(); RegisterConfig(builder, config); RegisterProcessFactory(builder); RegisterProcessStopper(builder); RegisterApplicationConfigSymbolResolver(builder); RegisterApplicationConfigParser(builder); RegisterConfigurableApplicationFactory(builder); RegisterApplicationDeploymentDirectory(builder); RegisterApplicationPool(builder); RegisterApplicationInstaller(builder); RegisterApplicationDownloader(builder); RegisterApplicationUpdateManager(builder); RegisterDeploymentWatcher(builder); builder.RegisterInstance(updateSessionManager); builder.RegisterInstance(deploymentRepository); builder.RegisterType<YamsService>().As<IYamsService>().SingleInstance(); RegisterAppDeploymentMatcher(builder); builder.RegisterType<DiagnosticsTraceWriter>().As<ITraceWriter>().SingleInstance(); builder.RegisterType<JsonSerializer>().As<IJsonSerializer>().SingleInstance(); return builder; }
public static void RegisterTypes(IUnityContainer container, YamsConfig config) { RegisterConfig(container, config); RegisterCloudStorageAccount(container); RegisterCloudBlobClient(container); RegisterBlobLeaseFactory(container); RegisterBlobLeaseFactory(container); RegisterProcessFactory(container); RegisterProcessStopper(container); RegisterUpdateSessionManager(container); RegisterApplicationConfigSymbolResolver(container); RegisterApplicationConfigParser(container); RegisterConfigurableApplicationFactory(container); RegisterUpdateSessionManagerConfig(container); RegisterApplicationDeploymentDirectory(container); RegisterApplicationPool(container); RegisterApplicationInstaller(container); RegisterApplicationDownloader(container); RegisterApplicationUpdateManager(container); RegisterDeploymentWatcher(container); RegisterRemoteDirectory(container); }
private static void RegisterConfig(IUnityContainer container, YamsConfig config) { container.RegisterInstance(config); }
public YamsEntryPoint(YamsConfig config) : this(InitializeDefaultUnityContainer(config)) { }
public static IUnityContainer InitializeDefaultUnityContainer(YamsConfig config) { _unityContainer = new UnityContainer(); DiModule.RegisterTypes(_unityContainer, config); return _unityContainer; }
private static void RegisterConfig(ContainerBuilder builder, YamsConfig config) { builder.RegisterInstance(config); }
public static IContainer InitializeDefaultModules(YamsConfig config) { var builder = new ContainerBuilder(); DiModule.RegisterTypes(builder, config); return builder.Build(); }
public YamsEntryPoint(YamsConfig config) : this(InitializeDefaultModules(config)) { }
public static IUnityContainer InitializeDefaultUnityContainer(YamsConfig config) { _unityContainer = new UnityContainer(); DiModule.RegisterTypes(_unityContainer, config); return(_unityContainer); }
public YamsDiModule(YamsConfig config, IDeploymentRepository deploymentRepository, IUpdateSessionManager updateSessionManager) { _container = RegisterTypes(config, deploymentRepository, updateSessionManager).Build(); }