Skip to content

Commit 838b36f

Browse files
committed
Added exposeAddress TransportConfig setting
1 parent 22498a7 commit 838b36f

File tree

4 files changed

+39
-16
lines changed

4 files changed

+39
-16
lines changed

cluster/src/main/java/io/scalecube/cluster/ClusterImpl.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -376,17 +376,21 @@ private Member createLocalMember(Address address) {
376376
final int port = address.port();
377377
final List<Address> memberAddresses = new ArrayList<>();
378378

379-
// First address comes as "fair" listen address
380-
memberAddresses.add(address);
379+
if (config.transportConfig().exposeAddress()) {
380+
memberAddresses.add(address);
381+
}
381382

382-
// Tail goes as externalHosts, if exists
383383
final List<String> externalHosts = config.externalHosts();
384384
if (externalHosts != null) {
385385
for (String externalHost : externalHosts) {
386386
memberAddresses.add(Address.create(externalHost, port));
387387
}
388388
}
389389

390+
if (memberAddresses.isEmpty()) {
391+
throw new IllegalArgumentException("Member addresses must not be empty");
392+
}
393+
390394
final String memberId =
391395
config.memberId() != null ? config.memberId() : UUID.randomUUID().toString();
392396
final String memberAlias = config.memberAlias();

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

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public final class TransportConfig implements Cloneable {
2323
private int maxFrameLength = 2 * 1024 * 1024; // 2 MB
2424
private TransportFactory transportFactory;
2525
private Function<Address, Address> addressMapper = Function.identity();
26+
private boolean exposeAddress = true;
2627

2728
public TransportConfig() {}
2829

@@ -73,7 +74,7 @@ public TransportConfig port(int port) {
7374
return t;
7475
}
7576

76-
public boolean isClientSecured() {
77+
public boolean clientSecured() {
7778
return clientSecured;
7879
}
7980

@@ -137,35 +138,52 @@ public TransportConfig maxFrameLength(int maxFrameLength) {
137138
return t;
138139
}
139140

141+
public TransportFactory transportFactory() {
142+
return transportFactory;
143+
}
144+
140145
/**
141-
* Setter for {@code addressMapper}.
146+
* Setter for {@code transportFactory}.
142147
*
143-
* @param addressMapper address mapper
148+
* @param transportFactory transport factory
144149
* @return new {@code TransportConfig} instance
145150
*/
146-
public TransportConfig addressMapper(Function<Address, Address> addressMapper) {
151+
public TransportConfig transportFactory(TransportFactory transportFactory) {
147152
TransportConfig t = clone();
148-
t.addressMapper = addressMapper;
153+
t.transportFactory = transportFactory;
149154
return t;
150155
}
151156

152157
public Function<Address, Address> addressMapper() {
153158
return addressMapper;
154159
}
155160

156-
public TransportFactory transportFactory() {
157-
return transportFactory;
161+
/**
162+
* Setter for {@code addressMapper}.
163+
*
164+
* @param addressMapper address mapper
165+
* @return new {@code TransportConfig} instance
166+
*/
167+
public TransportConfig addressMapper(Function<Address, Address> addressMapper) {
168+
TransportConfig t = clone();
169+
t.addressMapper = addressMapper;
170+
return t;
171+
}
172+
173+
public boolean exposeAddress() {
174+
return exposeAddress;
158175
}
159176

160177
/**
161-
* Setter for {@code transportFactory}.
178+
* Setter for {@code exposeAddress}. When set to {@code true} - will make transport listening
179+
* address be advertised to cluster. By default set to {@code true}.
162180
*
163-
* @param transportFactory transport factory
181+
* @param exposeAddress exposeAddress flag
164182
* @return new {@code TransportConfig} instance
165183
*/
166-
public TransportConfig transportFactory(TransportFactory transportFactory) {
184+
public TransportConfig exposeAddress(boolean exposeAddress) {
167185
TransportConfig t = clone();
168-
t.transportFactory = transportFactory;
186+
t.exposeAddress = exposeAddress;
169187
return t;
170188
}
171189

@@ -188,6 +206,7 @@ public String toString() {
188206
.add("maxFrameLength=" + maxFrameLength)
189207
.add("transportFactory=" + transportFactory)
190208
.add("addressMapper=" + addressMapper)
209+
.add("exposeAddress=" + exposeAddress)
191210
.toString();
192211
}
193212
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,6 @@ private TcpClient newTcpClient(SenderContext context, Address address) {
5252
(connectionObserver, channel, remoteAddress) ->
5353
new TcpChannelInitializer(config.maxFrameLength())
5454
.accept(connectionObserver, channel));
55-
return config.isClientSecured() ? tcpClient.secure() : tcpClient;
55+
return config.clientSecured() ? tcpClient.secure() : tcpClient;
5656
}
5757
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ private HttpClient.WebsocketSender newWebsocketSender(SenderContext context, Add
5555
.option(ChannelOption.SO_REUSEADDR, true)
5656
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, config.connectTimeout());
5757

58-
if (config.isClientSecured()) {
58+
if (config.clientSecured()) {
5959
httpClient = httpClient.secure();
6060
}
6161

0 commit comments

Comments
 (0)