Skip to content

Commit c1e8acf

Browse files
committed
Merge branch '4.3.x'
2 parents ef1df4b + ee13dcb commit c1e8acf

File tree

2 files changed

+27
-14
lines changed

2 files changed

+27
-14
lines changed

spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/SubsetServiceInstanceListSupplier.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import org.springframework.cloud.client.ServiceInstance;
2727
import org.springframework.cloud.client.loadbalancer.LoadBalancerProperties;
28+
import org.springframework.cloud.client.loadbalancer.Request;
2829
import org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer;
2930
import org.springframework.cloud.commons.util.IdUtils;
3031
import org.springframework.core.env.PropertyResolver;
@@ -57,7 +58,12 @@ public SubsetServiceInstanceListSupplier(ServiceInstanceListSupplier delegate, P
5758

5859
@Override
5960
public Flux<List<ServiceInstance>> get() {
60-
return delegate.get().map(instances -> {
61+
return get(null);
62+
}
63+
64+
@Override
65+
public Flux<List<ServiceInstance>> get(Request request) {
66+
return delegate.get(request).map(instances -> {
6167
if (instances.size() <= size) {
6268
return instances;
6369
}

spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/SubsetServiceInstanceListSupplierTest.java

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import java.util.Collections;
2020
import java.util.List;
21-
import java.util.Objects;
2221
import java.util.stream.Collectors;
2322
import java.util.stream.IntStream;
2423

@@ -30,11 +29,13 @@
3029
import org.springframework.cloud.client.DefaultServiceInstance;
3130
import org.springframework.cloud.client.ServiceInstance;
3231
import org.springframework.cloud.client.loadbalancer.LoadBalancerProperties;
32+
import org.springframework.cloud.client.loadbalancer.Request;
3333
import org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer;
3434
import org.springframework.cloud.commons.util.IdUtils;
3535
import org.springframework.mock.env.MockEnvironment;
3636

3737
import static org.assertj.core.api.Assertions.assertThat;
38+
import static org.mockito.ArgumentMatchers.any;
3839
import static org.mockito.Mockito.mock;
3940
import static org.mockito.Mockito.when;
4041
import static org.springframework.cloud.loadbalancer.core.LoadBalancerTestUtils.buildLoadBalancerClientFactory;
@@ -49,6 +50,8 @@ class SubsetServiceInstanceListSupplierTest {
4950
private final DiscoveryClientServiceInstanceListSupplier delegate = mock(
5051
DiscoveryClientServiceInstanceListSupplier.class);
5152

53+
private final Request<?> request = mock(Request.class);
54+
5255
private MockEnvironment env;
5356

5457
@BeforeEach
@@ -83,11 +86,11 @@ void shouldUseIdUtilsWhenInstanceIdNotSet() {
8386
@Test
8487
void shouldReturnEmptyWhenDelegateReturnedEmpty() {
8588
when(delegate.getServiceId()).thenReturn("test");
86-
when(delegate.get()).thenReturn(Flux.just(Collections.emptyList()));
89+
when(delegate.get(any(Request.class))).thenReturn(Flux.just(Collections.emptyList()));
8790
SubsetServiceInstanceListSupplier supplier = new SubsetServiceInstanceListSupplier(delegate, env,
8891
factory("foobar", 100));
8992

90-
List<ServiceInstance> serviceInstances = Objects.requireNonNull(supplier.get().blockFirst());
93+
List<ServiceInstance> serviceInstances = supplier.get(request).blockFirst();
9194
assertThat(serviceInstances).isEmpty();
9295
}
9396

@@ -98,11 +101,11 @@ void shouldReturnSublistWithGivenSubsetSize() {
98101
.collect(Collectors.toList());
99102

100103
when(delegate.getServiceId()).thenReturn("test");
101-
when(delegate.get()).thenReturn(Flux.just(instances));
104+
when(delegate.get(any(Request.class))).thenReturn(Flux.just(instances));
102105
SubsetServiceInstanceListSupplier supplier = new SubsetServiceInstanceListSupplier(delegate, env,
103106
factory("foobar", 5));
104107

105-
List<ServiceInstance> serviceInstances = Objects.requireNonNull(supplier.get().blockFirst());
108+
List<ServiceInstance> serviceInstances = supplier.get(request).blockFirst();
106109
assertThat(serviceInstances).hasSize(5);
107110
}
108111

@@ -113,11 +116,11 @@ void shouldReturnRawWhenLessThanSubsetSize() {
113116
.collect(Collectors.toList());
114117

115118
when(delegate.getServiceId()).thenReturn("test");
116-
when(delegate.get()).thenReturn(Flux.just(instances));
119+
when(delegate.get(any(Request.class))).thenReturn(Flux.just(instances));
117120
SubsetServiceInstanceListSupplier supplier = new SubsetServiceInstanceListSupplier(delegate, env,
118121
factory("foobar", 1000));
119122

120-
List<ServiceInstance> serviceInstances = Objects.requireNonNull(supplier.get().blockFirst());
123+
List<ServiceInstance> serviceInstances = supplier.get(request).blockFirst();
121124
assertThat(serviceInstances).hasSize(101);
122125
}
123126

@@ -128,15 +131,17 @@ void shouldReturnSameSublistForSameInstanceId() {
128131
.collect(Collectors.toList());
129132

130133
when(delegate.getServiceId()).thenReturn("test");
131-
when(delegate.get()).thenReturn(Flux.just(instances));
134+
when(delegate.get(any(Request.class))).thenReturn(Flux.just(instances));
132135

133136
SubsetServiceInstanceListSupplier supplier1 = new SubsetServiceInstanceListSupplier(delegate, env,
134137
factory("foobar", 5));
135-
List<ServiceInstance> serviceInstances1 = Objects.requireNonNull(supplier1.get().blockFirst());
138+
List<ServiceInstance> serviceInstances1 = supplier1.get(request).blockFirst();
139+
assertThat(serviceInstances1).hasSize(5);
136140

137141
SubsetServiceInstanceListSupplier supplier2 = new SubsetServiceInstanceListSupplier(delegate, env,
138142
factory("foobar", 5));
139-
List<ServiceInstance> serviceInstances2 = Objects.requireNonNull(supplier2.get().blockFirst());
143+
List<ServiceInstance> serviceInstances2 = supplier2.get(request).blockFirst();
144+
assertThat(serviceInstances2).hasSize(5);
140145

141146
assertThat(serviceInstances1).isEqualTo(serviceInstances2);
142147
}
@@ -148,15 +153,17 @@ void shouldReturnDifferentSublistForDifferentInstanceId() {
148153
.collect(Collectors.toList());
149154

150155
when(delegate.getServiceId()).thenReturn("test");
151-
when(delegate.get()).thenReturn(Flux.just(instances));
156+
when(delegate.get(any(Request.class))).thenReturn(Flux.just(instances));
152157

153158
SubsetServiceInstanceListSupplier supplier1 = new SubsetServiceInstanceListSupplier(delegate, env,
154159
factory("foobar1", 5));
155-
List<ServiceInstance> serviceInstances1 = Objects.requireNonNull(supplier1.get().blockFirst());
160+
List<ServiceInstance> serviceInstances1 = supplier1.get(request).blockFirst();
161+
assertThat(serviceInstances1).hasSize(5);
156162

157163
SubsetServiceInstanceListSupplier supplier2 = new SubsetServiceInstanceListSupplier(delegate, env,
158164
factory("foobar2", 5));
159-
List<ServiceInstance> serviceInstances2 = Objects.requireNonNull(supplier2.get().blockFirst());
165+
List<ServiceInstance> serviceInstances2 = supplier2.get(request).blockFirst();
166+
assertThat(serviceInstances2).hasSize(5);
160167

161168
assertThat(serviceInstances1).isNotEqualTo(serviceInstances2);
162169
}

0 commit comments

Comments
 (0)