Skip to content

Commit 0a1f4bb

Browse files
committed
Fix tests.
1 parent fbdd065 commit 0a1f4bb

File tree

4 files changed

+113
-45
lines changed

4 files changed

+113
-45
lines changed

spring-cloud-netflix-eureka-client-tls-tests/src/test/java/org/springframework/cloud/netflix/eureka/EurekaClientTests.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222

2323
import org.springframework.boot.SpringBootConfiguration;
2424
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
25-
import org.springframework.cloud.netflix.eureka.config.DiscoveryClientOptionalArgsConfiguration;
2625
import org.springframework.cloud.netflix.eureka.http.DefaultEurekaClientHttpRequestFactorySupplier;
2726
import org.springframework.cloud.netflix.eureka.http.RestTemplateDiscoveryClientOptionalArgs;
2827
import org.springframework.cloud.netflix.eureka.http.RestTemplateTransportClientFactories;
@@ -33,7 +32,7 @@
3332

3433
public class EurekaClientTests extends BaseCertTests {
3534

36-
private static final Log log = LogFactory.getLog(EurekaClientTests.class);
35+
private static final Log LOG = LogFactory.getLog(EurekaClientTests.class);
3736

3837
static EurekaServerRunner server;
3938

@@ -44,7 +43,7 @@ public static void setupAll() {
4443
server = startEurekaServer(EurekaClientTests.TestEurekaServer.class);
4544
service = startService(server, EurekaClientTests.TestApp.class);
4645
assertThat(service.discoveryClientOptionalArgs()).isInstanceOf(RestTemplateDiscoveryClientOptionalArgs.class);
47-
log.info("Successfully asserted that Jersey will be used");
46+
LOG.info("Successfully asserted that Jersey will be used");
4847
waitForRegistration(() -> new EurekaClientTests().createEurekaClient());
4948
}
5049

@@ -59,9 +58,8 @@ public static class TestApp {
5958

6059
@Bean
6160
public RestTemplateTransportClientFactories forceRestTemplateTransportClientFactories(
62-
DiscoveryClientOptionalArgsConfiguration configuration,
6361
RestTemplateDiscoveryClientOptionalArgs discoveryClientOptionalArgs) {
64-
return configuration.restTemplateTransportClientFactories(discoveryClientOptionalArgs);
62+
return new RestTemplateTransportClientFactories(discoveryClientOptionalArgs);
6563
}
6664

6765
@Bean
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
/*
2+
* Copyright 2018-2024 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.springframework.cloud.netflix.eureka;
18+
19+
import java.io.IOException;
20+
import java.security.GeneralSecurityException;
21+
22+
import org.apache.commons.logging.Log;
23+
import org.apache.commons.logging.LogFactory;
24+
import org.junit.jupiter.api.AfterAll;
25+
import org.junit.jupiter.api.BeforeAll;
26+
27+
import org.springframework.boot.SpringBootConfiguration;
28+
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
29+
import org.springframework.cloud.configuration.TlsProperties;
30+
import org.springframework.cloud.netflix.eureka.http.EurekaClientHttpRequestFactorySupplier;
31+
import org.springframework.cloud.netflix.eureka.http.RestClientDiscoveryClientOptionalArgs;
32+
import org.springframework.cloud.netflix.eureka.http.RestClientTransportClientFactories;
33+
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
34+
import org.springframework.context.annotation.Bean;
35+
import org.springframework.web.client.RestClient;
36+
37+
import static org.assertj.core.api.Assertions.assertThat;
38+
import static org.springframework.cloud.netflix.eureka.config.DiscoveryClientOptionalArgsConfiguration.setupTLS;
39+
40+
/**
41+
* @author Olga Maciaszek-Sharma
42+
*/
43+
public class RestClientEurekaClientTests extends BaseCertTests {
44+
45+
private static final Log LOG = LogFactory.getLog(RestClientEurekaClientTests.class);
46+
47+
private static EurekaServerRunner server;
48+
49+
private static EurekaClientRunner service;
50+
51+
@BeforeAll
52+
public static void setupAll() {
53+
server = startEurekaServer(TestEurekaServer.class);
54+
service = startService(server, TestApp.class);
55+
// Will use RestClient
56+
assertThat(service.discoveryClientOptionalArgs()).isInstanceOf(RestClientDiscoveryClientOptionalArgs.class);
57+
LOG.info("Successfully asserted that RestClient will be used");
58+
waitForRegistration(() -> new RestClientEurekaClientTests().createEurekaClient());
59+
}
60+
61+
@AfterAll
62+
public static void tearDownAll() {
63+
stopService(service);
64+
stopEurekaServer(server);
65+
}
66+
67+
@Override
68+
EurekaClientRunner createEurekaClient() {
69+
return new EurekaClientRunner(TestApp.class, server);
70+
}
71+
72+
@SpringBootConfiguration
73+
@EnableAutoConfiguration
74+
public static class TestApp {
75+
76+
// Want to force reusing exactly the same bean as on production without excluding
77+
// jersey from the classpath
78+
@Bean
79+
public RestClientDiscoveryClientOptionalArgs forceRestClientDiscoveryClientOptionalArgs(
80+
TlsProperties tlsProperties,
81+
EurekaClientHttpRequestFactorySupplier eurekaClientHttpRequestFactorySupplier)
82+
throws GeneralSecurityException, IOException {
83+
RestClientDiscoveryClientOptionalArgs result = new RestClientDiscoveryClientOptionalArgs(
84+
eurekaClientHttpRequestFactorySupplier, RestClient::builder);
85+
setupTLS(result, tlsProperties);
86+
return result;
87+
}
88+
89+
@Bean
90+
public RestClientTransportClientFactories forceRestClientTransportClientFactories(
91+
RestClientDiscoveryClientOptionalArgs discoveryClientOptionalArgs) {
92+
return new RestClientTransportClientFactories(discoveryClientOptionalArgs);
93+
}
94+
95+
}
96+
97+
@SpringBootConfiguration
98+
@EnableAutoConfiguration
99+
@EnableEurekaServer
100+
public static class TestEurekaServer {
101+
102+
}
103+
104+
}

spring-cloud-netflix-eureka-client-tls-tests/src/test/java/org/springframework/cloud/netflix/eureka/RestTemplateEurekaClientTests.java

Lines changed: 3 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,10 @@
2424
import org.junit.jupiter.api.AfterAll;
2525
import org.junit.jupiter.api.BeforeAll;
2626

27-
import org.springframework.beans.BeansException;
28-
import org.springframework.beans.factory.ObjectProvider;
2927
import org.springframework.boot.SpringBootConfiguration;
3028
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
3129
import org.springframework.boot.web.client.RestTemplateBuilder;
3230
import org.springframework.cloud.configuration.TlsProperties;
33-
import org.springframework.cloud.netflix.eureka.config.DiscoveryClientOptionalArgsConfiguration;
3431
import org.springframework.cloud.netflix.eureka.http.EurekaClientHttpRequestFactorySupplier;
3532
import org.springframework.cloud.netflix.eureka.http.RestTemplateDiscoveryClientOptionalArgs;
3633
import org.springframework.cloud.netflix.eureka.http.RestTemplateTransportClientFactories;
@@ -50,7 +47,7 @@ public class RestTemplateEurekaClientTests extends BaseCertTests {
5047

5148
@BeforeAll
5249
public static void setupAll() {
53-
server = startEurekaServer(RestTemplateEurekaClientTests.RestTemplateTestEurekaServer.class);
50+
server = startEurekaServer(TestEurekaServer.class);
5451
service = startService(server, RestTemplateEurekaClientTests.RestTemplateTestApp.class);
5552
// Will use RestTemplate
5653
assertThat(service.discoveryClientOptionalArgs()).isInstanceOf(RestTemplateDiscoveryClientOptionalArgs.class);
@@ -73,22 +70,17 @@ EurekaClientRunner createEurekaClient() {
7370
@EnableAutoConfiguration
7471
public static class RestTemplateTestApp {
7572

76-
// Want to force reusing exactly the same bean as on production without excluding
77-
// jersey from the classpath
7873
@Bean
7974
public RestTemplateDiscoveryClientOptionalArgs forceRestTemplateDiscoveryClientOptionalArgs(
8075
TlsProperties tlsProperties,
8176
EurekaClientHttpRequestFactorySupplier eurekaClientHttpRequestFactorySupplier)
8277
throws GeneralSecurityException, IOException {
8378
RestTemplateDiscoveryClientOptionalArgs result = new RestTemplateDiscoveryClientOptionalArgs(
84-
eurekaClientHttpRequestFactorySupplier, new RestTemplateBuilderObjectProvider()
85-
);
79+
eurekaClientHttpRequestFactorySupplier, RestTemplateBuilder::new);
8680
setupTLS(result, tlsProperties);
8781
return result;
8882
}
8983

90-
// Want to force reusing exactly the same bean as on production without excluding
91-
// jersey from the classpath
9284
@Bean
9385
public RestTemplateTransportClientFactories forceRestTemplateTransportClientFactories(
9486
RestTemplateDiscoveryClientOptionalArgs discoveryClientOptionalArgs) {
@@ -100,33 +92,7 @@ public RestTemplateTransportClientFactories forceRestTemplateTransportClientFact
10092
@SpringBootConfiguration
10193
@EnableAutoConfiguration
10294
@EnableEurekaServer
103-
public static class RestTemplateTestEurekaServer {
104-
105-
}
106-
107-
private static class RestTemplateBuilderObjectProvider implements ObjectProvider<RestTemplateBuilder> {
108-
109-
private final RestTemplateBuilder builder = new RestTemplateBuilder();
110-
111-
@Override
112-
public RestTemplateBuilder getObject(Object... args) throws BeansException {
113-
return builder;
114-
}
115-
116-
@Override
117-
public RestTemplateBuilder getIfAvailable() throws BeansException {
118-
return builder;
119-
}
120-
121-
@Override
122-
public RestTemplateBuilder getIfUnique() throws BeansException {
123-
return builder;
124-
}
125-
126-
@Override
127-
public RestTemplateBuilder getObject() throws BeansException {
128-
return builder;
129-
}
95+
public static class TestEurekaServer {
13096

13197
}
13298

spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/config/DiscoveryClientOptionalArgsConfiguration.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
* @author Wonchul Heo
6262
*/
6363
@Configuration(proxyBeanMethods = false)
64-
@EnableConfigurationProperties({RestTemplateTimeoutProperties.class, RestClientTimeoutProperties.class})
64+
@EnableConfigurationProperties({ RestTemplateTimeoutProperties.class, RestClientTimeoutProperties.class })
6565
public class DiscoveryClientOptionalArgsConfiguration {
6666

6767
protected static final Log logger = LogFactory.getLog(DiscoveryClientOptionalArgsConfiguration.class);
@@ -93,7 +93,7 @@ public static void setupTLS(AbstractDiscoveryClientOptionalArgs<?> args, TlsProp
9393
static class RestTemplateConfiguration {
9494

9595
@Bean
96-
@ConditionalOnMissingBean(value = {AbstractDiscoveryClientOptionalArgs.class},
96+
@ConditionalOnMissingBean(value = { AbstractDiscoveryClientOptionalArgs.class },
9797
search = SearchStrategy.CURRENT)
9898
public RestTemplateDiscoveryClientOptionalArgs restTemplateDiscoveryClientOptionalArgs(
9999
TlsProperties tlsProperties,
@@ -110,7 +110,7 @@ public RestTemplateDiscoveryClientOptionalArgs restTemplateDiscoveryClientOption
110110

111111
@Bean
112112
@Conditional(OnRestTemplatePresentAndEnabledCondition.class)
113-
@ConditionalOnMissingBean(value = {TransportClientFactories.class}, search = SearchStrategy.CURRENT)
113+
@ConditionalOnMissingBean(value = { TransportClientFactories.class }, search = SearchStrategy.CURRENT)
114114
public RestTemplateTransportClientFactories restTemplateTransportClientFactories(
115115
RestTemplateDiscoveryClientOptionalArgs optionalArgs) {
116116
return new RestTemplateTransportClientFactories(optionalArgs);

0 commit comments

Comments
 (0)