Skip to content

Commit e324722

Browse files
committed
TransportConfig to allow defining the address mapper.
1 parent ab5db36 commit e324722

File tree

4 files changed

+30
-14
lines changed

4 files changed

+30
-14
lines changed

transport-parent/transport-api/src/main/java/io/scalecube/cluster/transport/api/TransportConfig.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package io.scalecube.cluster.transport.api;
22

3+
import io.scalecube.net.Address;
34
import java.util.StringJoiner;
5+
import java.util.function.Function;
46
import reactor.core.Exceptions;
57

68
public final class TransportConfig implements Cloneable {
@@ -20,6 +22,7 @@ public final class TransportConfig implements Cloneable {
2022
private MessageCodec messageCodec = MessageCodec.INSTANCE;
2123
private int maxFrameLength = 2 * 1024 * 1024; // 2 MB
2224
private TransportFactory transportFactory;
25+
private Function<Address, Address> addressMapper = Function.identity();
2326

2427
public TransportConfig() {}
2528

@@ -134,6 +137,22 @@ public TransportConfig maxFrameLength(int maxFrameLength) {
134137
return t;
135138
}
136139

140+
/**
141+
* Setter for {@code addressMapper}.
142+
*
143+
* @param addressMapper address mapper
144+
* @return new {@code TransportConfig} instance
145+
*/
146+
public TransportConfig addressMapper(Function<Address, Address> addressMapper) {
147+
TransportConfig t = clone();
148+
t.addressMapper = addressMapper;
149+
return t;
150+
}
151+
152+
public Function<Address, Address> addressMapper() {
153+
return addressMapper;
154+
}
155+
137156
public TransportFactory transportFactory() {
138157
return transportFactory;
139158
}
@@ -168,6 +187,7 @@ public String toString() {
168187
.add("messageCodec=" + messageCodec)
169188
.add("maxFrameLength=" + maxFrameLength)
170189
.add("transportFactory=" + transportFactory)
190+
.add("addressMapper=" + addressMapper)
171191
.toString();
172192
}
173193
}

transport-parent/transport-netty/src/main/java/io/scalecube/transport/netty/TransportImpl.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,18 +59,7 @@ public final class TransportImpl implements Transport {
5959
private final Function<Address, Address> addressMapper;
6060

6161
/**
62-
* Constructor with cofig as parameter.
63-
*
64-
* @param messageCodec message codec
65-
* @param receiver transport receiver part
66-
* @param sender transport sender part
67-
*/
68-
public TransportImpl(MessageCodec messageCodec, Receiver receiver, Sender sender) {
69-
this(messageCodec, receiver, sender, Function.identity());
70-
}
71-
72-
/**
73-
* Constructor with cofig as parameter.
62+
* Constructor with config as parameter.
7463
*
7564
* @param messageCodec message codec
7665
* @param receiver transport receiver part

transport-parent/transport-netty/src/main/java/io/scalecube/transport/netty/tcp/TcpTransportFactory.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ public final class TcpTransportFactory implements TransportFactory {
99

1010
@Override
1111
public Transport createTransport(TransportConfig config) {
12-
return new TransportImpl(config.messageCodec(), new TcpReceiver(config), new TcpSender(config));
12+
return new TransportImpl(
13+
config.messageCodec(),
14+
new TcpReceiver(config),
15+
new TcpSender(config),
16+
config.addressMapper());
1317
}
1418
}

transport-parent/transport-netty/src/main/java/io/scalecube/transport/netty/websocket/WebsocketTransportFactory.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ public final class WebsocketTransportFactory implements TransportFactory {
1010
@Override
1111
public Transport createTransport(TransportConfig config) {
1212
return new TransportImpl(
13-
config.messageCodec(), new WebsocketReceiver(config), new WebsocketSender(config));
13+
config.messageCodec(),
14+
new WebsocketReceiver(config),
15+
new WebsocketSender(config),
16+
config.addressMapper());
1417
}
1518
}

0 commit comments

Comments
 (0)