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));
        }
Beispiel #2
0
 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);
     }
 }
Beispiel #3
0
        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);
        }