Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Commit ac82ead

Browse files
authored
Merge branch 'develop' into travis-ci-cd
2 parents 9a8b27e + bdf4350 commit ac82ead

File tree

12 files changed

+147
-84
lines changed

12 files changed

+147
-84
lines changed

config-scalecube-configuration-service/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
</dependency>
2323
<dependency>
2424
<groupId>io.scalecube</groupId>
25-
<artifactId>scalecube-services-gateway-clientsdk</artifactId>
25+
<artifactId>scalecube-services-gateway-client-transport</artifactId>
2626
<version>${scalecube-services-gateway.version}</version>
2727
</dependency>
2828
<dependency>

config-scalecube-configuration-service/src/main/java/io/scalecube/config/service/ScalecubeConfigurationServiceConfigSource.java

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.scalecube.config.service;
22

3-
import static io.scalecube.services.gateway.clientsdk.Client.http;
3+
import static io.scalecube.services.gateway.transport.GatewayClientTransports.HTTP_CLIENT_CODEC;
44

55
import com.fasterxml.jackson.core.JsonProcessingException;
66
import com.fasterxml.jackson.core.util.MinimalPrettyPrinter;
@@ -12,21 +12,27 @@
1212
import io.scalecube.configuration.api.ConfigurationService;
1313
import io.scalecube.configuration.api.ReadEntryResponse;
1414
import io.scalecube.configuration.api.ReadListRequest;
15-
import io.scalecube.services.gateway.clientsdk.ClientSettings;
15+
import io.scalecube.net.Address;
16+
import io.scalecube.services.ServiceCall;
17+
import io.scalecube.services.gateway.transport.GatewayClientSettings;
18+
import io.scalecube.services.gateway.transport.GatewayClientTransport;
19+
import io.scalecube.services.gateway.transport.StaticAddressRouter;
20+
import io.scalecube.services.gateway.transport.http.HttpGatewayClient;
1621
import io.scalecube.services.transport.jackson.JacksonCodec;
1722
import java.net.URL;
1823
import java.util.Map;
1924
import java.util.Objects;
2025
import java.util.function.Function;
2126
import org.slf4j.Logger;
2227
import org.slf4j.LoggerFactory;
23-
import reactor.netty.http.HttpResources;
2428

2529
public class ScalecubeConfigurationServiceConfigSource implements ConfigSource {
2630

2731
private static final Logger LOGGER =
2832
LoggerFactory.getLogger(ScalecubeConfigurationServiceConfigSource.class);
2933

34+
private static final ServiceCall serviceCall = new ServiceCall();
35+
3036
private final ConfigurationService service;
3137

3238
private final ReadListRequest requestEntries;
@@ -63,11 +69,10 @@ public ScalecubeConfigurationServiceConfigSource build() {
6369
}
6470
if (this.service == null) {
6571
Objects.requireNonNull(this.url);
66-
ClientSettings.Builder builder =
67-
ClientSettings.builder()
72+
GatewayClientSettings.Builder builder =
73+
GatewayClientSettings.builder()
6874
.host(url.getHost())
69-
.contentType(JacksonCodec.CONTENT_TYPE)
70-
.loopResources(HttpResources.get());
75+
.contentType(JacksonCodec.CONTENT_TYPE);
7176

7277
if ("https".equals(url.getProtocol())) {
7378
if (url.getPort() != -1) {
@@ -85,7 +90,7 @@ public ScalecubeConfigurationServiceConfigSource build() {
8590
} else {
8691
throw new IllegalArgumentException("Unkowon protocol");
8792
}
88-
this.service = http(builder.build()).forService(ConfigurationService.class);
93+
this.service = httpService(builder.build(), ConfigurationService.class);
8994
}
9095
Objects.requireNonNull(this.service, "No URL and no Service was set");
9196

@@ -108,6 +113,21 @@ public Builder url(URL url) {
108113
}
109114
}
110115

116+
/**
117+
* Gateway settings based service.
118+
*
119+
* @param settings gateway client settings
120+
* @param clazz service
121+
* @param <T> class of service
122+
* @return service
123+
*/
124+
public static <T> T httpService(GatewayClientSettings settings, Class<T> clazz) {
125+
return serviceCall
126+
.transport(new GatewayClientTransport(new HttpGatewayClient(settings, HTTP_CLIENT_CODEC)))
127+
.router(new StaticAddressRouter(Address.create(settings.host(), settings.port())))
128+
.api(clazz);
129+
}
130+
111131
public static Builder builder() {
112132
return new Builder();
113133
}

config-scalecube-configuration-service/src/main/java/io/scalecube/config/service/example/ScalecubeConfigurationServiceConfigSourceExample.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.scalecube.config.service.example;
22

3-
import static io.scalecube.services.gateway.clientsdk.Client.http;
3+
import static io.scalecube.config.service.ScalecubeConfigurationServiceConfigSource.builder;
4+
import static io.scalecube.config.service.ScalecubeConfigurationServiceConfigSource.httpService;
45

56
import com.fasterxml.jackson.databind.JsonNode;
67
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -9,20 +10,18 @@
910
import io.scalecube.config.ObjectConfigProperty;
1011
import io.scalecube.config.audit.Slf4JConfigEventListener;
1112
import io.scalecube.config.service.ObjectMapperHolder;
12-
import io.scalecube.config.service.ScalecubeConfigurationServiceConfigSource;
1313
import io.scalecube.config.utils.ThrowableUtil;
1414
import io.scalecube.configuration.api.ConfigurationService;
1515
import io.scalecube.configuration.api.CreateOrUpdateEntryRequest;
16-
import io.scalecube.services.gateway.clientsdk.ClientSettings;
17-
import io.scalecube.services.gateway.clientsdk.ClientSettings.Builder;
16+
import io.scalecube.services.gateway.transport.GatewayClientSettings;
17+
import io.scalecube.services.gateway.transport.GatewayClientSettings.Builder;
1818
import io.scalecube.services.transport.jackson.JacksonCodec;
1919
import java.io.IOException;
2020
import java.net.URL;
2121
import java.time.Duration;
2222
import java.util.concurrent.TimeUnit;
2323
import java.util.function.Function;
2424
import reactor.core.publisher.Flux;
25-
import reactor.netty.http.HttpResources;
2625

2726
public class ScalecubeConfigurationServiceConfigSourceExample {
2827

@@ -43,15 +42,14 @@ public static void main(String[] args) throws IOException, InterruptedException
4342
String token = args[1];
4443
URL url = new URL("https", "configuration-service-http.genesis.om2.com", 443, "/");
4544
Builder builder =
46-
ClientSettings.builder()
45+
GatewayClientSettings.builder()
4746
.host(url.getHost())
4847
.port(url.getPort())
4948
.contentType(JacksonCodec.CONTENT_TYPE)
50-
.loopResources(HttpResources.get())
5149
.secure();
5250

5351
ConfigurationService configurationService =
54-
http(builder.build()).forService(ConfigurationService.class);
52+
httpService(builder.build(), ConfigurationService.class);
5553

5654
String key1 = "person1";
5755
JsonNode value1 = objectMapper.reader().readTree("{\"name\":\"foo\",\"age\":42}");
@@ -66,11 +64,7 @@ public static void main(String[] args) throws IOException, InterruptedException
6664
.addListener(new Slf4JConfigEventListener())
6765
.addLastSource(
6866
"ConfigurationService",
69-
ScalecubeConfigurationServiceConfigSource.builder()
70-
.repository(repository)
71-
.token(token)
72-
.url(url)
73-
.build())
67+
builder().repository(repository).token(token).url(url).build())
7468
.build();
7569
ConfigRegistry configRegistry = ConfigRegistry.create(configRegistrySettings);
7670

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
<properties>
2828
<scalecube.config.version>0.3.11</scalecube.config.version>
2929
<scalecube-services.version>2.8.1</scalecube-services.version>
30-
<scalecube-services-gateway.version>2.8.0</scalecube-services-gateway.version>
30+
<scalecube-services-gateway.version>2.8.2</scalecube-services-gateway.version>
3131
<scalecube-security-jwt.version>1.0.9</scalecube-security-jwt.version>
3232
<scalecube-organization.version>2.1.11</scalecube-organization.version>
3333
<reactor.version>Californium-SR8</reactor.version>
@@ -47,7 +47,7 @@
4747

4848
<maven-failsafe-plugin.version>2.22.2</maven-failsafe-plugin.version>
4949

50-
<skipITests>true</skipITests>
50+
<skipITests>false</skipITests>
5151
</properties>
5252

5353
<modules>
@@ -102,7 +102,7 @@
102102
</dependency>
103103
<dependency>
104104
<groupId>io.scalecube</groupId>
105-
<artifactId>scalecube-services-gateway-clientsdk</artifactId>
105+
<artifactId>scalecube-services-gateway-client-transport</artifactId>
106106
<version>${scalecube-services-gateway.version}</version>
107107
</dependency>
108108
<dependency>

scalecube-configuration-benchmarks/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
</dependency>
3232
<dependency>
3333
<groupId>io.scalecube</groupId>
34-
<artifactId>scalecube-services-gateway-clientsdk</artifactId>
34+
<artifactId>scalecube-services-gateway-client-transport</artifactId>
3535
</dependency>
3636
<dependency>
3737
<groupId>io.scalecube</groupId>

scalecube-configuration-benchmarks/src/main/java/io/scalecube/configuration/benchmarks/ConfigurationServiceBenchmarkState.java

Lines changed: 44 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package io.scalecube.configuration.benchmarks;
22

3+
import static io.scalecube.services.gateway.transport.GatewayClientTransports.HTTP_CLIENT_CODEC;
4+
import static io.scalecube.services.gateway.transport.GatewayClientTransports.RSOCKET_CLIENT_CODEC;
5+
import static io.scalecube.services.gateway.transport.GatewayClientTransports.WEBSOCKET_CLIENT_CODEC;
6+
37
import com.fasterxml.jackson.databind.JsonNode;
48
import com.fasterxml.jackson.databind.ObjectMapper;
59
import io.scalecube.account.api.AddOrganizationApiKeyRequest;
@@ -14,17 +18,23 @@
1418
import io.scalecube.configuration.api.ConfigurationService;
1519
import io.scalecube.configuration.api.CreateOrUpdateEntryRequest;
1620
import io.scalecube.configuration.api.CreateRepositoryRequest;
17-
import io.scalecube.services.gateway.clientsdk.Client;
18-
import io.scalecube.services.gateway.clientsdk.ClientSettings;
19-
import io.scalecube.services.gateway.clientsdk.ClientSettings.Builder;
21+
import io.scalecube.net.Address;
22+
import io.scalecube.services.ServiceCall;
23+
import io.scalecube.services.gateway.transport.GatewayClient;
24+
import io.scalecube.services.gateway.transport.GatewayClientSettings;
25+
import io.scalecube.services.gateway.transport.GatewayClientSettings.Builder;
26+
import io.scalecube.services.gateway.transport.GatewayClientTransport;
27+
import io.scalecube.services.gateway.transport.StaticAddressRouter;
28+
import io.scalecube.services.gateway.transport.http.HttpGatewayClient;
29+
import io.scalecube.services.gateway.transport.rsocket.RSocketGatewayClient;
30+
import io.scalecube.services.gateway.transport.websocket.WebsocketGatewayClient;
2031
import java.util.HashMap;
2132
import java.util.Map;
2233
import java.util.concurrent.atomic.AtomicReference;
2334
import org.slf4j.Logger;
2435
import org.slf4j.LoggerFactory;
2536
import reactor.core.publisher.Flux;
2637
import reactor.core.publisher.Mono;
27-
import reactor.netty.resources.LoopResources;
2838

2939
final class ConfigurationServiceBenchmarkState
3040
extends BenchmarkState<ConfigurationServiceBenchmarkState> {
@@ -40,6 +50,8 @@ final class ConfigurationServiceBenchmarkState
4050
private final String gatewayProtocol;
4151
private final boolean secure;
4252

53+
private final ServiceCall serviceCall;
54+
4355
private final AtomicReference<String> apiKey = new AtomicReference<>();
4456

4557
/**
@@ -55,6 +67,11 @@ public ConfigurationServiceBenchmarkState(BenchmarkSettings settings) {
5567
gatewayPort = Integer.valueOf(settings.find("gatewayPort", "7070"));
5668
gatewayProtocol = String.valueOf(settings.find("gatewayProtocol", "ws"));
5769
secure = Boolean.valueOf(settings.find("secure", "false"));
70+
71+
serviceCall =
72+
new ServiceCall()
73+
.transport(clientTransport())
74+
.router(new StaticAddressRouter(Address.create(gatewayHost, gatewayPort)));
5875
}
5976

6077
@Override
@@ -83,38 +100,48 @@ public String apiKey() {
83100
*
84101
* @return client.
85102
*/
86-
public Client client() {
87-
Builder settingsBuilder =
88-
ClientSettings.builder()
89-
.host(gatewayHost)
90-
.port(gatewayPort)
91-
.loopResources(LoopResources.create("benchmark-client"));
103+
private GatewayClient client() {
104+
Builder settingsBuilder = GatewayClientSettings.builder().host(gatewayHost).port(gatewayPort);
92105

93106
if (secure) {
94107
settingsBuilder.secure();
95108
}
96109

97-
ClientSettings settings = settingsBuilder.build();
110+
GatewayClientSettings settings = settingsBuilder.build();
111+
112+
GatewayClient client;
98113

99114
switch (gatewayProtocol.toLowerCase()) {
100115
case "ws":
101-
return Client.websocket(settings);
116+
client = new WebsocketGatewayClient(settings, WEBSOCKET_CLIENT_CODEC);
117+
break;
102118
case "rs":
103-
return Client.rsocket(settings);
119+
client = new RSocketGatewayClient(settings, RSOCKET_CLIENT_CODEC);
120+
break;
104121
case "http":
105-
return Client.http(settings);
122+
client = new HttpGatewayClient(settings, HTTP_CLIENT_CODEC);
123+
break;
106124
default:
107125
throw new IllegalStateException(
108126
String.format(
109127
"Unknown gateway protocol '%s'. Must be one of following 'ws', 'rs', 'http'",
110128
gatewayProtocol));
111129
}
130+
131+
return client;
132+
}
133+
134+
private GatewayClientTransport clientTransport() {
135+
return new GatewayClientTransport(client());
136+
}
137+
138+
protected <T> T forService(Class<T> clazz) {
139+
return serviceCall.api(clazz);
112140
}
113141

114142
private void preload(Token token, int configKeysCount) {
115-
Client client = client();
116-
OrganizationService organizationService = client.forService(OrganizationService.class);
117-
ConfigurationService configurationService = client.forService(ConfigurationService.class);
143+
OrganizationService organizationService = forService(OrganizationService.class);
144+
ConfigurationService configurationService = forService(ConfigurationService.class);
118145

119146
createOrganization(organizationService, token)
120147
.flatMap(organization -> createApiKey(organizationService, token, organization))

scalecube-configuration-benchmarks/src/main/java/io/scalecube/configuration/benchmarks/ReadAllConfigValuesBenchmark.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public static void main(String[] args) {
2020
.runForAsync(
2121
state -> {
2222
ConfigurationService configurationService =
23-
state.client().forService(ConfigurationService.class);
23+
state.forService(ConfigurationService.class);
2424

2525
BenchmarkTimer timer = state.timer("timer");
2626

scalecube-configuration-benchmarks/src/main/java/io/scalecube/configuration/benchmarks/ReadConfigValueBenchmark.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public static void main(String[] args) {
2222
.runForAsync(
2323
state -> {
2424
ConfigurationService configurationService =
25-
state.client().forService(ConfigurationService.class);
25+
state.forService(ConfigurationService.class);
2626

2727
BenchmarkTimer timer = state.timer("timer");
2828

scalecube-configuration-benchmarks/src/main/java/io/scalecube/configuration/benchmarks/UpdateConfigValueBenchmark.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public static void main(String[] args) {
2525
.runForAsync(
2626
state -> {
2727
ConfigurationService configurationService =
28-
state.client().forService(ConfigurationService.class);
28+
state.forService(ConfigurationService.class);
2929

3030
BenchmarkTimer timer = state.timer("timer");
3131

scalecube-configuration/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@
131131
</dependency>
132132
<dependency>
133133
<groupId>io.scalecube</groupId>
134-
<artifactId>scalecube-services-gateway-clientsdk</artifactId>
134+
<artifactId>scalecube-services-gateway-client-transport</artifactId>
135135
<scope>test</scope>
136136
</dependency>
137137
<dependency>

0 commit comments

Comments
 (0)