Skip to content

Commit a44922c

Browse files
committed
Fix tests
1 parent 2e83a91 commit a44922c

2 files changed

Lines changed: 18 additions & 6 deletions

File tree

client/src/main/java/io/appulse/epmd/java/client/CommandRegistration.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@
1616

1717
package io.appulse.epmd.java.client;
1818

19+
import static lombok.AccessLevel.PRIVATE;
20+
1921
import java.net.InetAddress;
22+
import java.util.Map;
2023

2124
import io.appulse.epmd.java.client.exception.EpmdRegistrationException;
2225
import io.appulse.epmd.java.core.model.request.Registration;
@@ -26,6 +29,7 @@
2629
import lombok.Builder;
2730
import lombok.extern.slf4j.Slf4j;
2831
import lombok.val;
32+
import lombok.experimental.FieldDefaults;
2933

3034
/**
3135
* A command for registration a node in a remote EPMD server.
@@ -34,8 +38,11 @@
3438
* @author Artem Labazin
3539
*/
3640
@Slf4j
41+
@FieldDefaults(level = PRIVATE, makeFinal = true)
3742
final class CommandRegistration extends CommandAbstract<Registration, RegistrationResult> {
3843

44+
Map<String, Connection> registered;
45+
3946
/**
4047
* Constructs the command object.
4148
*
@@ -46,8 +53,9 @@ final class CommandRegistration extends CommandAbstract<Registration, Registrati
4653
* @param request the command's request to the remote EPMD server
4754
*/
4855
@Builder
49-
CommandRegistration (InetAddress address, Integer port, Registration request) {
56+
CommandRegistration (InetAddress address, Integer port, Registration request, Map<String, Connection> registered) {
5057
super(address, port, request);
58+
this.registered = registered;
5159
}
5260

5361
@Override
@@ -69,6 +77,7 @@ public RegistrationResult get () {
6977
throw new EpmdRegistrationException();
7078
}
7179

80+
registered.put(request.getName(), connection);
7281
return result;
7382
}
7483
}

client/src/main/java/io/appulse/epmd/java/client/EpmdClient.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
import java.io.Closeable;
2424
import java.net.InetAddress;
2525
import java.util.List;
26+
import java.util.Map;
2627
import java.util.Optional;
27-
import java.util.Set;
2828
import java.util.concurrent.CompletableFuture;
2929
import java.util.concurrent.ConcurrentHashMap;
3030
import java.util.concurrent.ExecutorService;
@@ -63,7 +63,7 @@
6363
@FieldDefaults(level = PRIVATE, makeFinal = true)
6464
public final class EpmdClient implements Closeable {
6565

66-
Set<String> registered = ConcurrentHashMap.<String>newKeySet();
66+
Map<String, Connection> registered = new ConcurrentHashMap<>();
6767

6868
ExecutorService executor;
6969

@@ -137,13 +137,14 @@ public EpmdClient (@NonNull InetAddress address, int port) {
137137
* @return creation id from EPMD
138138
*/
139139
public CompletableFuture<RegistrationResult> register (@NonNull Registration request) {
140-
if (registered.contains(request.getName())) {
140+
if (registered.containsKey(request.getName())) {
141141
val exception = new EpmdRegistrationNameConflictException(request.getName());
142142
log.error(exception.getMessage(), exception);
143143
return FutureUtils.completedExceptionally(exception);
144144
}
145145

146146
val supplier = CommandRegistration.builder()
147+
.registered(registered)
147148
.address(address)
148149
.port(port)
149150
.request(request)
@@ -155,7 +156,6 @@ public CompletableFuture<RegistrationResult> register (@NonNull Registration req
155156
throw new EpmdRegistrationException(throwable);
156157
})
157158
.thenApply(result -> {
158-
registered.add(request.getName());
159159
log.info("'{}' was registered successfully", request.getName());
160160
return result;
161161
});
@@ -359,8 +359,11 @@ public CompletableFuture<List<NodeDescription>> getNodes (@NonNull InetAddress n
359359
@SneakyThrows
360360
public void close () {
361361
executor.shutdown();
362-
registered.clear();
362+
363363
val terminated = executor.awaitTermination(5, SECONDS);
364364
log.debug("EPMD was successfully terminated - {}", terminated);
365+
366+
registered.values().forEach(Connection::close);
367+
registered.clear();
365368
}
366369
}

0 commit comments

Comments
 (0)