GEODE-1612: Gets a list of random ports at once

        * Getting a random port for each locator one by one led to different 
locators getting assigned the same port number
        * By getting a list of available ports at one shot reduces the 
possiblity of locators being assigned the same port number
        * This will not solve the problem of locators being assigned a port 
which is in use.
        * We can't pass 0 as the locator port parameter because we need the 
ring topology before the locators are started.
This closes #204


Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/b830c277
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/b830c277
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/b830c277

Branch: refs/heads/master
Commit: b830c277455126c1748733105403b6f52c6e16ce
Parents: f4fdfa9
Author: nabarun <[email protected]>
Authored: Wed Jul 13 11:49:45 2016 -0700
Committer: nabarun <[email protected]>
Committed: Mon Jul 18 11:37:35 2016 -0700

----------------------------------------------------------------------
 .../wan/misc/WanAutoDiscoveryDUnitTest.java     | 22 +++++++++-----------
 1 file changed, 10 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b830c277/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanAutoDiscoveryDUnitTest.java
----------------------------------------------------------------------
diff --git 
a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanAutoDiscoveryDUnitTest.java
 
b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanAutoDiscoveryDUnitTest.java
index 48cc379..a84f393 100644
--- 
a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanAutoDiscoveryDUnitTest.java
+++ 
b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanAutoDiscoveryDUnitTest.java
@@ -295,21 +295,19 @@ public class WanAutoDiscoveryDUnitTest extends 
WANTestBase {
   @Test
   public void test_RingTopology() {
 
+    int [] ports = 
AvailablePortHelper.getRandomAvailableTCPPortsForDUnitSite(4);
+
     final Set<String> site1LocatorsPort = new HashSet<String>();
-    int site1Port1 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
-    site1LocatorsPort.add("localhost["+site1Port1+"]");
+    site1LocatorsPort.add("localhost["+ports[0]+"]");
    
     final Set<String> site2LocatorsPort = new HashSet<String>();
-    int site2Port1 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
-    site2LocatorsPort.add("localhost["+site2Port1+"]");
+    site2LocatorsPort.add("localhost["+ports[1]+"]");
    
     final Set<String> site3LocatorsPort = new HashSet<String>();
-    int site3Port1 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
-    site3LocatorsPort.add("localhost["+site3Port1+"]");
+    site3LocatorsPort.add("localhost["+ports[2]+"]");
    
     final Set<String> site4LocatorsPort = new HashSet<String>();
-    int site4Port1 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
-    site4LocatorsPort.add("localhost["+site4Port1+"]");
+    site4LocatorsPort.add("localhost["+ports[3]+"]");
    
     Map<Integer, Set<String>> dsVsPort = new HashMap<Integer, Set<String>>();
     dsVsPort.put(1, site1LocatorsPort);
@@ -320,13 +318,13 @@ public class WanAutoDiscoveryDUnitTest extends 
WANTestBase {
     int AsyncInvocationArrSize = 9;
     AsyncInvocation[] async = new AsyncInvocation[AsyncInvocationArrSize];
    
-    async[0] = vm0.invokeAsync(() -> WANTestBase.createLocator( 1, site1Port1, 
site1LocatorsPort, site2LocatorsPort));
+    async[0] = vm0.invokeAsync(() -> WANTestBase.createLocator( 1, ports[0], 
site1LocatorsPort, site2LocatorsPort));
    
-    async[1] = vm1.invokeAsync(() -> WANTestBase.createLocator( 2, site2Port1, 
site2LocatorsPort, site3LocatorsPort));
+    async[1] = vm1.invokeAsync(() -> WANTestBase.createLocator( 2, ports[1], 
site2LocatorsPort, site3LocatorsPort));
    
-    async[2] = vm2.invokeAsync(() -> WANTestBase.createLocator( 3, site3Port1, 
site3LocatorsPort, site4LocatorsPort));
+    async[2] = vm2.invokeAsync(() -> WANTestBase.createLocator( 3, ports[2], 
site3LocatorsPort, site4LocatorsPort));
    
-    async[3] = vm3.invokeAsync(() -> WANTestBase.createLocator( 4, site4Port1, 
site4LocatorsPort, site1LocatorsPort));
+    async[3] = vm3.invokeAsync(() -> WANTestBase.createLocator( 4, ports[3], 
site4LocatorsPort, site1LocatorsPort));
    
    // pause(5000);
     try {

Reply via email to