/// <summary> /// Initializes a new <see cref="DeployService"/>. /// </summary> /// <param name="syncService">Service used for synchronizing package versions.</param> /// <param name="fusionService">Service used for fusing packages.</param> /// <param name="scheduleService">Service used for orchestrating fusion packages.</param> /// <param name="announcementFactory">Factory that creates <see cref="IDeployAnnouncement"/> instances.</param> /// <param name="packageVersionValidator">The validator that is used to validate announced package version(s).</param> public DeployService( ISyncService syncService, IFusionService fusionService, IScheduleService scheduleService, IDeployAnnouncementFactory announcementFactory, IPackageVersionValidator packageVersionValidator) { this.syncService = syncService; this.fusionService = fusionService; this.scheduleService = scheduleService; this.announcementFactory = announcementFactory; this.packageVersionValidator = packageVersionValidator; }
/// <summary> /// Initializes a new <see cref="FusionService"/>. /// </summary> /// <param name="logService">Service used for logging.</param> /// <param name="configStore">Store used for loading configuration.</param> /// <param name="syncService">Service used for synchronization of package versions.</param> /// <param name="fusionFactory">Factory used for creating <see cref="IFusion"/> instances.</param> /// <param name="fusionExtractor">Extractor used for extracting streams of fusions.</param> /// <param name="fusionBuilder">Builder used to build a <see cref="IFusion"/> before it's extracted.</param> /// <param name="announcementFactory">Factory used for creating instances of <see cref="IDeployAnnouncement"/>.</param> /// <param name="packageVersionValidator">Validator used for validating <see cref="PackageVersion"/> availability.</param> public FusionService( ILog logService, IConfigStore configStore, ISyncService syncService, IFusionFactory fusionFactory, IFusionExtracter fusionExtractor, IFusionBuilder fusionBuilder, IDeployAnnouncementFactory announcementFactory, IPackageVersionValidator packageVersionValidator) { this.logService = logService; this.configStore = configStore; this.syncService = syncService; this.fusionFactory = fusionFactory; this.fusionExtractor = fusionExtractor; this.fusionBuilder = fusionBuilder; this.announcementFactory = announcementFactory; this.packageVersionValidator = packageVersionValidator; }
/// <summary> /// Initializes a new <see cref="ScheduleService"/>. /// </summary> /// <param name="logService">Service used for logging.</param> /// <param name="configStore">Store used for loading configuration.</param> /// <param name="fusionService">Service used for resolving fusion extractions.</param> /// <param name="fusionProcessFactory">Factory used for creating <see cref="IFusionProcess"/> instances.</param> /// <param name="announcementFactory">Factory that creates <see cref="IDeployAnnouncement"/> instances.</param> /// <param name="drainers">Collection of drainers that needs to determine if a <see cref="IFusionProcess"/> is ready for teardown.</param> /// <param name="interceptors">Collection of interceptors thats needs to be fired on certain events.</param> public ScheduleService( ILog logService, IConfigStore configStore, IFusionService fusionService, IFusionProcessFactory fusionProcessFactory, IDeployAnnouncementFactory announcementFactory, IEnumerable <IFusionProcessDrainer> drainers, IEnumerable <IFusionProcessInterceptor> interceptors) { this.logService = logService; this.configStore = configStore; this.fusionService = fusionService; this.fusionProcessFactory = fusionProcessFactory; this.announcementFactory = announcementFactory; this.drainers = drainers.StaleReadOnly(); this.interceptors = interceptors.StaleReadOnly(); syncLock = new SemaphoreSlim(nrOfSimultaneousOperations); processes = new SortedDictionary <string, IFusionProcess>( StringComparer.OrdinalIgnoreCase); }