From 9501f7a2b4b2b174c1b1c413a459b8c56101c53a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kjetil=20=C3=98rbekk?= Date: Fri, 27 Jan 2012 17:00:53 +0100 Subject: Improve discovery and error handling. --- same/src/main/java/com/orbekk/same/ClientServiceImpl.java | 8 ++++++-- same/src/main/java/com/orbekk/same/SameController.java | 9 ++++++++- same/src/test/java/com/orbekk/same/ClientServiceImplTest.java | 2 +- 3 files changed, 15 insertions(+), 4 deletions(-) (limited to 'same') diff --git a/same/src/main/java/com/orbekk/same/ClientServiceImpl.java b/same/src/main/java/com/orbekk/same/ClientServiceImpl.java index b46dbfb..92482d5 100644 --- a/same/src/main/java/com/orbekk/same/ClientServiceImpl.java +++ b/same/src/main/java/com/orbekk/same/ClientServiceImpl.java @@ -1,5 +1,7 @@ package com.orbekk.same; +import static com.orbekk.same.StackTraceUtil.throwableToString; + import org.codehaus.jackson.type.TypeReference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -108,13 +110,15 @@ public class ClientServiceImpl implements ClientService, UrlReceiver, @Override public void discover(String url) { + String clientUrl = url + "ClientService.json"; if (!url.equals(myUrl)) { try { - connections.getClient(url + "/ClientService.json") + connections.getClient(clientUrl) .notifyNetwork(state.getDataOf(".networkName"), state.getDataOf(".masterUrl")); } catch (Exception e) { - logger.warn("Failed to contact new client {}", url, e); + logger.warn("Failed to contact new client {}: {}", clientUrl, + throwableToString(e)); } } } diff --git a/same/src/main/java/com/orbekk/same/SameController.java b/same/src/main/java/com/orbekk/same/SameController.java index d7cc747..0601547 100644 --- a/same/src/main/java/com/orbekk/same/SameController.java +++ b/same/src/main/java/com/orbekk/same/SameController.java @@ -69,10 +69,10 @@ public class SameController implements UrlReceiver { public void stop() { try { + master.interrupt(); server.stop(); } catch (Exception e) { logger.error("Failed to stop webserver", e); - master.interrupt(); } } @@ -122,4 +122,11 @@ public class SameController implements UrlReceiver { } } + public ClientServiceImpl getClient() { + return client; + } + + public MasterServiceImpl getMaster() { + return master; + } } diff --git a/same/src/test/java/com/orbekk/same/ClientServiceImplTest.java b/same/src/test/java/com/orbekk/same/ClientServiceImplTest.java index 69e4511..4523fe1 100644 --- a/same/src/test/java/com/orbekk/same/ClientServiceImplTest.java +++ b/same/src/test/java/com/orbekk/same/ClientServiceImplTest.java @@ -30,7 +30,7 @@ public class ClientServiceImplTest { ClientServiceImpl mockClient = mock(ClientServiceImpl.class); connections.clientMap.put("mockClient/ClientService.json", mockClient); - client.discover("mockClient"); + client.discover("mockClient/"); verify(mockClient).notifyNetwork("ClientNetwork", "master"); } } -- cgit v1.2.3