internal RabbitMQTaskQueueListenerAdapterInstance(Func<IListenerAdapter> listenerAdapterFactory, Func<IRabbitMQQueueMonitor> queueMionitorFactory) { using (var proc = Process.GetCurrentProcess()) { if (proc.SessionId > 0) { _messagePublicationNotificationServiceUri = new Uri($"net.tcp://localhost:41781/RabbitMQTaskQueueListenerAdapter_{Guid.NewGuid():N}"); } } _queueMon = queueMionitorFactory(); _queueMon.MessagePublished += QueueMonitor_MessagePublished; _msgPubNotificationSvc = new MessagePublicationNotificationService(_queueMon); _msgPubNotificationSvcHost = new ServiceHost(_msgPubNotificationSvc, _messagePublicationNotificationServiceUri); _msgPubNotificationSvcHost.AddServiceEndpoint(typeof(IWasInteropService), BindingFactory.Create(_messagePublicationNotificationServiceUri), string.Empty); _msgPubNotificationSvcHost.Open(); TraceInformation($"Created callback queue on {_messagePublicationNotificationServiceUri}.", GetType()); _listenerAdapter = listenerAdapterFactory(); _listenerAdapter.ApplicationCreated += ListenerAdapter_ApplicationCreated; _listenerAdapter.ApplicationDeleted += ListenerAdapter_ApplicationDeleted; _listenerAdapter.ApplicationRequestBlockedStateChanged += ListenerAdapter_ApplicationRequestBlockedStateChanged; _listenerAdapter.ApplicationPoolCanOpenNewListenerChannelInstance += ListenerAdapter_ApplicationPoolCanOpenNewListenerChannelInstance; _listenerAdapter.ApplicationPoolListenerChannelInstancesStopped += ListenerAdapter_ApplicationPoolListenerChannelInstancesStopped; _listenerAdapter.ApplicationPoolStateChanged += ListenerAdapter_ApplicationPoolStateChanged; _listenerAdapter.ApplicationAppPoolChanged += ListenerAdapter_ApplicationAppPoolChanged; _listenerAdapter.ApplicationPoolCreated += ListenerAdapter_ApplicationPoolCreated; _listenerAdapter.ApplicationPoolDeleted += ListenerAdapter_ApplicationPoolDeleted; }
/// <summary> Constructor. </summary> /// /// <param name="processesesMonitor"> The processes monitor. </param> /// <param name="loggerFactory"> The logger factory. </param> /// <param name="configuration"> The configuration. </param> /// <param name="listenerAdapter"> The listener adapter. </param> public NotificationsService(INotificationsProcessor processesesMonitor, ILoggerFactory loggerFactory, INotificationServiceConfiguration configuration, IListenerAdapter listenerAdapter) { ProcessesesMonitor = processesesMonitor; Logger = loggerFactory.CreateLogger("TestLogger"); Configuration = configuration; ListenerAdapter = listenerAdapter; }
public MessageQueue(DotQueueAddress address, IApiTokenSource tokenSource = null) { _tokenSource = tokenSource; _httpAdapter = new HttpAdapter <T>(address, new JsonSerializer <T>(), new JsonSerializer <Message>(), _tokenSource); _listenerAdapter = new ListenerAdapter <T>(); _portResolver = new LocalPortResolver(); _durationHelper = new WaitDurationHelper(); InitializeQueueTasks(address); }
public void Setup() { _durationHelper = Substitute.For <IWaitDurationHelper>(); _durationHelper.SubscribtionRenewalSpan().Returns(TimeSpan.FromMilliseconds(100)); _portResolver = Substitute.For <ILocalPortResolver>(); _portResolver.FindFreePort().Returns(_defaultLocalPort); _listenerAdapter = Substitute.For <IListenerAdapter <Profile> >(); _httpAdapter = Substitute.For <IHttpAdapter <Profile> >(); _messageQueue = new MessageQueue <Profile>(_defaultAddress, _httpAdapter, _listenerAdapter, _portResolver, _durationHelper); }
internal MessageQueue(DotQueueAddress address, IHttpAdapter <T> httpAdapter, IListenerAdapter <T> listenerAdapter, ILocalPortResolver portResolver, IWaitDurationHelper durationHelper) { _durationHelper = durationHelper; _portResolver = portResolver; _listenerAdapter = listenerAdapter; _httpAdapter = httpAdapter; InitializeQueueTasks(address); }