activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tab...@apache.org
Subject svn commit: r1477856 - in /activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src: main/csharp/Transport/Failover/FailoverTransport.cs test/csharp/Transport/failover/FailoverTransportTest.cs
Date Tue, 30 Apr 2013 22:15:10 GMT
Author: tabish
Date: Tue Apr 30 22:15:09 2013
New Revision: 1477856

URL: http://svn.apache.org/r1477856
Log:
Finishing up
https://issues.apache.org/jira/browse/AMQNET-403

Modified:
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Failover/FailoverTransport.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Transport/failover/FailoverTransportTest.cs

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Failover/FailoverTransport.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Failover/FailoverTransport.cs?rev=1477856&r1=1477855&r2=1477856&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Failover/FailoverTransport.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Failover/FailoverTransport.cs
Tue Apr 30 22:15:09 2013
@@ -306,6 +306,12 @@ namespace Apache.NMS.ActiveMQ.Transport.
 			set { this.priorityBackup = value; }
 		}
 
+	    public String PriorityURIs
+		{
+			get { return PrintableUriList(priorityList); }
+			set { this.ProcessDelimitedUriList(value, priorityList); }
+	    }
+
         public int BackupPoolSize
         {
             get { return backupPoolSize; }
@@ -1416,20 +1422,7 @@ namespace Apache.NMS.ActiveMQ.Transport.
                 if(newTransports.Length > 0 && IsUpdateURIsSupported)
                 {
                     List<Uri> list = new List<Uri>();
-                    String[] tokens = newTransports.Split(new Char[] { ',' });
-
-                    foreach(String str in tokens)
-                    {
-                        try
-                        {
-                            Uri uri = new Uri(str);
-                            list.Add(uri);
-                        }
-                        catch
-                        {
-                            Tracer.Error("Failed to parse broker address: " + str);
-                        }
-                    }
+					ProcessDelimitedUriList(newTransports, list);
 
                     if(list.Count != 0)
                     {
@@ -1443,8 +1436,32 @@ namespace Apache.NMS.ActiveMQ.Transport.
                         }
                     }
                 }
+            }        
+		}
+
+		private void ProcessDelimitedUriList(String priorityUris, List<Uri> target)
+		{
+            String[] tokens = priorityUris.Split(new Char[] { ',' });
+
+            foreach(String str in tokens)
+            {
+                try
+                {
+                    Uri uri = new Uri(str);
+                    target.Add(uri);
+
+					if (Tracer.IsDebugEnabled)
+					{
+						Tracer.DebugFormat("Adding new Uri[{0}] to list,", uri);
+					}
+                }
+                catch (Exception e)
+                {
+					Tracer.ErrorFormat("Failed to parse broker address: {0} because of: {1}",
+					                   str, e.Message);
+                }
             }
-        }
+		}
 
         public void Dispose()
         {
@@ -1587,16 +1604,16 @@ namespace Apache.NMS.ActiveMQ.Transport.
 		{
 			if (uriList.Count == 0)
 			{
-				return "<no-Uris>";
+				return "";
 			}
 
 			StringBuilder builder = new StringBuilder();
 			for (int i = 0; i < uriList.Count; ++i)
 			{
 				builder.Append(uriList[i]);
-				if (i < uriList.Count + 1)
+				if (i < (uriList.Count - 1))
 				{
-					builder.Append(":");
+					builder.Append(",");
 				}
 			}
 

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Transport/failover/FailoverTransportTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Transport/failover/FailoverTransportTest.cs?rev=1477856&r1=1477855&r2=1477856&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Transport/failover/FailoverTransportTest.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Transport/failover/FailoverTransportTest.cs
Tue Apr 30 22:15:09 2013
@@ -595,6 +595,49 @@ namespace Apache.NMS.ActiveMQ.Test
 		}
 
 		[Test]
+		public void TestPriorityBackupConfigPriorityURIsList() 
+		{
+		    Uri uri = new Uri("failover:(mock://localhost:61616,mock://localhost:61618)" +
+			                  "?transport.randomize=false&transport.priorityBackup=true&"
+
+			                  "transport.priorityURIs=mock://localhost:61616,mock://localhost:61618");
+
+			FailoverTransportFactory factory = new FailoverTransportFactory();
+
+			using(ITransport transport = factory.CreateTransport(uri))
+			{
+				Assert.IsNotNull(transport);
+				transport.Command = OnCommand;
+				transport.Exception = OnException;
+				transport.Resumed = OnResumed;
+				transport.Interrupted = OnInterrupted;
+
+				FailoverTransport failover = transport.Narrow(typeof(FailoverTransport)) as FailoverTransport;
+				Assert.IsNotNull(failover);
+				Assert.IsFalse(failover.Randomize, "Randomize should be false");
+				Assert.IsTrue(failover.PriorityBackup, "Prioirity Backup not set.");
+
+				String priorityURIs = failover.PriorityURIs;
+	            String[] tokens = priorityURIs.Split(new Char[] { ',' });
+				Assert.AreEqual(2, tokens.Length, "Bad priorityURIs string: " + priorityURIs);
+
+		    	transport.Start();
+
+				for(int i = 0; i < MAX_ATTEMPTS; ++i)
+				{
+					if(failover.IsConnected)
+					{
+						break;
+					}
+					
+					Thread.Sleep(100);
+				}
+				
+				Assert.IsTrue(failover.IsConnected);
+				Assert.IsTrue(failover.IsConnectedToPriority);
+			}
+		}
+
+		[Test]
 		public void OpenWireCommandsTest()
 		{
 			Uri uri = new Uri("failover:(mock://localhost:61616)?transport.randomize=false");



Mime
View raw message