public bool Send(IMessage message) { IProducer producer; if (!producerContainer.ContainsKey(message.Headers[BuiltinKeys.Topic])) { MessagingAccessPoint accessPoint = MessagingAccessPointFactory.getMessagingAccessPoint(); Dictionary <string, string> properties = new Dictionary <string, string>(); if (message.Headers.TryGetValue(BuiltinKeys.Exchange, out string exchange)) { properties.Add(BuiltinKeys.Exchange, exchange); } if (message.Headers.TryGetValue(BuiltinKeys.Topic, out string topic)) { properties.Add(BuiltinKeys.Topic, topic); } producer = accessPoint.createProducer(properties); producer.startup(); producerContainer.TryAdd(message.Headers[BuiltinKeys.Topic], producer); } else { producer = producerContainer[message.Headers[BuiltinKeys.Topic]]; } return(producer.Send(message)); }
public void Add(string exchange, string topic) { if (!consumerContainer.ContainsKey(topic)) { Dictionary <string, string> properties = new Dictionary <string, string>(); properties.Add(BuiltinKeys.Exchange, exchange); properties.Add(BuiltinKeys.Topic, topic); MessagingAccessPoint accessPoint = MessagingAccessPointFactory.getMessagingAccessPoint(configuration.GetConnectionString("MTConnectionString")); IConsumer consumer = accessPoint.createConsumer(properties); consumer.startup(); consumer.resume(); consumerContainer.TryAdd(topic, consumer); } }
public bool Send(IMessage message) { IProducer producer; if (!producerContainer.ContainsKey(message.Headers[BuiltinKeys.Topic])) { MessagingAccessPoint accessPoint = MessagingAccessPointFactory.getMessagingAccessPoint(configuration.GetConnectionString("MTConnectionString")); producer = accessPoint.createProducer(message.Headers); producer.startup(); producerContainer.TryAdd(message.Headers[BuiltinKeys.Topic], producer); } else { producer = producerContainer[message.Headers[BuiltinKeys.Topic]]; } return(producer.Send(message)); }
public void Add(string exchange, string topic) { if (!consumerContainer.ContainsKey(topic)) { Dictionary <string, string> properties = new Dictionary <string, string>(); properties.Add(BuiltinKeys.Exchange, exchange); properties.Add(BuiltinKeys.Topic, topic); MessagingAccessPoint accessPoint = MessagingAccessPointFactory.getMessagingAccessPoint(); IConsumer consumer = accessPoint.createConsumer(properties); consumer.setProcessor(new RestApiProcessor()); if (monitor != null) { consumer.addMonitor(monitor); } consumer.startup(); consumer.resume(); consumerContainer.TryAdd(topic, consumer); } }
public static MessagingAccessPoint getMessagingAccessPoint(string connectionString, Dictionary <string, string> properties) { AccessPointURI uri = new AccessPointURI(connectionString); string driverImpl = parseDriverImpl(uri.getDriverType(), properties); properties.Add("driverimpl", driverImpl); properties.Add("hostaddress", uri.getHostAddress()); if (uri.getProperties() != null && uri.getProperties().Count > 0) { List <KeyValuePair <string, string> > props = uri.getProperties(); props.ForEach(prop => { properties.Add(prop.Key, prop.Value); }); } MessagingAccessPoint vendorImpl = Activator.CreateInstance(Type.GetType(driverImpl), args: properties) as MessagingAccessPoint; return(vendorImpl); }