Author: jawi
Date: Thu Jan 28 14:16:09 2016
New Revision: 1727361
URL: http://svn.apache.org/viewvc?rev=1727361&view=rev
Log:
ACE-520 - do not blacklist servers when there is only one:
- only blacklist servers if there more than one server is supplied.
Modified:
ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/DiscoveryHandlerImpl.java
ace/trunk/org.apache.ace.agent/test/org/apache/ace/agent/impl/DiscoveryHandlerImplTest.java
Modified:
ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/DiscoveryHandlerImpl.java
URL:
http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/DiscoveryHandlerImpl.java?rev=1727361&r1=1727360&r2=1727361&view=diff
==============================================================================
---
ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/DiscoveryHandlerImpl.java
(original)
+++
ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/DiscoveryHandlerImpl.java
Thu Jan 28 14:16:09 2016
@@ -100,13 +100,17 @@ public class DiscoveryHandlerImpl extend
DiscoveryHandlerImpl(String[] serverURLs, boolean checkServerURLs) {
super("discovery");
m_defaultServerURLs = m_serverURLs = Arrays.asList(serverURLs);
- m_defaultCheckURLs = m_checkURLs = checkServerURLs;
+ // ACE-520 - checking URLs only makes sense if there is more than one
URL available...
+ m_defaultCheckURLs = m_checkURLs = checkServerURLs &&
m_defaultServerURLs.size() > 1;
}
@Override
protected void onInit() throws Exception {
String urls =
getConfigurationHandler().get(CONFIG_DISCOVERY_SERVERURLS,
mergeUrls(m_defaultServerURLs));
+ boolean checkServerURLs =
getConfigurationHandler().getBoolean(CONFIG_DISCOVERY_CHECKING,
DEFAULT_CHECK_SERVER_URLS);
m_defaultServerURLs = m_serverURLs = splitUrls(urls);
+ // ACE-520 - checking URLs only makes sense if there is more than one
URL available...
+ m_defaultCheckURLs = m_checkURLs = checkServerURLs &&
m_defaultServerURLs.size() > 1;
getEventsHandler().addListener(this);
}
@@ -139,6 +143,8 @@ public class DiscoveryHandlerImpl extend
else {
checkURLs = m_defaultCheckURLs;
}
+ // ACE-520 - checking URLs only makes sense if there is more than one
URL available...
+ checkURLs &= serverURLs.size() > 1;
List<String> oldServerURLs = m_serverURLs;
boolean oldCheckURLs = m_checkURLs;
Modified:
ace/trunk/org.apache.ace.agent/test/org/apache/ace/agent/impl/DiscoveryHandlerImplTest.java
URL:
http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.agent/test/org/apache/ace/agent/impl/DiscoveryHandlerImplTest.java?rev=1727361&r1=1727360&r2=1727361&view=diff
==============================================================================
---
ace/trunk/org.apache.ace.agent/test/org/apache/ace/agent/impl/DiscoveryHandlerImplTest.java
(original)
+++
ace/trunk/org.apache.ace.agent/test/org/apache/ace/agent/impl/DiscoveryHandlerImplTest.java
Thu Jan 28 14:16:09 2016
@@ -45,8 +45,10 @@ public class DiscoveryHandlerImplTest ex
private static final int PORT = 8882;
private TestWebServer m_webServer;
- private URL m_availableURL;
- private URL m_unavailableURL;
+ private URL m_availableURL1;
+ private URL m_availableURL2;
+ private URL m_unavailableURL1;
+ private URL m_unavailableURL2;
private AgentContext m_agentContext;
private AgentContextImpl m_agentContextImpl;
@@ -55,15 +57,17 @@ public class DiscoveryHandlerImplTest ex
public void setUpOnceAgain() throws Exception {
m_webServer = new TestWebServer(PORT, "/", "generated");
m_webServer.start();
- m_availableURL = new URL("http://localhost:" + PORT);
- m_unavailableURL = new URL("http://localhost:9999");
+ m_availableURL1 = new URL("http://localhost:" + PORT);
+ m_availableURL2 = new URL("http://127.0.0.1:" + PORT);
+ m_unavailableURL1 = new URL("http://localhost:19999");
+ m_unavailableURL2 = new URL("http://127.0.0.1:19999");
BundleContext bc = mockBundleContext();
m_agentContextImpl = mockAgentContext();
m_agentContext = m_agentContextImpl;
// Make sure the default server URL is not reachable, as used for this
test...
- m_agentContextImpl.setHandler(DiscoveryHandler.class, new
DiscoveryHandlerImpl("http://localhost:9999", true));
+ m_agentContextImpl.setHandler(DiscoveryHandler.class, new
DiscoveryHandlerImpl(m_unavailableURL1.toExternalForm(), true));
m_agentContextImpl.setHandler(EventsHandler.class, new
EventsHandlerImpl(bc));
m_agentContextImpl.setHandler(ConfigurationHandler.class, new
ConfigurationHandlerImpl(bc));
m_agentContextImpl.setHandler(ConnectionHandler.class, new
ConnectionHandlerImpl());
@@ -80,21 +84,36 @@ public class DiscoveryHandlerImplTest ex
clearTestMocks();
}
+ private String concat(URL... urls) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < urls.length; i++) {
+ if (i > 0) {
+ sb.append(",");
+ }
+ sb.append(urls[i].toExternalForm());
+ }
+ return sb.toString();
+ }
+
@Test
public void testAvailableURL() throws Exception {
ConfigurationHandler configurationHandler =
m_agentContext.getHandler(ConfigurationHandler.class);
- configureAgent(configurationHandler,
AgentConstants.CONFIG_DISCOVERY_SERVERURLS, m_availableURL.toExternalForm(),
AgentConstants.CONFIG_DISCOVERY_CHECKING, "true");
+ configureAgent(configurationHandler,
+ AgentConstants.CONFIG_DISCOVERY_SERVERURLS,
concat(m_availableURL1, m_availableURL2),
+ AgentConstants.CONFIG_DISCOVERY_CHECKING, "true");
DiscoveryHandler discoveryHandler =
m_agentContext.getHandler(DiscoveryHandler.class);
- assertEquals(discoveryHandler.getServerUrl(), m_availableURL);
+ assertEquals(discoveryHandler.getServerUrl(), m_availableURL1);
}
@Test
public void testUnavailableURL_unavailable() throws Exception {
ConfigurationHandler configurationHandler =
m_agentContext.getHandler(ConfigurationHandler.class);
- configureAgent(configurationHandler,
AgentConstants.CONFIG_DISCOVERY_SERVERURLS, m_unavailableURL.toExternalForm(),
AgentConstants.CONFIG_DISCOVERY_CHECKING, "true");
+ configureAgent(configurationHandler,
+ AgentConstants.CONFIG_DISCOVERY_SERVERURLS,
concat(m_unavailableURL1, m_unavailableURL2),
+ AgentConstants.CONFIG_DISCOVERY_CHECKING, "true");
DiscoveryHandler discoveryHandler =
m_agentContext.getHandler(DiscoveryHandler.class);
assertNull(discoveryHandler.getServerUrl());
@@ -104,12 +123,15 @@ public class DiscoveryHandlerImplTest ex
public void testUnavailableAfterConfigUpdate() throws Exception {
ConfigurationHandler configurationHandler =
m_agentContext.getHandler(ConfigurationHandler.class);
- configureAgent(configurationHandler,
AgentConstants.CONFIG_DISCOVERY_SERVERURLS, m_availableURL.toExternalForm(),
AgentConstants.CONFIG_DISCOVERY_CHECKING, "true");
+ configureAgent(configurationHandler,
+ AgentConstants.CONFIG_DISCOVERY_SERVERURLS,
concat(m_availableURL1, m_availableURL2),
+ AgentConstants.CONFIG_DISCOVERY_CHECKING, "true");
DiscoveryHandler discoveryHandler =
m_agentContext.getHandler(DiscoveryHandler.class);
- assertEquals(discoveryHandler.getServerUrl(), m_availableURL);
+ assertEquals(discoveryHandler.getServerUrl(), m_availableURL1);
- configureAgent(configurationHandler,
AgentConstants.CONFIG_DISCOVERY_SERVERURLS, m_unavailableURL.toExternalForm());
+ configureAgent(configurationHandler,
+ AgentConstants.CONFIG_DISCOVERY_SERVERURLS,
concat(m_unavailableURL1, m_unavailableURL2));
assertNull(discoveryHandler.getServerUrl());
}
@@ -118,44 +140,53 @@ public class DiscoveryHandlerImplTest ex
public void testAvailableAfterConfigUpdate() throws Exception {
ConfigurationHandler configurationHandler =
m_agentContext.getHandler(ConfigurationHandler.class);
- configureAgent(configurationHandler,
AgentConstants.CONFIG_DISCOVERY_SERVERURLS, m_unavailableURL.toExternalForm(),
AgentConstants.CONFIG_DISCOVERY_CHECKING, "true");
+ configureAgent(configurationHandler,
+ AgentConstants.CONFIG_DISCOVERY_SERVERURLS,
concat(m_unavailableURL1, m_unavailableURL2),
+ AgentConstants.CONFIG_DISCOVERY_CHECKING, "true");
DiscoveryHandler discoveryHandler =
m_agentContext.getHandler(DiscoveryHandler.class);
assertNull(discoveryHandler.getServerUrl());
- configureAgent(configurationHandler,
AgentConstants.CONFIG_DISCOVERY_SERVERURLS, m_availableURL.toExternalForm());
+ configureAgent(configurationHandler,
+ AgentConstants.CONFIG_DISCOVERY_SERVERURLS,
concat(m_availableURL1));
- assertEquals(discoveryHandler.getServerUrl(), m_availableURL);
+ assertEquals(discoveryHandler.getServerUrl(), m_availableURL1);
}
@Test
public void testAvailableAfterUnavailableURL() throws Exception {
ConfigurationHandler configurationHandler =
m_agentContext.getHandler(ConfigurationHandler.class);
- configureAgent(configurationHandler,
AgentConstants.CONFIG_DISCOVERY_SERVERURLS, m_unavailableURL.toExternalForm() +
"," + m_availableURL.toExternalForm(),
AgentConstants.CONFIG_DISCOVERY_CHECKING, "true");
+ configureAgent(configurationHandler,
+ AgentConstants.CONFIG_DISCOVERY_SERVERURLS,
concat(m_unavailableURL1, m_availableURL1),
+ AgentConstants.CONFIG_DISCOVERY_CHECKING, "true");
DiscoveryHandler discoveryHandler =
m_agentContext.getHandler(DiscoveryHandler.class);
- assertEquals(discoveryHandler.getServerUrl(), m_availableURL);
+ assertEquals(discoveryHandler.getServerUrl(), m_availableURL1);
}
@Test
public void testEmptyURLConfig() throws Exception {
ConfigurationHandler configurationHandler =
m_agentContext.getHandler(ConfigurationHandler.class);
- configureAgent(configurationHandler,
AgentConstants.CONFIG_DISCOVERY_SERVERURLS, "",
AgentConstants.CONFIG_DISCOVERY_CHECKING, "true");
+ configureAgent(configurationHandler,
+ AgentConstants.CONFIG_DISCOVERY_SERVERURLS, "",
+ AgentConstants.CONFIG_DISCOVERY_CHECKING, "true");
DiscoveryHandler discoveryHandler =
m_agentContext.getHandler(DiscoveryHandler.class);
- assertNull(discoveryHandler.getServerUrl());
+ assertEquals(discoveryHandler.getServerUrl(), m_unavailableURL1);
}
@Test
public void testBadURLConfig() throws Exception {
ConfigurationHandler configurationHandler =
m_agentContext.getHandler(ConfigurationHandler.class);
- configureAgent(configurationHandler,
AgentConstants.CONFIG_DISCOVERY_SERVERURLS, "invalidURL",
AgentConstants.CONFIG_DISCOVERY_CHECKING, "true");
+ configureAgent(configurationHandler,
+ AgentConstants.CONFIG_DISCOVERY_SERVERURLS, "invalidURL",
+ AgentConstants.CONFIG_DISCOVERY_CHECKING, "true");
DiscoveryHandler discoveryHandler =
m_agentContext.getHandler(DiscoveryHandler.class);
- assertNull(discoveryHandler.getServerUrl());
+ assertNull(discoveryHandler.getServerUrl()); // we cannot resolve this
during the configuration change...
}
@Test