private static void processOptions(IConnectionInfo connectionInfo) { string brokerlist = connectionInfo.GetOption(ConnectionUrlConstants.OPTIONS_BROKERLIST); if (brokerlist != null) { //brokerlist tcp://host:port?option='value',option='value';vm://:3/virtualpath?option='value' Regex splitter = new Regex("" + URLHelper.BROKER_SEPARATOR); foreach (string broker in splitter.Split(brokerlist)) { connectionInfo.AddBrokerInfo(new AmqBrokerInfo(broker)); } connectionInfo.SetOption(ConnectionUrlConstants.OPTIONS_BROKERLIST, null); // _options.remove(OPTIONS_BROKERLIST); } string failover = connectionInfo.GetOption(ConnectionUrlConstants.OPTIONS_FAILOVER); if (failover != null) { // failover='method?option='value',option='value'' int methodIndex = failover.IndexOf('?'); if (methodIndex > -1) { connectionInfo.FailoverMethod = failover.Substring(0, methodIndex); QpidConnectionInfo qpidConnectionInfo = (QpidConnectionInfo)connectionInfo; URLHelper.parseOptions(qpidConnectionInfo.GetFailoverOptions(), failover.Substring(methodIndex + 1)); } else { connectionInfo.FailoverMethod = failover; } connectionInfo.SetOption(ConnectionUrlConstants.OPTIONS_FAILOVER, null); // _options.remove(OPTIONS_FAILOVER); } }
public void SingleTransportMultiOptionURL() { String url = "amqp://*****:*****@default/temp?brokerlist='tcp://localhost:5672',routingkey='jim',timeout='200',immediatedelivery='true'"; IConnectionInfo connectionurl = QpidConnectionInfo.FromUrl(url); Assert.IsTrue(connectionurl.FailoverMethod == null); Assert.IsTrue(connectionurl.Username.Equals("guest")); Assert.IsTrue(connectionurl.Password.Equals("guest")); Assert.IsTrue(connectionurl.VirtualHost.Equals("/temp")); Assert.IsTrue(connectionurl.BrokerCount == 1); IBrokerInfo service = connectionurl.GetBrokerInfo(0); Assert.IsTrue(service.Transport.Equals("tcp")); Assert.IsTrue(service.Host.Equals("localhost")); Assert.IsTrue(service.Port == 5672); Assert.IsTrue(connectionurl.GetOption("routingkey").Equals("jim")); Assert.IsTrue(connectionurl.GetOption("timeout").Equals("200")); Assert.IsTrue(connectionurl.GetOption("immediatedelivery").Equals("true")); }