Author: bdelacretaz
Date: Thu Jun 5 13:36:08 2014
New Revision: 1600654
URL: http://svn.apache.org/r1600654
Log:
SLING-3495 - separate LargeTopologyWithHubTest to prepare for adding retries to
it
Added:
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/Connector.java
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/LargeTopologyWithHubTest.java
Modified:
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTest.java
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTestHelper.java
Added:
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/Connector.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/Connector.java?rev=1600654&view=auto
==============================================================================
---
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/Connector.java
(added)
+++
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/Connector.java
Thu Jun 5 13:36:08 2014
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.discovery.impl.topology;
+
+import org.apache.sling.discovery.impl.setup.Instance;
+import
org.apache.sling.discovery.impl.topology.connector.TopologyConnectorClientInformation;
+
+class Connector {
+ @SuppressWarnings("unused")
+ private final Instance from;
+ @SuppressWarnings("unused")
+ private final Instance to;
+ private final int jettyPort;
+ @SuppressWarnings("unused")
+ private final TopologyConnectorClientInformation connectorInfo;
+
+ Connector(Instance from, Instance to) throws Throwable {
+ this.from = from;
+ this.to = to;
+ to.startJetty();
+ this.jettyPort = to.getJettyPort();
+ this.connectorInfo =
from.connectTo("http://localhost:"+jettyPort+"/system/console/topology/connector");
+ }
+}
\ No newline at end of file
Added:
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/LargeTopologyWithHubTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/LargeTopologyWithHubTest.java?rev=1600654&view=auto
==============================================================================
---
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/LargeTopologyWithHubTest.java
(added)
+++
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/LargeTopologyWithHubTest.java
Thu Jun 5 13:36:08 2014
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.discovery.impl.topology;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.sling.discovery.impl.setup.Instance;
+import org.junit.After;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class LargeTopologyWithHubTest {
+
+ private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+ private final List<Instance> instances = new LinkedList<Instance>();
+
+ @After
+ public void tearDown() throws Exception {
+ for (Iterator<Instance> it = instances.iterator(); it.hasNext();) {
+ final Instance instance = it.next();
+ instance.stop();
+ }
+ }
+
+ @Test
+ public void testLargeTopologyWithHub() throws Throwable {
+ logger.info("testLargeTopologyWithHub: start");
+ final int TEST_SIZE = 100;
+ Instance hub = TopologyTestHelper.createInstance(instances, "hub");
+
+ List<String> slingIds = new LinkedList<String>();
+ slingIds.add(hub.getSlingId());
+ for(int i=0; i<TEST_SIZE; i++) {
+// logger.info("testLargeTopologyWithHub: adding instance "+i);
+ Instance instance = TopologyTestHelper.createInstance(instances,
"instance"+i);
+// logger.info("testLargeTopologyWithHub: adding connector "+i);
+ new Connector(instance, hub);
+ slingIds.add(instance.getSlingId());
+ }
+ logger.info("testLargeTopologyWithHub: checking if all connectors are
registered");
+
TopologyTestHelper.assertTopologyConsistsOf(hub.getDiscoveryService().getTopology(),
slingIds.toArray(new String[slingIds.size()]));
+ logger.info("testLargeTopologyWithHub: end");
+ }
+
+}
Modified:
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTest.java?rev=1600654&r1=1600653&r2=1600654&view=diff
==============================================================================
---
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTest.java
(original)
+++
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTest.java
Thu Jun 5 13:36:08 2014
@@ -19,8 +19,6 @@
package org.apache.sling.discovery.impl.topology;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
import java.util.Collection;
import java.util.Iterator;
@@ -29,35 +27,13 @@ import java.util.List;
import java.util.Set;
import org.apache.sling.discovery.InstanceDescription;
-import org.apache.sling.discovery.TopologyView;
import org.apache.sling.discovery.impl.setup.Instance;
import org.apache.sling.discovery.impl.topology.announcement.Announcement;
-import
org.apache.sling.discovery.impl.topology.connector.TopologyConnectorClientInformation;
import org.junit.After;
import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
public class TopologyTest {
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
-
- class Connector {
-
- private final Instance from;
- private final Instance to;
- private final int jettyPort;
- private final TopologyConnectorClientInformation connectorInfo;
-
- Connector(Instance from, Instance to) throws Throwable {
- this.from = from;
- this.to = to;
- to.startJetty();
- this.jettyPort = to.getJettyPort();
- this.connectorInfo =
from.connectTo("http://localhost:"+jettyPort+"/system/console/topology/connector");
- }
- }
-
private final List<Instance> instances = new LinkedList<Instance>();
@After
@@ -68,20 +44,10 @@ public class TopologyTest {
}
}
- private Instance createInstance(String debugName) throws Exception {
- final Instance instance = Instance.newStandaloneInstance(debugName,
true);
- instances.add(instance);
- return instance;
- }
-
- private Connector createConnector(Instance instance1, Instance instance2)
throws Throwable {
- return new Connector(instance1, instance2);
- }
-
@Test
public void testTwoNodes() throws Throwable {
- Instance instance1 = createInstance("instance1");
- Instance instance2 = createInstance("instance2");
+ Instance instance1 = TopologyTestHelper.createInstance(instances,
"instance1");
+ Instance instance2 = TopologyTestHelper.createInstance(instances,
"instance2");
instance1.getConfig().setHeartbeatTimeout(2);
instance1.getConfig().setHeartbeatInterval(1);
instance2.getConfig().setHeartbeatTimeout(1);
@@ -95,7 +61,7 @@ public class TopologyTest {
assertEquals(instance1.getSlingId(),
instances1.iterator().next().getSlingId());
assertEquals(instance2.getSlingId(),
instances2.iterator().next().getSlingId());
- Connector connector = createConnector(instance1, instance2);
+ new Connector(instance1, instance2);
// check instance 1's announcements
Collection<Announcement> instance1LocalAnnouncements =
@@ -114,8 +80,8 @@ public class TopologyTest {
assertEquals(false, instance2LocalAnnouncement.isInherited());
// check topology
-
assertTopologyConsistsOf(instance1.getDiscoveryService().getTopology(),
instance1.getSlingId(), instance2.getSlingId());
-
assertTopologyConsistsOf(instance2.getDiscoveryService().getTopology(),
instance1.getSlingId(), instance2.getSlingId());
+
TopologyTestHelper.assertTopologyConsistsOf(instance1.getDiscoveryService().getTopology(),
instance1.getSlingId(), instance2.getSlingId());
+
TopologyTestHelper.assertTopologyConsistsOf(instance2.getDiscoveryService().getTopology(),
instance1.getSlingId(), instance2.getSlingId());
instance1LocalAnnouncements =
instance1.getAnnouncementRegistry().listLocalAnnouncements();
@@ -133,8 +99,8 @@ public class TopologyTest {
instance2.getAnnouncementRegistry().listLocalAnnouncements();
assertEquals(0, instance2LocalAnnouncements.size());
-
assertTopologyConsistsOf(instance1.getDiscoveryService().getTopology(),
instance1.getSlingId(), instance2.getSlingId());
-
assertTopologyConsistsOf(instance2.getDiscoveryService().getTopology(),
instance2.getSlingId());
+
TopologyTestHelper.assertTopologyConsistsOf(instance1.getDiscoveryService().getTopology(),
instance1.getSlingId(), instance2.getSlingId());
+
TopologyTestHelper.assertTopologyConsistsOf(instance2.getDiscoveryService().getTopology(),
instance2.getSlingId());
Thread.sleep(1000);
instance1LocalAnnouncements =
@@ -144,47 +110,7 @@ public class TopologyTest {
instance2.getAnnouncementRegistry().listLocalAnnouncements();
assertEquals(0, instance2LocalAnnouncements.size());
-
assertTopologyConsistsOf(instance1.getDiscoveryService().getTopology(),
instance1.getSlingId());
-
assertTopologyConsistsOf(instance2.getDiscoveryService().getTopology(),
instance2.getSlingId());
+
TopologyTestHelper.assertTopologyConsistsOf(instance1.getDiscoveryService().getTopology(),
instance1.getSlingId());
+
TopologyTestHelper.assertTopologyConsistsOf(instance2.getDiscoveryService().getTopology(),
instance2.getSlingId());
}
-
- private void assertTopologyConsistsOf(TopologyView topology,
- String... slingIds) {
- assertNotNull(topology);
- assertEquals(topology.getInstances().size(), slingIds.length);
- for(int i=0; i<slingIds.length; i++) {
- final String aSlingId = slingIds[i];
- final Set instances = topology.getInstances();
- boolean found = false;
- for (Iterator it = instances.iterator(); it.hasNext();) {
- InstanceDescription anInstance = (InstanceDescription)
it.next();
- if (anInstance.getSlingId().equals(aSlingId)) {
- found = true;
- break;
- }
- }
- assertTrue(found);
- }
- }
-
- @Test
- public void testLargeTopologyWithHub() throws Throwable {
- logger.info("testLargeTopologyWithHub: start");
- final int TEST_SIZE = 100;
- Instance hub = createInstance("hub");
-
- List<String> slingIds = new LinkedList<String>();
- slingIds.add(hub.getSlingId());
- for(int i=0; i<TEST_SIZE; i++) {
-// logger.info("testLargeTopologyWithHub: adding instance "+i);
- Instance instance = createInstance("instance"+i);
-// logger.info("testLargeTopologyWithHub: adding connector "+i);
- Connector connector = createConnector(instance, hub);
- slingIds.add(instance.getSlingId());
- }
- logger.info("testLargeTopologyWithHub: checking if all connectors are
registered");
- assertTopologyConsistsOf(hub.getDiscoveryService().getTopology(),
slingIds.toArray(new String[slingIds.size()]));
- logger.info("testLargeTopologyWithHub: end");
- }
-
}
Modified:
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTestHelper.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTestHelper.java?rev=1600654&r1=1600653&r2=1600654&view=diff
==============================================================================
---
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTestHelper.java
(original)
+++
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/topology/TopologyTestHelper.java
Thu Jun 5 13:36:08 2014
@@ -18,19 +18,26 @@
*/
package org.apache.sling.discovery.impl.topology;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;
+import java.util.Set;
import java.util.UUID;
import junitx.util.PrivateAccessor;
import org.apache.sling.discovery.ClusterView;
import org.apache.sling.discovery.InstanceDescription;
+import org.apache.sling.discovery.TopologyView;
import org.apache.sling.discovery.impl.common.DefaultClusterViewImpl;
import org.apache.sling.discovery.impl.common.DefaultInstanceDescriptionImpl;
+import org.apache.sling.discovery.impl.setup.Instance;
public class TopologyTestHelper {
@@ -114,4 +121,29 @@ public class TopologyTestHelper {
return (Map<String, String>) PrivateAccessor.getField(
instanceDescription, "properties");
}
+
+ public static void assertTopologyConsistsOf(TopologyView topology,
String... slingIds) {
+ assertNotNull(topology);
+ assertEquals(topology.getInstances().size(), slingIds.length);
+ for(int i=0; i<slingIds.length; i++) {
+ final String aSlingId = slingIds[i];
+ final Set<?> instances = topology.getInstances();
+ boolean found = false;
+ for (Iterator<?> it = instances.iterator(); it.hasNext();) {
+ InstanceDescription anInstance = (InstanceDescription)
it.next();
+ if (anInstance.getSlingId().equals(aSlingId)) {
+ found = true;
+ break;
+ }
+ }
+ assertTrue(found);
+ }
+ }
+
+ public static Instance createInstance(Collection<Instance> instances,
String debugName) throws Exception {
+ final Instance instance = Instance.newStandaloneInstance(debugName,
true);
+ instances.add(instance);
+ return instance;
+ }
+
}