示例#1
0
        public ServerManager(IServiceMessageProcessor serviceMessageProcessor, ITaskRepository taskRepository, IUnitOfWorkFactory unitOfWorkFactory, IServerRepository serverRepository, IContextSettings contextSettings, ServerManagerConfiguration serverManagerConfiguration)
            : base(serverManagerConfiguration)
        {
            if (serviceMessageProcessor == null)
            {
                throw new ArgumentNullException(nameof(serviceMessageProcessor));
            }
            if (taskRepository == null)
            {
                throw new ArgumentNullException(nameof(taskRepository));
            }
            if (unitOfWorkFactory == null)
            {
                throw new ArgumentNullException(nameof(unitOfWorkFactory));
            }
            if (contextSettings == null)
            {
                throw new ArgumentNullException(nameof(contextSettings));
            }
            if (serverRepository == null)
            {
                throw new ArgumentNullException(nameof(serverRepository));
            }

            this.serviceMessageProcessor = serviceMessageProcessor;
            this.taskRepository          = taskRepository;
            this.unitOfWorkFactory       = unitOfWorkFactory;
            this.contextSettings         = contextSettings;
            this.serverRepository        = serverRepository;

            queues = managerConfiguration.Queues;
            queues.Add("default");
        }
示例#2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RegistryService"/> class.
        /// </summary>
        /// <param name="registryConfigurationOptions">The registry configuration options.</param>
        /// <param name="messageSerializer">The message serializer.</param>
        /// <param name="serviceMessageProcessor">The service message processor.</param>
        /// <param name="messageToServiceMapper">The message to service mapper.</param>
        /// <param name="messageTypeCache">The message type cache.</param>
        /// <param name="accessTokenService">The access token service.</param>
        /// <param name="registryServiceLogger">The registry service logger.</param>
        /// <param name="tcpNetworkConnectorLogger">The tcp network connector logger.</param>
        /// <param name="registryServiceMessageProcessorLogger">The registry service message processor logger.</param>
        /// <param name="httpNetworkConnectorLogger">The http network connector logger.</param>
        public RegistryService(
            IOptions <RegistryConfiguration> registryConfigurationOptions,
            IMessageSerializer messageSerializer,
            IServiceMessageProcessor serviceMessageProcessor,
            IMessageToServiceMapper messageToServiceMapper,
            IRegistryServiceMessageTypeCache messageTypeCache,
            IAccessTokenService accessTokenService,
            ILogger <RegistryService> registryServiceLogger,
            ILogger <TcpNetworkConnector> tcpNetworkConnectorLogger,
            ILogger <RegistryServiceMessageProcessor> registryServiceMessageProcessorLogger,
            ILogger <HttpNetworkConnector> httpNetworkConnectorLogger)
        {
            _messageSerializer               = messageSerializer;
            _serviceMessageProcessor         = serviceMessageProcessor;
            _registryServiceMessageProcessor = new RegistryServiceMessageProcessor(this, registryServiceMessageProcessorLogger);
            _messageToServiceMapper          = messageToServiceMapper;
            RegistryConfiguration registryConfiguration = registryConfigurationOptions.Value;

            _tcpListener                = new TcpListener(IPAddress.Any, registryConfiguration.Port);
            _messageTypeCache           = messageTypeCache;
            _accessTokenService         = accessTokenService;
            _registryServiceLogger      = registryServiceLogger;
            _tcpNetworkConnectorLogger  = tcpNetworkConnectorLogger;
            _httpNetworkConnectorLogger = httpNetworkConnectorLogger;
        }
示例#3
0
 public TeamCityArtifactsWriter(IServiceMessageProcessor target)
     : base(target)
 {
     if (target == null)
     {
         throw new ArgumentNullException(nameof(target));
     }
 }
 /// <summary>
 /// Creates generic processor that calls messages updaters and sends output to provided deledate.
 /// </summary>
 /// <param name="processor">writer of service messages objects</param>
 /// <param name="generator">flow id generator that is called to create next flowId</param>
 /// <param name="updaters">service message updaters, i.e. timestamp updater</param>
 public FlowServiceMessageWriter([NotNull] IServiceMessageProcessor processor,
                                 [NotNull] IFlowIdGenerator generator,
                                 [NotNull] IEnumerable <IServiceMessageUpdater> updaters)
 {
     myProcessor = processor;
     myGenerator = generator;
     myUpdaters  = IncludeFlowId(updaters);
 }
示例#5
0
 public TeamCityWriterFacade(
     [NotNull] IServiceMessageProcessor processor,
     [NotNull] ITeamCityBlockWriter <ITeamCityWriter> blockWriter,
     [NotNull] ITeamCityCompilationBlockWriter <ITeamCityWriter> compilationWriter,
     [NotNull] ITeamCityTestsWriter testsWriter,
     [NotNull] ITeamCityMessageWriter messageWriter,
     [NotNull] ITeamCityArtifactsWriter artifactsWriter,
     [NotNull] ITeamCityBuildStatusWriter statusWriter,
     [NotNull] ITeamCityFlowWriter <ITeamCityWriter> flowWriter,
     [NotNull] IDisposable disposeCallback)
 {
     if (processor == null)
     {
         throw new ArgumentNullException(nameof(processor));
     }
     if (blockWriter == null)
     {
         throw new ArgumentNullException(nameof(blockWriter));
     }
     if (compilationWriter == null)
     {
         throw new ArgumentNullException(nameof(compilationWriter));
     }
     if (testsWriter == null)
     {
         throw new ArgumentNullException(nameof(testsWriter));
     }
     if (messageWriter == null)
     {
         throw new ArgumentNullException(nameof(messageWriter));
     }
     if (artifactsWriter == null)
     {
         throw new ArgumentNullException(nameof(artifactsWriter));
     }
     if (statusWriter == null)
     {
         throw new ArgumentNullException(nameof(statusWriter));
     }
     if (flowWriter == null)
     {
         throw new ArgumentNullException(nameof(flowWriter));
     }
     if (disposeCallback == null)
     {
         throw new ArgumentNullException(nameof(disposeCallback));
     }
     _processor         = processor;
     _blockWriter       = blockWriter;
     _compilationWriter = compilationWriter;
     _testsWriter       = testsWriter;
     _messageWriter     = messageWriter;
     _artifactsWriter   = artifactsWriter;
     _statusWriter      = statusWriter;
     _flowWriter        = flowWriter;
     _dispose           = disposeCallback;
 }
 public TeamCityBlockWriter(IServiceMessageProcessor target, Func <IDisposable, TCloseBlock> closeBlock)
     : base(target)
 {
     if (target == null)
     {
         throw new ArgumentNullException(nameof(target));
     }
     if (closeBlock == null)
     {
         throw new ArgumentNullException(nameof(closeBlock));
     }
     _closeBlock = closeBlock;
 }
示例#7
0
 private TeamCityWriterImpl(
     [NotNull] IServiceMessageProcessor processor,
     [NotNull] TeamCityFlowWriter <ITeamCityWriter> flowWriter,
     [NotNull] TeamCityBlockWriter <ITeamCityWriter> blockWriter,
     [NotNull] TeamCityCompilationBlockWriter <ITeamCityWriter> compilationWriter,
     [NotNull] TeamCityTestSuiteBlock testsWriter,
     [NotNull] ITeamCityMessageWriter messageWriter,
     [NotNull] ITeamCityArtifactsWriter artifactsWriter,
     [NotNull] ITeamCityBuildStatusWriter statusWriter,
     [NotNull] IDisposable dispose)
     : base(processor, blockWriter, compilationWriter, testsWriter, messageWriter, artifactsWriter, statusWriter, flowWriter, dispose)
 {
     if (processor == null)
     {
         throw new ArgumentNullException(nameof(processor));
     }
     if (flowWriter == null)
     {
         throw new ArgumentNullException(nameof(flowWriter));
     }
     if (blockWriter == null)
     {
         throw new ArgumentNullException(nameof(blockWriter));
     }
     if (compilationWriter == null)
     {
         throw new ArgumentNullException(nameof(compilationWriter));
     }
     if (testsWriter == null)
     {
         throw new ArgumentNullException(nameof(testsWriter));
     }
     if (messageWriter == null)
     {
         throw new ArgumentNullException(nameof(messageWriter));
     }
     if (artifactsWriter == null)
     {
         throw new ArgumentNullException(nameof(artifactsWriter));
     }
     if (statusWriter == null)
     {
         throw new ArgumentNullException(nameof(statusWriter));
     }
     if (dispose == null)
     {
         throw new ArgumentNullException(nameof(dispose));
     }
     _writeCheck = new ISubWriter[] { blockWriter, compilationWriter, testsWriter, flowWriter };
 }
 /// <summary>
 /// Creates generic processor that calls messages updaters and sends output to provided deledate.
 /// </summary>
 /// <param name="processor">writer of service messages objects</param>
 /// <param name="generator">flow id generator that is called to create next flowId</param>
 /// <param name="updaters">service message updaters, i.e. timestamp updater</param>
 public FlowServiceMessageWriter([NotNull] IServiceMessageProcessor processor,
                                 [NotNull] IFlowIdGenerator generator,
                                 [NotNull] IEnumerable <IServiceMessageUpdater> updaters)
 {
     if (processor == null)
     {
         throw new ArgumentNullException(nameof(processor));
     }
     if (generator == null)
     {
         throw new ArgumentNullException(nameof(generator));
     }
     if (updaters == null)
     {
         throw new ArgumentNullException(nameof(updaters));
     }
     _processor = processor;
     _generator = generator;
     _updaters  = IncludeFlowId(updaters);
 }
示例#9
0
 /// <summary>
 /// Initializes an instance of the <see cref="ClientMessageProcessor"/> class.
 /// </summary>
 /// <param name="messageToServiceMapper">The message to service mapper.</param>
 /// <param name="messageSerializer">The message serializer.</param>
 /// <param name="messageQueueConfigurationOptions">The message queue configuration options.</param>
 /// <param name="serviceMessageProcessor">The service message processor.</param>
 /// <param name="messageTypeCache">The message type cache.</param>
 /// <param name="clientMessageProcessorLogger">The client message processor logger.</param>
 /// <param name="sslWSNetworkConnectorLogger">The ssl websocket network connector logger.</param>
 /// <param name="wsHandshakeLogger">The websocket handshake logger.</param>
 public ClientMessageProcessor(
     IMessageToServiceMapper messageToServiceMapper,
     IMessageSerializer messageSerializer,
     IOptions <MessageQueueConfiguration> messageQueueConfigurationOptions,
     IServiceMessageProcessor serviceMessageProcessor,
     IClientMessageTypeCache messageTypeCache,
     ILogger <ClientMessageProcessor> clientMessageProcessorLogger,
     ILogger <SslWSNetworkConnector> sslWSNetworkConnectorLogger,
     ILogger <NeuralmWSHandshakeHandler> wsHandshakeLogger)
 {
     _messageToServiceMapper       = messageToServiceMapper;
     _messageSerializer            = messageSerializer;
     _messageQueueConfiguration    = messageQueueConfigurationOptions.Value;
     _serviceMessageProcessor      = serviceMessageProcessor;
     _messageTypeCache             = messageTypeCache;
     _clientMessageProcessorLogger = clientMessageProcessorLogger;
     _sslWSNetworkConnectorLogger  = sslWSNetworkConnectorLogger;
     _wsHandshakeLogger            = wsHandshakeLogger;
     _tcpListener = new TcpListener(IPAddress.Any, _messageQueueConfiguration.Port);
 }
 public TeamCityWriterFacade([NotNull] IServiceMessageProcessor processor,
                             [NotNull] ITeamCityBlockWriter <ITeamCityWriter> blockWriter,
                             [NotNull] ITeamCityCompilationBlockWriter <ITeamCityWriter> compilationWriter,
                             [NotNull] ITeamCityTestsWriter testsWriter,
                             [NotNull] ITeamCityMessageWriter messageWriter,
                             [NotNull] ITeamCityArtifactsWriter artifactsWriter,
                             [NotNull] ITeamCityBuildStatusWriter statusWriter,
                             [NotNull] ITeamCityFlowWriter <ITeamCityWriter> flowWriter,
                             [NotNull] IDisposable disposeCallback)
 {
     myProcessor         = processor;
     myBlockWriter       = blockWriter;
     myCompilationWriter = compilationWriter;
     myTestsWriter       = testsWriter;
     myMessageWriter     = messageWriter;
     myArtifactsWriter   = artifactsWriter;
     myStatusWriter      = statusWriter;
     myFlowWriter        = flowWriter;
     myDispose           = disposeCallback;
 }
示例#11
0
 public TeamCityBlockWriter(IServiceMessageProcessor target, Func <IDisposable, TCloseBlock> closeBlock) : base(target)
 {
     myCloseBlock = closeBlock;
 }
 protected sealed override T Create(IServiceMessageProcessor proc)
 {
     return(Create(new FlowServiceMessageWriter(proc, new DefaultFlowIdGenerator(), Enumerable.Empty <IServiceMessageUpdater>())));
 }
 protected abstract T Create(IServiceMessageProcessor proc);
        public TaskManager(IScheduleRepository scheduleRepository, ITaskRepository taskRepository, IJsonConverter jsonConverter, ITaskBuilder taskBuilder, ITaskProcessing taskProcessing, IServiceMessageProcessor serviceMessageProcessor, IUnitOfWorkFactory unitOfWorkFactory, IContextSettings contextSettings, TaskManagerConfiguration managerConfiguration) : base(managerConfiguration)
        {
            if (scheduleRepository == null)
            {
                throw new ArgumentNullException(nameof(scheduleRepository));
            }
            if (taskRepository == null)
            {
                throw new ArgumentNullException(nameof(taskRepository));
            }
            if (jsonConverter == null)
            {
                throw new ArgumentNullException(nameof(jsonConverter));
            }
            if (taskBuilder == null)
            {
                throw new ArgumentNullException(nameof(taskBuilder));
            }
            if (taskProcessing == null)
            {
                throw new ArgumentNullException(nameof(taskProcessing));
            }
            if (serviceMessageProcessor == null)
            {
                throw new ArgumentNullException(nameof(serviceMessageProcessor));
            }
            if (unitOfWorkFactory == null)
            {
                throw new ArgumentNullException(nameof(unitOfWorkFactory));
            }
            if (contextSettings == null)
            {
                throw new ArgumentNullException(nameof(contextSettings));
            }

            this.scheduleRepository = scheduleRepository;
            this.taskRepository     = taskRepository;
            this.jsonConverter      = jsonConverter;
            this.taskBuilder        = taskBuilder;
            this.taskProcessing     = taskProcessing;
            this.unitOfWorkFactory  = unitOfWorkFactory;
            this.contextSettings    = contextSettings;

            ServiceMessageHandlerId = Guid.NewGuid();
            serviceMessageProcessor.RegisteredServiceMessageHandler(this);

            taskProcessing.OnTaskProcessed += OnTaskProcessed;
        }
示例#15
0
 public TeamCityArtifactsWriter(IServiceMessageProcessor target) : base(target)
 {
 }
示例#16
0
 protected override ITeamCityMessageWriter Create(IServiceMessageProcessor proc)
 {
     return(new TeamCityMessageWriter(proc));
 }
 public TeamCityMessageWriter(IServiceMessageProcessor target)
     : base(target)
 {
 }
 public TeamCityBuildStatusWriter(IServiceMessageProcessor target) : base(target)
 {
 }
 protected override ITeamCityTestWriter Create(IServiceMessageProcessor proc)
 {
     return(new TeamCityTestWriter(proc, "BadaBumBigBadaBum", DisposableDelegate.Empty));
 }
示例#20
0
 protected override ITeamCityCompilationBlockWriter Create(IServiceMessageProcessor proc)
 {
     return(new TeamCityCompilationBlockWriter(proc));
 }