Configuration parameters for YAMS.
コード例 #1
0
ファイル: YamsDiModule.cs プロジェクト: zhonli/Yams
 public YamsDiModule(YamsConfig config, IDeploymentRepository deploymentRepository,
                     IDeploymentStatusWriter deploymentStatusWriter,
                     IUpdateSessionManager updateSessionManager)
 {
     _container = RegisterTypes(config, deploymentRepository, deploymentStatusWriter,
                                updateSessionManager).Build();
 }
コード例 #2
0
ファイル: YamsDiModule.cs プロジェクト: pikaih/Yams
 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();
 }
コード例 #3
0
ファイル: DIModule.cs プロジェクト: sergeybykov/Yams
 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));
     }));
 }
コード例 #4
0
ファイル: YamsServiceFactory.cs プロジェクト: Microsoft/Yams
        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;
        }
コード例 #5
0
        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);
        }
コード例 #6
0
ファイル: YamsDiModule.cs プロジェクト: zhonli/Yams
        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);
        }
コード例 #7
0
ファイル: YamsDiModule.cs プロジェクト: Microsoft/Yams
        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;
        }
コード例 #8
0
ファイル: DIModule.cs プロジェクト: sergeybykov/Yams
        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);
        }
コード例 #9
0
ファイル: DIModule.cs プロジェクト: ReubenBond/Yams
        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);
        }
コード例 #10
0
ファイル: DIModule.cs プロジェクト: ReubenBond/Yams
 private static void RegisterConfig(IUnityContainer container, YamsConfig config)
 {
     container.RegisterInstance(config);
 }
コード例 #11
0
ファイル: YamsEntryPoint.cs プロジェクト: ReubenBond/Yams
 public YamsEntryPoint(YamsConfig config) : this(InitializeDefaultUnityContainer(config))
 {
 }
コード例 #12
0
ファイル: YamsEntryPoint.cs プロジェクト: ReubenBond/Yams
 public static IUnityContainer InitializeDefaultUnityContainer(YamsConfig config)
 {
     _unityContainer = new UnityContainer();
     DiModule.RegisterTypes(_unityContainer, config);
     return _unityContainer;
 }
コード例 #13
0
ファイル: YamsDiModule.cs プロジェクト: Microsoft/Yams
 private static void RegisterConfig(ContainerBuilder builder, YamsConfig config)
 {
     builder.RegisterInstance(config);
 }
コード例 #14
0
ファイル: YamsEntryPoint.cs プロジェクト: ca-ta/Yams
 public static IContainer InitializeDefaultModules(YamsConfig config)
 {
     var builder = new ContainerBuilder();
     DiModule.RegisterTypes(builder, config);
     return builder.Build();
 }
コード例 #15
0
ファイル: YamsEntryPoint.cs プロジェクト: ca-ta/Yams
 public YamsEntryPoint(YamsConfig config) : this(InitializeDefaultModules(config))
 {
 }
コード例 #16
0
 public static IUnityContainer InitializeDefaultUnityContainer(YamsConfig config)
 {
     _unityContainer = new UnityContainer();
     DiModule.RegisterTypes(_unityContainer, config);
     return(_unityContainer);
 }
コード例 #17
0
ファイル: YamsDiModule.cs プロジェクト: Microsoft/Yams
 public YamsDiModule(YamsConfig config, IDeploymentRepository deploymentRepository, 
     IUpdateSessionManager updateSessionManager)
 {
     _container = RegisterTypes(config, deploymentRepository, updateSessionManager).Build();
 }
コード例 #18
0
ファイル: DIModule.cs プロジェクト: sergeybykov/Yams
 private static void RegisterConfig(IUnityContainer container, YamsConfig config)
 {
     container.RegisterInstance(config);
 }
コード例 #19
0
ファイル: YamsDiModule.cs プロジェクト: pikaih/Yams
 private static void RegisterConfig(ContainerBuilder builder, YamsConfig config)
 {
     builder.RegisterInstance(config);
 }
コード例 #20
0
 public YamsEntryPoint(YamsConfig config) : this(InitializeDefaultUnityContainer(config))
 {
 }