From ba9605b36f8aa88dd428be775f87e18c49b2af33 Mon Sep 17 00:00:00 2001 From: buildmaster Date: Tue, 23 Jul 2024 03:55:25 +0000 Subject: [PATCH] Bumping versions --- .../client/actuator/FeaturesEndpoint.java | 5 +- ...ltCircuitBreakerObservationConvention.java | 2 +- .../observation/ObservedFunction.java | 6 +- .../observation/ObservedSupplier.java | 6 +- .../discovery/EnableDiscoveryClient.java | 1 + .../EnableDiscoveryClientImportSelector.java | 2 +- .../DiscoveryCompositeHealthContributor.java | 2 +- ...eactiveDiscoveryClientHealthIndicator.java | 4 +- ...veDiscoveryCompositeHealthContributor.java | 2 +- .../simple/SimpleDiscoveryClient.java | 2 +- .../client/loadbalancer/LoadBalanced.java | 1 + .../LoadBalancerLifecycleValidator.java | 7 +- .../loadbalancer/LoadBalancerProperties.java | 2 +- .../loadbalancer/LoadBalancerUriTools.java | 2 +- .../client/loadbalancer/RequestData.java | 2 +- .../RetryLoadBalancerInterceptor.java | 15 +- .../reactive/ExchangeFilterFunctionUtils.java | 19 +- ...torLoadBalancerExchangeFilterFunction.java | 24 +- ...FilterFunctionLoadBalancerRetryPolicy.java | 8 +- ...bleLoadBalancerExchangeFilterFunction.java | 61 ++--- .../AbstractAutoServiceRegistration.java | 16 +- ...igDataMissingEnvironmentPostProcessor.java | 29 ++- .../publisher/FluxFirstNonEmptyEmitting.java | 4 +- .../cloud/commons/util/InetUtils.java | 2 +- .../util/SpringFactoryImportSelector.java | 2 +- .../SpringBootVersionVerifier.java | 18 +- .../CommonsClientAutoConfigurationTests.java | 103 ++++---- ...veCommonsClientAutoConfigurationTests.java | 104 ++++---- .../actuator/FeaturesEndpointTests.java | 4 +- .../ObservedCircuitBreakerTests.java | 43 ++-- ...bleDiscoveryClientImportSelectorTests.java | 7 +- ...EnableDiscoveryClientMissingImplTests.java | 3 +- .../ManagementServerPortUtilsTests.java | 3 +- ...DiscoveryClientAutoConfigurationTests.java | 4 +- .../CompositeDiscoveryClientOrderTest.java | 2 +- ...DiscoveryClientAutoConfigurationTests.java | 2 +- ...ReactiveCompositeDiscoveryClientTests.java | 15 +- ...scoveryClientHealthIndicatorUnitTests.java | 10 +- ...coveryCompositeHealthContributorTests.java | 2 +- ...veDiscoveryClientHealthIndicatorTests.java | 10 +- ...DiscoveryClientAutoConfigurationTests.java | 31 ++- .../SimpleReactiveDiscoveryClientTests.java | 2 +- .../DiscoveredResourceUnitTests.java | 2 +- ...actLoadBalancerAutoConfigurationTests.java | 56 ++-- .../InterceptorRetryPolicyTest.java | 2 +- ...oadBalancedRestClientIntegrationTests.java | 2 +- .../LoadBalancerAutoConfigurationTests.java | 2 +- ...ancerRequestFactoryConfigurationTests.java | 19 +- .../LoadBalancerRequestFactoryTests.java | 18 +- .../LoadBalancerUriToolsTests.java | 9 +- ...tryLoadBalancerAutoConfigurationTests.java | 37 ++- .../RetryLoadBalancerInterceptorTests.java | 49 ++-- .../reactive/LoadBalancerTestUtils.java | 5 +- ...dBalancerClientAutoConfigurationTests.java | 12 +- ...adBalancerExchangeFilterFunctionTests.java | 78 ++++-- ...xchangeFilterFunctionIntegrationTests.java | 107 +++++--- .../AbstractAutoServiceRegistrationTests.java | 4 +- ...ServiceRegistryAutoConfigurationTests.java | 3 +- ...ceRegistryEndpointNoRegistrationTests.java | 2 +- .../ServiceRegistryEndpointTests.java | 11 +- ...aMissingEnvironmentPostProcessorTests.java | 2 +- .../FluxFirstNonEmptyEmittingTests.java | 79 ++++-- ...erverTokenRelayAutoConfigurationTests.java | 6 +- .../ResourceServerTokenRelayTests.java | 4 +- .../cloud/commons/util/IdUtilsTests.java | 2 +- .../integration/JdbcConfigurationTests.java | 3 +- .../RefreshAutoConfiguration.java | 3 +- .../BootstrapApplicationListener.java | 13 +- ...ootstrapConfigFileApplicationListener.java | 26 +- .../bootstrap/BootstrapImportSelector.java | 2 +- .../TextEncryptorConfigBootstrapper.java | 14 +- .../PropertySourceBootstrapConfiguration.java | 19 +- .../encrypt/EncryptionRuntimeHints.java | 6 +- ...ironmentDecryptApplicationInitializer.java | 4 +- .../bootstrap/encrypt/TextEncryptorUtils.java | 7 +- .../context/named/NamedContextFactory.java | 6 +- .../ConfigurationPropertiesBeans.java | 2 +- .../ConfigurationPropertiesRebinder.java | 2 +- .../refresh/ConfigDataContextRefresher.java | 2 +- .../refresh/LegacyContextRefresher.java | 8 +- .../context/restart/RestartEndpoint.java | 5 +- .../cloud/env/EnvironmentUtils.java | 5 +- .../cloud/logging/LoggingRebinder.java | 5 +- ...efreshAutoConfigurationClassPathTests.java | 2 +- ...shAutoConfigurationMoreClassPathTests.java | 6 +- .../RefreshAutoConfigurationTests.java | 12 +- ...ringAutoConfigurationIntegrationTests.java | 2 +- ...gCustomPropertySourceIntegrationTests.java | 2 +- .../BootstrapSourcesOrderingTests.java | 2 +- .../bootstrap/TestBootstrapConfiguration.java | 5 +- .../config/BootstrapConfigurationTests.java | 241 +++++++++++------- ...trapListenerHierarchyIntegrationTests.java | 23 +- ...EncryptionBootstrapConfigurationTests.java | 45 ++-- .../encrypt/EncryptionIntegrationTests.java | 89 ++++--- .../encrypt/EncryptionRuntimeHintsTests.java | 10 +- ...entDecryptApplicationInitializerTests.java | 45 ++-- .../bootstrap/encrypt/RsaDisabledTests.java | 6 +- .../EnvironmentManagerIntegrationTests.java | 15 +- .../named/NamedContextFactoryTests.java | 8 +- .../refresh/ContextRefresherTests.java | 42 +-- .../ImportRefreshScopeIntegrationTests.java | 2 +- .../RefreshEndpointIntegrationTests.java | 2 +- .../RefreshScopeConfigurationTests.java | 4 +- .../RefreshScopeSerializationTests.java | 7 +- .../RefreshScopeWebIntegrationTests.java | 2 +- .../test/TestConfigDataLocationResolver.java | 15 +- .../cloud/endpoint/RefreshEndpointTests.java | 37 ++- .../cloud/logging/LoggingRebinderTests.java | 2 +- .../LoadBalancerClientConfiguration.java | 82 ++++-- ...dBalancerClientConfigurationRegistrar.java | 2 +- .../LoadBalancerChildContextInitializer.java | 44 ++-- .../client/BlockingLoadBalancerClient.java | 10 +- .../BlockingLoadBalancedRetryPolicy.java | 6 +- ...CaffeineBasedLoadBalancerCacheManager.java | 6 +- .../DefaultLoadBalancerCacheManager.java | 15 +- .../LoadBalancerCacheAutoConfiguration.java | 38 +-- .../CachingServiceInstanceListSupplier.java | 23 +- ...veryClientServiceInstanceListSupplier.java | 29 ++- ...ealthCheckServiceInstanceListSupplier.java | 16 +- .../loadbalancer/core/RandomLoadBalancer.java | 7 +- .../core/RoundRobinLoadBalancer.java | 7 +- ...PreferenceServiceInstanceListSupplier.java | 2 +- .../ServiceInstanceListSupplierBuilder.java | 30 ++- .../WeightedServiceInstanceListSupplier.java | 2 +- .../core/XForwardedHeadersTransformer.java | 2 +- ...PreferenceServiceInstanceListSupplier.java | 2 +- .../loadbalancer/stats/LoadBalancerTags.java | 4 +- .../MicrometerStatsLoadBalancerLifecycle.java | 27 +- .../support/LoadBalancerClientFactory.java | 6 +- .../LoadBalancerClientConfigurationTests.java | 168 ++++++------ ...dBalancerChildContextInitializerTests.java | 10 +- .../BlockingLoadBalancerClientTests.java | 21 +- .../DefaultLoadBalancerCacheManagerTests.java | 4 +- .../cache/DefaultLoadBalancerCacheTests.java | 2 +- ...dBalancerClientAutoConfigurationTests.java | 6 +- ...adBalancerCacheAutoConfigurationTests.java | 47 ++-- ...chingServiceInstanceListSupplierTests.java | 2 +- ...lientServiceInstanceListSupplierTests.java | 64 +++-- ...CheckServiceInstanceListSupplierTests.java | 188 +++++++++----- .../LazyWeightedServiceInstanceListTest.java | 2 +- .../loadbalancer/core/LoadBalancerTests.java | 2 +- ...AwareServiceInstanceListSupplierTests.java | 8 +- ...rviceInstanceListSupplierBuilderTests.java | 14 +- ...ServiceInstanceListSuppliersTestUtils.java | 7 +- ...SubsetServiceInstanceListSupplierTest.java | 16 +- ...ghtedServiceInstanceListSupplierTests.java | 16 +- ...dBalancerClientAutoConfigurationTests.java | 14 +- ...ometerStatsLoadBalancerLifecycleTests.java | 14 +- ...BalancerEnvironmentPropertyUtilsTests.java | 10 +- .../cloud/test/ClassPathExclusions.java | 1 + .../test/ModifiedClassPathClassLoader.java | 12 +- .../test/ModifiedClassPathExtension.java | 3 +- .../cloud/test/ModifiedClassPathRunner.java | 4 +- .../cloud/test/TestSocketUtils.java | 4 +- ...ModifiedClassPathRunnerOverridesTests.java | 4 +- .../cloud/test/TestSocketUtilsTests.java | 12 +- 156 files changed, 1672 insertions(+), 1201 deletions(-) diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/actuator/FeaturesEndpoint.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/actuator/FeaturesEndpoint.java index a164a4f2..8feed302 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/actuator/FeaturesEndpoint.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/actuator/FeaturesEndpoint.java @@ -83,8 +83,9 @@ public class FeaturesEndpoint implements ApplicationContextAware { private void addFeature(Features features, NamedFeature feature) { Class type = feature.getType(); - features.getEnabled().add(new Feature(feature.getName(), type.getCanonicalName(), - type.getPackage().getImplementationVersion(), type.getPackage().getImplementationVendor())); + features.getEnabled() + .add(new Feature(feature.getName(), type.getCanonicalName(), type.getPackage().getImplementationVersion(), + type.getPackage().getImplementationVendor())); } static class Features { diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/observation/DefaultCircuitBreakerObservationConvention.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/observation/DefaultCircuitBreakerObservationConvention.java index 99cae778..a377f771 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/observation/DefaultCircuitBreakerObservationConvention.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/observation/DefaultCircuitBreakerObservationConvention.java @@ -36,7 +36,7 @@ public class DefaultCircuitBreakerObservationConvention implements CircuitBreake @Override public KeyValues getLowCardinalityKeyValues(CircuitBreakerObservationContext context) { return KeyValues.of(CircuitBreakerObservationDocumentation.LowCardinalityTags.OBJECT_TYPE - .withValue(context.getType().name().toLowerCase(Locale.ROOT))); + .withValue(context.getType().name().toLowerCase(Locale.ROOT))); } @Override diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/observation/ObservedFunction.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/observation/ObservedFunction.java index c6fe6a72..191b0b0b 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/observation/ObservedFunction.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/observation/ObservedFunction.java @@ -37,9 +37,9 @@ class ObservedFunction implements Function { String conextualName, ObservationRegistry observationRegistry, Function toRun) { this.delegate = toRun; this.observation = CircuitBreakerObservationDocumentation.CIRCUIT_BREAKER_SUPPLIER_OBSERVATION - .observation(customConvention, DefaultCircuitBreakerObservationConvention.INSTANCE, () -> context, - observationRegistry) - .parentObservation(observationRegistry.getCurrentObservation()); + .observation(customConvention, DefaultCircuitBreakerObservationConvention.INSTANCE, () -> context, + observationRegistry) + .parentObservation(observationRegistry.getCurrentObservation()); this.observation.contextualName(conextualName); } diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/observation/ObservedSupplier.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/observation/ObservedSupplier.java index 996b28a3..6933f097 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/observation/ObservedSupplier.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/circuitbreaker/observation/ObservedSupplier.java @@ -37,9 +37,9 @@ class ObservedSupplier implements Supplier { String contextualName, ObservationRegistry observationRegistry, Supplier toRun) { this.delegate = toRun; this.observation = CircuitBreakerObservationDocumentation.CIRCUIT_BREAKER_SUPPLIER_OBSERVATION - .observation(customConvention, DefaultCircuitBreakerObservationConvention.INSTANCE, () -> context, - observationRegistry) - .parentObservation(observationRegistry.getCurrentObservation()); + .observation(customConvention, DefaultCircuitBreakerObservationConvention.INSTANCE, () -> context, + observationRegistry) + .parentObservation(observationRegistry.getCurrentObservation()); this.observation.contextualName(contextualName); } diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/EnableDiscoveryClient.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/EnableDiscoveryClient.java index 1198e174..aa64c500 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/EnableDiscoveryClient.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/EnableDiscoveryClient.java @@ -27,6 +27,7 @@ import org.springframework.context.annotation.Import; /** * Annotation to enable a DiscoveryClient implementation. + * * @author Spencer Gibb */ @Target(ElementType.TYPE) diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientImportSelector.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientImportSelector.java index a57ff0a8..f1698e49 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientImportSelector.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientImportSelector.java @@ -41,7 +41,7 @@ public class EnableDiscoveryClientImportSelector extends SpringFactoryImportSele String[] imports = super.selectImports(metadata); AnnotationAttributes attributes = AnnotationAttributes - .fromMap(metadata.getAnnotationAttributes(getAnnotationClass().getName(), true)); + .fromMap(metadata.getAnnotationAttributes(getAnnotationClass().getName(), true)); boolean autoRegister = attributes.getBoolean("autoRegister"); diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/DiscoveryCompositeHealthContributor.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/DiscoveryCompositeHealthContributor.java index cde4574c..38231593 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/DiscoveryCompositeHealthContributor.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/DiscoveryCompositeHealthContributor.java @@ -43,7 +43,7 @@ public class DiscoveryCompositeHealthContributor implements CompositeHealthContr public DiscoveryCompositeHealthContributor(Collection indicators) { Assert.notNull(indicators, "'indicators' must not be null"); this.indicators = indicators.stream() - .collect(Collectors.toMap(DiscoveryHealthIndicator::getName, Function.identity())); + .collect(Collectors.toMap(DiscoveryHealthIndicator::getName, Function.identity())); } @Override diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/reactive/ReactiveDiscoveryClientHealthIndicator.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/reactive/ReactiveDiscoveryClientHealthIndicator.java index 13111cd8..6f516ccb 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/reactive/ReactiveDiscoveryClientHealthIndicator.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/reactive/ReactiveDiscoveryClientHealthIndicator.java @@ -71,8 +71,8 @@ public class ReactiveDiscoveryClientHealthIndicator return doHealthCheck(); } else { - return Mono.just( - Health.status(new Status(Status.UNKNOWN.getCode(), "Discovery Client not initialized")).build()); + return Mono + .just(Health.status(new Status(Status.UNKNOWN.getCode(), "Discovery Client not initialized")).build()); } } diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/reactive/ReactiveDiscoveryCompositeHealthContributor.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/reactive/ReactiveDiscoveryCompositeHealthContributor.java index dcaeac4a..d9863b22 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/reactive/ReactiveDiscoveryCompositeHealthContributor.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/reactive/ReactiveDiscoveryCompositeHealthContributor.java @@ -40,7 +40,7 @@ public class ReactiveDiscoveryCompositeHealthContributor implements CompositeRea public ReactiveDiscoveryCompositeHealthContributor(Collection indicators) { Assert.notNull(indicators, "'indicators' must not be null"); this.indicators = indicators.stream() - .collect(Collectors.toMap(ReactiveDiscoveryHealthIndicator::getName, Function.identity())); + .collect(Collectors.toMap(ReactiveDiscoveryHealthIndicator::getName, Function.identity())); } @Override diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/simple/SimpleDiscoveryClient.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/simple/SimpleDiscoveryClient.java index cd9c1968..a791b7e4 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/simple/SimpleDiscoveryClient.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/simple/SimpleDiscoveryClient.java @@ -48,7 +48,7 @@ public class SimpleDiscoveryClient implements DiscoveryClient { public List getInstances(String serviceId) { List serviceInstances = new ArrayList<>(); List serviceInstanceForService = this.simpleDiscoveryProperties.getInstances() - .get(serviceId); + .get(serviceId); if (serviceInstanceForService != null) { serviceInstances.addAll(serviceInstanceForService); } diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalanced.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalanced.java index 667e0192..a9a28a2e 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalanced.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalanced.java @@ -28,6 +28,7 @@ import org.springframework.beans.factory.annotation.Qualifier; /** * Annotation to mark a RestTemplate, RestClient.Builder or WebClient.Builder bean to be * configured to use a LoadBalancerClient. + * * @author Spencer Gibb */ @Target({ ElementType.FIELD, ElementType.PARAMETER, ElementType.METHOD }) diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerLifecycleValidator.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerLifecycleValidator.java index b51c81f4..05d3c6d7 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerLifecycleValidator.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerLifecycleValidator.java @@ -41,9 +41,10 @@ public final class LoadBalancerLifecycleValidator { if (lifecycleProcessors == null) { return new HashSet<>(); } - return lifecycleProcessors.values().stream() - .filter(lifecycle -> lifecycle.supports(requestContextClass, clientResponseClass, serverTypeClass)) - .collect(Collectors.toSet()); + return lifecycleProcessors.values() + .stream() + .filter(lifecycle -> lifecycle.supports(requestContextClass, clientResponseClass, serverTypeClass)) + .collect(Collectors.toSet()); } } diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerProperties.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerProperties.java index 53965a34..7136a164 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerProperties.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerProperties.java @@ -429,7 +429,7 @@ public class LoadBalancerProperties { public void setRetryableExceptions(Set> retryableExceptions) { retryableExceptions - .add(org.springframework.cloud.client.loadbalancer.reactive.RetryableStatusCodeException.class); + .add(org.springframework.cloud.client.loadbalancer.reactive.RetryableStatusCodeException.class); this.retryableExceptions = retryableExceptions; } diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerUriTools.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerUriTools.java index 63779ac2..7715875d 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerUriTools.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerUriTools.java @@ -95,7 +95,7 @@ public final class LoadBalancerUriTools { private static URI doReconstructURI(ServiceInstance serviceInstance, URI original) { String host = serviceInstance.getHost(); String scheme = Optional.ofNullable(serviceInstance.getScheme()) - .orElse(computeScheme(original, serviceInstance)); + .orElse(computeScheme(original, serviceInstance)); int port = computePort(serviceInstance.getPort(), scheme); if (Objects.equals(host, original.getHost()) && port == original.getPort() diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/RequestData.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/RequestData.java index bd666d2b..8c320190 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/RequestData.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/RequestData.java @@ -83,7 +83,7 @@ public class RequestData { HttpHeaders newCookies = new HttpHeaders(); if (cookies != null) { cookies.forEach((key, value) -> value - .forEach(cookie -> newCookies.put(cookie.getName(), Collections.singletonList(cookie.getValue())))); + .forEach(cookie -> newCookies.put(cookie.getName(), Collections.singletonList(cookie.getValue())))); } return newCookies; } diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/RetryLoadBalancerInterceptor.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/RetryLoadBalancerInterceptor.java index 293bc408..5f2e05b6 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/RetryLoadBalancerInterceptor.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/RetryLoadBalancerInterceptor.java @@ -83,9 +83,9 @@ public class RetryLoadBalancerInterceptor implements BlockingLoadBalancerInterce } } Set supportedLifecycleProcessors = LoadBalancerLifecycleValidator - .getSupportedLifecycleProcessors( - loadBalancerFactory.getInstances(serviceName, LoadBalancerLifecycle.class), - RetryableRequestContext.class, ResponseData.class, ServiceInstance.class); + .getSupportedLifecycleProcessors( + loadBalancerFactory.getInstances(serviceName, LoadBalancerLifecycle.class), + RetryableRequestContext.class, ResponseData.class, ServiceInstance.class); String hint = getHint(serviceName); if (serviceInstance == null) { if (LOG.isDebugEnabled()) { @@ -109,11 +109,10 @@ public class RetryLoadBalancerInterceptor implements BlockingLoadBalancerInterce Response lbResponse = new DefaultResponse(serviceInstance); if (serviceInstance == null) { supportedLifecycleProcessors.forEach(lifecycle -> lifecycle - .onComplete(new CompletionContext( - CompletionContext.Status.DISCARD, - new DefaultRequest<>( - new RetryableRequestContext(null, new RequestData(request), hint)), - lbResponse))); + .onComplete(new CompletionContext( + CompletionContext.Status.DISCARD, + new DefaultRequest<>(new RetryableRequestContext(null, new RequestData(request), hint)), + lbResponse))); } } LoadBalancerRequestAdapter lbRequest = new LoadBalancerRequestAdapter<>( diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/ExchangeFilterFunctionUtils.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/ExchangeFilterFunctionUtils.java index 319e3d06..7538b023 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/ExchangeFilterFunctionUtils.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/ExchangeFilterFunctionUtils.java @@ -48,14 +48,17 @@ public final class ExchangeFilterFunctionUtils { List transformers) { URI originalUrl = request.url(); ClientRequest clientRequest = ClientRequest - .create(request.method(), LoadBalancerUriTools.reconstructURI(serviceInstance, originalUrl)) - .headers(headers -> headers.addAll(request.headers())).cookies(cookies -> { - cookies.addAll(request.cookies()); - if (!(instanceIdCookieName == null || instanceIdCookieName.length() == 0) - && addServiceInstanceCookie) { - cookies.add(instanceIdCookieName, serviceInstance.getInstanceId()); - } - }).attributes(attributes -> attributes.putAll(request.attributes())).body(request.body()).build(); + .create(request.method(), LoadBalancerUriTools.reconstructURI(serviceInstance, originalUrl)) + .headers(headers -> headers.addAll(request.headers())) + .cookies(cookies -> { + cookies.addAll(request.cookies()); + if (!(instanceIdCookieName == null || instanceIdCookieName.length() == 0) && addServiceInstanceCookie) { + cookies.add(instanceIdCookieName, serviceInstance.getInstanceId()); + } + }) + .attributes(attributes -> attributes.putAll(request.attributes())) + .body(request.body()) + .build(); if (transformers != null) { for (LoadBalancerClientRequestTransformer transformer : transformers) { clientRequest = transformer.transformRequest(clientRequest, serviceInstance); diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerExchangeFilterFunction.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerExchangeFilterFunction.java index f4ec37b7..3d0e632e 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerExchangeFilterFunction.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerExchangeFilterFunction.java @@ -80,9 +80,8 @@ public class ReactorLoadBalancerExchangeFilterFunction implements LoadBalancedEx return Mono.just(ClientResponse.create(HttpStatus.BAD_REQUEST).body(message).build()); } Set supportedLifecycleProcessors = LoadBalancerLifecycleValidator - .getSupportedLifecycleProcessors( - loadBalancerFactory.getInstances(serviceId, LoadBalancerLifecycle.class), - RequestDataContext.class, ResponseData.class, ServiceInstance.class); + .getSupportedLifecycleProcessors(loadBalancerFactory.getInstances(serviceId, LoadBalancerLifecycle.class), + RequestDataContext.class, ResponseData.class, ServiceInstance.class); String hint = getHint(serviceId, loadBalancerFactory.getProperties(serviceId).getHint()); RequestData requestData = new RequestData(clientRequest); DefaultRequest lbRequest = new DefaultRequest<>(new RequestDataContext(requestData, hint)); @@ -95,9 +94,10 @@ public class ReactorLoadBalancerExchangeFilterFunction implements LoadBalancedEx LOG.warn(message); } supportedLifecycleProcessors.forEach(lifecycle -> lifecycle - .onComplete(new CompletionContext<>(CompletionContext.Status.DISCARD, lbRequest, lbResponse))); + .onComplete(new CompletionContext<>(CompletionContext.Status.DISCARD, lbRequest, lbResponse))); return Mono.just(ClientResponse.create(HttpStatus.SERVICE_UNAVAILABLE) - .body(serviceInstanceUnavailableMessage(serviceId)).build()); + .body(serviceInstanceUnavailableMessage(serviceId)) + .build()); } if (LOG.isDebugEnabled()) { @@ -105,18 +105,18 @@ public class ReactorLoadBalancerExchangeFilterFunction implements LoadBalancedEx instance.getUri())); } LoadBalancerProperties.StickySession stickySessionProperties = loadBalancerFactory.getProperties(serviceId) - .getStickySession(); + .getStickySession(); ClientRequest newRequest = buildClientRequest(clientRequest, instance, stickySessionProperties.getInstanceIdCookieName(), stickySessionProperties.isAddServiceInstanceCookie(), transformers); supportedLifecycleProcessors.forEach(lifecycle -> lifecycle.onStartRequest(lbRequest, lbResponse)); return next.exchange(newRequest) - .doOnError(throwable -> supportedLifecycleProcessors.forEach(lifecycle -> lifecycle - .onComplete(new CompletionContext( - CompletionContext.Status.FAILED, throwable, lbRequest, lbResponse)))) - .doOnSuccess(clientResponse -> supportedLifecycleProcessors.forEach( - lifecycle -> lifecycle.onComplete(new CompletionContext<>(CompletionContext.Status.SUCCESS, - lbRequest, lbResponse, new ResponseData(clientResponse, requestData))))); + .doOnError(throwable -> supportedLifecycleProcessors.forEach(lifecycle -> lifecycle + .onComplete(new CompletionContext( + CompletionContext.Status.FAILED, throwable, lbRequest, lbResponse)))) + .doOnSuccess(clientResponse -> supportedLifecycleProcessors + .forEach(lifecycle -> lifecycle.onComplete(new CompletionContext<>(CompletionContext.Status.SUCCESS, + lbRequest, lbResponse, new ResponseData(clientResponse, requestData))))); }); } diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/RetryableExchangeFilterFunctionLoadBalancerRetryPolicy.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/RetryableExchangeFilterFunctionLoadBalancerRetryPolicy.java index b0d204b2..d7dcf92d 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/RetryableExchangeFilterFunctionLoadBalancerRetryPolicy.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/RetryableExchangeFilterFunctionLoadBalancerRetryPolicy.java @@ -54,9 +54,11 @@ public class RetryableExchangeFilterFunctionLoadBalancerRetryPolicy implements L if (properties.getRetry().isRetryOnAllExceptions()) { return true; } - return properties.getRetry().getRetryableExceptions().stream() - .anyMatch(exception -> exception.isInstance(throwable) - || throwable != null && exception.isInstance(throwable.getCause())); + return properties.getRetry() + .getRetryableExceptions() + .stream() + .anyMatch(exception -> exception.isInstance(throwable) + || throwable != null && exception.isInstance(throwable.getCause())); } @Override diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/RetryableLoadBalancerExchangeFilterFunction.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/RetryableLoadBalancerExchangeFilterFunction.java index 808ca359..22002b48 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/RetryableLoadBalancerExchangeFilterFunction.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/RetryableLoadBalancerExchangeFilterFunction.java @@ -98,9 +98,8 @@ public class RetryableLoadBalancerExchangeFilterFunction implements LoadBalanced properties.getRetry(), retryPolicy); Set supportedLifecycleProcessors = LoadBalancerLifecycleValidator - .getSupportedLifecycleProcessors( - loadBalancerFactory.getInstances(serviceId, LoadBalancerLifecycle.class), - RetryableRequestContext.class, ResponseData.class, ServiceInstance.class); + .getSupportedLifecycleProcessors(loadBalancerFactory.getInstances(serviceId, LoadBalancerLifecycle.class), + RetryableRequestContext.class, ResponseData.class, ServiceInstance.class); String hint = getHint(serviceId, properties.getHint()); RequestData requestData = new RequestData(clientRequest); DefaultRequest lbRequest = new DefaultRequest<>( @@ -115,10 +114,11 @@ public class RetryableLoadBalancerExchangeFilterFunction implements LoadBalanced LOG.warn(message); } supportedLifecycleProcessors.forEach(lifecycle -> lifecycle - .onComplete(new CompletionContext( - CompletionContext.Status.DISCARD, lbRequest, lbResponse))); + .onComplete(new CompletionContext( + CompletionContext.Status.DISCARD, lbRequest, lbResponse))); return Mono.just(ClientResponse.create(HttpStatus.SERVICE_UNAVAILABLE) - .body(serviceInstanceUnavailableMessage(serviceId)).build()); + .body(serviceInstanceUnavailableMessage(serviceId)) + .build()); } if (LOG.isDebugEnabled()) { @@ -131,24 +131,24 @@ public class RetryableLoadBalancerExchangeFilterFunction implements LoadBalanced stickySessionProperties.isAddServiceInstanceCookie(), transformers); supportedLifecycleProcessors.forEach(lifecycle -> lifecycle.onStartRequest(lbRequest, lbResponse)); return next.exchange(newRequest) - .doOnError(throwable -> supportedLifecycleProcessors.forEach(lifecycle -> lifecycle - .onComplete(new CompletionContext( - CompletionContext.Status.FAILED, throwable, lbRequest, lbResponse)))) - .doOnSuccess(clientResponse -> supportedLifecycleProcessors.forEach( - lifecycle -> lifecycle.onComplete(new CompletionContext<>(CompletionContext.Status.SUCCESS, - lbRequest, lbResponse, new ResponseData(clientResponse, requestData))))) - .map(clientResponse -> { - loadBalancerRetryContext.setClientResponse(clientResponse); - if (shouldRetrySameServiceInstance(retryPolicy, loadBalancerRetryContext)) { - if (LOG.isDebugEnabled()) { - LOG.debug(String.format("Retrying on status code: %d", - clientResponse.statusCode().value())); - } - throw new RetryableStatusCodeException(); + .doOnError(throwable -> supportedLifecycleProcessors.forEach(lifecycle -> lifecycle + .onComplete(new CompletionContext( + CompletionContext.Status.FAILED, throwable, lbRequest, lbResponse)))) + .doOnSuccess(clientResponse -> supportedLifecycleProcessors + .forEach(lifecycle -> lifecycle.onComplete(new CompletionContext<>(CompletionContext.Status.SUCCESS, + lbRequest, lbResponse, new ResponseData(clientResponse, requestData))))) + .map(clientResponse -> { + loadBalancerRetryContext.setClientResponse(clientResponse); + if (shouldRetrySameServiceInstance(retryPolicy, loadBalancerRetryContext)) { + if (LOG.isDebugEnabled()) { + LOG.debug( + String.format("Retrying on status code: %d", clientResponse.statusCode().value())); } - return clientResponse; + throw new RetryableStatusCodeException(); + } + return clientResponse; - }); + }); }).map(clientResponse -> { loadBalancerRetryContext.setClientResponse(clientResponse); if (shouldRetryNextServiceInstance(retryPolicy, loadBalancerRetryContext)) { @@ -165,18 +165,21 @@ public class RetryableLoadBalancerExchangeFilterFunction implements LoadBalanced private Retry buildRetrySpec(int max, boolean transientErrors, LoadBalancerProperties.Retry retry, LoadBalancerRetryPolicy retryPolicy) { if (!retry.isEnabled()) { - return Retry.max(0).filter(throwable -> isRetryException(throwable, retryPolicy)) - .transientErrors(transientErrors); + return Retry.max(0) + .filter(throwable -> isRetryException(throwable, retryPolicy)) + .transientErrors(transientErrors); } LoadBalancerProperties.Retry.Backoff backoffProperties = retry.getBackoff(); if (backoffProperties.isEnabled()) { return RetrySpec.backoff(max, backoffProperties.getMinBackoff()) - .filter(throwable -> isRetryException(throwable, retryPolicy)) - .maxBackoff(backoffProperties.getMaxBackoff()).jitter(backoffProperties.getJitter()) - .transientErrors(transientErrors); - } - return RetrySpec.max(max).filter(throwable -> isRetryException(throwable, retryPolicy)) + .filter(throwable -> isRetryException(throwable, retryPolicy)) + .maxBackoff(backoffProperties.getMaxBackoff()) + .jitter(backoffProperties.getJitter()) .transientErrors(transientErrors); + } + return RetrySpec.max(max) + .filter(throwable -> isRetryException(throwable, retryPolicy)) + .transientErrors(transientErrors); } private boolean shouldRetrySameServiceInstance(LoadBalancerRetryPolicy retryPolicy, diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AbstractAutoServiceRegistration.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AbstractAutoServiceRegistration.java index aadb0ed7..2e764885 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AbstractAutoServiceRegistration.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AbstractAutoServiceRegistration.java @@ -158,12 +158,12 @@ public abstract class AbstractAutoServiceRegistration registrationLifecycle -> registrationLifecycle.postProcessAfterStartRegister(getRegistration())); if (shouldRegisterManagement()) { this.registrationManagementLifecycles - .forEach(registrationManagementLifecycle -> registrationManagementLifecycle - .postProcessBeforeStartRegisterManagement(getManagementRegistration())); + .forEach(registrationManagementLifecycle -> registrationManagementLifecycle + .postProcessBeforeStartRegisterManagement(getManagementRegistration())); this.registerManagement(); registrationManagementLifecycles - .forEach(registrationManagementLifecycle -> registrationManagementLifecycle - .postProcessAfterStartRegisterManagement(getManagementRegistration())); + .forEach(registrationManagementLifecycle -> registrationManagementLifecycle + .postProcessAfterStartRegisterManagement(getManagementRegistration())); } this.context.publishEvent(new InstanceRegisteredEvent<>(this, getConfiguration())); @@ -301,12 +301,12 @@ public abstract class AbstractAutoServiceRegistration registrationLifecycle -> registrationLifecycle.postProcessAfterStopRegister(getRegistration())); if (shouldRegisterManagement()) { this.registrationManagementLifecycles - .forEach(registrationManagementLifecycle -> registrationManagementLifecycle - .postProcessBeforeStopRegisterManagement(getManagementRegistration())); + .forEach(registrationManagementLifecycle -> registrationManagementLifecycle + .postProcessBeforeStopRegisterManagement(getManagementRegistration())); deregisterManagement(); this.registrationManagementLifecycles - .forEach(registrationManagementLifecycle -> registrationManagementLifecycle - .postProcessAfterStopRegisterManagement(getManagementRegistration())); + .forEach(registrationManagementLifecycle -> registrationManagementLifecycle + .postProcessAfterStopRegisterManagement(getManagementRegistration())); } this.serviceRegistry.close(); } diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/ConfigDataMissingEnvironmentPostProcessor.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/ConfigDataMissingEnvironmentPostProcessor.java index 074d6587..fba3d918 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/ConfigDataMissingEnvironmentPostProcessor.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/ConfigDataMissingEnvironmentPostProcessor.java @@ -88,24 +88,27 @@ public abstract class ConfigDataMissingEnvironmentPostProcessor implements Envir private List getConfigImports(ConfigurableEnvironment environment) { MutablePropertySources propertySources = environment.getPropertySources(); - List property = propertySources.stream().filter(this::propertySourceWithConfigImport) - .flatMap(propertySource -> { - List configImports = new ArrayList<>(); - if (propertySource.getProperty(CONFIG_IMPORT_PROPERTY) != null) { - configImports.add(propertySource.getProperty(CONFIG_IMPORT_PROPERTY)); - } - else { - configImports.addAll(Arrays.asList(getConfigImportArray(propertySource))); - } - return configImports.stream(); - }).collect(Collectors.toList()); + List property = propertySources.stream() + .filter(this::propertySourceWithConfigImport) + .flatMap(propertySource -> { + List configImports = new ArrayList<>(); + if (propertySource.getProperty(CONFIG_IMPORT_PROPERTY) != null) { + configImports.add(propertySource.getProperty(CONFIG_IMPORT_PROPERTY)); + } + else { + configImports.addAll(Arrays.asList(getConfigImportArray(propertySource))); + } + return configImports.stream(); + }) + .collect(Collectors.toList()); return property; } private boolean propertySourceWithConfigImport(PropertySource propertySource) { if (propertySource instanceof CompositePropertySource) { - return ((CompositePropertySource) propertySource).getPropertySources().stream() - .anyMatch(this::propertySourceWithConfigImport); + return ((CompositePropertySource) propertySource).getPropertySources() + .stream() + .anyMatch(this::propertySourceWithConfigImport); } return propertySource.containsProperty(CONFIG_IMPORT_PROPERTY) || getConfigImportArray(propertySource).length > 0; diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/publisher/FluxFirstNonEmptyEmitting.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/publisher/FluxFirstNonEmptyEmitting.java index ed33b4b3..a28fa2f0 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/publisher/FluxFirstNonEmptyEmitting.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/publisher/FluxFirstNonEmptyEmitting.java @@ -150,10 +150,10 @@ final class FluxFirstNonEmptyEmitting extends Flux implements Scannable, P @SuppressWarnings("rawtypes") static final AtomicIntegerFieldUpdater WIP = AtomicIntegerFieldUpdater - .newUpdater(RaceCoordinator.class, "wip"); + .newUpdater(RaceCoordinator.class, "wip"); static final AtomicIntegerFieldUpdater COMPETING_SUBSCRIBERS = AtomicIntegerFieldUpdater - .newUpdater(RaceCoordinator.class, "competingSubscribers"); + .newUpdater(RaceCoordinator.class, "competingSubscribers"); @SuppressWarnings("unchecked") RaceCoordinator(int n) { diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/util/InetUtils.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/util/InetUtils.java index cd5e782a..c1eb1031 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/util/InetUtils.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/util/InetUtils.java @@ -76,7 +76,7 @@ public class InetUtils implements Closeable { try { int lowest = Integer.MAX_VALUE; for (Enumeration nics = NetworkInterface.getNetworkInterfaces(); nics - .hasMoreElements();) { + .hasMoreElements();) { NetworkInterface ifc = nics.nextElement(); if (ifc.isUp()) { this.log.trace("Testing interface: " + ifc.getDisplayName()); diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/util/SpringFactoryImportSelector.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/util/SpringFactoryImportSelector.java index d8237adf..50eb6e00 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/util/SpringFactoryImportSelector.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/commons/util/SpringFactoryImportSelector.java @@ -64,7 +64,7 @@ public abstract class SpringFactoryImportSelector return new String[0]; } AnnotationAttributes attributes = AnnotationAttributes - .fromMap(metadata.getAnnotationAttributes(this.annotationClass.getName(), true)); + .fromMap(metadata.getAnnotationAttributes(this.annotationClass.getName(), true)); Assert.notNull(attributes, "No " + getSimpleName() + " attributes found. Is " + metadata.getClassName() + " annotated with @" + getSimpleName() + "?"); diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/configuration/SpringBootVersionVerifier.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/configuration/SpringBootVersionVerifier.java index 5d6d36fb..691a957a 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/configuration/SpringBootVersionVerifier.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/configuration/SpringBootVersionVerifier.java @@ -123,14 +123,14 @@ class SpringBootVersionVerifier implements CompatibilityVerifier { } private String action() { - return String.format( - """ - Change Spring Boot version to one of the following versions %s . - You can find the latest Spring Boot versions here [%s].\s - If you want to learn more about the Spring Cloud Release train compatibility, you can visit this page [%s] and check the [Release Trains] section. - If you want to disable this check, just set the property [spring.cloud.compatibility-verifier.enabled=false]""", - this.acceptedVersions, "https://spring.io/projects/spring-boot#learn", - "https://spring.io/projects/spring-cloud#overview"); + return String + .format(""" + Change Spring Boot version to one of the following versions %s . + You can find the latest Spring Boot versions here [%s].\s + If you want to learn more about the Spring Cloud Release train compatibility, you can visit this page [%s] and check the [Release Trains] section. + If you want to disable this check, just set the property [spring.cloud.compatibility-verifier.enabled=false]""", + this.acceptedVersions, "https://spring.io/projects/spring-boot#learn", + "https://spring.io/projects/spring-cloud#overview"); } private boolean springBootVersionMatches() { @@ -147,7 +147,7 @@ class SpringBootVersionVerifier implements CompatibilityVerifier { // otherwise this could lead to false positives for future // versions of boot CompatibilityPredicate predicate = this.ACCEPTED_VERSIONS - .get(stripWildCardFromVersion(acceptedVersion)); + .get(stripWildCardFromVersion(acceptedVersion)); if (predicate != null && predicate.isCompatible()) { if (log.isDebugEnabled()) { log.debug("Predicate [" + predicate + "] was matched"); diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/CommonsClientAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/CommonsClientAutoConfigurationTests.java index 96d04f36..6087f0b7 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/CommonsClientAutoConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/CommonsClientAutoConfigurationTests.java @@ -42,92 +42,99 @@ import static org.assertj.core.api.BDDAssertions.then; public class CommonsClientAutoConfigurationTests { ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(CommonsClientAutoConfiguration.class, - SimpleDiscoveryClientAutoConfiguration.class, UtilAutoConfiguration.class)); + .withConfiguration(AutoConfigurations.of(CommonsClientAutoConfiguration.class, + SimpleDiscoveryClientAutoConfiguration.class, UtilAutoConfiguration.class)); @Test public void beansCreatedNormally() { applicationContextRunner.withConfiguration(AutoConfigurations.of(HealthEndpointAutoConfiguration.class)) - .withPropertyValues("management.endpoints.web.exposure.include=features").run(ctxt -> { - then(ctxt.getBean(DiscoveryClientHealthIndicator.class)).isNotNull(); - then(ctxt.getBean(DiscoveryCompositeHealthContributor.class)).isNotNull(); - then(ctxt.getBean(FeaturesEndpoint.class)).isNotNull(); - then(ctxt.getBeansOfType(HasFeatures.class).values()).isNotEmpty(); - }); + .withPropertyValues("management.endpoints.web.exposure.include=features") + .run(ctxt -> { + then(ctxt.getBean(DiscoveryClientHealthIndicator.class)).isNotNull(); + then(ctxt.getBean(DiscoveryCompositeHealthContributor.class)).isNotNull(); + then(ctxt.getBean(FeaturesEndpoint.class)).isNotNull(); + then(ctxt.getBeansOfType(HasFeatures.class).values()).isNotEmpty(); + }); } @Test public void disableAll() { - applicationContextRunner.withPropertyValues("spring.cloud.discovery.enabled=false", - "management.endpoints.web.exposure.include=features").run(ctxt -> { - assertThat(ctxt).doesNotHaveBean(DiscoveryClientHealthIndicator.class); - assertThat(ctxt).doesNotHaveBean(DiscoveryCompositeHealthContributor.class); - then(ctxt.getBean(FeaturesEndpoint.class)).isNotNull(); - // features actuator is independent of discovery - assertThat(ctxt).doesNotHaveBean(HasFeatures.class); - }); + applicationContextRunner + .withPropertyValues("spring.cloud.discovery.enabled=false", + "management.endpoints.web.exposure.include=features") + .run(ctxt -> { + assertThat(ctxt).doesNotHaveBean(DiscoveryClientHealthIndicator.class); + assertThat(ctxt).doesNotHaveBean(DiscoveryCompositeHealthContributor.class); + then(ctxt.getBean(FeaturesEndpoint.class)).isNotNull(); + // features actuator is independent of discovery + assertThat(ctxt).doesNotHaveBean(HasFeatures.class); + }); } @Test public void disableBlocking() { - applicationContextRunner.withPropertyValues("spring.cloud.discovery.blocking.enabled=false", - "management.endpoints.web.exposure.include=features").run(ctxt -> { - assertThat(ctxt).doesNotHaveBean(DiscoveryClientHealthIndicator.class); - assertThat(ctxt).doesNotHaveBean(DiscoveryCompositeHealthContributor.class); - then(ctxt.getBean(FeaturesEndpoint.class)).isNotNull(); - // features actuator is independent of discovery - assertThat(ctxt).doesNotHaveBean(HasFeatures.class); - }); + applicationContextRunner + .withPropertyValues("spring.cloud.discovery.blocking.enabled=false", + "management.endpoints.web.exposure.include=features") + .run(ctxt -> { + assertThat(ctxt).doesNotHaveBean(DiscoveryClientHealthIndicator.class); + assertThat(ctxt).doesNotHaveBean(DiscoveryCompositeHealthContributor.class); + then(ctxt.getBean(FeaturesEndpoint.class)).isNotNull(); + // features actuator is independent of discovery + assertThat(ctxt).doesNotHaveBean(HasFeatures.class); + }); } @Test public void disableAllIndividually() { - applicationContextRunner.withPropertyValues("spring.cloud.discovery.client.health-indicator.enabled=false", - "spring.cloud.discovery.client.composite-indicator.enabled=false", - "spring.cloud.features.enabled=false").run(ctxt -> { - assertThat(ctxt).doesNotHaveBean(DiscoveryClientHealthIndicator.class); - assertThat(ctxt).doesNotHaveBean(DiscoveryCompositeHealthContributor.class); - assertThat(ctxt).doesNotHaveBean(FeaturesEndpoint.class); - }); + applicationContextRunner + .withPropertyValues("spring.cloud.discovery.client.health-indicator.enabled=false", + "spring.cloud.discovery.client.composite-indicator.enabled=false", + "spring.cloud.features.enabled=false") + .run(ctxt -> { + assertThat(ctxt).doesNotHaveBean(DiscoveryClientHealthIndicator.class); + assertThat(ctxt).doesNotHaveBean(DiscoveryCompositeHealthContributor.class); + assertThat(ctxt).doesNotHaveBean(FeaturesEndpoint.class); + }); } @Test public void disableHealthIndicator() { applicationContextRunner.withPropertyValues("spring.cloud.discovery.client.health-indicator.enabled=false") - .run(ctxt -> { - assertThat(ctxt).doesNotHaveBean(DiscoveryClientHealthIndicator.class); - assertThat(ctxt).doesNotHaveBean(DiscoveryCompositeHealthContributor.class); - }); + .run(ctxt -> { + assertThat(ctxt).doesNotHaveBean(DiscoveryClientHealthIndicator.class); + assertThat(ctxt).doesNotHaveBean(DiscoveryCompositeHealthContributor.class); + }); } @Test public void worksWithoutActuator() { applicationContextRunner.withClassLoader(new FilteredClassLoader("org.springframework.boot.actuate")) - .run(context -> { - assertThat(context).doesNotHaveBean(DiscoveryClientHealthIndicator.class); - assertThat(context).doesNotHaveBean(DiscoveryCompositeHealthContributor.class); - then(context.getBeansOfType(HasFeatures.class).values()).isEmpty(); - }); + .run(context -> { + assertThat(context).doesNotHaveBean(DiscoveryClientHealthIndicator.class); + assertThat(context).doesNotHaveBean(DiscoveryCompositeHealthContributor.class); + then(context.getBeansOfType(HasFeatures.class).values()).isEmpty(); + }); } @Test public void conditionalOnDiscoveryEnabledWorks() { applicationContextRunner.withUserConfiguration(DiscoveryEnabledConfig.class) - .withPropertyValues("spring.cloud.discovery.enabled=false") - .run(context -> assertThat(context).doesNotHaveBean(TestBean.class)); + .withPropertyValues("spring.cloud.discovery.enabled=false") + .run(context -> assertThat(context).doesNotHaveBean(TestBean.class)); applicationContextRunner.withUserConfiguration(DiscoveryEnabledConfig.class) - .withPropertyValues("spring.cloud.discovery.enabled=true") - .run(context -> assertThat(context.getBean(TestBean.class)).isNotNull()); + .withPropertyValues("spring.cloud.discovery.enabled=true") + .run(context -> assertThat(context.getBean(TestBean.class)).isNotNull()); } @Test public void conditionalOnBlockingDiscoveryEnabledWorks() { applicationContextRunner.withUserConfiguration(BlockingDiscoveryEnabledConfig.class) - .withPropertyValues("spring.cloud.discovery.blocking.enabled=false") - .run(context -> assertThat(context).doesNotHaveBean(TestBean.class)); + .withPropertyValues("spring.cloud.discovery.blocking.enabled=false") + .run(context -> assertThat(context).doesNotHaveBean(TestBean.class)); applicationContextRunner.withUserConfiguration(BlockingDiscoveryEnabledConfig.class) - .withPropertyValues("spring.cloud.discovery.blocking.enabled=true") - .run(context -> assertThat(context.getBean(TestBean.class)).isNotNull()); + .withPropertyValues("spring.cloud.discovery.blocking.enabled=true") + .run(context -> assertThat(context.getBean(TestBean.class)).isNotNull()); } @TestConfiguration diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/ReactiveCommonsClientAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/ReactiveCommonsClientAutoConfigurationTests.java index 4922b980..cf169f44 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/ReactiveCommonsClientAutoConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/ReactiveCommonsClientAutoConfigurationTests.java @@ -39,93 +39,99 @@ import static org.assertj.core.api.BDDAssertions.then; public class ReactiveCommonsClientAutoConfigurationTests { ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(CommonsClientAutoConfiguration.class, - SimpleReactiveDiscoveryClientAutoConfiguration.class, UtilAutoConfiguration.class, - ReactiveCommonsClientAutoConfiguration.class)); + .withConfiguration(AutoConfigurations.of(CommonsClientAutoConfiguration.class, + SimpleReactiveDiscoveryClientAutoConfiguration.class, UtilAutoConfiguration.class, + ReactiveCommonsClientAutoConfiguration.class)); @Test public void beansCreatedNormally() { applicationContextRunner.withPropertyValues("management.endpoints.web.exposure.include=features") - .run(context -> { - then(context.getBean(ReactiveDiscoveryClientHealthIndicator.class)).isNotNull(); - then(context.getBean(ReactiveDiscoveryCompositeHealthContributor.class)).isNotNull(); - then(context.getBean(FeaturesEndpoint.class)).isNotNull(); - then(context.getBeansOfType(HasFeatures.class).values()).isNotEmpty(); - }); + .run(context -> { + then(context.getBean(ReactiveDiscoveryClientHealthIndicator.class)).isNotNull(); + then(context.getBean(ReactiveDiscoveryCompositeHealthContributor.class)).isNotNull(); + then(context.getBean(FeaturesEndpoint.class)).isNotNull(); + then(context.getBeansOfType(HasFeatures.class).values()).isNotEmpty(); + }); } @Test public void disableAll() { - applicationContextRunner.withPropertyValues("spring.cloud.discovery.enabled=false", - "management.endpoints.web.exposure.include=features").run(context -> { - assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); - assertThat(context).doesNotHaveBean(ReactiveDiscoveryCompositeHealthContributor.class); - // features actuator is independent of discovery - then(context.getBean(FeaturesEndpoint.class)).isNotNull(); - assertThat(context).doesNotHaveBean(HasFeatures.class); - }); + applicationContextRunner + .withPropertyValues("spring.cloud.discovery.enabled=false", + "management.endpoints.web.exposure.include=features") + .run(context -> { + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryCompositeHealthContributor.class); + // features actuator is independent of discovery + then(context.getBean(FeaturesEndpoint.class)).isNotNull(); + assertThat(context).doesNotHaveBean(HasFeatures.class); + }); } @Test public void disableReactive() { - applicationContextRunner.withPropertyValues("spring.cloud.discovery.reactive.enabled=false", - "management.endpoints.web.exposure.include=features").run(context -> { - assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); - assertThat(context).doesNotHaveBean(ReactiveDiscoveryCompositeHealthContributor.class); - // features actuator is independent of discovery - then(context.getBean(FeaturesEndpoint.class)).isNotNull(); - assertThat(context).doesNotHaveBean(HasFeatures.class); - }); + applicationContextRunner + .withPropertyValues("spring.cloud.discovery.reactive.enabled=false", + "management.endpoints.web.exposure.include=features") + .run(context -> { + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryCompositeHealthContributor.class); + // features actuator is independent of discovery + then(context.getBean(FeaturesEndpoint.class)).isNotNull(); + assertThat(context).doesNotHaveBean(HasFeatures.class); + }); } @Test public void disableAllIndividually() { - applicationContextRunner.withPropertyValues("spring.cloud.discovery.client.health-indicator.enabled=false", - "spring.cloud.discovery.client.composite-indicator.enabled=false", - "spring.cloud.features.enabled=false").run(context -> { - assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); - assertThat(context).doesNotHaveBean(ReactiveDiscoveryCompositeHealthContributor.class); - assertThat(context).doesNotHaveBean(FeaturesEndpoint.class); - }); + applicationContextRunner + .withPropertyValues("spring.cloud.discovery.client.health-indicator.enabled=false", + "spring.cloud.discovery.client.composite-indicator.enabled=false", + "spring.cloud.features.enabled=false") + .run(context -> { + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryCompositeHealthContributor.class); + assertThat(context).doesNotHaveBean(FeaturesEndpoint.class); + }); } @Test public void disableHealthIndicator() { applicationContextRunner.withPropertyValues("spring.cloud.discovery.client.health-indicator.enabled=false") - .run(context -> { - assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); - assertThat(context).doesNotHaveBean(ReactiveDiscoveryCompositeHealthContributor.class); - }); + .run(context -> { + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryCompositeHealthContributor.class); + }); } @Test public void worksWithoutActuator() { applicationContextRunner.withClassLoader(new FilteredClassLoader("org.springframework.boot.actuate")) - .run(context -> { - assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); - assertThat(context).doesNotHaveBean(ReactiveDiscoveryCompositeHealthContributor.class); - then(context.getBeansOfType(HasFeatures.class).values()).isEmpty(); - }); + .run(context -> { + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryCompositeHealthContributor.class); + then(context.getBeansOfType(HasFeatures.class).values()).isEmpty(); + }); } @Test public void worksWithoutWebflux() { applicationContextRunner.withClassLoader(new FilteredClassLoader("org.springframework.web.reactive")) - .run(context -> { - assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); - assertThat(context).doesNotHaveBean(ReactiveDiscoveryCompositeHealthContributor.class); - assertThat(context).doesNotHaveBean(HasFeatures.class); - }); + .run(context -> { + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryCompositeHealthContributor.class); + assertThat(context).doesNotHaveBean(HasFeatures.class); + }); } @Test public void conditionalOnReactiveDiscoveryEnabledWorks() { ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withUserConfiguration(ReactiveDiscoveryEnabledConfig.class); + .withUserConfiguration(ReactiveDiscoveryEnabledConfig.class); contextRunner.withPropertyValues("spring.cloud.discovery.reactive.enabled=false") - .run(context -> assertThat(context).doesNotHaveBean(TestBean.class)); + .run(context -> assertThat(context).doesNotHaveBean(TestBean.class)); contextRunner.withPropertyValues("spring.cloud.discovery.reactive.enabled=true") - .run(context -> assertThat(context.getBean(TestBean.class)).isNotNull()); + .run(context -> assertThat(context.getBean(TestBean.class)).isNotNull()); } @TestConfiguration diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/actuator/FeaturesEndpointTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/actuator/FeaturesEndpointTests.java index 22b399ca..c8637c05 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/actuator/FeaturesEndpointTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/actuator/FeaturesEndpointTests.java @@ -57,8 +57,8 @@ public class FeaturesEndpointTests { public void invokeWorks() { FeaturesEndpoint.Features features = this.context.getBean(FeaturesEndpoint.class).features(); then(features).isNotNull(); - then(features.getEnabled()).hasSize(2).contains(newFeature("foo", Foo.class), - newFeature("Baz Feature", Baz.class)); + then(features.getEnabled()).hasSize(2) + .contains(newFeature("foo", Foo.class), newFeature("Baz Feature", Baz.class)); then(features.getDisabled()).hasSize(1).contains("Bar"); } diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/circuitbreaker/observation/ObservedCircuitBreakerTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/circuitbreaker/observation/ObservedCircuitBreakerTests.java index 6d4197f5..49d05bff 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/circuitbreaker/observation/ObservedCircuitBreakerTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/circuitbreaker/observation/ObservedCircuitBreakerTests.java @@ -47,10 +47,11 @@ class ObservedCircuitBreakerTests { String result = circuitBreaker.run(() -> "hello"); then(result).isEqualTo("hello"); - TestObservationRegistryAssert.assertThat(registry).hasSingleObservationThat() - .hasNameEqualTo("spring.cloud.circuitbreaker") - .hasLowCardinalityKeyValue("spring.cloud.circuitbreaker.type", "supplier") - .hasContextualNameEqualTo("circuit-breaker"); + TestObservationRegistryAssert.assertThat(registry) + .hasSingleObservationThat() + .hasNameEqualTo("spring.cloud.circuitbreaker") + .hasLowCardinalityKeyValue("spring.cloud.circuitbreaker.type", "supplier") + .hasContextualNameEqualTo("circuit-breaker"); } @Test @@ -78,8 +79,11 @@ class ObservedCircuitBreakerTests { String result = circuitBreaker.run(() -> "hello"); then(result).isEqualTo("hello"); - TestObservationRegistryAssert.assertThat(registry).hasSingleObservationThat().hasNameEqualTo("foo") - .hasLowCardinalityKeyValue("bar", "baz").hasContextualNameEqualTo("circuit-breaker"); + TestObservationRegistryAssert.assertThat(registry) + .hasSingleObservationThat() + .hasNameEqualTo("foo") + .hasLowCardinalityKeyValue("bar", "baz") + .hasContextualNameEqualTo("circuit-breaker"); } @Test @@ -105,18 +109,21 @@ class ObservedCircuitBreakerTests { then(result).isEqualTo("goodbye"); - TestObservationRegistryAssert.then(registry).hasNumberOfObservationsEqualTo(3) - .hasHandledContextsThatSatisfy(contexts -> { - ObservationContextAssert.then(contexts.get(0)).hasNameEqualTo("parent"); - ObservationContextAssert.then(contexts.get(1)).hasNameEqualTo("spring.cloud.circuitbreaker") - .hasContextualNameEqualTo("circuit-breaker") - .hasLowCardinalityKeyValue("spring.cloud.circuitbreaker.type", "supplier") - .hasParentObservationEqualTo(parent); - ObservationContextAssert.then(contexts.get(2)).hasNameEqualTo("spring.cloud.circuitbreaker") - .hasContextualNameEqualTo("circuit-breaker fallback") - .hasLowCardinalityKeyValue("spring.cloud.circuitbreaker.type", "function") - .hasParentObservationEqualTo(parent); - }); + TestObservationRegistryAssert.then(registry) + .hasNumberOfObservationsEqualTo(3) + .hasHandledContextsThatSatisfy(contexts -> { + ObservationContextAssert.then(contexts.get(0)).hasNameEqualTo("parent"); + ObservationContextAssert.then(contexts.get(1)) + .hasNameEqualTo("spring.cloud.circuitbreaker") + .hasContextualNameEqualTo("circuit-breaker") + .hasLowCardinalityKeyValue("spring.cloud.circuitbreaker.type", "supplier") + .hasParentObservationEqualTo(parent); + ObservationContextAssert.then(contexts.get(2)) + .hasNameEqualTo("spring.cloud.circuitbreaker") + .hasContextualNameEqualTo("circuit-breaker fallback") + .hasLowCardinalityKeyValue("spring.cloud.circuitbreaker.type", "function") + .hasParentObservationEqualTo(parent); + }); } } diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientImportSelectorTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientImportSelectorTests.java index 2c398c86..c976a84a 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientImportSelectorTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientImportSelectorTests.java @@ -55,7 +55,8 @@ public class EnableDiscoveryClientImportSelectorTests { configureAnnotation(true); String[] imports = this.importSelector.selectImports(this.annotationMetadata); then(this.environment.getProperty("spring.cloud.service-registry.auto-registration.enabled", Boolean.class, - true)).isTrue(); + true)) + .isTrue(); then(imports).hasSize(1); } @@ -64,7 +65,7 @@ public class EnableDiscoveryClientImportSelectorTests { configureAnnotation(false); String[] imports = this.importSelector.selectImports(this.annotationMetadata); then(this.environment.getProperty("spring.cloud.service-registry.auto-registration.enabled", Boolean.class)) - .isFalse(); + .isFalse(); then(imports).isEmpty(); } @@ -72,7 +73,7 @@ public class EnableDiscoveryClientImportSelectorTests { String annotationName = EnableDiscoveryClient.class.getName(); given(this.annotationMetadata.isAnnotated(annotationName)).willReturn(true); given(this.annotationMetadata.getAnnotationAttributes(annotationName, true)) - .willReturn(this.annotationAttributes); + .willReturn(this.annotationAttributes); given(this.annotationAttributes.getBoolean("autoRegister")).willReturn(autoRegistration); } diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientMissingImplTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientMissingImplTests.java index 53b6401d..51fd14b3 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientMissingImplTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/EnableDiscoveryClientMissingImplTests.java @@ -38,7 +38,8 @@ public class EnableDiscoveryClientMissingImplTests { @Test public void testContextFails() { try (ConfigurableApplicationContext context = new SpringApplicationBuilder().sources(App.class) - .web(WebApplicationType.NONE).run()) { + .web(WebApplicationType.NONE) + .run()) { // do sth } catch (NestedRuntimeException e) { diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/ManagementServerPortUtilsTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/ManagementServerPortUtilsTests.java index a7c9e2e9..02de9974 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/ManagementServerPortUtilsTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/ManagementServerPortUtilsTests.java @@ -33,7 +33,8 @@ public class ManagementServerPortUtilsTests { @Test public void contextStarts() { try (ConfigurableApplicationContext context = new SpringApplicationBuilder().web(WebApplicationType.NONE) - .sources(TestApp.class).run()) { + .sources(TestApp.class) + .run()) { then(ManagementServerPortUtils.hasActuator).isFalse(); } diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/CompositeDiscoveryClientAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/CompositeDiscoveryClientAutoConfigurationTests.java index f2000500..ac127d6a 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/CompositeDiscoveryClientAutoConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/CompositeDiscoveryClientAutoConfigurationTests.java @@ -49,14 +49,14 @@ public class CompositeDiscoveryClientAutoConfigurationTests { CompositeDiscoveryClient compositeDiscoveryClient = (CompositeDiscoveryClient) this.discoveryClient; then(compositeDiscoveryClient.getDiscoveryClients()).hasSize(2); then(compositeDiscoveryClient.getDiscoveryClients().get(0).description()) - .isEqualTo("A custom discovery client"); + .isEqualTo("A custom discovery client"); } @Test public void simpleDiscoveryClientShouldBeHaveTheLowestPrecedence() { CompositeDiscoveryClient compositeDiscoveryClient = (CompositeDiscoveryClient) this.discoveryClient; then(compositeDiscoveryClient.getDiscoveryClients().get(0).description()) - .isEqualTo("A custom discovery client"); + .isEqualTo("A custom discovery client"); then(compositeDiscoveryClient.getDiscoveryClients().get(1)).isInstanceOf(SimpleDiscoveryClient.class); } diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/CompositeDiscoveryClientOrderTest.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/CompositeDiscoveryClientOrderTest.java index 3ceed9e3..5ad89665 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/CompositeDiscoveryClientOrderTest.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/CompositeDiscoveryClientOrderTest.java @@ -48,7 +48,7 @@ public class CompositeDiscoveryClientOrderTest { public void shouldGetOrderedDiscoveryClients() { // when: List discoveryClients = ((CompositeDiscoveryClient) this.discoveryClient) - .getDiscoveryClients(); + .getDiscoveryClients(); // then: then(discoveryClients.get(0).description()).isEqualTo(CUSTOM_DISCOVERY_CLIENT); diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/reactive/ReactiveCompositeDiscoveryClientAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/reactive/ReactiveCompositeDiscoveryClientAutoConfigurationTests.java index 4ab9b6c6..ab61c7f4 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/reactive/ReactiveCompositeDiscoveryClientAutoConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/reactive/ReactiveCompositeDiscoveryClientAutoConfigurationTests.java @@ -34,7 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat; class ReactiveCompositeDiscoveryClientAutoConfigurationTests { private ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(ReactiveCompositeDiscoveryClientAutoConfiguration.class)); + .withConfiguration(AutoConfigurations.of(ReactiveCompositeDiscoveryClientAutoConfiguration.class)); @Test public void shouldCreateCompositeReactiveDiscoveryClientWithoutDelegates() { diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/reactive/ReactiveCompositeDiscoveryClientTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/reactive/ReactiveCompositeDiscoveryClientTests.java index 36f70730..24d06ed8 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/reactive/ReactiveCompositeDiscoveryClientTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/composite/reactive/ReactiveCompositeDiscoveryClientTests.java @@ -75,8 +75,12 @@ class ReactiveCompositeDiscoveryClientTests { Flux services = client.getServices(); - StepVerifier.create(services).expectNext("serviceAFromClient1").expectNext("serviceBFromClient1") - .expectNext("serviceCFromClient2").expectComplete().verify(); + StepVerifier.create(services) + .expectNext("serviceAFromClient1") + .expectNext("serviceBFromClient1") + .expectNext("serviceCFromClient2") + .expectComplete() + .verify(); } @Test @@ -110,8 +114,11 @@ class ReactiveCompositeDiscoveryClientTests { Flux instances = client.getInstances("service"); - StepVerifier.create(instances).expectNext(serviceInstance1).expectNext(serviceInstance2).expectComplete() - .verify(); + StepVerifier.create(instances) + .expectNext(serviceInstance1) + .expectNext(serviceInstance2) + .expectComplete() + .verify(); } } diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/health/DiscoveryClientHealthIndicatorUnitTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/health/DiscoveryClientHealthIndicatorUnitTests.java index 088da422..72215dbf 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/health/DiscoveryClientHealthIndicatorUnitTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/health/DiscoveryClientHealthIndicatorUnitTests.java @@ -66,7 +66,7 @@ class DiscoveryClientHealthIndicatorUnitTests { @Test public void shouldReturnUnknownStatusWhenNotInitialized() { Health expectedHealth = Health.status(new Status(Status.UNKNOWN.getCode(), "Discovery Client not initialized")) - .build(); + .build(); Health health = indicator.health(); assertThat(health).isEqualTo(expectedHealth); } @@ -99,8 +99,9 @@ class DiscoveryClientHealthIndicatorUnitTests { public void shouldReturnUpStatusWhenUsingServicesQueryAndNoServicesReturned() { when(properties.isUseServicesQuery()).thenReturn(true); when(discoveryClient.getServices()).thenReturn(Collections.emptyList()); - Health expectedHealth = Health.status(new Status(Status.UP.getCode(), "")).withDetail("services", emptyList()) - .build(); + Health expectedHealth = Health.status(new Status(Status.UP.getCode(), "")) + .withDetail("services", emptyList()) + .build(); indicator.onApplicationEvent(new InstanceRegisteredEvent<>(this, null)); Health health = indicator.health(); @@ -115,7 +116,8 @@ class DiscoveryClientHealthIndicatorUnitTests { when(discoveryClient.description()).thenReturn("Mocked Service Discovery Client"); when(discoveryClient.getServices()).thenReturn(singletonList("service")); Health expectedHealth = Health.status(new Status(Status.UP.getCode(), "Mocked Service Discovery Client")) - .withDetail("services", singletonList("service")).build(); + .withDetail("services", singletonList("service")) + .build(); indicator.onApplicationEvent(new InstanceRegisteredEvent<>(this, null)); Health health = indicator.health(); diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/health/DiscoveryCompositeHealthContributorTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/health/DiscoveryCompositeHealthContributorTests.java index 258f7bd4..ebe6f521 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/health/DiscoveryCompositeHealthContributorTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/health/DiscoveryCompositeHealthContributorTests.java @@ -40,7 +40,7 @@ public class DiscoveryCompositeHealthContributorTests { @Test public void createWhenIndicatorsAreNullThrowsException() { assertThatIllegalArgumentException().isThrownBy(() -> new DiscoveryCompositeHealthContributor(null)) - .withMessage("'indicators' must not be null"); + .withMessage("'indicators' must not be null"); } @Test diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/health/reactive/ReactiveDiscoveryClientHealthIndicatorTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/health/reactive/ReactiveDiscoveryClientHealthIndicatorTests.java index 0da5afdb..8c8dd4ae 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/health/reactive/ReactiveDiscoveryClientHealthIndicatorTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/health/reactive/ReactiveDiscoveryClientHealthIndicatorTests.java @@ -72,7 +72,7 @@ class ReactiveDiscoveryClientHealthIndicatorTests { @Test public void shouldReturnUnknownStatusWhenNotInitialized() { Health expectedHealth = Health.status(new Status(Status.UNKNOWN.getCode(), "Discovery Client not initialized")) - .build(); + .build(); Mono health = indicator.health(); StepVerifier.create(health).expectNext(expectedHealth).expectComplete().verify(); } @@ -108,8 +108,9 @@ class ReactiveDiscoveryClientHealthIndicatorTests { public void shouldReturnUpStatusWhenUsingServicesQueryAndNoServicesReturned() { when(properties.isUseServicesQuery()).thenReturn(true); when(discoveryClient.getServices()).thenReturn(Flux.empty()); - Health expectedHealth = Health.status(new Status(Status.UP.getCode(), "")).withDetail("services", emptyList()) - .build(); + Health expectedHealth = Health.status(new Status(Status.UP.getCode(), "")) + .withDetail("services", emptyList()) + .build(); indicator.onApplicationEvent(new InstanceRegisteredEvent<>(this, null)); Mono health = indicator.health(); @@ -124,7 +125,8 @@ class ReactiveDiscoveryClientHealthIndicatorTests { when(discoveryClient.getServices()).thenReturn(Flux.just("service")); when(discoveryClient.description()).thenReturn("Mocked Service Discovery Client"); Health expectedHealth = Health.status(new Status(Status.UP.getCode(), "Mocked Service Discovery Client")) - .withDetail("services", singletonList("service")).build(); + .withDetail("services", singletonList("service")) + .build(); indicator.onApplicationEvent(new InstanceRegisteredEvent<>(this, null)); Mono health = indicator.health(); diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/simple/reactive/SimpleReactiveDiscoveryClientAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/simple/reactive/SimpleReactiveDiscoveryClientAutoConfigurationTests.java index b6ba733a..13555697 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/simple/reactive/SimpleReactiveDiscoveryClientAutoConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/simple/reactive/SimpleReactiveDiscoveryClientAutoConfigurationTests.java @@ -56,22 +56,21 @@ class SimpleReactiveDiscoveryClientAutoConfigurationTests { @Test public void shouldUseCustomConfiguration() { this.contextRunner.withUserConfiguration(Configuration.class) - .withPropertyValues("spring.application.name=my-service", - "spring.cloud.discovery.client.simple.order=1", "server.port=8443") - .run((context) -> { - ReactiveDiscoveryClient client = context.getBean(ReactiveDiscoveryClient.class); - assertThat(client).isNotNull(); - assertThat(client.getOrder()).isEqualTo(1); - InetUtils inet = context.getBean(InetUtils.class); - assertThat(inet).isNotNull(); - SimpleReactiveDiscoveryProperties properties = context - .getBean(SimpleReactiveDiscoveryProperties.class); - assertThat(properties).isNotNull(); - assertThat(properties.getLocal().getServiceId()).isEqualTo("my-service"); - assertThat(properties.getLocal().getHost()) - .isEqualTo(inet.findFirstNonLoopbackHostInfo().getHostname()); - assertThat(properties.getLocal().getPort()).isEqualTo(8443); - }); + .withPropertyValues("spring.application.name=my-service", "spring.cloud.discovery.client.simple.order=1", + "server.port=8443") + .run((context) -> { + ReactiveDiscoveryClient client = context.getBean(ReactiveDiscoveryClient.class); + assertThat(client).isNotNull(); + assertThat(client.getOrder()).isEqualTo(1); + InetUtils inet = context.getBean(InetUtils.class); + assertThat(inet).isNotNull(); + SimpleReactiveDiscoveryProperties properties = context.getBean(SimpleReactiveDiscoveryProperties.class); + assertThat(properties).isNotNull(); + assertThat(properties.getLocal().getServiceId()).isEqualTo("my-service"); + assertThat(properties.getLocal().getHost()) + .isEqualTo(inet.findFirstNonLoopbackHostInfo().getHostname()); + assertThat(properties.getLocal().getPort()).isEqualTo(8443); + }); } @TestConfiguration diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/simple/reactive/SimpleReactiveDiscoveryClientTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/simple/reactive/SimpleReactiveDiscoveryClientTests.java index 628fef18..6c81b210 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/simple/reactive/SimpleReactiveDiscoveryClientTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/simple/reactive/SimpleReactiveDiscoveryClientTests.java @@ -46,7 +46,7 @@ public class SimpleReactiveDiscoveryClientTests { public void setUp() { SimpleReactiveDiscoveryProperties simpleReactiveDiscoveryProperties = new SimpleReactiveDiscoveryProperties(); simpleReactiveDiscoveryProperties - .setInstances(singletonMap("service", Arrays.asList(service1Inst1, service1Inst2))); + .setInstances(singletonMap("service", Arrays.asList(service1Inst1, service1Inst2))); simpleReactiveDiscoveryProperties.afterPropertiesSet(); this.client = new SimpleReactiveDiscoveryClient(simpleReactiveDiscoveryProperties); } diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/hypermedia/DiscoveredResourceUnitTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/hypermedia/DiscoveredResourceUnitTests.java index 35484df7..a85ca382 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/hypermedia/DiscoveredResourceUnitTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/hypermedia/DiscoveredResourceUnitTests.java @@ -77,7 +77,7 @@ public class DiscoveredResourceUnitTests { Link link = Link.of("target", "rel"); when(this.provider.getServiceInstance()) - .thenReturn(new DefaultServiceInstance("instance", "service", "localhost", 8080, false)); + .thenReturn(new DefaultServiceInstance("instance", "service", "localhost", 8080, false)); when(this.builder.asTemplatedLink()).thenReturn(link); this.resource.verifyOrDiscover(); diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/AbstractLoadBalancerAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/AbstractLoadBalancerAutoConfigurationTests.java index c92ba95d..2a387edd 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/AbstractLoadBalancerAutoConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/AbstractLoadBalancerAutoConfigurationTests.java @@ -48,7 +48,7 @@ import static org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoa public abstract class AbstractLoadBalancerAutoConfigurationTests { protected ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(LoadBalancerAutoConfiguration.class)); + .withConfiguration(AutoConfigurations.of(LoadBalancerAutoConfiguration.class)); @Test void restTemplateGetsLoadBalancerInterceptor() { @@ -87,7 +87,7 @@ public abstract class AbstractLoadBalancerAutoConfigurationTests { then(templates).hasSize(2); TwoRestTemplatesAndTwoRestClientBuilders.Two two = context - .getBean(TwoRestTemplatesAndTwoRestClientBuilders.Two.class); + .getBean(TwoRestTemplatesAndTwoRestClientBuilders.Two.class); then(two.loadBalanced).isNotNull(); assertLoadBalanced(two.loadBalanced); @@ -106,52 +106,52 @@ public abstract class AbstractLoadBalancerAutoConfigurationTests { assertThat(restClientBuilders.values()).hasSize(2); TwoRestTemplatesAndTwoRestClientBuilders.Two two = context - .getBean(TwoRestTemplatesAndTwoRestClientBuilders.Two.class); + .getBean(TwoRestTemplatesAndTwoRestClientBuilders.Two.class); assertThat(two.loadBalancedRestClientBuilder).isNotNull(); assertLoadBalanced(two.loadBalancedRestClientBuilder); assertThat(two.nonLoadBalancedRestClientBuilder).isNotNull(); two.nonLoadBalancedRestClientBuilder - .requestInterceptors(interceptors -> assertThat(interceptors).isEmpty()); + .requestInterceptors(interceptors -> assertThat(interceptors).isEmpty()); }); } @Test void restTemplatesAndRestClientsFromUsersAutoConfiguration() { applicationContextRunner - .withConfiguration(AutoConfigurations.of(TwoRestTemplatesAndTwoRestClientBuilders.class)) - .run(context -> { - final Map restClientBuilders = context - .getBeansOfType(RestClient.Builder.class); - final Map restTemplates = context.getBeansOfType(RestTemplate.class); + .withConfiguration(AutoConfigurations.of(TwoRestTemplatesAndTwoRestClientBuilders.class)) + .run(context -> { + final Map restClientBuilders = context + .getBeansOfType(RestClient.Builder.class); + final Map restTemplates = context.getBeansOfType(RestTemplate.class); - assertThat(restClientBuilders).isNotNull(); - assertThat(restClientBuilders.values()).hasSize(2); + assertThat(restClientBuilders).isNotNull(); + assertThat(restClientBuilders.values()).hasSize(2); - TwoRestTemplatesAndTwoRestClientBuilders.Two two = context - .getBean(TwoRestTemplatesAndTwoRestClientBuilders.Two.class); + TwoRestTemplatesAndTwoRestClientBuilders.Two two = context + .getBean(TwoRestTemplatesAndTwoRestClientBuilders.Two.class); - assertThat(two.loadBalancedRestClientBuilder).isNotNull(); - assertLoadBalanced(two.loadBalancedRestClientBuilder); + assertThat(two.loadBalancedRestClientBuilder).isNotNull(); + assertLoadBalanced(two.loadBalancedRestClientBuilder); - assertThat(two.nonLoadBalancedRestClientBuilder).isNotNull(); - two.nonLoadBalancedRestClientBuilder - .requestInterceptors(interceptors -> assertThat(interceptors).isEmpty()); + assertThat(two.nonLoadBalancedRestClientBuilder).isNotNull(); + two.nonLoadBalancedRestClientBuilder + .requestInterceptors(interceptors -> assertThat(interceptors).isEmpty()); - assertThat(restTemplates).isNotNull(); - Collection templates = restTemplates.values(); - assertThat(templates).hasSize(2); + assertThat(restTemplates).isNotNull(); + Collection templates = restTemplates.values(); + assertThat(templates).hasSize(2); - TwoRestTemplatesAndTwoRestClientBuilders.Two twoRestTemplate = context - .getBean(TwoRestTemplatesAndTwoRestClientBuilders.Two.class); + TwoRestTemplatesAndTwoRestClientBuilders.Two twoRestTemplate = context + .getBean(TwoRestTemplatesAndTwoRestClientBuilders.Two.class); - assertThat(twoRestTemplate.loadBalanced).isNotNull(); - assertLoadBalanced(twoRestTemplate.loadBalanced); + assertThat(twoRestTemplate.loadBalanced).isNotNull(); + assertLoadBalanced(twoRestTemplate.loadBalanced); - assertThat(twoRestTemplate.nonLoadBalanced).isNotNull(); - assertThat(twoRestTemplate.nonLoadBalanced.getInterceptors()).isEmpty(); - }); + assertThat(twoRestTemplate.nonLoadBalanced).isNotNull(); + assertThat(twoRestTemplate.nonLoadBalanced.getInterceptors()).isEmpty(); + }); } protected abstract void assertLoadBalanced(RestClient.Builder restClientBuilder); diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/InterceptorRetryPolicyTest.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/InterceptorRetryPolicyTest.java index 7c135d2c..3d666633 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/InterceptorRetryPolicyTest.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/InterceptorRetryPolicyTest.java @@ -152,7 +152,7 @@ public class InterceptorRetryPolicyTest { then(interceptorRetryPolicy.equals(new Object())).isFalse(); then(interceptorRetryPolicy.equals(interceptorRetryPolicy)).isTrue(); then(interceptorRetryPolicy - .equals(new InterceptorRetryPolicy(request, policy, serviceInstanceChooser, serviceName))).isTrue(); + .equals(new InterceptorRetryPolicy(request, policy, serviceInstanceChooser, serviceName))).isTrue(); } } diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancedRestClientIntegrationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancedRestClientIntegrationTests.java index 733389d2..20e528e4 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancedRestClientIntegrationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancedRestClientIntegrationTests.java @@ -54,7 +54,7 @@ public class LoadBalancedRestClientIntegrationTests { void shouldBuildLoadBalancedRestClientInConstructor() { // Interceptors are not visible in RestClient assertThatThrownBy(() -> client.get().uri("http://test-service").retrieve()) - .hasMessage("LoadBalancerInterceptor invoked."); + .hasMessage("LoadBalancerInterceptor invoked."); } @SpringBootConfiguration diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerAutoConfigurationTests.java index 0629930c..fe4eee10 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerAutoConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerAutoConfigurationTests.java @@ -48,7 +48,7 @@ public class LoadBalancerAutoConfigurationTests extends AbstractLoadBalancerAuto assertThat(interceptors.get(0)).isInstanceOf(DeferringLoadBalancerInterceptor.class); DeferringLoadBalancerInterceptor interceptor = (DeferringLoadBalancerInterceptor) interceptors.get(0); assertThat(interceptor.getLoadBalancerInterceptorProvider().getObject()) - .isInstanceOf(LoadBalancerInterceptor.class); + .isInstanceOf(LoadBalancerInterceptor.class); }); } diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerRequestFactoryConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerRequestFactoryConfigurationTests.java index 9f736755..3e3d4fc4 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerRequestFactoryConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerRequestFactoryConfigurationTests.java @@ -73,8 +73,9 @@ public class LoadBalancerRequestFactoryConfigurationTests { protected ConfigurableApplicationContext init(Class config) { ConfigurableApplicationContext context = new SpringApplicationBuilder().web(WebApplicationType.NONE) - .properties("spring.aop.proxyTargetClass=true").sources(config, LoadBalancerAutoConfiguration.class) - .run(); + .properties("spring.aop.proxyTargetClass=true") + .sources(config, LoadBalancerAutoConfiguration.class) + .run(); LoadBalancerRequestFactory lbReqFactory = context.getBean(LoadBalancerRequestFactory.class); this.lbRequest = lbReqFactory.createRequest(this.request, this.body, this.execution); @@ -88,14 +89,14 @@ public class LoadBalancerRequestFactoryConfigurationTests { LoadBalancerRequestTransformer transformer = context.getBean("transformer", LoadBalancerRequestTransformer.class); when(transformer.transformRequest(any(ServiceRequestWrapper.class), eq(this.instance))) - .thenReturn(this.transformedRequest); + .thenReturn(this.transformedRequest); this.lbRequest.apply(this.instance); verify(this.execution).execute(this.httpRequestCaptor.capture(), eq(this.body)); then(this.httpRequestCaptor.getValue()) - .as("transformer should have transformed the ServiceRequestWrapper into transformedRequest") - .isEqualTo(this.transformedRequest); + .as("transformer should have transformed the ServiceRequestWrapper into transformedRequest") + .isEqualTo(this.transformedRequest); } @Test @@ -106,7 +107,7 @@ public class LoadBalancerRequestFactoryConfigurationTests { verify(this.execution).execute(this.httpRequestCaptor.capture(), eq(this.body)); then(this.httpRequestCaptor.getValue().getClass()).as("ServiceRequestWrapper should be executed") - .isEqualTo(ServiceRequestWrapper.class); + .isEqualTo(ServiceRequestWrapper.class); } @Test @@ -116,17 +117,17 @@ public class LoadBalancerRequestFactoryConfigurationTests { LoadBalancerRequestTransformer transformer = context.getBean("transformer", LoadBalancerRequestTransformer.class); when(transformer.transformRequest(any(ServiceRequestWrapper.class), eq(this.instance))) - .thenReturn(this.transformedRequest); + .thenReturn(this.transformedRequest); LoadBalancerRequestTransformer transformer2 = context.getBean("transformer2", LoadBalancerRequestTransformer.class); when(transformer2.transformRequest(this.transformedRequest, this.instance)) - .thenReturn(this.transformedRequest2); + .thenReturn(this.transformedRequest2); this.lbRequest.apply(this.instance); verify(this.execution).execute(this.httpRequestCaptor.capture(), eq(this.body)); then(this.httpRequestCaptor.getValue()).as("transformer2 should run after transformer") - .isEqualTo(this.transformedRequest2); + .isEqualTo(this.transformedRequest2); } @Configuration(proxyBeanMethods = false) diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerRequestFactoryTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerRequestFactoryTests.java index 18a79b16..e7c2563b 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerRequestFactoryTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerRequestFactoryTests.java @@ -80,7 +80,7 @@ public class LoadBalancerRequestFactoryTests { verify(this.execution).execute(this.httpRequestCaptor.capture(), eq(this.body)); then(this.httpRequestCaptor.getValue().getClass()).as("request should be of type ServiceRequestWrapper") - .isEqualTo(ServiceRequestWrapper.class); + .isEqualTo(ServiceRequestWrapper.class); } @Test @@ -91,37 +91,37 @@ public class LoadBalancerRequestFactoryTests { verify(this.execution).execute(this.httpRequestCaptor.capture(), eq(this.body)); then(this.httpRequestCaptor.getValue().getClass()).as("request should be of type ServiceRequestWrapper") - .isEqualTo(ServiceRequestWrapper.class); + .isEqualTo(ServiceRequestWrapper.class); } @Test public void testOneTransformer() throws Exception { List transformers = List.of(this.transformer1); when(this.transformer1.transformRequest(any(ServiceRequestWrapper.class), eq(this.instance))) - .thenReturn(this.transformedRequest1); + .thenReturn(this.transformedRequest1); executeLbRequest(transformers); verify(this.execution).execute(this.httpRequestCaptor.capture(), eq(this.body)); then(this.httpRequestCaptor.getValue()) - .as("transformer1 should have transformed request into transformedRequest1") - .isEqualTo(this.transformedRequest1); + .as("transformer1 should have transformed request into transformedRequest1") + .isEqualTo(this.transformedRequest1); } @Test public void testTwoTransformers() throws Exception { List transformers = Arrays.asList(this.transformer1, this.transformer2); when(this.transformer1.transformRequest(any(ServiceRequestWrapper.class), eq(this.instance))) - .thenReturn(this.transformedRequest1); + .thenReturn(this.transformedRequest1); when(this.transformer2.transformRequest(this.transformedRequest1, this.instance)) - .thenReturn(this.transformedRequest2); + .thenReturn(this.transformedRequest2); executeLbRequest(transformers); verify(this.execution).execute(this.httpRequestCaptor.capture(), eq(this.body)); then(this.httpRequestCaptor.getValue()) - .as("transformer2 should have transformed transformedRequest1 into transformedRequest2") - .isEqualTo(this.transformedRequest2); + .as("transformer2 should have transformed transformedRequest1 into transformedRequest2") + .isEqualTo(this.transformedRequest2); } private void executeLbRequest(List transformers) throws Exception { diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerUriToolsTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerUriToolsTests.java index 7a40ebcb..9a70c6c1 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerUriToolsTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/LoadBalancerUriToolsTests.java @@ -147,8 +147,9 @@ class LoadBalancerUriToolsTests { void originalUserInfoSet() { TestServiceInstance serviceInstance = new TestServiceInstance(); URI original = UriComponentsBuilder - .fromUriString("http://testUser@testHost.example/path?query1=test1&query2=test2#fragment").build() - .toUri(); + .fromUriString("http://testUser@testHost.example/path?query1=test1&query2=test2#fragment") + .build() + .toUri(); URI reconstructed = LoadBalancerUriTools.reconstructURI(serviceInstance, original); @@ -166,7 +167,9 @@ class LoadBalancerUriToolsTests { void reconstructedURIEncodedCorrectly() { TestServiceInstance serviceInstance = new TestServiceInstance(); URI original = UriComponentsBuilder - .fromUriString("http://test.example/path%40%21%242?query=val%40%21%242#frag%40%21%242").build().toUri(); + .fromUriString("http://test.example/path%40%21%242?query=val%40%21%242#frag%40%21%242") + .build() + .toUri(); URI reconstructed = LoadBalancerUriTools.reconstructURI(serviceInstance, original); diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/RetryLoadBalancerAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/RetryLoadBalancerAutoConfigurationTests.java index 82e6d108..55d42606 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/RetryLoadBalancerAutoConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/RetryLoadBalancerAutoConfigurationTests.java @@ -53,32 +53,31 @@ public class RetryLoadBalancerAutoConfigurationTests extends AbstractLoadBalance @Test void testRetryDisabled() { applicationContextRunner.withUserConfiguration(OneRestTemplate.class) - .withPropertyValues("spring.aop.proxyTargetClass=true", "spring.cloud.loadbalancer.retry.enabled=false") - .run(context -> { - List interceptors = context.getBean(RestTemplate.class) - .getInterceptors(); - then(interceptors).hasSize(1); - ClientHttpRequestInterceptor interceptor = interceptors.get(0); - then(interceptor).isInstanceOf(LoadBalancerInterceptor.class); - }); + .withPropertyValues("spring.aop.proxyTargetClass=true", "spring.cloud.loadbalancer.retry.enabled=false") + .run(context -> { + List interceptors = context.getBean(RestTemplate.class).getInterceptors(); + then(interceptors).hasSize(1); + ClientHttpRequestInterceptor interceptor = interceptors.get(0); + then(interceptor).isInstanceOf(LoadBalancerInterceptor.class); + }); } @Test void testRetryDisabledWithRestClientBuilder() { applicationContextRunner.withUserConfiguration(OneRestClientBuilder.class) - .withPropertyValues("spring.aop.proxyTargetClass=true", "spring.cloud.loadbalancer.retry.enabled=false") - .run(context -> { - RestClient.Builder restClientBuilder = context.getBean(RestClient.Builder.class); + .withPropertyValues("spring.aop.proxyTargetClass=true", "spring.cloud.loadbalancer.retry.enabled=false") + .run(context -> { + RestClient.Builder restClientBuilder = context.getBean(RestClient.Builder.class); - restClientBuilder.requestInterceptors(interceptors -> { - assertThat(interceptors).hasSize(1); - assertThat(interceptors.get(0)).isInstanceOf(DeferringLoadBalancerInterceptor.class); - DeferringLoadBalancerInterceptor interceptor = (DeferringLoadBalancerInterceptor) interceptors - .get(0); - assertThat(interceptor.getLoadBalancerInterceptorProvider().getObject()) - .isInstanceOf(LoadBalancerInterceptor.class); - }); + restClientBuilder.requestInterceptors(interceptors -> { + assertThat(interceptors).hasSize(1); + assertThat(interceptors.get(0)).isInstanceOf(DeferringLoadBalancerInterceptor.class); + DeferringLoadBalancerInterceptor interceptor = (DeferringLoadBalancerInterceptor) interceptors + .get(0); + assertThat(interceptor.getLoadBalancerInterceptorProvider().getObject()) + .isInstanceOf(LoadBalancerInterceptor.class); }); + }); } @Test diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/RetryLoadBalancerInterceptorTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/RetryLoadBalancerInterceptorTests.java index 0b4da563..62205271 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/RetryLoadBalancerInterceptorTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/RetryLoadBalancerInterceptorTests.java @@ -108,7 +108,7 @@ public class RetryLoadBalancerInterceptorTests { ServiceInstance serviceInstance = mock(ServiceInstance.class); when(client.choose(eq("foo"), any())).thenReturn(serviceInstance); when(client.execute(eq("foo"), eq(serviceInstance), any(LoadBalancerRequest.class))) - .thenThrow(new IOException()); + .thenThrow(new IOException()); properties.getRetry().setEnabled(false); RetryLoadBalancerInterceptor interceptor = new RetryLoadBalancerInterceptor(client, lbRequestFactory, loadBalancedRetryFactory, lbFactory); @@ -141,7 +141,7 @@ public class RetryLoadBalancerInterceptorTests { ServiceInstance serviceInstance = mock(ServiceInstance.class); when(client.choose(eq("foo"), any())).thenReturn(serviceInstance); when(client.execute(eq("foo"), eq(serviceInstance), any(LoadBalancerRequest.class))) - .thenReturn(clientHttpResponse); + .thenReturn(clientHttpResponse); when(lbRequestFactory.createRequest(any(), any(), any())).thenReturn(mock(LoadBalancerRequest.class)); properties.getRetry().setEnabled(true); RetryLoadBalancerInterceptor interceptor = new RetryLoadBalancerInterceptor(client, lbRequestFactory, @@ -162,7 +162,7 @@ public class RetryLoadBalancerInterceptorTests { ServiceInstance serviceInstance = mock(ServiceInstance.class); when(client.choose(eq("foo"), any())).thenReturn(serviceInstance); when(client.execute(eq("foo"), eq(serviceInstance), any(LoadBalancerRequest.class))) - .thenReturn(clientHttpResponse); + .thenReturn(clientHttpResponse); when(lbRequestFactory.createRequest(any(), any(), any())).thenReturn(mock(LoadBalancerRequest.class)); properties.getRetry().setEnabled(true); RetryLoadBalancerInterceptor interceptor = new RetryLoadBalancerInterceptor(client, lbRequestFactory, @@ -189,7 +189,8 @@ public class RetryLoadBalancerInterceptorTests { ServiceInstance serviceInstance = mock(ServiceInstance.class); when(client.choose(eq("foo"), any())).thenReturn(serviceInstance); when(client.execute(eq("foo"), eq(serviceInstance), nullable(LoadBalancerRequest.class))) - .thenReturn(clientHttpResponseNotFound).thenReturn(clientHttpResponseOk); + .thenReturn(clientHttpResponseNotFound) + .thenReturn(clientHttpResponseOk); properties.getRetry().setEnabled(true); RetryLoadBalancerInterceptor interceptor = new RetryLoadBalancerInterceptor(client, lbRequestFactory, new MyLoadBalancedRetryFactory(policy), lbFactory); @@ -220,7 +221,7 @@ public class RetryLoadBalancerInterceptorTests { when(client.choose(eq("foo"), any())).thenReturn(serviceInstance); when(client.execute(eq("foo"), eq(serviceInstance), ArgumentMatchers.>any())) - .thenReturn(clientHttpResponseNotFound); + .thenReturn(clientHttpResponseNotFound); properties.getRetry().setEnabled(true); byte[] body = new byte[] {}; @@ -253,7 +254,8 @@ public class RetryLoadBalancerInterceptorTests { ServiceInstance serviceInstance = mock(ServiceInstance.class); when(client.choose(eq("foo"), any())).thenReturn(serviceInstance); when(client.execute(eq("foo"), eq(serviceInstance), any(LoadBalancerRequest.class))) - .thenThrow(new IOException()).thenReturn(clientHttpResponse); + .thenThrow(new IOException()) + .thenReturn(clientHttpResponse); when(lbRequestFactory.createRequest(any(), any(), any())).thenReturn(mock(LoadBalancerRequest.class)); properties.getRetry().setEnabled(true); RetryLoadBalancerInterceptor interceptor = new RetryLoadBalancerInterceptor(client, lbRequestFactory, @@ -278,7 +280,8 @@ public class RetryLoadBalancerInterceptorTests { ServiceInstance serviceInstance = mock(ServiceInstance.class); when(client.choose(eq("foo"), any())).thenReturn(serviceInstance); when(client.execute(eq("foo"), eq(serviceInstance), any(LoadBalancerRequest.class))) - .thenThrow(new IOException()).thenReturn(clientHttpResponse); + .thenThrow(new IOException()) + .thenReturn(clientHttpResponse); when(lbRequestFactory.createRequest(any(), any(), any())).thenReturn(mock(LoadBalancerRequest.class)); properties.getRetry().setEnabled(true); RetryLoadBalancerInterceptor interceptor = new RetryLoadBalancerInterceptor(client, lbRequestFactory, @@ -305,7 +308,8 @@ public class RetryLoadBalancerInterceptorTests { ServiceInstance serviceInstance = mock(ServiceInstance.class); when(client.choose(eq("listener"), any())).thenReturn(serviceInstance); when(client.execute(eq("listener"), eq(serviceInstance), any(LoadBalancerRequest.class))) - .thenThrow(new IOException()).thenReturn(clientHttpResponse); + .thenThrow(new IOException()) + .thenReturn(clientHttpResponse); properties.getRetry().setEnabled(true); MyRetryListener retryListener = new MyRetryListener(); when(lbRequestFactory.createRequest(any(), any(), any())).thenReturn(mock(LoadBalancerRequest.class)); @@ -333,7 +337,8 @@ public class RetryLoadBalancerInterceptorTests { ServiceInstance serviceInstance = mock(ServiceInstance.class); when(client.choose(eq("default"), any())).thenReturn(serviceInstance); when(client.execute(eq("default"), eq(serviceInstance), any(LoadBalancerRequest.class))) - .thenThrow(new IOException()).thenReturn(clientHttpResponse); + .thenThrow(new IOException()) + .thenReturn(clientHttpResponse); properties.getRetry().setEnabled(true); when(lbRequestFactory.createRequest(any(), any(), any())).thenReturn(mock(LoadBalancerRequest.class)); when(policy.retryableException(any())).thenReturn(true); @@ -385,28 +390,28 @@ public class RetryLoadBalancerInterceptorTests { assertThat(((TestLoadBalancerLifecycle) lifecycleProcessors.get("testLifecycle")).getStartLog()).hasSize(1); assertThat(((TestLoadBalancerLifecycle) lifecycleProcessors.get("testLifecycle")).getStartRequestLog()) - .hasSize(0); + .hasSize(0); assertThat(((TestLoadBalancerLifecycle) lifecycleProcessors.get("testLifecycle")).getCompleteLog()).hasSize(0); assertThat(((TestLoadBalancerLifecycle) lifecycleProcessors.get("anotherLifecycle")).getStartLog()).hasSize(1); assertThat(((TestLoadBalancerLifecycle) lifecycleProcessors.get("anotherLifecycle")).getStartRequestLog()) - .hasSize(0); + .hasSize(0); assertThat(((TestLoadBalancerLifecycle) lifecycleProcessors.get("anotherLifecycle")).getCompleteLog()) - .hasSize(0); + .hasSize(0); assertThat(((TestLoadBalancerLifecycle) client.getLifecycleProcessors().get("testLifecycle")).getStartLog()) - .hasSize(0); + .hasSize(0); assertThat( ((TestLoadBalancerLifecycle) client.getLifecycleProcessors().get("testLifecycle")).getStartRequestLog()) - .hasSize(1); + .hasSize(1); assertThat(((TestLoadBalancerLifecycle) client.getLifecycleProcessors().get("testLifecycle")).getCompleteLog()) - .hasSize(1); + .hasSize(1); assertThat(((TestLoadBalancerLifecycle) client.getLifecycleProcessors().get("anotherLifecycle")).getStartLog()) - .hasSize(0); + .hasSize(0); assertThat( ((TestLoadBalancerLifecycle) client.getLifecycleProcessors().get("testLifecycle")).getStartRequestLog()) - .hasSize(1); + .hasSize(1); assertThat( ((TestLoadBalancerLifecycle) client.getLifecycleProcessors().get("anotherLifecycle")).getCompleteLog()) - .hasSize(1); + .hasSize(1); } static class MyLoadBalancedRetryFactory implements LoadBalancedRetryFactory { @@ -508,14 +513,14 @@ public class RetryLoadBalancerInterceptorTests { @Override public T execute(String serviceId, ServiceInstance serviceInstance, LoadBalancerRequest request) { Set supportedLoadBalancerProcessors = LoadBalancerLifecycleValidator - .getSupportedLifecycleProcessors(lifecycleProcessors, DefaultRequestContext.class, Object.class, - ServiceInstance.class); + .getSupportedLifecycleProcessors(lifecycleProcessors, DefaultRequestContext.class, Object.class, + ServiceInstance.class); supportedLoadBalancerProcessors.forEach(lifecycle -> lifecycle.onStartRequest(new DefaultRequest<>(), new DefaultResponse(serviceInstance))); T response = (T) new MockClientHttpResponse(new byte[] {}, HttpStatus.OK); supportedLoadBalancerProcessors - .forEach(lifecycle -> lifecycle.onComplete(new CompletionContext(CompletionContext.Status.SUCCESS, - new DefaultRequest<>(), new DefaultResponse(defaultServiceInstance())))); + .forEach(lifecycle -> lifecycle.onComplete(new CompletionContext(CompletionContext.Status.SUCCESS, + new DefaultRequest<>(), new DefaultResponse(defaultServiceInstance())))); return response; } diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/LoadBalancerTestUtils.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/LoadBalancerTestUtils.java index 31311fb7..6cca54bd 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/LoadBalancerTestUtils.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/LoadBalancerTestUtils.java @@ -43,7 +43,8 @@ final class LoadBalancerTestUtils { static ConfigurableApplicationContext init(Class... configClasses) { return new SpringApplicationBuilder().web(WebApplicationType.NONE) - .sources(ArrayUtils.add(configClasses, WebClientAutoConfiguration.class)).run(); + .sources(ArrayUtils.add(configClasses, WebClientAutoConfiguration.class)) + .run(); } @SuppressWarnings("unchecked") @@ -56,7 +57,7 @@ final class LoadBalancerTestUtils { then(filters).hasSize(1); then(filters.get(0)).isInstanceOf(DeferringLoadBalancerExchangeFilterFunction.class); DeferringLoadBalancerExchangeFilterFunction interceptor = (DeferringLoadBalancerExchangeFilterFunction) filters - .get(0); + .get(0); interceptor.tryResolveDelegate(); then(interceptor.getDelegate()).isInstanceOf(exchangeFilterFunctionClass); } diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerClientAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerClientAutoConfigurationTests.java index bf932523..0d0f3c6c 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerClientAutoConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerClientAutoConfigurationTests.java @@ -59,7 +59,7 @@ public class ReactorLoadBalancerClientAutoConfigurationTests { assertLoadBalanced(webClientBuilder, ReactorLoadBalancerExchangeFilterFunction.class); final Map testServiceMap = context - .getBeansOfType(OneWebClientBuilder.TestService.class); + .getBeansOfType(OneWebClientBuilder.TestService.class); then(testServiceMap).isNotNull().hasSize(1); OneWebClientBuilder.TestService testService = testServiceMap.values().stream().findFirst().get(); assertLoadBalanced(testService.webClient, ReactorLoadBalancerExchangeFilterFunction.class); @@ -78,7 +78,7 @@ public class ReactorLoadBalancerClientAutoConfigurationTests { assertLoadBalanced(webClientBuilder, RetryableLoadBalancerExchangeFilterFunction.class); final Map testServiceMap = context - .getBeansOfType(OneWebClientBuilder.TestService.class); + .getBeansOfType(OneWebClientBuilder.TestService.class); then(testServiceMap).isNotNull().hasSize(1); OneWebClientBuilder.TestService testService = testServiceMap.values().stream().findFirst().get(); assertLoadBalanced(testService.webClient, RetryableLoadBalancerExchangeFilterFunction.class); @@ -136,10 +136,10 @@ public class ReactorLoadBalancerClientAutoConfigurationTests { @Test void defaultPropertiesWorks() { ConfigurableApplicationContext context = new SpringApplicationBuilder().web(WebApplicationType.NONE) - .sources(OneWebClientBuilder.class, DefaulConfig.class) - .properties("spring.cloud.loadbalancer.health-check.initial-delay=1s", - "spring.cloud.loadbalancer.clients.myclient.health-check.interval=30s") - .run(); + .sources(OneWebClientBuilder.class, DefaulConfig.class) + .properties("spring.cloud.loadbalancer.health-check.initial-delay=1s", + "spring.cloud.loadbalancer.clients.myclient.health-check.interval=30s") + .run(); LoadBalancerClientsProperties properties = context.getBean(LoadBalancerClientsProperties.class); then(properties.getClients()).containsKey("myclient"); diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerExchangeFilterFunctionTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerExchangeFilterFunctionTests.java index 45d4b655..d5f1c291 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerExchangeFilterFunctionTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerExchangeFilterFunctionTests.java @@ -91,66 +91,94 @@ class ReactorLoadBalancerExchangeFilterFunctionTests { instanceWithNoLifecycleProcessors.setServiceId("serviceWithNoLifecycleProcessors"); instanceWithNoLifecycleProcessors.setUri(URI.create("http://localhost:" + this.port)); properties.getInstances().put("testservice", Collections.singletonList(instance)); - properties.getInstances().put("serviceWithNoLifecycleProcessors", - Collections.singletonList(instanceWithNoLifecycleProcessors)); + properties.getInstances() + .put("serviceWithNoLifecycleProcessors", Collections.singletonList(instanceWithNoLifecycleProcessors)); } @Test void correctResponseReturnedForExistingHostAndInstancePresent() { - ClientResponse clientResponse = WebClient.builder().baseUrl("http://testservice").filter(loadBalancerFunction) - .build().get().uri("/hello").exchange().block(); + ClientResponse clientResponse = WebClient.builder() + .baseUrl("http://testservice") + .filter(loadBalancerFunction) + .build() + .get() + .uri("/hello") + .exchange() + .block(); then(clientResponse.statusCode()).isEqualTo(HttpStatus.OK); then(clientResponse.bodyToMono(String.class).block()).isEqualTo("Hello World"); } @Test void serviceUnavailableReturnedWhenNoInstancePresent() { - ClientResponse clientResponse = WebClient.builder().baseUrl("http://xxx").filter(this.loadBalancerFunction) - .build().get().exchange().block(); + ClientResponse clientResponse = WebClient.builder() + .baseUrl("http://xxx") + .filter(this.loadBalancerFunction) + .build() + .get() + .exchange() + .block(); then(clientResponse.statusCode()).isEqualTo(HttpStatus.SERVICE_UNAVAILABLE); } @Test @Disabled // FIXME 3.0.0 void badRequestReturnedForIncorrectHost() { - ClientResponse clientResponse = WebClient.builder().baseUrl("http:///xxx").filter(this.loadBalancerFunction) - .build().get().exchange().block(); + ClientResponse clientResponse = WebClient.builder() + .baseUrl("http:///xxx") + .filter(this.loadBalancerFunction) + .build() + .get() + .exchange() + .block(); then(clientResponse.statusCode()).isEqualTo(HttpStatus.BAD_REQUEST); } @Test void exceptionNotThrownWhenFactoryReturnsNullLifecycleProcessorsMap() { - assertThatCode(() -> WebClient.builder().baseUrl("http://serviceWithNoLifecycleProcessors") - .filter(loadBalancerFunction).build().get().uri("/hello").exchange().block()) - .doesNotThrowAnyException(); + assertThatCode(() -> WebClient.builder() + .baseUrl("http://serviceWithNoLifecycleProcessors") + .filter(loadBalancerFunction) + .build() + .get() + .uri("/hello") + .exchange() + .block()).doesNotThrowAnyException(); } @Test void loadBalancerLifecycleCallbacksExecuted() { final String callbackTestHint = "callbackTestHint"; loadBalancerProperties.getHint().put("testservice", "callbackTestHint"); - ClientResponse clientResponse = WebClient.builder().baseUrl("http://testservice").filter(loadBalancerFunction) - .build().get().uri("/callback").exchange().block(); + ClientResponse clientResponse = WebClient.builder() + .baseUrl("http://testservice") + .filter(loadBalancerFunction) + .build() + .get() + .uri("/callback") + .exchange() + .block(); Collection> lifecycleLogRequests = ((TestLoadBalancerLifecycle) factory - .getInstances("testservice", LoadBalancerLifecycle.class).get("loadBalancerLifecycle")).getStartLog() - .values(); + .getInstances("testservice", LoadBalancerLifecycle.class) + .get("loadBalancerLifecycle")).getStartLog().values(); Collection> lifecycleStartedLogRequests = ((TestLoadBalancerLifecycle) factory - .getInstances("testservice", LoadBalancerLifecycle.class).get("loadBalancerLifecycle")) - .getStartRequestLog().values(); + .getInstances("testservice", LoadBalancerLifecycle.class) + .get("loadBalancerLifecycle")).getStartRequestLog().values(); Collection> anotherLifecycleLogRequests = ((AnotherLoadBalancerLifecycle) factory - .getInstances("testservice", LoadBalancerLifecycle.class).get("anotherLoadBalancerLifecycle")) - .getCompleteLog().values(); + .getInstances("testservice", LoadBalancerLifecycle.class) + .get("anotherLoadBalancerLifecycle")).getCompleteLog().values(); then(clientResponse.statusCode()).isEqualTo(HttpStatus.OK); assertThat(lifecycleLogRequests).extracting(request -> ((DefaultRequestContext) request.getContext()).getHint()) - .contains(callbackTestHint); + .contains(callbackTestHint); assertThat(lifecycleStartedLogRequests) - .extracting(request -> ((DefaultRequestContext) request.getContext()).getHint()) - .contains(callbackTestHint); + .extracting(request -> ((DefaultRequestContext) request.getContext()).getHint()) + .contains(callbackTestHint); assertThat(anotherLifecycleLogRequests) - .extracting(completionContext -> ((ResponseData) completionContext.getClientResponse()).getRequestData() - .getUrl().toString()) - .contains("http://testservice/callback"); + .extracting(completionContext -> ((ResponseData) completionContext.getClientResponse()).getRequestData() + .getUrl() + .toString()) + .contains("http://testservice/callback"); } @SuppressWarnings({ "unchecked", "rawtypes" }) diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/RetryableLoadBalancerExchangeFilterFunctionIntegrationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/RetryableLoadBalancerExchangeFilterFunctionIntegrationTests.java index 5b42a8f6..7cd4333c 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/RetryableLoadBalancerExchangeFilterFunctionIntegrationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/RetryableLoadBalancerExchangeFilterFunctionIntegrationTests.java @@ -93,8 +93,8 @@ class RetryableLoadBalancerExchangeFilterFunctionIntegrationTests { instanceWithNoLifecycleProcessors.setServiceId("serviceWithNoLifecycleProcessors"); instanceWithNoLifecycleProcessors.setUri(URI.create("http://localhost:" + port)); properties.getInstances().put("testservice", Collections.singletonList(instance)); - properties.getInstances().put("serviceWithNoLifecycleProcessors", - Collections.singletonList(instanceWithNoLifecycleProcessors)); + properties.getInstances() + .put("serviceWithNoLifecycleProcessors", Collections.singletonList(instanceWithNoLifecycleProcessors)); } @Test @@ -102,34 +102,46 @@ class RetryableLoadBalancerExchangeFilterFunctionIntegrationTests { final String callbackTestHint = "callbackTestHint"; loadBalancerProperties.getHint().put("testservice", "callbackTestHint"); - ClientResponse clientResponse = WebClient.builder().baseUrl("http://testservice") - .filter(this.loadBalancerFunction).build().get().uri("/callback").exchange().block(); + ClientResponse clientResponse = WebClient.builder() + .baseUrl("http://testservice") + .filter(this.loadBalancerFunction) + .build() + .get() + .uri("/callback") + .exchange() + .block(); Collection> lifecycleLogRequests = ((TestLoadBalancerLifecycle) factory - .getInstances("testservice", LoadBalancerLifecycle.class).get("loadBalancerLifecycle")).getStartLog() - .values(); + .getInstances("testservice", LoadBalancerLifecycle.class) + .get("loadBalancerLifecycle")).getStartLog().values(); Collection> lifecycleLogStartRequests = ((TestLoadBalancerLifecycle) factory - .getInstances("testservice", LoadBalancerLifecycle.class).get("loadBalancerLifecycle")) - .getStartRequestLog().values(); + .getInstances("testservice", LoadBalancerLifecycle.class) + .get("loadBalancerLifecycle")).getStartRequestLog().values(); Collection> anotherLifecycleLogRequests = ((AnotherLoadBalancerLifecycle) factory - .getInstances("testservice", LoadBalancerLifecycle.class).get("anotherLoadBalancerLifecycle")) - .getCompleteLog().values(); + .getInstances("testservice", LoadBalancerLifecycle.class) + .get("anotherLoadBalancerLifecycle")).getCompleteLog().values(); then(clientResponse.statusCode()).isEqualTo(HttpStatus.OK); assertThat(lifecycleLogRequests).extracting(request -> ((DefaultRequestContext) request.getContext()).getHint()) - .contains(callbackTestHint); + .contains(callbackTestHint); assertThat(lifecycleLogStartRequests) - .extracting(request -> ((DefaultRequestContext) request.getContext()).getHint()) - .contains(callbackTestHint); + .extracting(request -> ((DefaultRequestContext) request.getContext()).getHint()) + .contains(callbackTestHint); assertThat(anotherLifecycleLogRequests) - .extracting(completionContext -> ((ResponseData) completionContext.getClientResponse()).getRequestData() - .getHttpMethod()) - .contains(HttpMethod.GET); + .extracting(completionContext -> ((ResponseData) completionContext.getClientResponse()).getRequestData() + .getHttpMethod()) + .contains(HttpMethod.GET); } @Test void correctResponseReturnedForExistingHostAndInstancePresent() { - ClientResponse clientResponse = WebClient.builder().baseUrl("http://testservice") - .filter(this.loadBalancerFunction).build().get().uri("/hello").exchange().block(); + ClientResponse clientResponse = WebClient.builder() + .baseUrl("http://testservice") + .filter(this.loadBalancerFunction) + .build() + .get() + .uri("/hello") + .exchange() + .block(); then(clientResponse.statusCode()).isEqualTo(HttpStatus.OK); then(clientResponse.bodyToMono(String.class).block()).isEqualTo("Hello World"); @@ -140,8 +152,14 @@ class RetryableLoadBalancerExchangeFilterFunctionIntegrationTests { loadBalancerProperties.getRetry().setMaxRetriesOnSameServiceInstance(1); loadBalancerProperties.getRetry().getRetryableStatusCodes().add(500); - ClientResponse clientResponse = WebClient.builder().baseUrl("http://testservice") - .filter(this.loadBalancerFunction).build().get().uri("/exception").exchange().block(); + ClientResponse clientResponse = WebClient.builder() + .baseUrl("http://testservice") + .filter(this.loadBalancerFunction) + .build() + .get() + .uri("/exception") + .exchange() + .block(); then(clientResponse.statusCode()).isEqualTo(HttpStatus.OK); then(clientResponse.bodyToMono(String.class).block()).isEqualTo("Hello World!"); @@ -160,14 +178,26 @@ class RetryableLoadBalancerExchangeFilterFunctionIntegrationTests { properties.getInstances().put("retrytest", Arrays.asList(badRetryTestInstance, goodRetryTestInstance)); loadBalancerProperties.getRetry().getRetryableStatusCodes().add(500); - ClientResponse clientResponse = WebClient.builder().baseUrl("http://retrytest") - .filter(this.loadBalancerFunction).build().get().uri("/hello").exchange().block(); + ClientResponse clientResponse = WebClient.builder() + .baseUrl("http://retrytest") + .filter(this.loadBalancerFunction) + .build() + .get() + .uri("/hello") + .exchange() + .block(); then(clientResponse.statusCode()).isEqualTo(HttpStatus.OK); then(clientResponse.bodyToMono(String.class).block()).isEqualTo("Hello World"); - ClientResponse secondClientResponse = WebClient.builder().baseUrl("http://retrytest") - .filter(this.loadBalancerFunction).build().get().uri("/hello").exchange().block(); + ClientResponse secondClientResponse = WebClient.builder() + .baseUrl("http://retrytest") + .filter(this.loadBalancerFunction) + .build() + .get() + .uri("/hello") + .exchange() + .block(); then(secondClientResponse.statusCode()).isEqualTo(HttpStatus.OK); then(secondClientResponse.bodyToMono(String.class).block()).isEqualTo("Hello World"); @@ -175,8 +205,13 @@ class RetryableLoadBalancerExchangeFilterFunctionIntegrationTests { @Test void serviceUnavailableReturnedWhenNoInstancePresent() { - ClientResponse clientResponse = WebClient.builder().baseUrl("http://xxx").filter(this.loadBalancerFunction) - .build().get().exchange().block(); + ClientResponse clientResponse = WebClient.builder() + .baseUrl("http://xxx") + .filter(this.loadBalancerFunction) + .build() + .get() + .exchange() + .block(); then(clientResponse.statusCode()).isEqualTo(HttpStatus.SERVICE_UNAVAILABLE); } @@ -185,17 +220,27 @@ class RetryableLoadBalancerExchangeFilterFunctionIntegrationTests { @Disabled // FIXME 3.0.0 void badRequestReturnedForIncorrectHost() { - ClientResponse clientResponse = WebClient.builder().baseUrl("http:///xxx").filter(this.loadBalancerFunction) - .build().get().exchange().block(); + ClientResponse clientResponse = WebClient.builder() + .baseUrl("http:///xxx") + .filter(this.loadBalancerFunction) + .build() + .get() + .exchange() + .block(); then(clientResponse.statusCode()).isEqualTo(HttpStatus.BAD_REQUEST); } @Test void exceptionNotThrownWhenFactoryReturnsNullLifecycleProcessorsMap() { - assertThatCode(() -> WebClient.builder().baseUrl("http://serviceWithNoLifecycleProcessors") - .filter(this.loadBalancerFunction).build().get().uri("/hello").exchange().block()) - .doesNotThrowAnyException(); + assertThatCode(() -> WebClient.builder() + .baseUrl("http://serviceWithNoLifecycleProcessors") + .filter(this.loadBalancerFunction) + .build() + .get() + .uri("/hello") + .exchange() + .block()).doesNotThrowAnyException(); } @SuppressWarnings({ "unchecked", "rawtypes" }) diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/AbstractAutoServiceRegistrationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/AbstractAutoServiceRegistrationTests.java index 3ac6d3e2..ef2fa668 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/AbstractAutoServiceRegistrationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/AbstractAutoServiceRegistrationTests.java @@ -65,11 +65,11 @@ public class AbstractAutoServiceRegistrationTests { public void portsWork() { then(this.autoRegistration.getPort().get()).isNotEqualTo(0).as("Lifecycle port is zero"); then(this.managementPort).isNotEqualTo(this.autoRegistration.getPort().get()) - .as("Lifecycle port is management port"); + .as("Lifecycle port is management port"); then(this.port).isEqualTo(this.autoRegistration.getPort().get()).as("Lifecycle port is wrong"); then(this.autoRegistration.isRunning()).isTrue().as("Lifecycle not running"); then(this.autoRegistration.getServiceRegistry()).isInstanceOf(TestServiceRegistry.class) - .as("ServiceRegistry is wrong type"); + .as("ServiceRegistry is wrong type"); TestServiceRegistry serviceRegistry = (TestServiceRegistry) this.autoRegistration.getServiceRegistry(); then(serviceRegistry.isRegistered()).isTrue().as("Lifecycle not registered"); then(this.autoRegistration.getAppName()).as("Lifecycle appName is wrong").isEqualTo("application"); diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfigurationTests.java index 3e919ecc..49e330ef 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfigurationTests.java @@ -36,7 +36,8 @@ public class ServiceRegistryAutoConfigurationTests { @Test public void runsWithoutActuator() { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfig.class) - .web(WebApplicationType.NONE).run(); + .web(WebApplicationType.NONE) + .run(); try { context.getBean("serviceRegistryEndpoint"); fail("found a bean that shouldn't be there"); diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/endpoint/ServiceRegistryEndpointNoRegistrationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/endpoint/ServiceRegistryEndpointNoRegistrationTests.java index 53806573..5a5576c6 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/endpoint/ServiceRegistryEndpointNoRegistrationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/endpoint/ServiceRegistryEndpointNoRegistrationTests.java @@ -54,7 +54,7 @@ public class ServiceRegistryEndpointNoRegistrationTests { @Test public void testPost() throws Exception { this.mvc.perform(post("/serviceregistry/instance-status").content("newstatus")) - .andExpect(status().isNotFound()); + .andExpect(status().isNotFound()); } @Import({ JacksonAutoConfiguration.class, HttpMessageConvertersAutoConfiguration.class, diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/endpoint/ServiceRegistryEndpointTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/endpoint/ServiceRegistryEndpointTests.java index 8605f311..c3b803c9 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/endpoint/ServiceRegistryEndpointTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/endpoint/ServiceRegistryEndpointTests.java @@ -68,15 +68,18 @@ public class ServiceRegistryEndpointTests { @Test public void testGet() throws Exception { - this.mvc.perform(get(BASE_PATH + "/serviceregistry")).andExpect(status().isOk()) - .andExpect(content().string(containsString(MYSTATUS))); + this.mvc.perform(get(BASE_PATH + "/serviceregistry")) + .andExpect(status().isOk()) + .andExpect(content().string(containsString(MYSTATUS))); } @Test public void testPost() throws Exception { Map status = Collections.singletonMap("status", UPDATED_STATUS); - this.mvc.perform(post(BASE_PATH + "/serviceregistry").content(new ObjectMapper().writeValueAsString(status)) - .contentType(MediaType.APPLICATION_JSON)).andExpect(status().isOk()); + this.mvc + .perform(post(BASE_PATH + "/serviceregistry").content(new ObjectMapper().writeValueAsString(status)) + .contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()); then(this.serviceRegistry.getUpdatedStatus().get()).isEqualTo(UPDATED_STATUS); } diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/ConfigDataMissingEnvironmentPostProcessorTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/ConfigDataMissingEnvironmentPostProcessorTests.java index 26e88bbe..6b55058d 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/ConfigDataMissingEnvironmentPostProcessorTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/ConfigDataMissingEnvironmentPostProcessorTests.java @@ -45,7 +45,7 @@ public class ConfigDataMissingEnvironmentPostProcessorTests { SpringApplication app = mock(SpringApplication.class); TestConfigDataMissingEnvironmentPostProcessor processor = new TestConfigDataMissingEnvironmentPostProcessor(); assertThatThrownBy(() -> processor.postProcessEnvironment(environment, app)) - .isInstanceOf(ConfigDataMissingEnvironmentPostProcessor.ImportException.class); + .isInstanceOf(ConfigDataMissingEnvironmentPostProcessor.ImportException.class); } @Test diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/publisher/FluxFirstNonEmptyEmittingTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/publisher/FluxFirstNonEmptyEmittingTests.java index 0d7ac759..4e6e9c20 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/publisher/FluxFirstNonEmptyEmittingTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/publisher/FluxFirstNonEmptyEmittingTests.java @@ -51,94 +51,125 @@ public class FluxFirstNonEmptyEmittingTests { @Test public void firstWinner() { StepVerifier.create(CloudFlux.firstNonEmpty(Flux.range(1, 10), Flux.range(11, 10))) - .expectNext(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).verifyComplete(); + .expectNext(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) + .verifyComplete(); } @Test public void firstWinnerSecondEmpty() { StepVerifier.create(CloudFlux.firstNonEmpty(Flux.range(1, 10), Flux.empty())) - .expectNext(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).verifyComplete(); + .expectNext(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) + .verifyComplete(); } @Test public void firstWinnerBackpressured() { - StepVerifier.create(CloudFlux.firstNonEmpty(Flux.range(1, 10), Flux.range(11, 10))).thenRequest(5) - .expectNext(1, 2, 3, 4, 5).thenCancel().verifyThenAssertThat().hasNotDiscardedElements() - .hasNotDroppedElements().hasNotDroppedErrors(); + StepVerifier.create(CloudFlux.firstNonEmpty(Flux.range(1, 10), Flux.range(11, 10))) + .thenRequest(5) + .expectNext(1, 2, 3, 4, 5) + .thenCancel() + .verifyThenAssertThat() + .hasNotDiscardedElements() + .hasNotDroppedElements() + .hasNotDroppedErrors(); } @Test public void secondWinner() { StepVerifier.create(CloudFlux.firstNonEmpty(Flux.never(), Flux.range(11, 10).log())) - .expectNext(11, 12, 13, 14, 15, 16, 17, 18, 19, 20).verifyComplete(); + .expectNext(11, 12, 13, 14, 15, 16, 17, 18, 19, 20) + .verifyComplete(); } @Test public void secondWinnerFirstEmpty() { StepVerifier.create(CloudFlux.firstNonEmpty(Flux.empty(), Flux.range(11, 10).log())) - .expectNext(11, 12, 13, 14, 15, 16, 17, 18, 19, 20).verifyComplete(); + .expectNext(11, 12, 13, 14, 15, 16, 17, 18, 19, 20) + .verifyComplete(); } @Test public void bothEmpty() { - StepVerifier.create(CloudFlux.firstNonEmpty(Flux.empty(), Flux.empty())).expectComplete().verifyThenAssertThat() - .hasNotDiscardedElements().hasNotDroppedElements().hasNotDroppedErrors(); + StepVerifier.create(CloudFlux.firstNonEmpty(Flux.empty(), Flux.empty())) + .expectComplete() + .verifyThenAssertThat() + .hasNotDiscardedElements() + .hasNotDroppedElements() + .hasNotDroppedErrors(); } @Test public void neverAndEmpty() { - StepVerifier.withVirtualTime(() -> CloudFlux.firstNonEmpty(Flux.never(), Flux.empty())).expectSubscription() - .expectNoEvent(Duration.ofDays(1)).thenCancel().verifyThenAssertThat().hasNotDiscardedElements() - .hasNotDroppedElements().hasNotDroppedErrors(); + StepVerifier.withVirtualTime(() -> CloudFlux.firstNonEmpty(Flux.never(), Flux.empty())) + .expectSubscription() + .expectNoEvent(Duration.ofDays(1)) + .thenCancel() + .verifyThenAssertThat() + .hasNotDiscardedElements() + .hasNotDroppedElements() + .hasNotDroppedErrors(); } @Test public void firstEmitsError() { RuntimeException ex = new RuntimeException("forced failure"); StepVerifier.create(CloudFlux.firstNonEmpty(Flux.error(ex), Flux.empty())) - .expectErrorMessage("forced failure").verifyThenAssertThat().hasNotDiscardedElements() - .hasNotDroppedElements().hasNotDroppedErrors(); + .expectErrorMessage("forced failure") + .verifyThenAssertThat() + .hasNotDiscardedElements() + .hasNotDroppedElements() + .hasNotDroppedErrors(); } @Test public void secondEmitsError() { RuntimeException ex = new RuntimeException("forced failure"); StepVerifier.create(CloudFlux.firstNonEmpty(Flux.empty(), Flux.error(ex))) - .expectErrorMessage("forced failure").verifyThenAssertThat().hasNotDiscardedElements() - .hasNotDroppedElements().hasNotDroppedErrors(); + .expectErrorMessage("forced failure") + .verifyThenAssertThat() + .hasNotDiscardedElements() + .hasNotDroppedElements() + .hasNotDroppedErrors(); } @Test public void neverAndSecondEmitsError() { RuntimeException ex = new RuntimeException("forced failure"); StepVerifier.create(CloudFlux.firstNonEmpty(Flux.never(), Flux.error(ex))) - .expectErrorMessage("forced failure").verifyThenAssertThat().hasNotDiscardedElements() - .hasNotDroppedElements().hasNotDroppedErrors(); + .expectErrorMessage("forced failure") + .verifyThenAssertThat() + .hasNotDiscardedElements() + .hasNotDroppedElements() + .hasNotDroppedErrors(); } @Test public void singleArrayNullSource() { - StepVerifier.create(CloudFlux.firstNonEmpty((Publisher) null)).expectError(NullPointerException.class) - .verify(); + StepVerifier.create(CloudFlux.firstNonEmpty((Publisher) null)) + .expectError(NullPointerException.class) + .verify(); } @Test public void arrayOneIsNullSource() { StepVerifier.create(CloudFlux.firstNonEmpty(Flux.never(), null, Flux.never())) - .expectError(NullPointerException.class).verify(); + .expectError(NullPointerException.class) + .verify(); } @Test public void singleIterableNullSource() { StepVerifier.create(CloudFlux.firstNonEmpty(singletonList((Publisher) null))) - .expectError(NullPointerException.class).verify(); + .expectError(NullPointerException.class) + .verify(); } @Test public void iterableOneIsNullSource() { StepVerifier - .create(CloudFlux.firstNonEmpty(Arrays.asList(Flux.never(), (Publisher) null, Flux.never()))) - .expectError(NullPointerException.class).verify(); + .create(CloudFlux.firstNonEmpty(Arrays.asList(Flux.never(), (Publisher) null, Flux.never()))) + .expectError(NullPointerException.class) + .verify(); } @Test diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/security/ResourceServerTokenRelayAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/security/ResourceServerTokenRelayAutoConfigurationTests.java index 47fd1103..f227a889 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/security/ResourceServerTokenRelayAutoConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/security/ResourceServerTokenRelayAutoConfigurationTests.java @@ -46,9 +46,9 @@ public class ResourceServerTokenRelayAutoConfigurationTests { @Test public void clientNotConfigured() { this.context = new SpringApplicationBuilder(NoClientConfiguration.class) - .properties("spring.config.name=test", "server.port=0", "spring.cloud.mvc.token-relay.enabled=true", - "security.oauth2.resource.userInfoUri:https://example.com") - .run(); + .properties("spring.config.name=test", "server.port=0", "spring.cloud.mvc.token-relay.enabled=true", + "security.oauth2.resource.userInfoUri:https://example.com") + .run(); assertThat(this.context.containsBean("loadBalancedOauth2RestTemplate")).isFalse(); } diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/security/tokenrelay/ResourceServerTokenRelayTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/security/tokenrelay/ResourceServerTokenRelayTests.java index 77f68dc2..96f0db57 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/security/tokenrelay/ResourceServerTokenRelayTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/security/tokenrelay/ResourceServerTokenRelayTests.java @@ -75,8 +75,8 @@ public class ResourceServerTokenRelayTests { public void tokenRelayJWT() { mockServerToReceiveRelay.expect(requestTo("https://example.com/test")) - .andExpect(header("authorization", AUTH_HEADER_TO_BE_RELAYED)) - .andRespond(withSuccess(TEST_RESPONSE, MediaType.APPLICATION_JSON)); + .andExpect(header("authorization", AUTH_HEADER_TO_BE_RELAYED)) + .andRespond(withSuccess(TEST_RESPONSE, MediaType.APPLICATION_JSON)); HttpEntity authorizationHeader = createAuthorizationHeader(); ResponseEntity exchange = testRestTemplate.exchange("/token-relay", HttpMethod.GET, authorizationHeader, diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/util/IdUtilsTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/util/IdUtilsTests.java index a14367b5..b7f89ce7 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/util/IdUtilsTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/commons/util/IdUtilsTests.java @@ -119,7 +119,7 @@ public class IdUtilsTests { @Test public void testUnresolvedServiceIdWithActiveProfiles() { then(IdUtils.DEFAULT_SERVICE_ID_WITH_ACTIVE_PROFILES_STRING) - .isEqualTo(IdUtils.getUnresolvedServiceIdWithActiveProfiles()); + .isEqualTo(IdUtils.getUnresolvedServiceIdWithActiveProfiles()); } @Test diff --git a/spring-cloud-context-integration-tests/src/test/java/org/springframework/cloud/context/integration/JdbcConfigurationTests.java b/spring-cloud-context-integration-tests/src/test/java/org/springframework/cloud/context/integration/JdbcConfigurationTests.java index f33294f1..f8d9de7f 100644 --- a/spring-cloud-context-integration-tests/src/test/java/org/springframework/cloud/context/integration/JdbcConfigurationTests.java +++ b/spring-cloud-context-integration-tests/src/test/java/org/springframework/cloud/context/integration/JdbcConfigurationTests.java @@ -36,7 +36,8 @@ public class JdbcConfigurationTests { @Test public void schemaApplied() { new SpringApplicationBuilder(BrokenApplication.class).web(WebApplicationType.NONE) - .run("--spring.datasource.initialization-mode=always").close(); + .run("--spring.datasource.initialization-mode=always") + .close(); } @SpringBootConfiguration diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/RefreshAutoConfiguration.java b/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/RefreshAutoConfiguration.java index 8685521f..e2004b5e 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/RefreshAutoConfiguration.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/autoconfigure/RefreshAutoConfiguration.java @@ -151,7 +151,8 @@ public class RefreshAutoConfiguration { @Override public String toString() { return new ToStringCreator(this) - .append("additionalPropertySourcesToRetain", additionalPropertySourcesToRetain).toString(); + .append("additionalPropertySourcesToRetain", additionalPropertySourcesToRetain) + .toString(); } diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/BootstrapApplicationListener.java b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/BootstrapApplicationListener.java index 3a614181..325cedc0 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/BootstrapApplicationListener.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/BootstrapApplicationListener.java @@ -146,7 +146,7 @@ public class BootstrapApplicationListener implements ApplicationListener bootstrapMap = new HashMap<>(); bootstrapMap.put("spring.config.name", configName); // if an app (or test) uses spring.main.web-application-type=reactive, bootstrap @@ -170,9 +170,12 @@ public class BootstrapApplicationListener implements ApplicationListener removed = environment.getPropertySources().remove(DEFAULT_PROPERTIES); if (removed instanceof ExtendedDefaultPropertySource defaultProperties) { environment.getPropertySources() - .addLast(new MapPropertySource(DEFAULT_PROPERTIES, defaultProperties.getSource())); + .addLast(new MapPropertySource(DEFAULT_PROPERTIES, defaultProperties.getSource())); for (PropertySource source : defaultProperties.getPropertySources().getPropertySources()) { if (!environment.getPropertySources().contains(source.getName())) { environment.getPropertySources().addBefore(DEFAULT_PROPERTIES, source); diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/BootstrapConfigFileApplicationListener.java b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/BootstrapConfigFileApplicationListener.java index 9c412dfb..de75d089 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/BootstrapConfigFileApplicationListener.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/BootstrapConfigFileApplicationListener.java @@ -376,14 +376,15 @@ public class BootstrapConfigFileApplicationListener private String[] getDefaultProfiles(Binder binder) { return binder.bind(AbstractEnvironment.DEFAULT_PROFILES_PROPERTY_NAME, STRING_ARRAY) - .orElseGet(this.environment::getDefaultProfiles); + .orElseGet(this.environment::getDefaultProfiles); } private List getOtherActiveProfiles(Set activatedViaProperty, Set includedViaProperty) { - return Arrays.stream(this.environment.getActiveProfiles()).map(Profile::new).filter( - (profile) -> !activatedViaProperty.contains(profile) && !includedViaProperty.contains(profile)) - .collect(Collectors.toList()); + return Arrays.stream(this.environment.getActiveProfiles()) + .map(Profile::new) + .filter((profile) -> !activatedViaProperty.contains(profile) && !includedViaProperty.contains(profile)) + .collect(Collectors.toList()); } void addActiveProfiles(Set profiles) { @@ -474,7 +475,7 @@ public class BootstrapConfigFileApplicationListener private boolean canLoadFileExtension(PropertySourceLoader loader, String name) { return Arrays.stream(loader.getFileExtensions()) - .anyMatch((fileExtension) -> StringUtils.endsWithIgnoreCase(name, fileExtension)); + .anyMatch((fileExtension) -> StringUtils.endsWithIgnoreCase(name, fileExtension)); } private void loadForFileExtension(PropertySourceLoader loader, String prefix, String fileExtension, @@ -606,9 +607,12 @@ public class BootstrapConfigFileApplicationListener if (files != null) { String fileName = locationReference.substring(locationReference.lastIndexOf("/") + 1); Arrays.sort(files, FILE_COMPARATOR); - return Arrays.stream(files).map((file) -> file.listFiles((dir, name) -> name.equals(fileName))) - .filter(Objects::nonNull).flatMap((Function>) Arrays::stream) - .map(FileSystemResource::new).toArray(Resource[]::new); + return Arrays.stream(files) + .map((file) -> file.listFiles((dir, name) -> name.equals(fileName))) + .filter(Objects::nonNull) + .flatMap((Function>) Arrays::stream) + .map(FileSystemResource::new) + .toArray(Resource[]::new); } return EMPTY_RESOURCES; } @@ -793,8 +797,10 @@ public class BootstrapConfigFileApplicationListener activeProfiles.addAll(bindStringList(binder, "spring.profiles.active")); } } - this.processedProfiles.stream().filter(this::isDefaultProfile).map(Profile::getName) - .forEach(activeProfiles::add); + this.processedProfiles.stream() + .filter(this::isDefaultProfile) + .map(Profile::getName) + .forEach(activeProfiles::add); this.environment.setActiveProfiles(activeProfiles.toArray(new String[0])); } diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/BootstrapImportSelector.java b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/BootstrapImportSelector.java index 62994c62..054693ff 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/BootstrapImportSelector.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/BootstrapImportSelector.java @@ -64,7 +64,7 @@ public class BootstrapImportSelector implements EnvironmentAware, DeferredImport List names = new ArrayList<>( SpringFactoriesLoader.loadFactoryNames(BootstrapConfiguration.class, classLoader)); names.addAll(Arrays.asList(StringUtils - .commaDelimitedListToStringArray(this.environment.getProperty("spring.cloud.bootstrap.sources", "")))); + .commaDelimitedListToStringArray(this.environment.getProperty("spring.cloud.bootstrap.sources", "")))); List elements = new ArrayList<>(); for (String name : names) { diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/TextEncryptorConfigBootstrapper.java b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/TextEncryptorConfigBootstrapper.java index 0161eb1e..7f28eadf 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/TextEncryptorConfigBootstrapper.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/TextEncryptorConfigBootstrapper.java @@ -38,7 +38,7 @@ public class TextEncryptorConfigBootstrapper implements BootstrapRegistryInitial * RsaSecretEncryptor present. */ public static final boolean RSA_IS_PRESENT = ClassUtils - .isPresent("org.springframework.security.rsa.crypto.RsaSecretEncryptor", null); + .isPresent("org.springframework.security.rsa.crypto.RsaSecretEncryptor", null); @Override public void initialize(BootstrapRegistry registry) { @@ -46,11 +46,15 @@ public class TextEncryptorConfigBootstrapper implements BootstrapRegistryInitial return; } - registry.registerIfAbsent(KeyProperties.class, context -> context.get(Binder.class) - .bind(KeyProperties.PREFIX, KeyProperties.class).orElseGet(KeyProperties::new)); + registry.registerIfAbsent(KeyProperties.class, + context -> context.get(Binder.class) + .bind(KeyProperties.PREFIX, KeyProperties.class) + .orElseGet(KeyProperties::new)); if (RSA_IS_PRESENT) { - registry.registerIfAbsent(RsaProperties.class, context -> context.get(Binder.class) - .bind(RsaProperties.PREFIX, RsaProperties.class).orElseGet(RsaProperties::new)); + registry.registerIfAbsent(RsaProperties.class, + context -> context.get(Binder.class) + .bind(RsaProperties.PREFIX, RsaProperties.class) + .orElseGet(RsaProperties::new)); } TextEncryptorUtils.register(registry); diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/config/PropertySourceBootstrapConfiguration.java b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/config/PropertySourceBootstrapConfiguration.java index e2d44aa8..461fe14f 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/config/PropertySourceBootstrapConfiguration.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/config/PropertySourceBootstrapConfiguration.java @@ -106,7 +106,8 @@ public class PropertySourceBootstrapConfiguration implements ApplicationListener @Override public void initialize(ConfigurableApplicationContext applicationContext) { if (!bootstrapProperties.isInitializeOnContextRefresh() || !applicationContext.getEnvironment() - .getPropertySources().contains(BootstrapApplicationListener.BOOTSTRAP_PROPERTY_SOURCE_NAME)) { + .getPropertySources() + .contains(BootstrapApplicationListener.BOOTSTRAP_PROPERTY_SOURCE_NAME)) { doInitialize(applicationContext); } } @@ -151,8 +152,9 @@ public class PropertySourceBootstrapConfiguration implements ApplicationListener } private void reinitializeLoggingSystem(ConfigurableEnvironment environment) { - Map props = Binder.get(environment).bind("logging", Bindable.mapOf(String.class, Object.class)) - .orElseGet(Collections::emptyMap); + Map props = Binder.get(environment) + .bind("logging", Bindable.mapOf(String.class, Object.class)) + .orElseGet(Collections::emptyMap); if (!props.isEmpty()) { String logConfig = environment.resolvePlaceholders("${logging.config:}"); LogFile logFile = LogFile.get(environment); @@ -240,7 +242,7 @@ public class PropertySourceBootstrapConfiguration implements ApplicationListener private void handleProfiles(ConfigurableEnvironment environment) { if (bootstrapProperties.isInitializeOnContextRefresh() && !environment.getPropertySources() - .contains(BootstrapApplicationListener.BOOTSTRAP_PROPERTY_SOURCE_NAME)) { + .contains(BootstrapApplicationListener.BOOTSTRAP_PROPERTY_SOURCE_NAME)) { // In the case that spring.cloud.config.initialize-on-context-refresh is true // this method will // be called during the bootstrap phase and the main application startup. We @@ -268,7 +270,7 @@ public class PropertySourceBootstrapConfiguration implements ApplicationListener activeProfiles.add(0, profile); } List activeProfilesFromEnvironment = Arrays.stream(environment.getActiveProfiles()) - .collect(Collectors.toList()); + .collect(Collectors.toList()); if (!activeProfiles.containsAll(activeProfilesFromEnvironment)) { activeProfiles.addAll(activeProfilesFromEnvironment); @@ -296,7 +298,7 @@ public class PropertySourceBootstrapConfiguration implements ApplicationListener String property, ConfigurableEnvironment environment) { if (propertySource instanceof CompositePropertySource) { for (PropertySource nestedPropertySource : ((CompositePropertySource) propertySource) - .getPropertySources()) { + .getPropertySources()) { addProfilesTo(profiles, nestedPropertySource, property, environment); } } @@ -331,8 +333,9 @@ public class PropertySourceBootstrapConfiguration implements ApplicationListener public void onApplicationEvent(ContextRefreshedEvent event) { if (bootstrapProperties.isInitializeOnContextRefresh() && event.getApplicationContext() instanceof ConfigurableApplicationContext) { - if (((ConfigurableApplicationContext) event.getApplicationContext()).getEnvironment().getPropertySources() - .contains(BootstrapApplicationListener.BOOTSTRAP_PROPERTY_SOURCE_NAME)) { + if (((ConfigurableApplicationContext) event.getApplicationContext()).getEnvironment() + .getPropertySources() + .contains(BootstrapApplicationListener.BOOTSTRAP_PROPERTY_SOURCE_NAME)) { doInitialize((ConfigurableApplicationContext) event.getApplicationContext()); } } diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/EncryptionRuntimeHints.java b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/EncryptionRuntimeHints.java index ff9c99bd..3745e443 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/EncryptionRuntimeHints.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/EncryptionRuntimeHints.java @@ -29,9 +29,9 @@ class EncryptionRuntimeHints implements RuntimeHintsRegistrar { @Override public void registerHints(RuntimeHints hints, ClassLoader classLoader) { - hints.reflection().registerTypeIfPresent(classLoader, - "org.springframework.security.rsa.crypto.RsaSecretEncryptor", - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS); + hints.reflection() + .registerTypeIfPresent(classLoader, "org.springframework.security.rsa.crypto.RsaSecretEncryptor", + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS); } } diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/EnvironmentDecryptApplicationInitializer.java b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/EnvironmentDecryptApplicationInitializer.java index 10251059..6f02c2e0 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/EnvironmentDecryptApplicationInitializer.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/EnvironmentDecryptApplicationInitializer.java @@ -81,7 +81,7 @@ public class EnvironmentDecryptApplicationInitializer extends AbstractEnvironmen if (!propertySources.contains(DECRYPTED_BOOTSTRAP_PROPERTY_SOURCE_NAME)) { // No reason to decrypt bootstrap twice PropertySource bootstrap = propertySources - .get(BootstrapApplicationListener.BOOTSTRAP_PROPERTY_SOURCE_NAME); + .get(BootstrapApplicationListener.BOOTSTRAP_PROPERTY_SOURCE_NAME); if (bootstrap != null) { Map map = decrypt(bootstrap); if (!map.isEmpty()) { @@ -139,7 +139,7 @@ public class EnvironmentDecryptApplicationInitializer extends AbstractEnvironmen while (parent != null) { if (parent.getEnvironment() instanceof ConfigurableEnvironment) { ((ConfigurableEnvironment) parent.getEnvironment()).getPropertySources() - .remove(DECRYPTED_PROPERTY_SOURCE_NAME); + .remove(DECRYPTED_PROPERTY_SOURCE_NAME); } parent = parent.getParent(); } diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/TextEncryptorUtils.java b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/TextEncryptorUtils.java index 71ace819..bd46baf7 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/TextEncryptorUtils.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/TextEncryptorUtils.java @@ -55,12 +55,12 @@ public abstract class TextEncryptorUtils { static TextEncryptor getTextEncryptor(AbstractEnvironmentDecrypt decryptor, ConfigurableEnvironment environment) { Binder binder = Binder.get(environment); KeyProperties keyProperties = binder.bind(KeyProperties.PREFIX, KeyProperties.class) - .orElseGet(KeyProperties::new); + .orElseGet(KeyProperties::new); if (TextEncryptorUtils.keysConfigured(keyProperties)) { decryptor.setFailOnError(keyProperties.isFailOnError()); if (ClassUtils.isPresent("org.springframework.security.rsa.crypto.RsaSecretEncryptor", null)) { RsaProperties rsaProperties = binder.bind(RsaProperties.PREFIX, RsaProperties.class) - .orElseGet(RsaProperties::new); + .orElseGet(RsaProperties::new); return TextEncryptorUtils.createTextEncryptor(keyProperties, rsaProperties); } return new EncryptorFactory(keyProperties.getSalt()).create(keyProperties.getKey()); @@ -121,7 +121,8 @@ public abstract class TextEncryptorUtils { if (keyStore.getLocation().exists()) { return new RsaSecretEncryptor( new KeyStoreKeyFactory(keyStore.getLocation(), keyStore.getPassword().toCharArray(), - keyStore.getType()).getKeyPair(keyStore.getAlias(), keyStore.getSecret().toCharArray()), + keyStore.getType()) + .getKeyPair(keyStore.getAlias(), keyStore.getSecret().toCharArray()), rsaProperties.getAlgorithm(), rsaProperties.getSalt(), rsaProperties.isStrong()); } diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/context/named/NamedContextFactory.java b/spring-cloud-context/src/main/java/org/springframework/cloud/context/named/NamedContextFactory.java index ed0176c1..99e3c642 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/context/named/NamedContextFactory.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/context/named/NamedContextFactory.java @@ -180,8 +180,10 @@ public abstract class NamedContextFactory getNeverRefreshable() { String neverRefresh = this.applicationContext.getEnvironment() - .getProperty("spring.cloud.refresh.never-refreshable", "com.zaxxer.hikari.HikariDataSource"); + .getProperty("spring.cloud.refresh.never-refreshable", "com.zaxxer.hikari.HikariDataSource"); return StringUtils.commaDelimitedListToSet(neverRefresh); } diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/context/refresh/ConfigDataContextRefresher.java b/spring-cloud-context/src/main/java/org/springframework/cloud/context/refresh/ConfigDataContextRefresher.java index 08fc45ce..4a5d813e 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/context/refresh/ConfigDataContextRefresher.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/context/refresh/ConfigDataContextRefresher.java @@ -71,7 +71,7 @@ public class ConfigDataContextRefresher extends ContextRefresher } StandardEnvironment environment = copyEnvironment(getContext().getEnvironment()); ConfigurableBootstrapContext bootstrapContext = getContext().getBeanProvider(ConfigurableBootstrapContext.class) - .getIfAvailable(DefaultBootstrapContext::new); + .getIfAvailable(DefaultBootstrapContext::new); // run thru all EnvironmentPostProcessor instances. This lets things like vcap and // decrypt happen after refresh. The hard coded call to diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/context/refresh/LegacyContextRefresher.java b/spring-cloud-context/src/main/java/org/springframework/cloud/context/refresh/LegacyContextRefresher.java index 7f20daf2..5a30aadf 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/context/refresh/LegacyContextRefresher.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/context/refresh/LegacyContextRefresher.java @@ -70,11 +70,13 @@ public class LegacyContextRefresher extends ContextRefresher { environment.getPropertySources().addFirst(new MapPropertySource(REFRESH_ARGS_PROPERTY_SOURCE, map)); SpringApplicationBuilder builder = new SpringApplicationBuilder(Empty.class).bannerMode(Banner.Mode.OFF) - .web(WebApplicationType.NONE).environment(environment); + .web(WebApplicationType.NONE) + .environment(environment); // Just the listeners that affect the environment (e.g. excluding logging // listener because it has side effects) - builder.application().setListeners( - Arrays.asList(new BootstrapApplicationListener(), new BootstrapConfigFileApplicationListener())); + builder.application() + .setListeners(Arrays.asList(new BootstrapApplicationListener(), + new BootstrapConfigFileApplicationListener())); capture = builder.run(); if (environment.getPropertySources().contains(REFRESH_ARGS_PROPERTY_SOURCE)) { environment.getPropertySources().remove(REFRESH_ARGS_PROPERTY_SOURCE); diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/context/restart/RestartEndpoint.java b/spring-cloud-context/src/main/java/org/springframework/cloud/context/restart/RestartEndpoint.java index bbd841b6..b318c241 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/context/restart/RestartEndpoint.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/context/restart/RestartEndpoint.java @@ -92,8 +92,9 @@ public class RestartEndpoint implements ApplicationListener getSubProperties(Environment environment, String keyPrefix) { - return Binder.get(environment).bind(keyPrefix, Bindable.mapOf(String.class, String.class)) - .orElseGet(Collections::emptyMap); + return Binder.get(environment) + .bind(keyPrefix, Bindable.mapOf(String.class, String.class)) + .orElseGet(Collections::emptyMap); } } diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/logging/LoggingRebinder.java b/spring-cloud-context/src/main/java/org/springframework/cloud/logging/LoggingRebinder.java index 7a32686b..965a1e3c 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/logging/LoggingRebinder.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/logging/LoggingRebinder.java @@ -64,8 +64,9 @@ public class LoggingRebinder implements ApplicationListener levels = Binder.get(environment).bind("logging.level", STRING_STRING_MAP) - .orElseGet(Collections::emptyMap); + Map levels = Binder.get(environment) + .bind("logging.level", STRING_STRING_MAP) + .orElseGet(Collections::emptyMap); for (Entry entry : levels.entrySet()) { setLogLevel(system, environment, entry.getKey(), entry.getValue()); } diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/RefreshAutoConfigurationClassPathTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/RefreshAutoConfigurationClassPathTests.java index 86e16a76..18271eb7 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/RefreshAutoConfigurationClassPathTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/RefreshAutoConfigurationClassPathTests.java @@ -42,7 +42,7 @@ public class RefreshAutoConfigurationClassPathTests { public void refreshEventListenerCreated() { try (ConfigurableApplicationContext context = getApplicationContext(Config.class)) { then(context.getBeansOfType(RefreshEventListener.class)).as("RefreshEventListeners not created") - .isNotEmpty(); + .isNotEmpty(); then(context.containsBean("refreshEndpoint")).as("refreshEndpoint created").isFalse(); } } diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/RefreshAutoConfigurationMoreClassPathTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/RefreshAutoConfigurationMoreClassPathTests.java index 664d12f5..297dde85 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/RefreshAutoConfigurationMoreClassPathTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/RefreshAutoConfigurationMoreClassPathTests.java @@ -46,9 +46,9 @@ public class RefreshAutoConfigurationMoreClassPathTests { try (ConfigurableApplicationContext context = getApplicationContext(Config.class, "debug=true")) { String output = outputCapture.toString(); then(output) - .doesNotContain("Failed to introspect annotations on " - + "[class org.springframework.cloud.autoconfigure.RefreshEndpointAutoConfiguration") - .doesNotContain("TypeNotPresentExceptionProxy"); + .doesNotContain("Failed to introspect annotations on " + + "[class org.springframework.cloud.autoconfigure.RefreshEndpointAutoConfiguration") + .doesNotContain("TypeNotPresentExceptionProxy"); } } diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/RefreshAutoConfigurationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/RefreshAutoConfigurationTests.java index 91b72018..03d30c1f 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/RefreshAutoConfigurationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/autoconfigure/RefreshAutoConfigurationTests.java @@ -47,8 +47,10 @@ class RefreshAutoConfigurationTests { private static ConfigurableApplicationContext getApplicationContext(WebApplicationType type, Class configuration, String... properties) { - return new SpringApplicationBuilder(configuration).web(type).properties(properties).properties("server.port=0") - .run(); + return new SpringApplicationBuilder(configuration).web(type) + .properties(properties) + .properties("server.port=0") + .run(); } @Test @@ -100,14 +102,14 @@ class RefreshAutoConfigurationTests { @Test void refreshScopeLifecylePresentByDefault() { new ApplicationContextRunner().withConfiguration(AutoConfigurations.of(RefreshAutoConfiguration.class)) - .run(context -> assertThat(context).hasBean("refreshScopeLifecycle")); + .run(context -> assertThat(context).hasBean("refreshScopeLifecycle")); } @Test void refreshScopeLifecyleDisabledWithProp() { new ApplicationContextRunner().withConfiguration(AutoConfigurations.of(RefreshAutoConfiguration.class)) - .withPropertyValues("spring.cloud.refresh.on-restart.enabled=false") - .run(context -> assertThat(context).doesNotHaveBean("refreshScopeLifecycle")); + .withPropertyValues("spring.cloud.refresh.on-restart.enabled=false") + .run(context -> assertThat(context).doesNotHaveBean("refreshScopeLifecycle")); } @Configuration(proxyBeanMethods = false) diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/BootstrapOrderingAutoConfigurationIntegrationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/BootstrapOrderingAutoConfigurationIntegrationTests.java index 693314ac..25b5843a 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/BootstrapOrderingAutoConfigurationIntegrationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/BootstrapOrderingAutoConfigurationIntegrationTests.java @@ -39,7 +39,7 @@ public class BootstrapOrderingAutoConfigurationIntegrationTests { @Test public void bootstrapPropertiesExist() { then(this.environment.getPropertySources().contains("applicationConfig: [classpath:/bootstrap.properties]")) - .isTrue(); + .isTrue(); } @Test diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/BootstrapOrderingCustomPropertySourceIntegrationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/BootstrapOrderingCustomPropertySourceIntegrationTests.java index dc20fdeb..aff71965 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/BootstrapOrderingCustomPropertySourceIntegrationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/BootstrapOrderingCustomPropertySourceIntegrationTests.java @@ -48,7 +48,7 @@ public class BootstrapOrderingCustomPropertySourceIntegrationTests { @Test public void bootstrapPropertiesExist() { then(this.environment.getPropertySources().contains("applicationConfig: [classpath:/custom.properties]")) - .isTrue(); + .isTrue(); } @Test diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/BootstrapSourcesOrderingTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/BootstrapSourcesOrderingTests.java index 86ce73b1..4be7bc9d 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/BootstrapSourcesOrderingTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/BootstrapSourcesOrderingTests.java @@ -33,7 +33,7 @@ public class BootstrapSourcesOrderingTests { public void sourcesAreOrderedCorrectly() { Class firstConstructedClass = firstToBeCreated.get(); then(firstConstructedClass).as("bootstrap sources not ordered correctly") - .isEqualTo(TestHigherPriorityBootstrapConfiguration.class); + .isEqualTo(TestHigherPriorityBootstrapConfiguration.class); } @EnableAutoConfiguration diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/TestBootstrapConfiguration.java b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/TestBootstrapConfiguration.java index 3be1123d..d372e63e 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/TestBootstrapConfiguration.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/TestBootstrapConfiguration.java @@ -62,8 +62,9 @@ public class TestBootstrapConfiguration { public ApplicationContextInitializer customInitializer() { return applicationContext -> { ConfigurableEnvironment environment = applicationContext.getEnvironment(); - environment.getPropertySources().addLast(new MapPropertySource("customProperties", Collections - .singletonMap("custom.foo", environment.resolvePlaceholders("${spring.application.name:bar}")))); + environment.getPropertySources() + .addLast(new MapPropertySource("customProperties", Collections.singletonMap("custom.foo", + environment.resolvePlaceholders("${spring.application.name:bar}")))); }; } diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/config/BootstrapConfigurationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/config/BootstrapConfigurationTests.java index 766f800d..a9ac9132 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/config/BootstrapConfigurationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/config/BootstrapConfigurationTests.java @@ -90,13 +90,15 @@ public class BootstrapConfigurationTests { } private void pickupOnlyExternalBootstrapProperties(String... properties) { - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).sources(BareConfiguration.class) - .properties(properties).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .sources(BareConfiguration.class) + .properties(properties) + .run(); then(this.context.getEnvironment().getProperty("info.name")).isEqualTo("externalPropertiesInfoName"); then(this.context.getEnvironment().getProperty("info.desc")).isNull(); - then(this.context.getEnvironment().getPropertySources() - .contains(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap")) - .isTrue(); + then(this.context.getEnvironment() + .getPropertySources() + .contains(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap")).isTrue(); } @Test @@ -116,13 +118,15 @@ public class BootstrapConfigurationTests { } private void pickupAdditionalExternalBootstrapProperties(String... properties) { - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).sources(BareConfiguration.class) - .properties(properties).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .sources(BareConfiguration.class) + .properties(properties) + .run(); then(this.context.getEnvironment().getProperty("info.name")).isEqualTo("externalPropertiesInfoName"); then(this.context.getEnvironment().getProperty("info.desc")).isEqualTo("defaultPropertiesInfoDesc"); - then(this.context.getEnvironment().getPropertySources() - .contains(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap")) - .isTrue(); + then(this.context.getEnvironment() + .getPropertySources() + .contains(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap")).isTrue(); } @Test @@ -137,14 +141,17 @@ public class BootstrapConfigurationTests { } private void bootstrapPropertiesAvailableInInitializer(String... properties) { - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .sources(BareConfiguration.class).initializers(applicationContext -> { - // This property is defined in bootstrap.properties - then(applicationContext.getEnvironment().getProperty("info.name")).isEqualTo("child"); - }).run(); - then(this.context.getEnvironment().getPropertySources() - .contains(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap")) - .isTrue(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .sources(BareConfiguration.class) + .initializers(applicationContext -> { + // This property is defined in bootstrap.properties + then(applicationContext.getEnvironment().getProperty("info.name")).isEqualTo("child"); + }) + .run(); + then(this.context.getEnvironment() + .getPropertySources() + .contains(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap")).isTrue(); } /** @@ -170,12 +177,14 @@ public class BootstrapConfigurationTests { private void picksUpAdditionalPropertySource(String... properties) { PropertySourceConfiguration.MAP.put("bootstrap.foo", "bar"); - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .sources(BareConfiguration.class).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .sources(BareConfiguration.class) + .run(); then(this.context.getEnvironment().getProperty("bootstrap.foo")).isEqualTo("bar"); - then(this.context.getEnvironment().getPropertySources() - .contains(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap")) - .isTrue(); + then(this.context.getEnvironment() + .getPropertySources() + .contains(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap")).isTrue(); } @Test @@ -192,8 +201,10 @@ public class BootstrapConfigurationTests { private void failsOnPropertySource(String... properties) { System.setProperty("expected.fail", "true"); Throwable throwable = Assertions.assertThrows(RuntimeException.class, () -> { - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .sources(BareConfiguration.class).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .sources(BareConfiguration.class) + .run(); }); then(throwable.getMessage().equals("Planned")); } @@ -214,8 +225,10 @@ public class BootstrapConfigurationTests { private void overrideSystemPropertySourceByDefault(String... properties) { PropertySourceConfiguration.MAP.put("bootstrap.foo", "bar"); System.setProperty("bootstrap.foo", "system"); - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .sources(BareConfiguration.class).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .sources(BareConfiguration.class) + .run(); then(this.context.getEnvironment().getProperty("bootstrap.foo")).isEqualTo("bar"); } @@ -234,8 +247,10 @@ public class BootstrapConfigurationTests { PropertySourceConfiguration.MAP.put("bootstrap.foo", "bar"); PropertySourceConfiguration.MAP.put("spring.cloud.config.overrideSystemProperties", "false"); System.setProperty("bootstrap.foo", "system"); - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .sources(BareConfiguration.class).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .sources(BareConfiguration.class) + .run(); then(this.context.getEnvironment().getProperty("bootstrap.foo")).isEqualTo("system"); } @@ -258,8 +273,10 @@ public class BootstrapConfigurationTests { // their own remote property source. PropertySourceConfiguration.MAP.put("spring.cloud.config.allowOverride", "false"); System.setProperty("bootstrap.foo", "system"); - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .sources(BareConfiguration.class).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .sources(BareConfiguration.class) + .run(); then(this.context.getEnvironment().getProperty("bootstrap.foo")).isEqualTo("bar"); } @@ -279,8 +296,10 @@ public class BootstrapConfigurationTests { PropertySourceConfiguration.MAP.put("spring.cloud.config.overrideSystemProperties", "false"); PropertySourceConfiguration.MAP.put("spring.cloud.config.allowOverride", "true"); System.setProperty("bootstrap.foo", "system"); - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .sources(BareConfiguration.class).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .sources(BareConfiguration.class) + .run(); then(this.context.getEnvironment().getProperty("bootstrap.foo")).isEqualTo("system"); } @@ -300,10 +319,13 @@ public class BootstrapConfigurationTests { PropertySourceConfiguration.MAP.put("spring.cloud.config.overrideNone", "true"); PropertySourceConfiguration.MAP.put("spring.cloud.config.allowOverride", "true"); ConfigurableEnvironment environment = new StandardEnvironment(); - environment.getPropertySources().addLast( - new MapPropertySource("last", Collections.singletonMap("bootstrap.foo", "splat"))); - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .environment(environment).sources(BareConfiguration.class).run(); + environment.getPropertySources() + .addLast(new MapPropertySource("last", Collections.singletonMap("bootstrap.foo", "splat"))); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .environment(environment) + .sources(BareConfiguration.class) + .run(); then(this.context.getEnvironment().getProperty("bootstrap.foo")).isEqualTo("splat"); } @@ -322,15 +344,17 @@ public class BootstrapConfigurationTests { private void applicationNameInBootstrapAndMain(String... properties) { System.setProperty("expected.name", "main"); - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .sources(BareConfiguration.class).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .sources(BareConfiguration.class) + .run(); then(this.context.getEnvironment().getProperty("spring.application.name")).isEqualTo("app"); // The parent is called "main" because spring.application.name is specified in // other.properties (the bootstrap properties) then(this.context.getParent().getEnvironment().getProperty("spring.application.name")).isEqualTo("main"); // The bootstrap context has the same "bootstrap" property source then(((ConfigurableEnvironment) this.context.getParent().getEnvironment()).getPropertySources() - .get("bootstrap")).isEqualTo(this.context.getEnvironment().getPropertySources().get("bootstrap")); + .get("bootstrap")).isEqualTo(this.context.getEnvironment().getPropertySources().get("bootstrap")); then(this.context.getId()).isEqualTo("main-1"); } @@ -349,8 +373,10 @@ public class BootstrapConfigurationTests { private void applicationNameNotInBootstrap(String... properties) { System.setProperty("expected.name", "main"); - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .sources(BareConfiguration.class).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .sources(BareConfiguration.class) + .run(); then(this.context.getEnvironment().getProperty("spring.application.name")).isEqualTo("main"); // The parent has no name because spring.application.name is not // defined in the bootstrap properties @@ -370,8 +396,10 @@ public class BootstrapConfigurationTests { private void applicationNameOnlyInBootstrap(String... properties) { System.setProperty("expected.name", "main"); - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .sources(BareConfiguration.class).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .sources(BareConfiguration.class) + .run(); // The main context is called "main" because spring.application.name is specified // in other.properties (and not in the main config file) then(this.context.getEnvironment().getProperty("spring.application.name")).isEqualTo("main"); @@ -394,14 +422,17 @@ public class BootstrapConfigurationTests { private void environmentEnrichedOnceWhenSharedWithChildContext(String... properties) { PropertySourceConfiguration.MAP.put("bootstrap.foo", "bar"); - this.context = new SpringApplicationBuilder().sources(BareConfiguration.class).properties(properties) - .environment(new StandardEnvironment()).child(BareConfiguration.class).web(WebApplicationType.NONE) - .run(); + this.context = new SpringApplicationBuilder().sources(BareConfiguration.class) + .properties(properties) + .environment(new StandardEnvironment()) + .child(BareConfiguration.class) + .web(WebApplicationType.NONE) + .run(); then(this.context.getEnvironment().getProperty("bootstrap.foo")).isEqualTo("bar"); then(this.context.getParent().getEnvironment()).isEqualTo(this.context.getEnvironment()); MutablePropertySources sources = this.context.getEnvironment().getPropertySources(); PropertySource bootstrap = sources - .get(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap"); + .get(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap"); then(bootstrap).isNotNull(); then(sources.precedenceOf(bootstrap)).isEqualTo(0); } @@ -420,8 +451,11 @@ public class BootstrapConfigurationTests { private void onlyOneBootstrapContext(String... properties) { TestHigherPriorityBootstrapConfiguration.count.set(0); PropertySourceConfiguration.MAP.put("bootstrap.foo", "bar"); - this.context = new SpringApplicationBuilder().sources(BareConfiguration.class).properties(properties) - .child(BareConfiguration.class).web(WebApplicationType.NONE).run(); + this.context = new SpringApplicationBuilder().sources(BareConfiguration.class) + .properties(properties) + .child(BareConfiguration.class) + .web(WebApplicationType.NONE) + .run(); then(TestHigherPriorityBootstrapConfiguration.count.get()).isEqualTo(1); then(this.context.getParent()).isNotNull(); then(this.context.getParent().getParent().getId()).isEqualTo("bootstrap"); @@ -441,8 +475,11 @@ public class BootstrapConfigurationTests { } private void listOverride(String... properties) { - this.context = new SpringApplicationBuilder().sources(BareConfiguration.class).properties(properties) - .child(BareConfiguration.class).web(WebApplicationType.NONE).run(); + this.context = new SpringApplicationBuilder().sources(BareConfiguration.class) + .properties(properties) + .child(BareConfiguration.class) + .web(WebApplicationType.NONE) + .run(); ListProperties listProperties = new ListProperties(); Binder.get(this.context.getEnvironment()).bind("list", Bindable.ofInstance(listProperties)); then(listProperties.getFoo().size()).isEqualTo(1); @@ -464,11 +501,15 @@ public class BootstrapConfigurationTests { TestHigherPriorityBootstrapConfiguration.count.set(0); PropertySourceConfiguration.MAP.put("bootstrap.foo", "bar"); SpringApplicationBuilder builder = new SpringApplicationBuilder().properties(properties) - .sources(BareConfiguration.class); - this.sibling = builder.child(BareConfiguration.class).properties("spring.application.name=sibling") - .web(WebApplicationType.NONE).run(); - this.context = builder.child(BareConfiguration.class).properties("spring.application.name=context") - .web(WebApplicationType.NONE).run(); + .sources(BareConfiguration.class); + this.sibling = builder.child(BareConfiguration.class) + .properties("spring.application.name=sibling") + .web(WebApplicationType.NONE) + .run(); + this.context = builder.child(BareConfiguration.class) + .properties("spring.application.name=context") + .web(WebApplicationType.NONE) + .run(); then(TestHigherPriorityBootstrapConfiguration.count.get()).isEqualTo(1); then(this.context.getParent()).isNotNull(); then(this.context.getParent().getParent().getId()).isEqualTo("bootstrap"); @@ -495,16 +536,18 @@ public class BootstrapConfigurationTests { private void environmentEnrichedInParentContext(String... properties) { PropertySourceConfiguration.MAP.put("bootstrap.foo", "bar"); - this.context = new SpringApplicationBuilder().sources(BareConfiguration.class).properties(properties) - .child(BareConfiguration.class).web(WebApplicationType.NONE).run(); + this.context = new SpringApplicationBuilder().sources(BareConfiguration.class) + .properties(properties) + .child(BareConfiguration.class) + .web(WebApplicationType.NONE) + .run(); then(this.context.getEnvironment().getProperty("bootstrap.foo")).isEqualTo("bar"); then(this.context.getParent().getEnvironment()).isNotSameAs(this.context.getEnvironment()); - then(this.context.getEnvironment().getPropertySources() - .contains(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap")) - .isTrue(); + then(this.context.getEnvironment() + .getPropertySources() + .contains(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap")).isTrue(); then(((ConfigurableEnvironment) this.context.getParent().getEnvironment()).getPropertySources() - .contains(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap")) - .isTrue(); + .contains(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap")).isTrue(); } @Test @@ -513,10 +556,15 @@ public class BootstrapConfigurationTests { PropertySourceConfiguration.MAP.put("bootstrap.foo", "bar"); // Profiles are always merged with the child ConfigurableApplicationContext parent = new SpringApplicationBuilder().sources(BareConfiguration.class) - .profiles("parent").web(WebApplicationType.NONE).run(); + .profiles("parent") + .web(WebApplicationType.NONE) + .run(); this.context = new SpringApplicationBuilder(BareConfiguration.class) - .properties("spring.config.use-legacy-processing=true").profiles("child").parent(parent) - .web(WebApplicationType.NONE).run(); + .properties("spring.config.use-legacy-processing=true") + .profiles("child") + .parent(parent) + .web(WebApplicationType.NONE) + .run(); then(this.context.getParent().getEnvironment()).isNotSameAs(this.context.getEnvironment()); // The ApplicationContext merges profiles (profiles and property sources), see // AbstractEnvironment.merge() @@ -525,8 +573,7 @@ public class BootstrapConfigurationTests { then(this.context.getParent().getEnvironment().acceptsProfiles("child")).isFalse(); then(this.context.getParent().getEnvironment().acceptsProfiles("parent")).isTrue(); then(((ConfigurableEnvironment) this.context.getParent().getEnvironment()).getPropertySources() - .contains(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap")) - .isTrue(); + .contains(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-testBootstrap")).isTrue(); then(this.context.getEnvironment().getProperty("bootstrap.foo")).isEqualTo("bar"); // The "bootstrap" property source is not shared now, but it has the same // properties in it because they are pulled from the PropertySourceConfiguration @@ -550,8 +597,11 @@ public class BootstrapConfigurationTests { private void includeProfileFromBootstrapPropertySource(String... properties) { PropertySourceConfiguration.MAP.put("spring.profiles.include", "bar,baz"); - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .profiles("foo").sources(BareConfiguration.class).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .profiles("foo") + .sources(BareConfiguration.class) + .run(); then(this.context.getEnvironment().acceptsProfiles("baz")).isTrue(); then(this.context.getEnvironment().acceptsProfiles("bar")).isTrue(); } @@ -572,8 +622,11 @@ public class BootstrapConfigurationTests { private void activeProfileFromBootstrapPropertySource(String... properties) { PropertySourceConfiguration.MAP.put("spring.profiles.active", "bar,baz"); - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .profiles("foo").sources(BareConfiguration.class).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .profiles("foo") + .sources(BareConfiguration.class) + .run(); then(this.context.getEnvironment().acceptsProfiles("baz", "bar", "foo")).isTrue(); } @@ -592,8 +645,11 @@ public class BootstrapConfigurationTests { private void activeAndIncludeProfileFromBootstrapPropertySource(String... properties) { PropertySourceConfiguration.MAP.put("spring.profiles.active", "bar,baz"); PropertySourceConfiguration.MAP.put("spring.profiles.include", "bar,baz,hello"); - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .profiles("foo").sources(BareConfiguration.class).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .profiles("foo") + .sources(BareConfiguration.class) + .run(); then(this.context.getEnvironment().acceptsProfiles("baz", "bar", "hello", "foo")).isTrue(); then(this.context.getEnvironment().getActiveProfiles()).contains("baz", "bar", "foo", "hello"); } @@ -613,8 +669,11 @@ public class BootstrapConfigurationTests { private void activeAndIncludeProfileFromBootstrapPropertySourceWithReplacement(String... properties) { PropertySourceConfiguration.MAP.put("spring.profiles.active", "${barreplacement},baz"); PropertySourceConfiguration.MAP.put("spring.profiles.include", "${barreplacement},baz,hello"); - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .profiles("foo").sources(BareConfiguration.class).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .profiles("foo") + .sources(BareConfiguration.class) + .run(); then(this.context.getEnvironment().acceptsProfiles("baz", "bar", "hello", "foo")).isTrue(); then(this.context.getEnvironment().getActiveProfiles()).contains("baz", "bar", "foo", "hello"); } @@ -632,8 +691,10 @@ public class BootstrapConfigurationTests { } private void includeProfileFromBootstrapProperties(String... properties) { - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).sources(BareConfiguration.class) - .properties(properties).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .sources(BareConfiguration.class) + .properties(properties) + .run(); then(this.context.getEnvironment().acceptsProfiles("local")).isTrue(); then(this.context.getEnvironment().getProperty("added")).isEqualTo("Hello added!"); } @@ -651,16 +712,20 @@ public class BootstrapConfigurationTests { } private void nonEnumerablePropertySourceWorks(String... properties) { - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).sources(BareConfiguration.class) - .properties(properties).run(); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .sources(BareConfiguration.class) + .properties(properties) + .run(); then(this.context.getEnvironment().getProperty("foo")).isEqualTo("bar"); } @Test void activeAndIncludeProfileFromBootstrapPropertySource_WhenMultiplePlacesHaveActiveProfileProperties_ShouldOnlyAcceptTheTopPriority() { String[] properties = new String[] { "spring.config.use-legacy-processing=true" }; - this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE).properties(properties) - .sources(BareConfiguration.class).run("--spring.profiles.active=prod,secure"); + this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) + .properties(properties) + .sources(BareConfiguration.class) + .run("--spring.profiles.active=prod,secure"); then(this.context.getEnvironment().acceptsProfiles("prod", "secure")).isTrue(); // active profile from property sources with lower priority should not be included then(this.context.getEnvironment().acceptsProfiles("local")).isFalse(); @@ -668,9 +733,11 @@ public class BootstrapConfigurationTests { then(this.context.getEnvironment().getActiveProfiles()).doesNotContain("local"); // check if active profile value could possibly exist in other property sources // with lower priority - then(this.context.getEnvironment().getPropertySources().stream() - .map(p -> p.getProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME)).anyMatch("local"::equals)) - .isTrue(); + then(this.context.getEnvironment() + .getPropertySources() + .stream() + .map(p -> p.getProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME)) + .anyMatch("local"::equals)).isTrue(); } @Configuration(proxyBeanMethods = false) @@ -711,7 +778,7 @@ public class BootstrapConfigurationTests { public PropertySource locate(Environment environment) { if (environment instanceof ConfigurableEnvironment) { if (!((ConfigurableEnvironment) environment).getPropertySources() - .contains(BootstrapApplicationListener.BOOTSTRAP_PROPERTY_SOURCE_NAME)) { + .contains(BootstrapApplicationListener.BOOTSTRAP_PROPERTY_SOURCE_NAME)) { if (MAP.containsKey(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME)) { // This additional profile, after, should not be added when // initialize-on-context-refresh=true diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/config/BootstrapListenerHierarchyIntegrationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/config/BootstrapListenerHierarchyIntegrationTests.java index aa5a8085..fd94eb60 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/config/BootstrapListenerHierarchyIntegrationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/config/BootstrapListenerHierarchyIntegrationTests.java @@ -37,7 +37,10 @@ public class BootstrapListenerHierarchyIntegrationTests { @Test public void shouldAddInABootstrapContext() { ConfigurableApplicationContext context = new SpringApplicationBuilder() - .properties("spring.cloud.bootstrap.enabled=true").sources(BasicConfiguration.class).web(NONE).run(); + .properties("spring.cloud.bootstrap.enabled=true") + .sources(BasicConfiguration.class) + .web(NONE) + .run(); then(context.getParent()).isNotNull(); } @@ -45,8 +48,12 @@ public class BootstrapListenerHierarchyIntegrationTests { @Test public void shouldAddInOneBootstrapForABasicParentChildHierarchy() { ConfigurableApplicationContext context = new SpringApplicationBuilder() - .properties("spring.cloud.bootstrap.enabled=true").sources(RootConfiguration.class).web(NONE) - .child(BasicConfiguration.class).web(NONE).run(); + .properties("spring.cloud.bootstrap.enabled=true") + .sources(RootConfiguration.class) + .web(NONE) + .child(BasicConfiguration.class) + .web(NONE) + .run(); // Should be RootConfiguration based context ConfigurableApplicationContext parent = (ConfigurableApplicationContext) context.getParent(); @@ -64,8 +71,14 @@ public class BootstrapListenerHierarchyIntegrationTests { @Test public void shouldAddInOneBootstrapForSiblingsBasedHierarchy() { ConfigurableApplicationContext context = new SpringApplicationBuilder() - .properties("spring.cloud.bootstrap.enabled=true").sources(RootConfiguration.class).web(NONE) - .child(BasicConfiguration.class).web(NONE).sibling(BasicConfiguration.class).web(NONE).run(); + .properties("spring.cloud.bootstrap.enabled=true") + .sources(RootConfiguration.class) + .web(NONE) + .child(BasicConfiguration.class) + .web(NONE) + .sibling(BasicConfiguration.class) + .web(NONE) + .run(); // Should be RootConfiguration based context ConfigurableApplicationContext parent = (ConfigurableApplicationContext) context.getParent(); diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionBootstrapConfigurationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionBootstrapConfigurationTests.java index c078fdd0..ba1a639c 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionBootstrapConfigurationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionBootstrapConfigurationTests.java @@ -31,7 +31,9 @@ public class EncryptionBootstrapConfigurationTests { @Test public void symmetric() { ConfigurableApplicationContext context = new SpringApplicationBuilder(EncryptionBootstrapConfiguration.class) - .web(WebApplicationType.NONE).properties("encrypt.key:pie").run(); + .web(WebApplicationType.NONE) + .properties("encrypt.key:pie") + .run(); TextEncryptor encryptor = context.getBean(TextEncryptor.class); then(encryptor.decrypt(encryptor.encrypt("foo"))).isEqualTo("foo"); context.close(); @@ -40,10 +42,10 @@ public class EncryptionBootstrapConfigurationTests { @Test public void rsaKeyStore() { ConfigurableApplicationContext context = new SpringApplicationBuilder(EncryptionBootstrapConfiguration.class) - .web(WebApplicationType.NONE) - .properties("encrypt.keyStore.location:classpath:/server.jks", "encrypt.keyStore.password:letmein", - "encrypt.keyStore.alias:mytestkey", "encrypt.keyStore.secret:changeme") - .run(); + .web(WebApplicationType.NONE) + .properties("encrypt.keyStore.location:classpath:/server.jks", "encrypt.keyStore.password:letmein", + "encrypt.keyStore.alias:mytestkey", "encrypt.keyStore.secret:changeme") + .run(); TextEncryptor encryptor = context.getBean(TextEncryptor.class); then(encryptor.decrypt(encryptor.encrypt("foo"))).isEqualTo("foo"); context.close(); @@ -52,10 +54,10 @@ public class EncryptionBootstrapConfigurationTests { @Test public void rsaPkcs12KeyStore() { ConfigurableApplicationContext context = new SpringApplicationBuilder(EncryptionBootstrapConfiguration.class) - .web(WebApplicationType.NONE) - .properties("encrypt.keyStore.location:classpath:/server.p12", "encrypt.keyStore.password:letmein", - "encrypt.keyStore.alias:mytestkey", "encrypt.keyStore.type:PKCS12") - .run(); + .web(WebApplicationType.NONE) + .properties("encrypt.keyStore.location:classpath:/server.p12", "encrypt.keyStore.password:letmein", + "encrypt.keyStore.alias:mytestkey", "encrypt.keyStore.type:PKCS12") + .run(); TextEncryptor encryptor = context.getBean(TextEncryptor.class); then(encryptor.decrypt(encryptor.encrypt("foo"))).isEqualTo("foo"); context.close(); @@ -64,10 +66,10 @@ public class EncryptionBootstrapConfigurationTests { @Test public void rsaKeyStoreWithRelaxedProperties() { ConfigurableApplicationContext context = new SpringApplicationBuilder(EncryptionBootstrapConfiguration.class) - .web(WebApplicationType.NONE) - .properties("encrypt.key-store.location:classpath:/server.jks", "encrypt.key-store.password:letmein", - "encrypt.key-store.alias:mytestkey", "encrypt.key-store.secret:changeme") - .run(); + .web(WebApplicationType.NONE) + .properties("encrypt.key-store.location:classpath:/server.jks", "encrypt.key-store.password:letmein", + "encrypt.key-store.alias:mytestkey", "encrypt.key-store.secret:changeme") + .run(); TextEncryptor encryptor = context.getBean(TextEncryptor.class); then(encryptor.decrypt(encryptor.encrypt("foo"))).isEqualTo("foo"); context.close(); @@ -76,11 +78,11 @@ public class EncryptionBootstrapConfigurationTests { @Test public void rsaProperties() { ConfigurableApplicationContext context = new SpringApplicationBuilder(EncryptionBootstrapConfiguration.class) - .web(WebApplicationType.NONE) - .properties("encrypt.key-store.location:classpath:/server.jks", "encrypt.key-store.password:letmein", - "encrypt.key-store.alias:mytestkey", "encrypt.key-store.secret:changeme", - "encrypt.rsa.strong:true", "encrypt.rsa.salt:foobar") - .run(); + .web(WebApplicationType.NONE) + .properties("encrypt.key-store.location:classpath:/server.jks", "encrypt.key-store.password:letmein", + "encrypt.key-store.alias:mytestkey", "encrypt.key-store.secret:changeme", "encrypt.rsa.strong:true", + "encrypt.rsa.salt:foobar") + .run(); RsaProperties properties = context.getBean(RsaProperties.class); then(properties.getSalt()).isEqualTo("foobar"); then(properties.isStrong()).isTrue(); @@ -92,10 +94,9 @@ public class EncryptionBootstrapConfigurationTests { public void nonExistentKeystoreLocationShouldNotBeAllowed() { try { new SpringApplicationBuilder(EncryptionBootstrapConfiguration.class).web(WebApplicationType.NONE) - .properties("encrypt.key-store.location:classpath:/server.jks1", - "encrypt.key-store.password:letmein", "encrypt.key-store.alias:mytestkey", - "encrypt.key-store.secret:changeme") - .run(); + .properties("encrypt.key-store.location:classpath:/server.jks1", "encrypt.key-store.password:letmein", + "encrypt.key-store.alias:mytestkey", "encrypt.key-store.secret:changeme") + .run(); then(false).as("Should not create an application context with invalid keystore location").isTrue(); } catch (Exception e) { diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionIntegrationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionIntegrationTests.java index 2d6c9938..3b84f079 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionIntegrationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionIntegrationTests.java @@ -39,36 +39,40 @@ public class EncryptionIntegrationTests { @Test public void legacySymmetricPropertyValues() { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfiguration.class) - .web(WebApplicationType.NONE).properties("spring.cloud.bootstrap.enabled=true", "encrypt.key:pie", - "foo.password:{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") - .run(); + .web(WebApplicationType.NONE) + .properties("spring.cloud.bootstrap.enabled=true", "encrypt.key:pie", + "foo.password:{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") + .run(); then(context.getEnvironment().getProperty("foo.password")).isEqualTo("test"); } @Test public void legacySymmetricConfigurationProperties() { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfiguration.class) - .web(WebApplicationType.NONE).properties("spring.cloud.bootstrap.enabled=true", "encrypt.key:pie", - "foo.password:{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") - .run(); + .web(WebApplicationType.NONE) + .properties("spring.cloud.bootstrap.enabled=true", "encrypt.key:pie", + "foo.password:{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") + .run(); then(context.getBean(PasswordProperties.class).getPassword()).isEqualTo("test"); } @Test public void propSymmetricPropertyValues() { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfiguration.class) - .web(WebApplicationType.NONE).properties("spring.cloud.bootstrap.enabled=true", "encrypt.key:pie", - "foo.password:{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") - .run(); + .web(WebApplicationType.NONE) + .properties("spring.cloud.bootstrap.enabled=true", "encrypt.key:pie", + "foo.password:{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") + .run(); then(context.getEnvironment().getProperty("foo.password")).isEqualTo("test"); } @Test public void propSymmetricConfigurationProperties() { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfiguration.class) - .web(WebApplicationType.NONE).properties("spring.cloud.bootstrap.enabled=true", "encrypt.key:pie", - "foo.password:{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") - .run(); + .web(WebApplicationType.NONE) + .properties("spring.cloud.bootstrap.enabled=true", "encrypt.key:pie", + "foo.password:{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") + .run(); then(context.getBean(PasswordProperties.class).getPassword()).isEqualTo("test"); } @@ -76,50 +80,51 @@ public class EncryptionIntegrationTests { public void symmetricPropertyValuesFailOnError() { assertThatThrownBy(() -> { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestAutoConfiguration.class) - .web(WebApplicationType.NONE) - .properties("spring.config.use-legacy-processing=false", "encrypt.key:pie", - "foo.password:{cipher}ZZZbf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") - .run(); + .web(WebApplicationType.NONE) + .properties("spring.config.use-legacy-processing=false", "encrypt.key:pie", + "foo.password:{cipher}ZZZbf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") + .run(); }).isInstanceOf(IllegalStateException.class).hasMessageContaining("Cannot decrypt"); } @Test public void symmetricPropertyValuesFailOnErrorFalse() { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestAutoConfiguration.class) - .web(WebApplicationType.NONE) - .properties("encrypt.fail-on-error=false", "spring.config.use-legacy-processing=false", - "encrypt.key:pie", - "foo.password:{cipher}ZZZbf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") - .run(); + .web(WebApplicationType.NONE) + .properties("encrypt.fail-on-error=false", "spring.config.use-legacy-processing=false", "encrypt.key:pie", + "foo.password:{cipher}ZZZbf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") + .run(); then(context.getEnvironment().getProperty("foo.password")).isEmpty(); } @Test public void symmetricPropertyValues() { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestAutoConfiguration.class) - .web(WebApplicationType.NONE).properties("spring.config.use-legacy-processing=false", "encrypt.key:pie", - "foo.password:{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") - .run(); + .web(WebApplicationType.NONE) + .properties("spring.config.use-legacy-processing=false", "encrypt.key:pie", + "foo.password:{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") + .run(); then(context.getEnvironment().getProperty("foo.password")).isEqualTo("test"); } @Test public void decryptEnvironmentPostProcessorDisabled() { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestAutoConfiguration.class) - .web(WebApplicationType.NONE) - .properties("spring.config.use-legacy-processing=false", "encrypt.key:pie", - "spring.cloud.decrypt-environment-post-processor.enabled=false", - "foo.password:{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") - .run(); + .web(WebApplicationType.NONE) + .properties("spring.config.use-legacy-processing=false", "encrypt.key:pie", + "spring.cloud.decrypt-environment-post-processor.enabled=false", + "foo.password:{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") + .run(); then(context.getEnvironment().getProperty("foo.password")).startsWith("{cipher}bf2945"); } @Test public void symmetricConfigurationProperties() { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestAutoConfiguration.class) - .web(WebApplicationType.NONE).properties("spring.config.use-legacy-processing=false", "encrypt.key:pie", - "foo.password:{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") - .run(); + .web(WebApplicationType.NONE) + .properties("spring.config.use-legacy-processing=false", "encrypt.key:pie", + "foo.password:{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95") + .run(); then(context.getBean(PasswordProperties.class).getPassword()).isEqualTo("test"); } @@ -128,9 +133,10 @@ public class EncryptionIntegrationTests { TestConfigDataLocationResolver.config.put("foo.password", "{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95"); ConfigurableApplicationContext context = new SpringApplicationBuilder(TestAutoConfiguration.class) - .web(WebApplicationType.NONE).properties("encrypt.key:pie", TestEnvPostProcessor.EPP_ENABLED + "=true", - "spring.cloud.refresh.enabled:true") - .run(); + .web(WebApplicationType.NONE) + .properties("encrypt.key:pie", TestEnvPostProcessor.EPP_ENABLED + "=true", + "spring.cloud.refresh.enabled:true") + .run(); TextEncryptor encryptor = context.getBean(TextEncryptor.class); ContextRefresher refresher = context.getBean(ContextRefresher.class); ConfigurableEnvironment env = context.getBean(ConfigurableEnvironment.class); @@ -145,7 +151,10 @@ public class EncryptionIntegrationTests { @Test public void failsafeTextEncryptor() { ConfigurableApplicationContext context = new SpringApplicationBuilder( - EncryptionIntegrationTests.TestConfiguration.class).web(WebApplicationType.NONE).properties().run(); + EncryptionIntegrationTests.TestConfiguration.class) + .web(WebApplicationType.NONE) + .properties() + .run(); then(context.getBean(TextEncryptor.class)).isInstanceOf(TextEncryptorUtils.FailsafeTextEncryptor.class); } @@ -154,10 +163,10 @@ public class EncryptionIntegrationTests { TestConfigDataLocationResolver.config.put("foo.password", "{cipher}bf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95"); ConfigurableApplicationContext context = new SpringApplicationBuilder(TestAutoConfiguration.class) - .web(WebApplicationType.NONE) - .properties("spring.config.import=testdatasource:,classpath:application-failsafe.properties", - "createfailsafedelegate=true") - .run(); + .web(WebApplicationType.NONE) + .properties("spring.config.import=testdatasource:,classpath:application-failsafe.properties", + "createfailsafedelegate=true") + .run(); ConfigurableEnvironment env = context.getBean(ConfigurableEnvironment.class); then(env.getProperty("foo.password")).isEqualTo("test"); context.close(); diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionRuntimeHintsTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionRuntimeHintsTests.java index 3136ab18..c13aa402 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionRuntimeHintsTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionRuntimeHintsTests.java @@ -40,14 +40,16 @@ class EncryptionRuntimeHintsTests { @BeforeEach void setup() { - SpringFactoriesLoader.forResourceLocation("META-INF/spring/aot.factories").load(RuntimeHintsRegistrar.class) - .forEach(registrar -> registrar.registerHints(this.hints, ClassUtils.getDefaultClassLoader())); + SpringFactoriesLoader.forResourceLocation("META-INF/spring/aot.factories") + .load(RuntimeHintsRegistrar.class) + .forEach(registrar -> registrar.registerHints(this.hints, ClassUtils.getDefaultClassLoader())); } @Test void rsaSecretEncryptorHasHints() { - assertThat(RuntimeHintsPredicates.reflection().onType(RsaSecretEncryptor.class) - .withMemberCategories(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS)).accepts(this.hints); + assertThat(RuntimeHintsPredicates.reflection() + .onType(RsaSecretEncryptor.class) + .withMemberCategories(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS)).accepts(this.hints); } } diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EnvironmentDecryptApplicationInitializerTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EnvironmentDecryptApplicationInitializerTests.java index b8a8f670..c2b07ce1 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EnvironmentDecryptApplicationInitializerTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EnvironmentDecryptApplicationInitializerTests.java @@ -72,7 +72,7 @@ public class EnvironmentDecryptApplicationInitializerTests { public void relaxedBinding() { ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(); TestPropertyValues.of("spring.cloud.bootstrap.enabled=true", "FOO_TEXT: {cipher}bar") - .applyTo(context.getEnvironment(), TestPropertyValues.Type.SYSTEM_ENVIRONMENT); + .applyTo(context.getEnvironment(), TestPropertyValues.Type.SYSTEM_ENVIRONMENT); this.listener.initialize(context); then(context.getEnvironment().getProperty("foo.text")).isEqualTo("bar"); } @@ -81,8 +81,9 @@ public class EnvironmentDecryptApplicationInitializerTests { public void propertySourcesOrderedCorrectly() { ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(); TestPropertyValues.of("spring.cloud.bootstrap.enabled=true", "foo: {cipher}bar").applyTo(context); - context.getEnvironment().getPropertySources() - .addFirst(new MapPropertySource("test_override", Collections.singletonMap("foo", "{cipher}spam"))); + context.getEnvironment() + .getPropertySources() + .addFirst(new MapPropertySource("test_override", Collections.singletonMap("foo", "{cipher}spam"))); this.listener.initialize(context); then(context.getEnvironment().getProperty("foo")).isEqualTo("spam"); } @@ -125,14 +126,14 @@ public class EnvironmentDecryptApplicationInitializerTests { // tests that collections in another property source don't get copied into // "decrypted" property source TestPropertyValues - .of("spring.cloud.bootstrap.enabled=true", "yours[0].someValue: yourFoo", "yours[1].someValue: yourBar") - .applyTo(context); + .of("spring.cloud.bootstrap.enabled=true", "yours[0].someValue: yourFoo", "yours[1].someValue: yourBar") + .applyTo(context); // collection with some encrypted keys and some not encrypted TestPropertyValues - .of("mine[0].someValue: Foo", "mine[0].someKey: {cipher}Foo0", "mine[1].someValue: Bar", - "mine[1].someKey: {cipher}Bar1", "nonindexed: nonindexval") - .applyTo(context.getEnvironment(), Type.MAP, "combinedTest"); + .of("mine[0].someValue: Foo", "mine[0].someKey: {cipher}Foo0", "mine[1].someValue: Bar", + "mine[1].someKey: {cipher}Bar1", "nonindexed: nonindexval") + .applyTo(context.getEnvironment(), Type.MAP, "combinedTest"); this.listener.initialize(context); then(context.getEnvironment().getProperty("mine[0].someValue")).isEqualTo("Foo"); @@ -144,7 +145,7 @@ public class EnvironmentDecryptApplicationInitializerTests { MutablePropertySources propertySources = context.getEnvironment().getPropertySources(); PropertySource> decrypted = (PropertySource>) propertySources - .get(DECRYPTED_PROPERTY_SOURCE_NAME); + .get(DECRYPTED_PROPERTY_SOURCE_NAME); then(decrypted.getSource().size()).as("decrypted property source had wrong size").isEqualTo(4); } @@ -193,8 +194,9 @@ public class EnvironmentDecryptApplicationInitializerTests { public void propertySourcesOrderedCorrectlyWithUnencryptedOverrides() { ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(); TestPropertyValues.of("spring.cloud.bootstrap.enabled=true", "foo: {cipher}bar").applyTo(context); - context.getEnvironment().getPropertySources() - .addFirst(new MapPropertySource("test_override", Collections.singletonMap("foo", "spam"))); + context.getEnvironment() + .getPropertySources() + .addFirst(new MapPropertySource("test_override", Collections.singletonMap("foo", "spam"))); this.listener.initialize(context); then(context.getEnvironment().getProperty("foo")).isEqualTo("spam"); } @@ -212,15 +214,16 @@ public class EnvironmentDecryptApplicationInitializerTests { ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(); TestPropertyValues.of("spring.cloud.bootstrap.enabled=true").applyTo(context); CompositePropertySource bootstrap = new CompositePropertySource(BOOTSTRAP_PROPERTY_SOURCE_NAME); - bootstrap.addPropertySource( - new MapPropertySource("configService", Collections.singletonMap("foo", "{cipher}bar"))); + bootstrap + .addPropertySource(new MapPropertySource("configService", Collections.singletonMap("foo", "{cipher}bar"))); context.getEnvironment().getPropertySources().addFirst(bootstrap); Map props = new HashMap<>(); props.put("foo2", "{cipher}bar2"); props.put("bar", "{cipher}baz"); - context.getEnvironment().getPropertySources().addAfter(BOOTSTRAP_PROPERTY_SOURCE_NAME, - new MapPropertySource("remote", props)); + context.getEnvironment() + .getPropertySources() + .addAfter(BOOTSTRAP_PROPERTY_SOURCE_NAME, new MapPropertySource("remote", props)); initializer.initialize(context); @@ -236,8 +239,9 @@ public class EnvironmentDecryptApplicationInitializerTests { verify(encryptor, times(2)).decrypt("baz"); // Check if all encrypted properties are still decrypted - PropertySource decryptedBootstrap = context.getEnvironment().getPropertySources() - .get(DECRYPTED_BOOTSTRAP_PROPERTY_SOURCE_NAME); + PropertySource decryptedBootstrap = context.getEnvironment() + .getPropertySources() + .get(DECRYPTED_BOOTSTRAP_PROPERTY_SOURCE_NAME); then(decryptedBootstrap.getProperty("foo")).isEqualTo("bar"); PropertySource decrypted = context.getEnvironment().getPropertySources().get(DECRYPTED_PROPERTY_SOURCE_NAME); @@ -252,9 +256,10 @@ public class EnvironmentDecryptApplicationInitializerTests { when(encryptor.decrypt("bar2")).thenReturn("bar2"); EnvironmentDecryptApplicationInitializer initializer = new EnvironmentDecryptApplicationInitializer(encryptor); TestPropertyValues.of("spring.cloud.bootstrap.enabled=true", "foo: {cipher}bar", "foo2: {cipher}bar2") - .applyTo(context); - context.getEnvironment().getPropertySources() - .addFirst(new MapPropertySource("test_override", Collections.singletonMap("foo", "spam"))); + .applyTo(context); + context.getEnvironment() + .getPropertySources() + .addFirst(new MapPropertySource("test_override", Collections.singletonMap("foo", "spam"))); initializer.initialize(context); then(context.getEnvironment().getProperty("foo")).isEqualTo("spam"); then(context.getEnvironment().getProperty("foo2")).isEqualTo("bar2"); diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/RsaDisabledTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/RsaDisabledTests.java index 80056cf4..67477188 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/RsaDisabledTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/RsaDisabledTests.java @@ -40,8 +40,10 @@ public class RsaDisabledTests { @BeforeEach public void setUp() { this.context = new SpringApplicationBuilder().web(WebApplicationType.NONE) - .sources(EncryptionBootstrapConfiguration.class).web(WebApplicationType.NONE) - .properties("encrypt.key:mykey", "encrypt.rsa.strong:true", "encrypt.rsa.salt:foobar").run(); + .sources(EncryptionBootstrapConfiguration.class) + .web(WebApplicationType.NONE) + .properties("encrypt.key:mykey", "encrypt.rsa.strong:true", "encrypt.rsa.salt:foobar") + .run(); } @AfterEach diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/context/environment/EnvironmentManagerIntegrationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/context/environment/EnvironmentManagerIntegrationTests.java index 63d31f25..c23b8088 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/context/environment/EnvironmentManagerIntegrationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/context/environment/EnvironmentManagerIntegrationTests.java @@ -72,7 +72,8 @@ public class EnvironmentManagerIntegrationTests { String content = property("message", "Foo"); this.mvc.perform(post(BASE_PATH + "/env").content(content).contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk()).andExpect(content().string("{\"message\":\"Foo\"}")); + .andExpect(status().isOk()) + .andExpect(content().string("{\"message\":\"Foo\"}")); then(this.properties.getMessage()).isEqualTo("Foo"); } @@ -88,9 +89,11 @@ public class EnvironmentManagerIntegrationTests { @Test public void testRefreshFails() throws Exception { try { - this.mvc.perform( - post(BASE_PATH + "/env").content(property("delay", "foo")).contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk()).andExpect(status().is5xxServerError()); + this.mvc + .perform(post(BASE_PATH + "/env").content(property("delay", "foo")) + .contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andExpect(status().is5xxServerError()); fail("expected ServletException"); } catch (ServletException e) { @@ -111,10 +114,10 @@ public class EnvironmentManagerIntegrationTests { then(envbeans.get("writableEnvironmentEndpoint")).isInstanceOf(WritableEnvironmentEndpoint.class); Map extbeans = this.context - .getBeansOfType(EnvironmentEndpointWebExtension.class); + .getBeansOfType(EnvironmentEndpointWebExtension.class); then(extbeans).hasSize(1).containsKey("writableEnvironmentEndpointWebExtension"); then(extbeans.get("writableEnvironmentEndpointWebExtension")) - .isInstanceOf(WritableEnvironmentEndpointWebExtension.class); + .isInstanceOf(WritableEnvironmentEndpointWebExtension.class); } @Configuration(proxyBeanMethods = false) diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/context/named/NamedContextFactoryTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/context/named/NamedContextFactoryTests.java index e9ecd175..065734df 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/context/named/NamedContextFactoryTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/context/named/NamedContextFactoryTests.java @@ -158,11 +158,11 @@ public class NamedContextFactoryTests { GenericApplicationContext barContext = factory.getContext("bar"); then(fooContext.getClassLoader()).as("foo context classloader does not match parent") - .isSameAs(parent.getClassLoader()); + .isSameAs(parent.getClassLoader()); then(fooContext.getBeanFactory().getBeanClassLoader()) - .as("foo context bean factory classloader does not match parent") - .isSameAs(parent.getBeanFactory().getBeanClassLoader()); + .as("foo context bean factory classloader does not match parent") + .isSameAs(parent.getBeanFactory().getBeanClassLoader()); assertThat(fooContext).hasFieldOrPropertyWithValue("customClassLoader", true); @@ -287,7 +287,7 @@ public class NamedContextFactoryTests { } - record Container (T item) { + record Container(T item) { } diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/context/refresh/ContextRefresherTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/context/refresh/ContextRefresherTests.java index 03721db0..8a6a8959 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/context/refresh/ContextRefresherTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/context/refresh/ContextRefresherTests.java @@ -88,13 +88,14 @@ public class ContextRefresherTests { System.err.println("***** " + context.getEnvironment().getPropertySources()); then(names).doesNotContain("bootstrapProperties"); ContextRefresher refresher = new LegacyContextRefresher(context, this.scope); - TestPropertyValues.of("spring.cloud.bootstrap.sources: " - + "org.springframework.cloud.context.refresh.ContextRefresherTests.PropertySourceConfiguration") - .applyTo(context.getEnvironment(), Type.MAP, "defaultProperties"); + TestPropertyValues + .of("spring.cloud.bootstrap.sources: " + + "org.springframework.cloud.context.refresh.ContextRefresherTests.PropertySourceConfiguration") + .applyTo(context.getEnvironment(), Type.MAP, "defaultProperties"); refresher.refresh(); names = names(context.getEnvironment().getPropertySources()); then(names).first() - .isEqualTo(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-refreshTest"); + .isEqualTo(PropertySourceBootstrapConfiguration.BOOTSTRAP_PROPERTY_SOURCE_NAME + "-refreshTest"); } } @@ -106,9 +107,10 @@ public class ContextRefresherTests { "--spring.main.web-application-type=none", "--spring.cloud.bootstrap.enabled=true", "--debug=false", "--spring.main.bannerMode=OFF", "--spring.cloud.bootstrap.name=refresh")) { LegacyContextRefresher refresher = new LegacyContextRefresher(context, this.scope); - TestPropertyValues.of("spring.cloud.bootstrap.sources: " - + "org.springframework.cloud.context.refresh.ContextRefresherTests.PropertySourceConfiguration") - .applyTo(context); + TestPropertyValues + .of("spring.cloud.bootstrap.sources: " + + "org.springframework.cloud.context.refresh.ContextRefresherTests.PropertySourceConfiguration") + .applyTo(context); ConfigurableApplicationContext refresherContext = refresher.addConfigFilesToEnvironment(); then(refresherContext.getParent()).isNotNull().isInstanceOf(ConfigurableApplicationContext.class); @@ -152,28 +154,30 @@ public class ContextRefresherTests { @Test public void legacyContextRefresherCreatedUsingBootstrapEnabled() { new ApplicationContextRunner().withConfiguration(AutoConfigurations.of(RefreshAutoConfiguration.class)) - .withPropertyValues("spring.cloud.bootstrap.enabled=true").run(context -> { - assertThat(context).hasSingleBean(LegacyContextRefresher.class); - assertThat(context).hasSingleBean(ContextRefresher.class); - }); + .withPropertyValues("spring.cloud.bootstrap.enabled=true") + .run(context -> { + assertThat(context).hasSingleBean(LegacyContextRefresher.class); + assertThat(context).hasSingleBean(ContextRefresher.class); + }); } @Test public void legacyContextRefresherCreated() { new ApplicationContextRunner().withConfiguration(AutoConfigurations.of(RefreshAutoConfiguration.class)) - .withPropertyValues("spring.cloud.bootstrap.enabled=true").run(context -> { - assertThat(context).hasSingleBean(LegacyContextRefresher.class); - assertThat(context).hasSingleBean(ContextRefresher.class); - }); + .withPropertyValues("spring.cloud.bootstrap.enabled=true") + .run(context -> { + assertThat(context).hasSingleBean(LegacyContextRefresher.class); + assertThat(context).hasSingleBean(ContextRefresher.class); + }); } @Test public void configDataContextRefresherCreated() { new ApplicationContextRunner().withConfiguration(AutoConfigurations.of(RefreshAutoConfiguration.class)) - .run(context -> { - assertThat(context).hasSingleBean(ConfigDataContextRefresher.class); - assertThat(context).hasSingleBean(ContextRefresher.class); - }); + .run(context -> { + assertThat(context).hasSingleBean(ConfigDataContextRefresher.class); + assertThat(context).hasSingleBean(ContextRefresher.class); + }); } private List names(MutablePropertySources propertySources) { diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/ImportRefreshScopeIntegrationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/ImportRefreshScopeIntegrationTests.java index 4798aa5a..9c48bfdc 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/ImportRefreshScopeIntegrationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/ImportRefreshScopeIntegrationTests.java @@ -46,7 +46,7 @@ public class ImportRefreshScopeIntegrationTests { public void testSimpleProperties() { then(this.service.getMessage()).isEqualTo("Hello scope!"); then(this.beanFactory.getBeanDefinition(ScopedProxyUtils.getTargetBeanName("service")).getScope()) - .isEqualTo("refresh"); + .isEqualTo("refresh"); then(this.service.getMessage()).isEqualTo("Hello scope!"); } diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshEndpointIntegrationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshEndpointIntegrationTests.java index 4a699bc8..2015155a 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshEndpointIntegrationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshEndpointIntegrationTests.java @@ -72,7 +72,7 @@ public class RefreshEndpointIntegrationTests { headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity request = new HttpEntity(headers); ResponseEntity refreshResponse = template - .postForEntity("http://localhost:" + this.port + BASE_PATH + "/refresh", request, String.class); + .postForEntity("http://localhost:" + this.port + BASE_PATH + "/refresh", request, String.class); assertThat(refreshResponse.getStatusCode()).isEqualTo(HttpStatus.OK); String message = template.getForObject("http://localhost:" + this.port + "/", String.class); then(message).isEqualTo("Hello Dave!"); diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshScopeConfigurationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshScopeConfigurationTests.java index 10dbf51e..f23971d0 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshScopeConfigurationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshScopeConfigurationTests.java @@ -55,7 +55,7 @@ public class RefreshScopeConfigurationTests { EnvironmentManager environmentManager = this.context.getBean(EnvironmentManager.class); environmentManager.setProperty("message", "Hello Dave!"); org.springframework.cloud.context.scope.refresh.RefreshScope scope = this.context - .getBean(org.springframework.cloud.context.scope.refresh.RefreshScope.class); + .getBean(org.springframework.cloud.context.scope.refresh.RefreshScope.class); scope.refreshAll(); } @@ -69,7 +69,7 @@ public class RefreshScopeConfigurationTests { LifecycleMvcEndpointAutoConfiguration.class); Application application = this.context.getBean(Application.class); then(this.context.getBeanDefinition(ScopedProxyUtils.getTargetBeanName("application")).getScope()) - .isEqualTo("refresh"); + .isEqualTo("refresh"); application.hello(); refresh(); String message = application.hello(); diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshScopeSerializationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshScopeSerializationTests.java index 1fda3f19..2dcc71d3 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshScopeSerializationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshScopeSerializationTests.java @@ -35,7 +35,9 @@ public class RefreshScopeSerializationTests { @Test public void defaultApplicationContextId() { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfiguration.class) - .properties("spring.cloud.bootstrap.enabled=true").web(WebApplicationType.NONE).run(); + .properties("spring.cloud.bootstrap.enabled=true") + .web(WebApplicationType.NONE) + .run(); then(context.getId()).isEqualTo("application-1"); } @@ -50,7 +52,8 @@ public class RefreshScopeSerializationTests { private DefaultListableBeanFactory getBeanFactory() { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfiguration.class) - .web(WebApplicationType.NONE).run(); + .web(WebApplicationType.NONE) + .run(); DefaultListableBeanFactory factory = (DefaultListableBeanFactory) context.getAutowireCapableBeanFactory(); return factory; } diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshScopeWebIntegrationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshScopeWebIntegrationTests.java index 1d2a7a28..5f6e7c14 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshScopeWebIntegrationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/context/scope/refresh/RefreshScopeWebIntegrationTests.java @@ -57,7 +57,7 @@ public class RefreshScopeWebIntegrationTests { @Test public void scopeOnBeanDefinition() { then(this.beanFactory.getBeanDefinition(ScopedProxyUtils.getTargetBeanName("application")).getScope()) - .isEqualTo("refresh"); + .isEqualTo("refresh"); } @Test diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/context/test/TestConfigDataLocationResolver.java b/spring-cloud-context/src/test/java/org/springframework/cloud/context/test/TestConfigDataLocationResolver.java index eeb8d479..72e99c10 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/context/test/TestConfigDataLocationResolver.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/context/test/TestConfigDataLocationResolver.java @@ -59,19 +59,20 @@ public class TestConfigDataLocationResolver implements ConfigDataLocationResolve context.getBootstrapContext().registerIfAbsent(aClass, supplier); } String myplaceholder = context.getBinder().bind("myplaceholder", Bindable.of(String.class)).orElse("notfound"); - boolean createFailsafeDelegate = context.getBinder().bind("createfailsafedelegate", Bindable.of(Boolean.class)) - .orElse(Boolean.FALSE); + boolean createFailsafeDelegate = context.getBinder() + .bind("createfailsafedelegate", Bindable.of(Boolean.class)) + .orElse(Boolean.FALSE); if (createFailsafeDelegate) { assertThat(context.getBootstrapContext().isRegistered(TextEncryptor.class)).isTrue(); TextEncryptor textEncryptor = context.getBootstrapContext().get(TextEncryptor.class); assertThat(textEncryptor).isInstanceOf(TextEncryptorUtils.FailsafeTextEncryptor.class); - KeyProperties keyProperties = context.getBinder().bindOrCreate(KeyProperties.PREFIX, - Bindable.of(KeyProperties.class)); + KeyProperties keyProperties = context.getBinder() + .bindOrCreate(KeyProperties.PREFIX, Bindable.of(KeyProperties.class)); assertThat(TextEncryptorUtils.keysConfigured(keyProperties)).isTrue(); - RsaProperties rsaProperties = context.getBinder().bindOrCreate(RsaProperties.PREFIX, - Bindable.of(RsaProperties.class)); + RsaProperties rsaProperties = context.getBinder() + .bindOrCreate(RsaProperties.PREFIX, Bindable.of(RsaProperties.class)); ((TextEncryptorUtils.FailsafeTextEncryptor) textEncryptor) - .setDelegate(TextEncryptorUtils.createTextEncryptor(keyProperties, rsaProperties)); + .setDelegate(TextEncryptorUtils.createTextEncryptor(keyProperties, rsaProperties)); } HashMap props = new HashMap<>(config); props.put(TestEnvPostProcessor.EPP_VALUE, count.get()); diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/endpoint/RefreshEndpointTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/endpoint/RefreshEndpointTests.java index ac4138bb..13570273 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/endpoint/RefreshEndpointTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/endpoint/RefreshEndpointTests.java @@ -71,8 +71,10 @@ public class RefreshEndpointTests { @Test @Disabled // FIXME: legacy public void keysComputedWhenAdded() { - this.context = new SpringApplicationBuilder(Empty.class).web(WebApplicationType.NONE).bannerMode(Mode.OFF) - .properties("spring.cloud.bootstrap.enabled=true", "spring.cloud.bootstrap.name:none").run(); + this.context = new SpringApplicationBuilder(Empty.class).web(WebApplicationType.NONE) + .bannerMode(Mode.OFF) + .properties("spring.cloud.bootstrap.enabled=true", "spring.cloud.bootstrap.name:none") + .run(); RefreshScope scope = new RefreshScope(); scope.setApplicationContext(this.context); this.context.getEnvironment().setActiveProfiles("local"); @@ -85,8 +87,10 @@ public class RefreshEndpointTests { @Test @Disabled // FIXME: legacy public void keysComputedWhenOveridden() { - this.context = new SpringApplicationBuilder(Empty.class).web(WebApplicationType.NONE).bannerMode(Mode.OFF) - .properties("spring.cloud.bootstrap.enabled=true", "spring.cloud.bootstrap.name:none").run(); + this.context = new SpringApplicationBuilder(Empty.class).web(WebApplicationType.NONE) + .bannerMode(Mode.OFF) + .properties("spring.cloud.bootstrap.enabled=true", "spring.cloud.bootstrap.name:none") + .run(); RefreshScope scope = new RefreshScope(); scope.setApplicationContext(this.context); this.context.getEnvironment().setActiveProfiles("override"); @@ -98,12 +102,14 @@ public class RefreshEndpointTests { @Test public void keysComputedWhenChangesInExternalProperties() { - this.context = new SpringApplicationBuilder(Empty.class).web(WebApplicationType.NONE).bannerMode(Mode.OFF) - .properties("spring.cloud.bootstrap.name:none", "spring.cloud.bootstrap.enabled=true").run(); + this.context = new SpringApplicationBuilder(Empty.class).web(WebApplicationType.NONE) + .bannerMode(Mode.OFF) + .properties("spring.cloud.bootstrap.name:none", "spring.cloud.bootstrap.enabled=true") + .run(); RefreshScope scope = new RefreshScope(); scope.setApplicationContext(this.context); TestPropertyValues.of("spring.cloud.bootstrap.sources=" + ExternalPropertySourceLocator.class.getName()) - .applyTo(this.context.getEnvironment(), Type.MAP, "defaultProperties"); + .applyTo(this.context.getEnvironment(), Type.MAP, "defaultProperties"); ContextRefresher contextRefresher = new LegacyContextRefresher(this.context, scope); RefreshEndpoint endpoint = new RefreshEndpoint(contextRefresher); Collection keys = endpoint.refresh(); @@ -112,15 +118,17 @@ public class RefreshEndpointTests { @Test public void springMainSourcesEmptyInRefreshCycle() { - this.context = new SpringApplicationBuilder(Empty.class).web(WebApplicationType.NONE).bannerMode(Mode.OFF) - .properties("spring.cloud.bootstrap.name:none").run(); + this.context = new SpringApplicationBuilder(Empty.class).web(WebApplicationType.NONE) + .bannerMode(Mode.OFF) + .properties("spring.cloud.bootstrap.name:none") + .run(); RefreshScope scope = new RefreshScope(); scope.setApplicationContext(this.context); // spring.main.sources should be empty when the refresh cycle starts (we don't // want any config files from the application context getting into the one used to // construct the environment for refresh) TestPropertyValues.of("spring.main.sources=" + ExternalPropertySourceLocator.class.getName()) - .applyTo(this.context); + .applyTo(this.context); ContextRefresher contextRefresher = new LegacyContextRefresher(this.context, scope); RefreshEndpoint endpoint = new RefreshEndpoint(contextRefresher); Collection keys = endpoint.refresh(); @@ -129,8 +137,9 @@ public class RefreshEndpointTests { @Test public void eventsPublishedInOrder() { - this.context = new SpringApplicationBuilder(Empty.class).web(WebApplicationType.NONE).bannerMode(Mode.OFF) - .run(); + this.context = new SpringApplicationBuilder(Empty.class).web(WebApplicationType.NONE) + .bannerMode(Mode.OFF) + .run(); RefreshScope scope = new RefreshScope(); scope.setApplicationContext(this.context); ContextRefresher contextRefresher = new LegacyContextRefresher(this.context, scope); @@ -146,7 +155,9 @@ public class RefreshEndpointTests { @DisabledForJreRange(min = JRE.JAVA_16) // FIXME: public void shutdownHooksCleaned() { try (ConfigurableApplicationContext context = new SpringApplicationBuilder(Empty.class) - .web(WebApplicationType.NONE).bannerMode(Mode.OFF).run()) { + .web(WebApplicationType.NONE) + .bannerMode(Mode.OFF) + .run()) { RefreshScope scope = new RefreshScope(); scope.setApplicationContext(context); ContextRefresher contextRefresher = new LegacyContextRefresher(context, scope); diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/logging/LoggingRebinderTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/logging/LoggingRebinderTests.java index e04401cd..299bb24e 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/logging/LoggingRebinderTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/logging/LoggingRebinderTests.java @@ -73,7 +73,7 @@ public class LoggingRebinderTests { @Test public void logLevelFalseResolvedToOff() { ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger) LoggerFactory - .getLogger("org.springframework.cloud"); + .getLogger("org.springframework.cloud"); StandardEnvironment environment = new StandardEnvironment(); TestPropertyValues.of("logging.level.org.springframework.cloud=false").applyTo(environment); rebinder.setEnvironment(environment); diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfiguration.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfiguration.java index abf47dab..dd8a4fce 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfiguration.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfiguration.java @@ -95,8 +95,11 @@ public class LoadBalancerClientConfiguration { @Conditional(ZonePreferenceConfigurationCondition.class) public ServiceInstanceListSupplier zonePreferenceDiscoveryClientServiceInstanceListSupplier( ConfigurableApplicationContext context) { - return ServiceInstanceListSupplier.builder().withDiscoveryClient().withCaching().withZonePreference() - .build(context); + return ServiceInstanceListSupplier.builder() + .withDiscoveryClient() + .withCaching() + .withZonePreference() + .build(context); } @Bean @@ -121,8 +124,11 @@ public class LoadBalancerClientConfiguration { @Conditional(RequestBasedStickySessionConfigurationCondition.class) public ServiceInstanceListSupplier requestBasedStickySessionDiscoveryClientServiceInstanceListSupplier( ConfigurableApplicationContext context) { - return ServiceInstanceListSupplier.builder().withDiscoveryClient().withCaching() - .withRequestBasedStickySession().build(context); + return ServiceInstanceListSupplier.builder() + .withDiscoveryClient() + .withCaching() + .withRequestBasedStickySession() + .build(context); } @Bean @@ -131,8 +137,11 @@ public class LoadBalancerClientConfiguration { @Conditional(SameInstancePreferenceConfigurationCondition.class) public ServiceInstanceListSupplier sameInstancePreferenceServiceInstanceListSupplier( ConfigurableApplicationContext context) { - return ServiceInstanceListSupplier.builder().withDiscoveryClient().withCaching() - .withSameInstancePreference().build(context); + return ServiceInstanceListSupplier.builder() + .withDiscoveryClient() + .withCaching() + .withSameInstancePreference() + .build(context); } @Bean @@ -140,8 +149,11 @@ public class LoadBalancerClientConfiguration { @ConditionalOnMissingBean @Conditional(WeightedConfigurationCondition.class) public ServiceInstanceListSupplier weightedServiceInstanceListSupplier(ConfigurableApplicationContext context) { - return ServiceInstanceListSupplier.builder().withDiscoveryClient().withCaching().withWeighted() - .build(context); + return ServiceInstanceListSupplier.builder() + .withDiscoveryClient() + .withCaching() + .withWeighted() + .build(context); } @Bean @@ -149,8 +161,11 @@ public class LoadBalancerClientConfiguration { @ConditionalOnMissingBean @Conditional(SubsetConfigurationCondition.class) public ServiceInstanceListSupplier subsetServiceInstanceListSupplier(ConfigurableApplicationContext context) { - return ServiceInstanceListSupplier.builder().withDiscoveryClient().withSubset().withCaching() - .build(context); + return ServiceInstanceListSupplier.builder() + .withDiscoveryClient() + .withSubset() + .withCaching() + .build(context); } } @@ -175,8 +190,11 @@ public class LoadBalancerClientConfiguration { @Conditional(ZonePreferenceConfigurationCondition.class) public ServiceInstanceListSupplier zonePreferenceDiscoveryClientServiceInstanceListSupplier( ConfigurableApplicationContext context) { - return ServiceInstanceListSupplier.builder().withBlockingDiscoveryClient().withCaching() - .withZonePreference().build(context); + return ServiceInstanceListSupplier.builder() + .withBlockingDiscoveryClient() + .withCaching() + .withZonePreference() + .build(context); } @Bean @@ -185,8 +203,10 @@ public class LoadBalancerClientConfiguration { @Conditional(HealthCheckConfigurationCondition.class) public ServiceInstanceListSupplier healthCheckDiscoveryClientServiceInstanceListSupplier( ConfigurableApplicationContext context) { - return ServiceInstanceListSupplier.builder().withBlockingDiscoveryClient().withBlockingHealthChecks() - .build(context); + return ServiceInstanceListSupplier.builder() + .withBlockingDiscoveryClient() + .withBlockingHealthChecks() + .build(context); } @Bean @@ -195,8 +215,10 @@ public class LoadBalancerClientConfiguration { @Conditional(HealthCheckConfigurationCondition.class) public ServiceInstanceListSupplier healthCheckRestClientDiscoveryClientServiceInstanceListSupplier( ConfigurableApplicationContext context) { - return ServiceInstanceListSupplier.builder().withBlockingDiscoveryClient() - .withBlockingRestClientHealthChecks().build(context); + return ServiceInstanceListSupplier.builder() + .withBlockingDiscoveryClient() + .withBlockingRestClientHealthChecks() + .build(context); } @Bean @@ -205,8 +227,11 @@ public class LoadBalancerClientConfiguration { @Conditional(RequestBasedStickySessionConfigurationCondition.class) public ServiceInstanceListSupplier requestBasedStickySessionDiscoveryClientServiceInstanceListSupplier( ConfigurableApplicationContext context) { - return ServiceInstanceListSupplier.builder().withBlockingDiscoveryClient().withCaching() - .withRequestBasedStickySession().build(context); + return ServiceInstanceListSupplier.builder() + .withBlockingDiscoveryClient() + .withCaching() + .withRequestBasedStickySession() + .build(context); } @Bean @@ -215,8 +240,11 @@ public class LoadBalancerClientConfiguration { @Conditional(SameInstancePreferenceConfigurationCondition.class) public ServiceInstanceListSupplier sameInstancePreferenceServiceInstanceListSupplier( ConfigurableApplicationContext context) { - return ServiceInstanceListSupplier.builder().withBlockingDiscoveryClient().withCaching() - .withSameInstancePreference().build(context); + return ServiceInstanceListSupplier.builder() + .withBlockingDiscoveryClient() + .withCaching() + .withSameInstancePreference() + .build(context); } @Bean @@ -224,8 +252,11 @@ public class LoadBalancerClientConfiguration { @ConditionalOnMissingBean @Conditional(WeightedConfigurationCondition.class) public ServiceInstanceListSupplier weightedServiceInstanceListSupplier(ConfigurableApplicationContext context) { - return ServiceInstanceListSupplier.builder().withBlockingDiscoveryClient().withCaching().withWeighted() - .build(context); + return ServiceInstanceListSupplier.builder() + .withBlockingDiscoveryClient() + .withCaching() + .withWeighted() + .build(context); } @Bean @@ -233,8 +264,11 @@ public class LoadBalancerClientConfiguration { @ConditionalOnMissingBean @Conditional(SubsetConfigurationCondition.class) public ServiceInstanceListSupplier subsetServiceInstanceListSupplier(ConfigurableApplicationContext context) { - return ServiceInstanceListSupplier.builder().withBlockingDiscoveryClient().withSubset().withCaching() - .build(context); + return ServiceInstanceListSupplier.builder() + .withBlockingDiscoveryClient() + .withSubset() + .withCaching() + .build(context); } } diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfigurationRegistrar.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfigurationRegistrar.java index a109b398..f4f87e79 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfigurationRegistrar.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfigurationRegistrar.java @@ -47,7 +47,7 @@ public class LoadBalancerClientConfigurationRegistrar implements ImportBeanDefin private static void registerClientConfiguration(BeanDefinitionRegistry registry, Object name, Object configuration) { BeanDefinitionBuilder builder = BeanDefinitionBuilder - .genericBeanDefinition(LoadBalancerClientSpecification.class); + .genericBeanDefinition(LoadBalancerClientSpecification.class); builder.addConstructorArgValue(name); builder.addConstructorArgValue(configuration); registry.registerBeanDefinition(name + ".LoadBalancerClientSpecification", builder.getBeanDefinition()); diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/aot/LoadBalancerChildContextInitializer.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/aot/LoadBalancerChildContextInitializer.java index fdc9c039..d6ad1c68 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/aot/LoadBalancerChildContextInitializer.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/aot/LoadBalancerChildContextInitializer.java @@ -74,8 +74,8 @@ public class LoadBalancerChildContextInitializer implements BeanRegistrationAotP contextIds.addAll(getContextIdsFromConfig()); contextIds.addAll(getEagerLoadContextIds()); Map childContextAotContributions = contextIds.stream() - .map(contextId -> Map.entry(contextId, buildChildContext(contextId))) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + .map(contextId -> Map.entry(contextId, buildChildContext(contextId))) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); return new AotContribution(childContextAotContributions); } @@ -86,8 +86,8 @@ public class LoadBalancerChildContextInitializer implements BeanRegistrationAotP private Set getEagerLoadContextIds() { return Binder.get(applicationContext.getEnvironment()) - .bind("spring.cloud.loadbalancer.eager-load.clients", Bindable.setOf(String.class)) - .orElse(Collections.emptySet()); + .bind("spring.cloud.loadbalancer.eager-load.clients", Bindable.setOf(String.class)) + .orElse(Collections.emptySet()); } private GenericApplicationContext buildChildContext(String contextId) { @@ -101,9 +101,11 @@ public class LoadBalancerChildContextInitializer implements BeanRegistrationAotP private final Map childContexts; AotContribution(Map childContexts) { - this.childContexts = childContexts.entrySet().stream().filter(entry -> entry.getValue() != null) - .map(entry -> Map.entry(entry.getKey(), entry.getValue())) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + this.childContexts = childContexts.entrySet() + .stream() + .filter(entry -> entry.getValue() != null) + .map(entry -> Map.entry(entry.getKey(), entry.getValue())) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); } @Override @@ -113,22 +115,22 @@ public class LoadBalancerChildContextInitializer implements BeanRegistrationAotP name = name.replaceAll("[-]", "_"); GenerationContext childGenerationContext = generationContext.withName(name); ClassName initializerClassName = new ApplicationContextAotGenerator() - .processAheadOfTime(entry.getValue(), childGenerationContext); + .processAheadOfTime(entry.getValue(), childGenerationContext); return Map.entry(entry.getKey(), initializerClassName); }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); - GeneratedMethod postProcessorMethod = beanRegistrationCode.getMethods().add("addChildContextInitializer", - method -> { - method.addJavadoc("Use AOT child context management initialization") - .addModifiers(Modifier.PRIVATE, Modifier.STATIC) - .addParameter(RegisteredBean.class, "registeredBean") - .addParameter(LoadBalancerClientFactory.class, "instance") - .returns(LoadBalancerClientFactory.class) - .addStatement("$T initializers = new $T<>()", Map.class, HashMap.class); - generatedInitializerClassNames.keySet() - .forEach(contextId -> method.addStatement("initializers.put($S, new $L())", contextId, - generatedInitializerClassNames.get(contextId))); - method.addStatement("return instance.withApplicationContextInitializers(initializers)"); - }); + GeneratedMethod postProcessorMethod = beanRegistrationCode.getMethods() + .add("addChildContextInitializer", method -> { + method.addJavadoc("Use AOT child context management initialization") + .addModifiers(Modifier.PRIVATE, Modifier.STATIC) + .addParameter(RegisteredBean.class, "registeredBean") + .addParameter(LoadBalancerClientFactory.class, "instance") + .returns(LoadBalancerClientFactory.class) + .addStatement("$T initializers = new $T<>()", Map.class, HashMap.class); + generatedInitializerClassNames.keySet() + .forEach(contextId -> method.addStatement("initializers.put($S, new $L())", contextId, + generatedInitializerClassNames.get(contextId))); + method.addStatement("return instance.withApplicationContextInitializers(initializers)"); + }); beanRegistrationCode.addInstancePostProcessor(postProcessorMethod.toMethodReference()); } diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/blocking/client/BlockingLoadBalancerClient.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/blocking/client/BlockingLoadBalancerClient.java index d3af6910..3f2dc7bd 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/blocking/client/BlockingLoadBalancerClient.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/blocking/client/BlockingLoadBalancerClient.java @@ -73,8 +73,8 @@ public class BlockingLoadBalancerClient implements LoadBalancerClient { supportedLifecycleProcessors.forEach(lifecycle -> lifecycle.onStart(lbRequest)); ServiceInstance serviceInstance = choose(serviceId, lbRequest); if (serviceInstance == null) { - supportedLifecycleProcessors.forEach(lifecycle -> lifecycle.onComplete( - new CompletionContext<>(CompletionContext.Status.DISCARD, lbRequest, new EmptyResponse()))); + supportedLifecycleProcessors.forEach(lifecycle -> lifecycle + .onComplete(new CompletionContext<>(CompletionContext.Status.DISCARD, lbRequest, new EmptyResponse()))); throw new IllegalStateException("No instances available for " + serviceId); } return execute(serviceId, serviceInstance, lbRequest); @@ -101,13 +101,13 @@ public class BlockingLoadBalancerClient implements LoadBalancerClient { Set supportedLifecycleProcessors = getSupportedLifecycleProcessors(serviceId); Request lbRequest = request instanceof Request ? (Request) request : new DefaultRequest<>(); supportedLifecycleProcessors - .forEach(lifecycle -> lifecycle.onStartRequest(lbRequest, new DefaultResponse(serviceInstance))); + .forEach(lifecycle -> lifecycle.onStartRequest(lbRequest, new DefaultResponse(serviceInstance))); try { T response = request.apply(serviceInstance); Object clientResponse = getClientResponse(response); supportedLifecycleProcessors - .forEach(lifecycle -> lifecycle.onComplete(new CompletionContext<>(CompletionContext.Status.SUCCESS, - lbRequest, defaultResponse, clientResponse))); + .forEach(lifecycle -> lifecycle.onComplete(new CompletionContext<>(CompletionContext.Status.SUCCESS, + lbRequest, defaultResponse, clientResponse))); return response; } catch (IOException iOException) { diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/blocking/retry/BlockingLoadBalancedRetryPolicy.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/blocking/retry/BlockingLoadBalancedRetryPolicy.java index fc97c720..97f3b25b 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/blocking/retry/BlockingLoadBalancedRetryPolicy.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/blocking/retry/BlockingLoadBalancedRetryPolicy.java @@ -97,8 +97,10 @@ public class BlockingLoadBalancedRetryPolicy implements LoadBalancedRetryPolicy if (properties.getRetry().isRetryOnAllExceptions()) { return true; } - return properties.getRetry().getRetryableExceptions().stream() - .anyMatch(exception -> exception.isInstance(throwable) || exception.isInstance(throwable.getCause())); + return properties.getRetry() + .getRetryableExceptions() + .stream() + .anyMatch(exception -> exception.isInstance(throwable) || exception.isInstance(throwable.getCause())); } } diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/cache/CaffeineBasedLoadBalancerCacheManager.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/cache/CaffeineBasedLoadBalancerCacheManager.java index 67a0269f..d5e5e632 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/cache/CaffeineBasedLoadBalancerCacheManager.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/cache/CaffeineBasedLoadBalancerCacheManager.java @@ -41,8 +41,10 @@ public class CaffeineBasedLoadBalancerCacheManager extends CaffeineCacheManager setCacheSpecification(properties.getCaffeine().getSpec()); } else { - setCaffeine(Caffeine.newBuilder().initialCapacity(properties.getCapacity()) - .expireAfterWrite(properties.getTtl()).softValues()); + setCaffeine(Caffeine.newBuilder() + .initialCapacity(properties.getCapacity()) + .expireAfterWrite(properties.getTtl()) + .softValues()); } } diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/cache/DefaultLoadBalancerCacheManager.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/cache/DefaultLoadBalancerCacheManager.java index 79333918..5597addf 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/cache/DefaultLoadBalancerCacheManager.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/cache/DefaultLoadBalancerCacheManager.java @@ -54,7 +54,7 @@ public class DefaultLoadBalancerCacheManager implements LoadBalancerCacheManager public DefaultLoadBalancerCacheManager(LoadBalancerCacheProperties loadBalancerCacheProperties, String... cacheNames) { cacheMap.putAll(createCaches(cacheNames, loadBalancerCacheProperties).stream() - .collect(Collectors.toMap(DefaultLoadBalancerCache::getName, cache -> cache))); + .collect(Collectors.toMap(DefaultLoadBalancerCache::getName, cache -> cache))); } public DefaultLoadBalancerCacheManager(LoadBalancerCacheProperties loadBalancerCacheProperties) { @@ -63,12 +63,13 @@ public class DefaultLoadBalancerCacheManager implements LoadBalancerCacheManager private Set createCaches(String[] cacheNames, LoadBalancerCacheProperties loadBalancerCacheProperties) { - return Arrays.stream(cacheNames).distinct() - .map(name -> new DefaultLoadBalancerCache(name, - new ConcurrentHashMapWithTimedEviction<>(loadBalancerCacheProperties.getCapacity(), - new DelayedTaskEvictionScheduler<>(aScheduledDaemonThreadExecutor())), - loadBalancerCacheProperties.getTtl().toMillis(), false)) - .collect(Collectors.toSet()); + return Arrays.stream(cacheNames) + .distinct() + .map(name -> new DefaultLoadBalancerCache(name, + new ConcurrentHashMapWithTimedEviction<>(loadBalancerCacheProperties.getCapacity(), + new DelayedTaskEvictionScheduler<>(aScheduledDaemonThreadExecutor())), + loadBalancerCacheProperties.getTtl().toMillis(), false)) + .collect(Collectors.toSet()); } private ScheduledExecutorService aScheduledDaemonThreadExecutor() { diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfiguration.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfiguration.java index 639ec345..2dc68892 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfiguration.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfiguration.java @@ -179,21 +179,21 @@ class CaffeineHints implements RuntimeHintsRegistrar { return; } hints.reflection() - .registerType(TypeReference.of(Caffeine.class), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of("com.github.benmanes.caffeine.cache.BoundedLocalCache"), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of("com.github.benmanes.caffeine.cache.LocalCacheFactory"), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) - .registerType(TypeReference.of("com.github.benmanes.caffeine.cache.Node"), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)); - getCaffeineSubtypes().forEach(cacheType -> hints.reflection().registerType(TypeReference.of(cacheType), - hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, - MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS))); + .registerType(TypeReference.of(Caffeine.class), + hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of("com.github.benmanes.caffeine.cache.BoundedLocalCache"), + hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of("com.github.benmanes.caffeine.cache.LocalCacheFactory"), + hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)) + .registerType(TypeReference.of("com.github.benmanes.caffeine.cache.Node"), + hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS)); + getCaffeineSubtypes().forEach(cacheType -> hints.reflection() + .registerType(TypeReference.of(cacheType), hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS, + MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.DECLARED_FIELDS))); } private Set getCaffeineSubtypes() { @@ -205,8 +205,12 @@ class CaffeineHints implements RuntimeHintsRegistrar { catch (ClassNotFoundException e) { LOG.warn("Could not get class for name: " + CAFFEINE_BOUNDED_LOCAL_CACHE_CLASS_NAME); } - return provider.findCandidateComponents(CAFFEINE_CACHE_BASE_PACKAGE).stream().filter(Objects::nonNull) - .map(BeanDefinition::getBeanClassName).filter(Objects::nonNull).collect(Collectors.toSet()); + return provider.findCandidateComponents(CAFFEINE_CACHE_BASE_PACKAGE) + .stream() + .filter(Objects::nonNull) + .map(BeanDefinition::getBeanClassName) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); } } diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/CachingServiceInstanceListSupplier.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/CachingServiceInstanceListSupplier.java index 2554f766..83a20929 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/CachingServiceInstanceListSupplier.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/CachingServiceInstanceListSupplier.java @@ -66,18 +66,19 @@ public class CachingServiceInstanceListSupplier extends DelegatingServiceInstanc return Mono.empty(); } return Flux.just(list).materialize().collectList(); - }, delegate.getServiceId()).onCacheMissResume(delegate.get().take(1)) - .andWriteWith((key, signals) -> Flux.fromIterable(signals).dematerialize().doOnNext(instances -> { - Cache cache = cacheManager.getCache(SERVICE_INSTANCE_CACHE_NAME); - if (cache == null) { - if (log.isErrorEnabled()) { - log.error("Unable to find cache for writing: " + SERVICE_INSTANCE_CACHE_NAME); - } + }, delegate.getServiceId()) + .onCacheMissResume(delegate.get().take(1)) + .andWriteWith((key, signals) -> Flux.fromIterable(signals).dematerialize().doOnNext(instances -> { + Cache cache = cacheManager.getCache(SERVICE_INSTANCE_CACHE_NAME); + if (cache == null) { + if (log.isErrorEnabled()) { + log.error("Unable to find cache for writing: " + SERVICE_INSTANCE_CACHE_NAME); } - else { - cache.put(key, instances); - } - }).then()); + } + else { + cache.put(key, instances); + } + }).then()); } @Override diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplier.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplier.java index e1f33998..c87d5091 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplier.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplier.java @@ -62,26 +62,27 @@ public class DiscoveryClientServiceInstanceListSupplier implements ServiceInstan this.serviceId = environment.getProperty(PROPERTY_NAME); resolveTimeout(environment); this.serviceInstances = Flux.defer(() -> Mono.fromCallable(() -> delegate.getInstances(serviceId))) - .timeout(timeout, Flux.defer(() -> { - logTimeout(); - return Flux.just(new ArrayList<>()); - }), Schedulers.boundedElastic()).onErrorResume(error -> { - logException(error); - return Flux.just(new ArrayList<>()); - }); + .timeout(timeout, Flux.defer(() -> { + logTimeout(); + return Flux.just(new ArrayList<>()); + }), Schedulers.boundedElastic()) + .onErrorResume(error -> { + logException(error); + return Flux.just(new ArrayList<>()); + }); } public DiscoveryClientServiceInstanceListSupplier(ReactiveDiscoveryClient delegate, Environment environment) { this.serviceId = environment.getProperty(PROPERTY_NAME); resolveTimeout(environment); this.serviceInstances = Flux - .defer(() -> delegate.getInstances(serviceId).collectList().flux().timeout(timeout, Flux.defer(() -> { - logTimeout(); - return Flux.just(new ArrayList<>()); - })).onErrorResume(error -> { - logException(error); - return Flux.just(new ArrayList<>()); - })); + .defer(() -> delegate.getInstances(serviceId).collectList().flux().timeout(timeout, Flux.defer(() -> { + logTimeout(); + return Flux.just(new ArrayList<>()); + })).onErrorResume(error -> { + logException(error); + return Flux.just(new ArrayList<>()); + })); } @Override diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/HealthCheckServiceInstanceListSupplier.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/HealthCheckServiceInstanceListSupplier.java index a3e57c00..3a568a21 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/HealthCheckServiceInstanceListSupplier.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/HealthCheckServiceInstanceListSupplier.java @@ -68,12 +68,14 @@ public class HealthCheckServiceInstanceListSupplier extends DelegatingServiceIns defaultHealthCheckPath = healthCheck.getPath().getOrDefault("default", "/actuator/health"); this.aliveFunction = aliveFunction; Repeat aliveInstancesReplayRepeat = Repeat - .onlyIf(repeatContext -> this.healthCheck.getRefetchInstances()) - .fixedBackoff(healthCheck.getRefetchInstancesInterval()); - Flux> aliveInstancesFlux = Flux.defer(delegate).repeatWhen(aliveInstancesReplayRepeat) - .switchMap(serviceInstances -> healthCheckFlux(serviceInstances).map(alive -> List.copyOf(alive))); - aliveInstancesReplay = aliveInstancesFlux.delaySubscription(healthCheck.getInitialDelay()).replay(1) - .refCount(1); + .onlyIf(repeatContext -> this.healthCheck.getRefetchInstances()) + .fixedBackoff(healthCheck.getRefetchInstancesInterval()); + Flux> aliveInstancesFlux = Flux.defer(delegate) + .repeatWhen(aliveInstancesReplayRepeat) + .switchMap(serviceInstances -> healthCheckFlux(serviceInstances).map(alive -> List.copyOf(alive))); + aliveInstancesReplay = aliveInstancesFlux.delaySubscription(healthCheck.getInitialDelay()) + .replay(1) + .refCount(1); } @Override @@ -87,7 +89,7 @@ public class HealthCheckServiceInstanceListSupplier extends DelegatingServiceIns protected Flux> healthCheckFlux(List instances) { Repeat healthCheckFluxRepeat = Repeat.onlyIf(repeatContext -> healthCheck.getRepeatHealthCheck()) - .fixedBackoff(healthCheck.getInterval()); + .fixedBackoff(healthCheck.getInterval()); return Flux.defer(() -> { List> checks = new ArrayList<>(instances.size()); for (ServiceInstance instance : instances) { diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/RandomLoadBalancer.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/RandomLoadBalancer.java index 325fb17b..ed97037c 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/RandomLoadBalancer.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/RandomLoadBalancer.java @@ -59,9 +59,10 @@ public class RandomLoadBalancer implements ReactorServiceInstanceLoadBalancer { @Override public Mono> choose(Request request) { ServiceInstanceListSupplier supplier = serviceInstanceListSupplierProvider - .getIfAvailable(NoopServiceInstanceListSupplier::new); - return supplier.get(request).next() - .map(serviceInstances -> processInstanceResponse(supplier, serviceInstances)); + .getIfAvailable(NoopServiceInstanceListSupplier::new); + return supplier.get(request) + .next() + .map(serviceInstances -> processInstanceResponse(supplier, serviceInstances)); } private Response processInstanceResponse(ServiceInstanceListSupplier supplier, diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/RoundRobinLoadBalancer.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/RoundRobinLoadBalancer.java index bc6cd5da..7bed7fe5 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/RoundRobinLoadBalancer.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/RoundRobinLoadBalancer.java @@ -78,9 +78,10 @@ public class RoundRobinLoadBalancer implements ReactorServiceInstanceLoadBalance // src/main/java/netflix/ocelli/loadbalancer/RoundRobinLoadBalancer.java public Mono> choose(Request request) { ServiceInstanceListSupplier supplier = serviceInstanceListSupplierProvider - .getIfAvailable(NoopServiceInstanceListSupplier::new); - return supplier.get(request).next() - .map(serviceInstances -> processInstanceResponse(supplier, serviceInstances)); + .getIfAvailable(NoopServiceInstanceListSupplier::new); + return supplier.get(request) + .next() + .map(serviceInstances -> processInstanceResponse(supplier, serviceInstances)); } private Response processInstanceResponse(ServiceInstanceListSupplier supplier, diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/SameInstancePreferenceServiceInstanceListSupplier.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/SameInstancePreferenceServiceInstanceListSupplier.java index bd63ecbc..f5bdec97 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/SameInstancePreferenceServiceInstanceListSupplier.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/SameInstancePreferenceServiceInstanceListSupplier.java @@ -52,7 +52,7 @@ public class SameInstancePreferenceServiceInstanceListSupplier extends Delegatin ReactiveLoadBalancer.Factory loadBalancerClientFactory) { super(delegate); callGetWithRequestOnDelegates = loadBalancerClientFactory.getProperties(getServiceId()) - .isCallGetWithRequestOnDelegates(); + .isCallGetWithRequestOnDelegates(); } @Override diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/ServiceInstanceListSupplierBuilder.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/ServiceInstanceListSupplierBuilder.java index d7e97c4e..19a3c72c 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/ServiceInstanceListSupplierBuilder.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/ServiceInstanceListSupplierBuilder.java @@ -120,7 +120,7 @@ public final class ServiceInstanceListSupplierBuilder { public ServiceInstanceListSupplierBuilder withWeighted() { DelegateCreator creator = (context, delegate) -> { ReactiveLoadBalancer.Factory loadBalancerClientFactory = context - .getBean(LoadBalancerClientFactory.class); + .getBean(LoadBalancerClientFactory.class); return new WeightedServiceInstanceListSupplier(delegate, loadBalancerClientFactory); }; this.creators.add(creator); @@ -137,7 +137,7 @@ public final class ServiceInstanceListSupplierBuilder { public ServiceInstanceListSupplierBuilder withWeighted(WeightFunction weightFunction) { DelegateCreator creator = (context, delegate) -> { ReactiveLoadBalancer.Factory loadBalancerClientFactory = context - .getBean(LoadBalancerClientFactory.class); + .getBean(LoadBalancerClientFactory.class); return new WeightedServiceInstanceListSupplier(delegate, weightFunction, loadBalancerClientFactory); }; this.creators.add(creator); @@ -152,7 +152,7 @@ public final class ServiceInstanceListSupplierBuilder { public ServiceInstanceListSupplierBuilder withHealthChecks() { DelegateCreator creator = (context, delegate) -> { ReactiveLoadBalancer.Factory loadBalancerClientFactory = context - .getBean(LoadBalancerClientFactory.class); + .getBean(LoadBalancerClientFactory.class); WebClient.Builder webClient = context.getBean(WebClient.Builder.class); return healthCheckServiceInstanceListSupplier(webClient.build(), delegate, loadBalancerClientFactory); }; @@ -305,7 +305,7 @@ public final class ServiceInstanceListSupplierBuilder { public ServiceInstanceListSupplierBuilder withCaching() { DelegateCreator creator = (context, delegate) -> { ObjectProvider cacheManagerProvider = context - .getBeanProvider(LoadBalancerCacheManager.class); + .getBeanProvider(LoadBalancerCacheManager.class); if (cacheManagerProvider.getIfAvailable() != null) { return new CachingServiceInstanceListSupplier(delegate, cacheManagerProvider.getIfAvailable()); } @@ -379,10 +379,10 @@ public final class ServiceInstanceListSupplierBuilder { ReactiveLoadBalancer.Factory loadBalancerClientFactory) { return new HealthCheckServiceInstanceListSupplier(delegate, loadBalancerClientFactory, (serviceInstance, healthCheckPath) -> webClient.get() - .uri(UriComponentsBuilder.fromUriString(getUri(serviceInstance, healthCheckPath)).build() - .toUri()) - .exchange().flatMap(clientResponse -> clientResponse.releaseBody() - .thenReturn(HttpStatus.OK.equals(clientResponse.statusCode())))); + .uri(UriComponentsBuilder.fromUriString(getUri(serviceInstance, healthCheckPath)).build().toUri()) + .exchange() + .flatMap(clientResponse -> clientResponse.releaseBody() + .thenReturn(HttpStatus.OK.equals(clientResponse.statusCode())))); } private ServiceInstanceListSupplier blockingHealthCheckServiceInstanceListSupplier(RestTemplate restTemplate, @@ -390,11 +390,12 @@ public final class ServiceInstanceListSupplierBuilder { ReactiveLoadBalancer.Factory loadBalancerClientFactory) { return new HealthCheckServiceInstanceListSupplier(delegate, loadBalancerClientFactory, (serviceInstance, healthCheckPath) -> Mono.defer(() -> { - URI uri = UriComponentsBuilder.fromUriString(getUri(serviceInstance, healthCheckPath)).build() - .toUri(); + URI uri = UriComponentsBuilder.fromUriString(getUri(serviceInstance, healthCheckPath)) + .build() + .toUri(); try { return Mono - .just(HttpStatus.OK.equals(restTemplate.getForEntity(uri, Void.class).getStatusCode())); + .just(HttpStatus.OK.equals(restTemplate.getForEntity(uri, Void.class).getStatusCode())); } catch (Exception ignored) { return Mono.just(false); @@ -406,11 +407,12 @@ public final class ServiceInstanceListSupplierBuilder { ServiceInstanceListSupplier delegate, LoadBalancerClientFactory loadBalancerClientFactory) { return new HealthCheckServiceInstanceListSupplier(delegate, loadBalancerClientFactory, (serviceInstance, healthCheckPath) -> Mono.defer(() -> { - URI uri = UriComponentsBuilder.fromUriString(getUri(serviceInstance, healthCheckPath)).build() - .toUri(); + URI uri = UriComponentsBuilder.fromUriString(getUri(serviceInstance, healthCheckPath)) + .build() + .toUri(); try { return Mono.just(HttpStatus.OK - .equals(restClient.get().uri(uri).retrieve().toBodilessEntity().getStatusCode())); + .equals(restClient.get().uri(uri).retrieve().toBodilessEntity().getStatusCode())); } catch (Exception ignored) { return Mono.just(false); diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/WeightedServiceInstanceListSupplier.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/WeightedServiceInstanceListSupplier.java index 172038b5..093c7192 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/WeightedServiceInstanceListSupplier.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/WeightedServiceInstanceListSupplier.java @@ -65,7 +65,7 @@ public class WeightedServiceInstanceListSupplier extends DelegatingServiceInstan super(delegate); this.weightFunction = weightFunction; callGetWithRequestOnDelegates = loadBalancerClientFactory.getProperties(getServiceId()) - .isCallGetWithRequestOnDelegates(); + .isCallGetWithRequestOnDelegates(); } @Override diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/XForwardedHeadersTransformer.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/XForwardedHeadersTransformer.java index 0a41701b..31b19549 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/XForwardedHeadersTransformer.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/XForwardedHeadersTransformer.java @@ -45,7 +45,7 @@ public class XForwardedHeadersTransformer implements LoadBalancerClientRequestTr return request; } LoadBalancerProperties.XForwarded xForwarded = clientFactory.getProperties(instance.getServiceId()) - .getXForwarded(); + .getXForwarded(); if (xForwarded.isEnabled()) { HttpHeaders headers = request.headers(); String xForwardedHost = request.url().getHost(); diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/ZonePreferenceServiceInstanceListSupplier.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/ZonePreferenceServiceInstanceListSupplier.java index 8d11ca13..96b04a08 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/ZonePreferenceServiceInstanceListSupplier.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/ZonePreferenceServiceInstanceListSupplier.java @@ -59,7 +59,7 @@ public class ZonePreferenceServiceInstanceListSupplier extends DelegatingService super(delegate); this.zoneConfig = zoneConfig; callGetWithRequestOnDelegates = loadBalancerClientFactory.getProperties(getServiceId()) - .isCallGetWithRequestOnDelegates(); + .isCallGetWithRequestOnDelegates(); } @Override diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/stats/LoadBalancerTags.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/stats/LoadBalancerTags.java index d21672ce..81c6d769 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/stats/LoadBalancerTags.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/stats/LoadBalancerTags.java @@ -77,7 +77,7 @@ final class LoadBalancerTags { CompletionContext completionContext) { if (completionContext.getLoadBalancerRequest().getContext() instanceof RequestDataContext) { RequestData requestData = ((RequestDataContext) completionContext.getLoadBalancerRequest().getContext()) - .getClientRequest(); + .getClientRequest(); if (requestData != null) { return Tags.of(valueOrUnknown("method", requestData.getHttpMethod()), valueOrUnknown("uri", getPath(requestData)), valueOrUnknown("serviceId", getHost(requestData))); @@ -97,7 +97,7 @@ final class LoadBalancerTags { Tags tags = Tags.of(buildServiceInstanceTags(serviceInstance)).and(exception(completionContext.getThrowable())); if (completionContext.getLoadBalancerRequest().getContext() instanceof RequestDataContext) { RequestData requestData = ((RequestDataContext) completionContext.getLoadBalancerRequest().getContext()) - .getClientRequest(); + .getClientRequest(); if (requestData != null) { return tags.and(Tags.of(valueOrUnknown("method", requestData.getHttpMethod()), valueOrUnknown("uri", getPath(requestData)))); diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/stats/MicrometerStatsLoadBalancerLifecycle.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/stats/MicrometerStatsLoadBalancerLifecycle.java index fe7daf0e..ca67721b 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/stats/MicrometerStatsLoadBalancerLifecycle.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/stats/MicrometerStatsLoadBalancerLifecycle.java @@ -76,7 +76,8 @@ public class MicrometerStatsLoadBalancerLifecycle implements LoadBalancerLifecyc AtomicLong activeRequestsCounter = activeRequestsPerInstance.computeIfAbsent(serviceInstance, instance -> { AtomicLong createdCounter = new AtomicLong(); Gauge.builder("loadbalancer.requests.active", () -> createdCounter) - .tags(buildServiceInstanceTags(serviceInstance)).register(meterRegistry); + .tags(buildServiceInstanceTags(serviceInstance)) + .register(meterRegistry); return createdCounter; }); activeRequestsCounter.incrementAndGet(); @@ -86,8 +87,10 @@ public class MicrometerStatsLoadBalancerLifecycle implements LoadBalancerLifecyc public void onComplete(CompletionContext completionContext) { long requestFinishedTimestamp = System.nanoTime(); if (CompletionContext.Status.DISCARD.equals(completionContext.status())) { - Counter.builder("loadbalancer.requests.discard").tags(buildDiscardedRequestTags(completionContext)) - .register(meterRegistry).increment(); + Counter.builder("loadbalancer.requests.discard") + .tags(buildDiscardedRequestTags(completionContext)) + .register(meterRegistry) + .increment(); return; } ServiceInstance serviceInstance = completionContext.getLoadBalancerResponse().getServer(); @@ -98,18 +101,20 @@ public class MicrometerStatsLoadBalancerLifecycle implements LoadBalancerLifecyc Object loadBalancerRequestContext = completionContext.getLoadBalancerRequest().getContext(); if (requestHasBeenTimed(loadBalancerRequestContext)) { if (CompletionContext.Status.FAILED.equals(completionContext.status())) { - Timer.builder("loadbalancer.requests.failed").tags(buildFailedRequestTags(completionContext)) - .register(meterRegistry) - .record(requestFinishedTimestamp - - ((TimedRequestContext) loadBalancerRequestContext).getRequestStartTime(), - TimeUnit.NANOSECONDS); - return; - } - Timer.builder("loadbalancer.requests.success").tags(buildSuccessRequestTags(completionContext)) + Timer.builder("loadbalancer.requests.failed") + .tags(buildFailedRequestTags(completionContext)) .register(meterRegistry) .record(requestFinishedTimestamp - ((TimedRequestContext) loadBalancerRequestContext).getRequestStartTime(), TimeUnit.NANOSECONDS); + return; + } + Timer.builder("loadbalancer.requests.success") + .tags(buildSuccessRequestTags(completionContext)) + .register(meterRegistry) + .record(requestFinishedTimestamp + - ((TimedRequestContext) loadBalancerRequestContext).getRequestStartTime(), + TimeUnit.NANOSECONDS); } } diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/support/LoadBalancerClientFactory.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/support/LoadBalancerClientFactory.java index f871cee3..68909e35 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/support/LoadBalancerClientFactory.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/support/LoadBalancerClientFactory.java @@ -102,9 +102,9 @@ public class LoadBalancerClientFactory extends NamedContextFactory applicationContextInitializers) { Map> convertedInitializers = new HashMap<>(); applicationContextInitializers.keySet() - .forEach(contextId -> convertedInitializers.put(contextId, - (ApplicationContextInitializer) applicationContextInitializers - .get(contextId))); + .forEach(contextId -> convertedInitializers.put(contextId, + (ApplicationContextInitializer) applicationContextInitializers + .get(contextId))); return new LoadBalancerClientFactory(properties, convertedInitializers); } diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfigurationTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfigurationTests.java index b455d858..f9e4826c 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfigurationTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfigurationTests.java @@ -58,20 +58,20 @@ import static org.assertj.core.api.BDDAssertions.then; class LoadBalancerClientConfigurationTests { ApplicationContextRunner reactiveDiscoveryClientRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(ReactiveCompositeDiscoveryClientAutoConfiguration.class, - LoadBalancerCacheAutoConfiguration.class, LoadBalancerAutoConfiguration.class, - LoadBalancerClientConfiguration.class)); + .withConfiguration(AutoConfigurations.of(ReactiveCompositeDiscoveryClientAutoConfiguration.class, + LoadBalancerCacheAutoConfiguration.class, LoadBalancerAutoConfiguration.class, + LoadBalancerClientConfiguration.class)); ApplicationContextRunner blockingDiscoveryClientRunner = new ApplicationContextRunner() - .withClassLoader(new FilteredClassLoader(RetryTemplate.class)) - .withConfiguration(AutoConfigurations.of(CompositeDiscoveryClientAutoConfiguration.class, - LoadBalancerCacheAutoConfiguration.class, LoadBalancerAutoConfiguration.class, - LoadBalancerClientConfiguration.class)); + .withClassLoader(new FilteredClassLoader(RetryTemplate.class)) + .withConfiguration(AutoConfigurations.of(CompositeDiscoveryClientAutoConfiguration.class, + LoadBalancerCacheAutoConfiguration.class, LoadBalancerAutoConfiguration.class, + LoadBalancerClientConfiguration.class)); ApplicationContextRunner blockingDiscoveryClientRunnerWithRetry = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(CompositeDiscoveryClientAutoConfiguration.class, - LoadBalancerCacheAutoConfiguration.class, LoadBalancerAutoConfiguration.class, - LoadBalancerClientConfiguration.class)); + .withConfiguration(AutoConfigurations.of(CompositeDiscoveryClientAutoConfiguration.class, + LoadBalancerCacheAutoConfiguration.class, LoadBalancerAutoConfiguration.class, + LoadBalancerClientConfiguration.class)); @Test void shouldInstantiateDefaultServiceInstanceListSupplierWhenConfigurationsPropertyNotSet() { @@ -79,77 +79,75 @@ class LoadBalancerClientConfigurationTests { ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); then(supplier).isInstanceOf(CachingServiceInstanceListSupplier.class); then(((DelegatingServiceInstanceListSupplier) supplier).getDelegate()) - .isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); + .isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); }); } @Test void shouldInstantiateDefaultServiceInstanceListSupplier() { reactiveDiscoveryClientRunner.withPropertyValues("spring.cloud.loadbalancer.configurations=default") - .run(context -> { - ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); - then(supplier).isInstanceOf(CachingServiceInstanceListSupplier.class); - then(((DelegatingServiceInstanceListSupplier) supplier).getDelegate()) - .isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); - }); + .run(context -> { + ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); + then(supplier).isInstanceOf(CachingServiceInstanceListSupplier.class); + then(((DelegatingServiceInstanceListSupplier) supplier).getDelegate()) + .isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); + }); } @Test void shouldInstantiateZonePreferenceServiceInstanceListSupplier() { reactiveDiscoveryClientRunner.withPropertyValues("spring.cloud.loadbalancer.configurations=zone-preference") - .run(context -> { - ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); - then(supplier).isInstanceOf(ZonePreferenceServiceInstanceListSupplier.class); - ServiceInstanceListSupplier delegate = ((DelegatingServiceInstanceListSupplier) supplier) - .getDelegate(); - then(delegate).isInstanceOf(CachingServiceInstanceListSupplier.class); - ServiceInstanceListSupplier secondDelegate = ((DelegatingServiceInstanceListSupplier) delegate) - .getDelegate(); - then(secondDelegate).isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); - }); + .run(context -> { + ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); + then(supplier).isInstanceOf(ZonePreferenceServiceInstanceListSupplier.class); + ServiceInstanceListSupplier delegate = ((DelegatingServiceInstanceListSupplier) supplier).getDelegate(); + then(delegate).isInstanceOf(CachingServiceInstanceListSupplier.class); + ServiceInstanceListSupplier secondDelegate = ((DelegatingServiceInstanceListSupplier) delegate) + .getDelegate(); + then(secondDelegate).isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); + }); } @Test void shouldInstantiateHealthCheckServiceInstanceListSupplier() { reactiveDiscoveryClientRunner.withUserConfiguration(TestConfig.class) - .withPropertyValues("spring.cloud.loadbalancer.configurations=health-check").run(context -> { - ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); - then(supplier).isInstanceOf(HealthCheckServiceInstanceListSupplier.class); - ServiceInstanceListSupplier delegate = ((DelegatingServiceInstanceListSupplier) supplier) - .getDelegate(); - then(delegate).isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); - }); + .withPropertyValues("spring.cloud.loadbalancer.configurations=health-check") + .run(context -> { + ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); + then(supplier).isInstanceOf(HealthCheckServiceInstanceListSupplier.class); + ServiceInstanceListSupplier delegate = ((DelegatingServiceInstanceListSupplier) supplier).getDelegate(); + then(delegate).isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); + }); } @Test void shouldInstantiateWeightedServiceInstanceListSupplier() { reactiveDiscoveryClientRunner.withUserConfiguration(TestConfig.class) - .withPropertyValues("spring.cloud.loadbalancer.configurations=weighted").run(context -> { - ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); - then(supplier).isInstanceOf(WeightedServiceInstanceListSupplier.class); - ServiceInstanceListSupplier delegate = ((DelegatingServiceInstanceListSupplier) supplier) - .getDelegate(); - then(delegate).isInstanceOf(CachingServiceInstanceListSupplier.class); - ServiceInstanceListSupplier secondDelegate = ((DelegatingServiceInstanceListSupplier) delegate) - .getDelegate(); - then(secondDelegate).isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); - }); + .withPropertyValues("spring.cloud.loadbalancer.configurations=weighted") + .run(context -> { + ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); + then(supplier).isInstanceOf(WeightedServiceInstanceListSupplier.class); + ServiceInstanceListSupplier delegate = ((DelegatingServiceInstanceListSupplier) supplier).getDelegate(); + then(delegate).isInstanceOf(CachingServiceInstanceListSupplier.class); + ServiceInstanceListSupplier secondDelegate = ((DelegatingServiceInstanceListSupplier) delegate) + .getDelegate(); + then(secondDelegate).isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); + }); } @Test void shouldInstantiateRequestBasedStickySessionServiceInstanceListSupplierTests() { reactiveDiscoveryClientRunner.withUserConfiguration(TestConfig.class) - .withPropertyValues("spring.cloud.loadbalancer.configurations=request-based-sticky-session") - .run(context -> { - ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); - then(supplier).isInstanceOf(RequestBasedStickySessionServiceInstanceListSupplier.class); - ServiceInstanceListSupplier delegate = ((DelegatingServiceInstanceListSupplier) supplier) - .getDelegate(); - then(delegate).isInstanceOf(CachingServiceInstanceListSupplier.class); - ServiceInstanceListSupplier secondDelegate = ((DelegatingServiceInstanceListSupplier) delegate) - .getDelegate(); - then(secondDelegate).isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); - }); + .withPropertyValues("spring.cloud.loadbalancer.configurations=request-based-sticky-session") + .run(context -> { + ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); + then(supplier).isInstanceOf(RequestBasedStickySessionServiceInstanceListSupplier.class); + ServiceInstanceListSupplier delegate = ((DelegatingServiceInstanceListSupplier) supplier).getDelegate(); + then(delegate).isInstanceOf(CachingServiceInstanceListSupplier.class); + ServiceInstanceListSupplier secondDelegate = ((DelegatingServiceInstanceListSupplier) delegate) + .getDelegate(); + then(secondDelegate).isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); + }); } @Test @@ -158,19 +156,19 @@ class LoadBalancerClientConfigurationTests { ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); then(supplier).isInstanceOf(CachingServiceInstanceListSupplier.class); then(((DelegatingServiceInstanceListSupplier) supplier).getDelegate()) - .isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); + .isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); }); } @Test void shouldInstantiateDefaultBlockingServiceInstanceListSupplier() { blockingDiscoveryClientRunner.withPropertyValues("spring.cloud.loadbalancer.configurations=default") - .run(context -> { - ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); - then(supplier).isInstanceOf(CachingServiceInstanceListSupplier.class); - then(((DelegatingServiceInstanceListSupplier) supplier).getDelegate()) - .isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); - }); + .run(context -> { + ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); + then(supplier).isInstanceOf(CachingServiceInstanceListSupplier.class); + then(((DelegatingServiceInstanceListSupplier) supplier).getDelegate()) + .isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); + }); } @Test @@ -179,21 +177,21 @@ class LoadBalancerClientConfigurationTests { ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); then(supplier).isInstanceOf(RetryAwareServiceInstanceListSupplier.class); then(((DelegatingServiceInstanceListSupplier) supplier).getDelegate()) - .isInstanceOf(CachingServiceInstanceListSupplier.class); + .isInstanceOf(CachingServiceInstanceListSupplier.class); then(((DelegatingServiceInstanceListSupplier) ((DelegatingServiceInstanceListSupplier) supplier) - .getDelegate()).getDelegate()).isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); + .getDelegate()).getDelegate()).isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); }); } @Test void shouldNotWrapWithRetryAwareSupplierWhenRetryTemplateOnClasspath() { blockingDiscoveryClientRunner.withPropertyValues("spring.cloud.loadbalancer.retry.avoidPreviousInstance=false") - .run(context -> { - ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); - then(supplier).isInstanceOf(CachingServiceInstanceListSupplier.class); - then(((DelegatingServiceInstanceListSupplier) supplier).getDelegate()) - .isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); - }); + .run(context -> { + ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); + then(supplier).isInstanceOf(CachingServiceInstanceListSupplier.class); + then(((DelegatingServiceInstanceListSupplier) supplier).getDelegate()) + .isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); + }); } @@ -201,26 +199,26 @@ class LoadBalancerClientConfigurationTests { @MethodSource("blockingConfigurations") void shouldInstantiateBlockingHealthCheckServiceInstanceListSupplier(Class configurationClass) { blockingDiscoveryClientRunner.withUserConfiguration(configurationClass) - .withPropertyValues("spring.cloud.loadbalancer.configurations=health-check").run(context -> { - ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); - then(supplier).isInstanceOf(HealthCheckServiceInstanceListSupplier.class); - then(((DelegatingServiceInstanceListSupplier) supplier).getDelegate()) - .isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); - }); + .withPropertyValues("spring.cloud.loadbalancer.configurations=health-check") + .run(context -> { + ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); + then(supplier).isInstanceOf(HealthCheckServiceInstanceListSupplier.class); + then(((DelegatingServiceInstanceListSupplier) supplier).getDelegate()) + .isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); + }); } @Test void shouldInstantiateBlockingWeightedServiceInstanceListSupplier() { blockingDiscoveryClientRunner.withPropertyValues("spring.cloud.loadbalancer.configurations=weighted") - .run(context -> { - ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); - then(supplier).isInstanceOf(WeightedServiceInstanceListSupplier.class); - ServiceInstanceListSupplier delegate = ((DelegatingServiceInstanceListSupplier) supplier) - .getDelegate(); - then(delegate).isInstanceOf(CachingServiceInstanceListSupplier.class); - then(((DelegatingServiceInstanceListSupplier) delegate).getDelegate()) - .isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); - }); + .run(context -> { + ServiceInstanceListSupplier supplier = context.getBean(ServiceInstanceListSupplier.class); + then(supplier).isInstanceOf(WeightedServiceInstanceListSupplier.class); + ServiceInstanceListSupplier delegate = ((DelegatingServiceInstanceListSupplier) supplier).getDelegate(); + then(delegate).isInstanceOf(CachingServiceInstanceListSupplier.class); + then(((DelegatingServiceInstanceListSupplier) delegate).getDelegate()) + .isInstanceOf(DiscoveryClientServiceInstanceListSupplier.class); + }); } private static Stream blockingConfigurations() { diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/aot/LoadBalancerChildContextInitializerTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/aot/LoadBalancerChildContextInitializerTests.java index 8c944ffd..83965d2b 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/aot/LoadBalancerChildContextInitializerTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/aot/LoadBalancerChildContextInitializerTests.java @@ -80,9 +80,9 @@ public class LoadBalancerChildContextInitializerTests { void shouldStartLBChildContextsFromAotContributions(CapturedOutput output) { WebApplicationContextRunner contextRunner = new WebApplicationContextRunner( AnnotationConfigServletWebApplicationContext::new) - .withConfiguration(AutoConfigurations.of(ServletWebServerFactoryAutoConfiguration.class, - LoadBalancerAutoConfiguration.class)) - .withConfiguration(UserConfigurations.of(TestLoadBalancerConfiguration.class)); + .withConfiguration(AutoConfigurations.of(ServletWebServerFactoryAutoConfiguration.class, + LoadBalancerAutoConfiguration.class)) + .withConfiguration(UserConfigurations.of(TestLoadBalancerConfiguration.class)); contextRunner.withPropertyValues("spring.cloud.loadbalancer.eager-load.clients[0]=test1").prepare(context -> { TestGenerationContext generationContext = new TestGenerationContext(TestTarget.class); ClassName className = new ApplicationContextAotGenerator().processAheadOfTime( @@ -92,14 +92,14 @@ public class LoadBalancerChildContextInitializerTests { compiler.with(generationContext).compile(compiled -> { ServletWebServerApplicationContext freshApplicationContext = new ServletWebServerApplicationContext(); ApplicationContextInitializer initializer = compiled - .getInstance(ApplicationContextInitializer.class, className.toString()); + .getInstance(ApplicationContextInitializer.class, className.toString()); initializer.initialize(freshApplicationContext); assertThat(output).contains("Refreshing LoadBalancerClientFactory-test1", "Refreshing LoadBalancerClientFactory-test-2", "Refreshing LoadBalancerClientFactory-test_3"); assertThat(output).doesNotContain("Instantiating bean from Test 2 custom config", "Instantiating bean from default custom config"); TestPropertyValues.of(AotDetector.AOT_ENABLED + "=true") - .applyToSystemProperties(freshApplicationContext::refresh); + .applyToSystemProperties(freshApplicationContext::refresh); WebClient webClient = freshApplicationContext.getBean(WebClient.class); webClient.get().uri(URI.create("http://test-2/")).retrieve().bodyToMono(String.class).subscribe(); assertThat(output).contains("Instantiating bean from Test 2 custom config", diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/blocking/client/BlockingLoadBalancerClientTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/blocking/client/BlockingLoadBalancerClientTests.java index 8d0e623c..2d1d9b13 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/blocking/client/BlockingLoadBalancerClientTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/blocking/client/BlockingLoadBalancerClientTests.java @@ -158,7 +158,8 @@ class BlockingLoadBalancerClientTests { (LoadBalancerRequest) instance -> { assertThat(instance.getHost()).isEqualTo("test.example"); return "result"; - })).doesNotThrowAnyException(); + })) + .doesNotThrowAnyException(); } @Test @@ -172,20 +173,20 @@ class BlockingLoadBalancerClientTests { }); Collection> lifecycleLogRequests = ((TestLoadBalancerLifecycle) factory - .getInstances("myservice", LoadBalancerLifecycle.class).get("loadBalancerLifecycle")).getStartLog() - .values(); + .getInstances("myservice", LoadBalancerLifecycle.class) + .get("loadBalancerLifecycle")).getStartLog().values(); Collection> lifecycleLogStartedRequests = ((TestLoadBalancerLifecycle) factory - .getInstances("myservice", LoadBalancerLifecycle.class).get("loadBalancerLifecycle")) - .getStartRequestLog().values(); + .getInstances("myservice", LoadBalancerLifecycle.class) + .get("loadBalancerLifecycle")).getStartRequestLog().values(); Collection> anotherLifecycleLogRequests = ((AnotherLoadBalancerLifecycle) factory - .getInstances("myservice", LoadBalancerLifecycle.class).get("anotherLoadBalancerLifecycle")) - .getCompleteLog().values(); + .getInstances("myservice", LoadBalancerLifecycle.class) + .get("anotherLoadBalancerLifecycle")).getCompleteLog().values(); assertThat(actualResult).isEqualTo(result); assertThat(lifecycleLogRequests).extracting(request -> ((DefaultRequestContext) request.getContext()).getHint()) - .contains(callbackTestHint); + .contains(callbackTestHint); assertThat(lifecycleLogStartedRequests) - .extracting(request -> ((DefaultRequestContext) request.getContext()).getHint()) - .contains(callbackTestHint); + .extracting(request -> ((DefaultRequestContext) request.getContext()).getHint()) + .contains(callbackTestHint); assertThat(anotherLifecycleLogRequests).extracting(CompletionContext::getClientResponse).contains(result); } diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/cache/DefaultLoadBalancerCacheManagerTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/cache/DefaultLoadBalancerCacheManagerTests.java index c852f764..bf75d0cb 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/cache/DefaultLoadBalancerCacheManagerTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/cache/DefaultLoadBalancerCacheManagerTests.java @@ -45,7 +45,7 @@ class DefaultLoadBalancerCacheManagerTests { assertThat(cacheManager.getCacheNames()).hasSize(1); assertThat(cacheManager.getCache(SERVICE_INSTANCE_CACHE_NAME)).isInstanceOf(DefaultLoadBalancerCache.class); assertThat(((DefaultLoadBalancerCache) cacheManager.getCache(SERVICE_INSTANCE_CACHE_NAME)).getEvictMs()) - .isEqualTo(300000); + .isEqualTo(300000); } @Test @@ -53,7 +53,7 @@ class DefaultLoadBalancerCacheManagerTests { LoadBalancerCacheProperties properties = new LoadBalancerCacheProperties(); assertThatCode(() -> new DefaultLoadBalancerCacheManager(properties, "test", "test")) - .doesNotThrowAnyException(); + .doesNotThrowAnyException(); } @Test diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/cache/DefaultLoadBalancerCacheTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/cache/DefaultLoadBalancerCacheTests.java index 5f844c4c..d6a234f5 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/cache/DefaultLoadBalancerCacheTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/cache/DefaultLoadBalancerCacheTests.java @@ -48,7 +48,7 @@ class DefaultLoadBalancerCacheTests { DefaultLoadBalancerCache cache = new DefaultLoadBalancerCache("test", false); assertThatIllegalArgumentException().isThrownBy(() -> cache.put("testKey", null)) - .withMessageContaining("Cache 'test' is configured to not allow null values but null was provided"); + .withMessageContaining("Cache 'test' is configured to not allow null values but null was provided"); } @Test diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/config/BlockingLoadBalancerClientAutoConfigurationTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/config/BlockingLoadBalancerClientAutoConfigurationTests.java index 9f02fd7d..2ff31d0c 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/config/BlockingLoadBalancerClientAutoConfigurationTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/config/BlockingLoadBalancerClientAutoConfigurationTests.java @@ -36,8 +36,8 @@ import static org.assertj.core.api.Assertions.assertThat; class BlockingLoadBalancerClientAutoConfigurationTests { private ApplicationContextRunner applicationContextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(LoadBalancerAutoConfiguration.class, - BlockingLoadBalancerClientAutoConfiguration.class)); + .withConfiguration(AutoConfigurations.of(LoadBalancerAutoConfiguration.class, + BlockingLoadBalancerClientAutoConfiguration.class)); @Test void beansCreatedNormally() { @@ -50,7 +50,7 @@ class BlockingLoadBalancerClientAutoConfigurationTests { @Test public void worksWithoutSpringWeb() { applicationContextRunner.withClassLoader(new FilteredClassLoader(RestTemplate.class, RestClient.class)) - .run(context -> assertThat(context).doesNotHaveBean(BlockingLoadBalancerClient.class)); + .run(context -> assertThat(context).doesNotHaveBean(BlockingLoadBalancerClient.class)); } @Test diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfigurationTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfigurationTests.java index 981af732..b83418da 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfigurationTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfigurationTests.java @@ -49,20 +49,20 @@ class LoadBalancerCacheAutoConfigurationTests { assertThat(((CacheManager) context.getBean("caffeineLoadBalancerCacheManager")).getCacheNames()).hasSize(1); assertThat(context.getBean("caffeineLoadBalancerCacheManager")).isInstanceOf(CaffeineCacheManager.class); assertThat(((CacheManager) context.getBean("caffeineLoadBalancerCacheManager")).getCacheNames()) - .contains("CachingServiceInstanceListSupplierCache"); + .contains("CachingServiceInstanceListSupplierCache"); }); } @Test void caffeineLoadBalancerCacheShouldNotOverrideCacheTypeSetting() { ApplicationContextRunner contextRunner = baseApplicationRunner().withUserConfiguration(TestConfiguration.class) - .withPropertyValues("spring.cache.type=none"); + .withPropertyValues("spring.cache.type=none"); contextRunner.run(context -> { assertThat(context.getBeansOfType(CacheManager.class)).hasSize(2); assertThat(context.getBean("caffeineLoadBalancerCacheManager")).isInstanceOf(CaffeineCacheManager.class); assertThat(context.getBeansOfType(CacheManager.class).get("cacheManager")) - .isInstanceOf(NoOpCacheManager.class); + .isInstanceOf(NoOpCacheManager.class); }); } @@ -77,7 +77,7 @@ class LoadBalancerCacheAutoConfigurationTests { assertThat(((CacheManager) context.getBean("cacheManager")).getCacheNames()).isEmpty(); assertThat(((CacheManager) context.getBean("caffeineLoadBalancerCacheManager")).getCacheNames()).hasSize(1); assertThat(((CacheManager) context.getBean("caffeineLoadBalancerCacheManager")).getCacheNames()) - .contains("CachingServiceInstanceListSupplierCache"); + .contains("CachingServiceInstanceListSupplierCache"); }); } @@ -85,8 +85,8 @@ class LoadBalancerCacheAutoConfigurationTests { @Test void shouldNotInstantiateCaffeineLoadBalancerCacheIfDisabled() { ApplicationContextRunner contextRunner = baseApplicationRunner() - .withPropertyValues("spring.cloud.loadbalancer.cache.enabled=false") - .withUserConfiguration(TestConfiguration.class); + .withPropertyValues("spring.cloud.loadbalancer.cache.enabled=false") + .withUserConfiguration(TestConfiguration.class); contextRunner.run(context -> { assertThat(context.getBeansOfType(CacheManager.class)).hasSize(1); @@ -101,13 +101,13 @@ class LoadBalancerCacheAutoConfigurationTests { contextRunner.run(context -> { assertThat(context.getBean(LoadBalancerCacheAutoConfiguration.LoadBalancerCaffeineWarnLogger.class)) - .isNotNull(); + .isNotNull(); assertThat(context.getBeansOfType(CacheManager.class)).hasSize(1); assertThat(((CacheManager) context.getBean("defaultLoadBalancerCacheManager")).getCacheNames()).hasSize(1); assertThat(context.getBean("defaultLoadBalancerCacheManager")) - .isInstanceOf(DefaultLoadBalancerCacheManager.class); + .isInstanceOf(DefaultLoadBalancerCacheManager.class); assertThat(((CacheManager) context.getBean("defaultLoadBalancerCacheManager")).getCacheNames()) - .contains("CachingServiceInstanceListSupplierCache"); + .contains("CachingServiceInstanceListSupplierCache"); }); } @@ -117,27 +117,27 @@ class LoadBalancerCacheAutoConfigurationTests { contextRunner.run(context -> { assertThat(context.getBean(LoadBalancerCacheAutoConfiguration.LoadBalancerCaffeineWarnLogger.class)) - .isNotNull(); + .isNotNull(); assertThat(context.getBeansOfType(CacheManager.class)).hasSize(1); assertThat(((CacheManager) context.getBean("defaultLoadBalancerCacheManager")).getCacheNames()).hasSize(1); assertThat(context.getBean("defaultLoadBalancerCacheManager")) - .isInstanceOf(DefaultLoadBalancerCacheManager.class); + .isInstanceOf(DefaultLoadBalancerCacheManager.class); assertThat(((CacheManager) context.getBean("defaultLoadBalancerCacheManager")).getCacheNames()) - .contains("CachingServiceInstanceListSupplierCache"); + .contains("CachingServiceInstanceListSupplierCache"); }); } @Test void defaultLoadBalancerCacheShouldNotOverrideCacheTypeSetting() { ApplicationContextRunner contextRunner = noCaffeineRunner().withUserConfiguration(TestConfiguration.class) - .withPropertyValues("spring.cache.type=none"); + .withPropertyValues("spring.cache.type=none"); contextRunner.run(context -> { assertThat(context.getBeansOfType(CacheManager.class)).hasSize(2); assertThat(context.getBean("defaultLoadBalancerCacheManager")) - .isInstanceOf(DefaultLoadBalancerCacheManager.class); + .isInstanceOf(DefaultLoadBalancerCacheManager.class); assertThat(context.getBeansOfType(CacheManager.class).get("cacheManager")) - .isInstanceOf(NoOpCacheManager.class); + .isInstanceOf(NoOpCacheManager.class); }); } @@ -152,7 +152,7 @@ class LoadBalancerCacheAutoConfigurationTests { assertThat(((CacheManager) context.getBean("cacheManager")).getCacheNames()).isEmpty(); assertThat(((CacheManager) context.getBean("defaultLoadBalancerCacheManager")).getCacheNames()).hasSize(1); assertThat(((CacheManager) context.getBean("defaultLoadBalancerCacheManager")).getCacheNames()) - .contains("CachingServiceInstanceListSupplierCache"); + .contains("CachingServiceInstanceListSupplierCache"); }); } @@ -160,8 +160,8 @@ class LoadBalancerCacheAutoConfigurationTests { @Test void shouldNotInstantiateDefaultLoadBalancerCacheIfDisabled() { ApplicationContextRunner contextRunner = noCaffeineRunner() - .withPropertyValues("spring.cloud.loadbalancer.cache.enabled=false") - .withUserConfiguration(TestConfiguration.class); + .withPropertyValues("spring.cloud.loadbalancer.cache.enabled=false") + .withUserConfiguration(TestConfiguration.class); contextRunner.run(context -> { assertThat(context.getBeansOfType(CacheManager.class)).hasSize(1); @@ -173,11 +173,12 @@ class LoadBalancerCacheAutoConfigurationTests { @Test void shouldNotInstantiateDefaultLoadBalancerCacheIfLoadBalancingDisabled() { noCaffeineRunner().withPropertyValues("spring.cloud.loadbalancer.enabled=false") - .withUserConfiguration(TestConfiguration.class).run(context -> { - assertThat(context.getBeansOfType(CacheManager.class)).hasSize(1); - assertThat(context.getBean("cacheManager")).isInstanceOf(ConcurrentMapCacheManager.class); - assertThat(((CacheManager) context.getBean("cacheManager")).getCacheNames()).isEmpty(); - }); + .withUserConfiguration(TestConfiguration.class) + .run(context -> { + assertThat(context.getBeansOfType(CacheManager.class)).hasSize(1); + assertThat(context.getBean("cacheManager")).isInstanceOf(ConcurrentMapCacheManager.class); + assertThat(((CacheManager) context.getBean("cacheManager")).getCacheNames()).isEmpty(); + }); } private ApplicationContextRunner baseApplicationRunner() { diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/CachingServiceInstanceListSupplierTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/CachingServiceInstanceListSupplierTests.java index e2fde345..60a709da 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/CachingServiceInstanceListSupplierTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/CachingServiceInstanceListSupplierTests.java @@ -132,7 +132,7 @@ class CachingServiceInstanceListSupplierTests { firstDelegate, loadBalancerProperties, webClientBuilder.build()); delegate.afterPropertiesSet(); ObjectProvider cacheManagerProvider = context - .getBeanProvider(LoadBalancerCacheManager.class); + .getBeanProvider(LoadBalancerCacheManager.class); return new CachingServiceInstanceListSupplier(delegate, cacheManagerProvider.getIfAvailable()); } diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplierTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplierTests.java index 6fb2287c..5f5674d8 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplierTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/DiscoveryClientServiceInstanceListSupplierTests.java @@ -69,38 +69,44 @@ class DiscoveryClientServiceInstanceListSupplierTests { @Test void shouldReturnRetrievedInstances() { when(reactiveDiscoveryClient.getInstances(SERVICE_ID)) - .thenReturn(Flux.just(instance("1host", false), instance("2host-secure", true))); + .thenReturn(Flux.just(instance("1host", false), instance("2host-secure", true))); StepVerifier.withVirtualTime(() -> { supplier = new DiscoveryClientServiceInstanceListSupplier(reactiveDiscoveryClient, environment); return supplier.get(); - }).expectSubscription().expectNext(Lists.list(instance("1host", false), instance("2host-secure", true))) - .thenCancel().verify(VERIFICATION_TIMEOUT); + }) + .expectSubscription() + .expectNext(Lists.list(instance("1host", false), instance("2host-secure", true))) + .thenCancel() + .verify(VERIFICATION_TIMEOUT); } @Test void shouldUpdateReturnRetrievedInstances() { when(reactiveDiscoveryClient.getInstances(SERVICE_ID)) - .thenReturn(Flux.just(instance("1host", false), instance("2host-secure", true))); + .thenReturn(Flux.just(instance("1host", false), instance("2host-secure", true))); supplier = new DiscoveryClientServiceInstanceListSupplier(reactiveDiscoveryClient, environment); - StepVerifier.withVirtualTime(() -> supplier.get()).expectSubscription() - .expectNext(Lists.list(instance("1host", false), instance("2host-secure", true))).thenCancel() - .verify(VERIFICATION_TIMEOUT); + StepVerifier.withVirtualTime(() -> supplier.get()) + .expectSubscription() + .expectNext(Lists.list(instance("1host", false), instance("2host-secure", true))) + .thenCancel() + .verify(VERIFICATION_TIMEOUT); - when(reactiveDiscoveryClient.getInstances(SERVICE_ID)).thenReturn( - Flux.just(instance("1host", false), instance("2host-secure", true), instance("3host", false))); + when(reactiveDiscoveryClient.getInstances(SERVICE_ID)) + .thenReturn(Flux.just(instance("1host", false), instance("2host-secure", true), instance("3host", false))); - StepVerifier.withVirtualTime(() -> supplier.get()).expectSubscription() - .expectNext( - Lists.list(instance("1host", false), instance("2host-secure", true), instance("3host", false))) - .thenCancel().verify(VERIFICATION_TIMEOUT); + StepVerifier.withVirtualTime(() -> supplier.get()) + .expectSubscription() + .expectNext(Lists.list(instance("1host", false), instance("2host-secure", true), instance("3host", false))) + .thenCancel() + .verify(VERIFICATION_TIMEOUT); } @Test void shouldReturnEmptyInstancesListOnException() { when(reactiveDiscoveryClient.getInstances(SERVICE_ID)) - .thenReturn(Flux.error(new RuntimeException("Exception"))); + .thenReturn(Flux.error(new RuntimeException("Exception"))); StepVerifier.withVirtualTime(() -> { supplier = new DiscoveryClientServiceInstanceListSupplier(reactiveDiscoveryClient, environment); @@ -113,36 +119,43 @@ class DiscoveryClientServiceInstanceListSupplierTests { environment.setProperty(SERVICE_DISCOVERY_TIMEOUT, "100ms"); when(reactiveDiscoveryClient.getInstances(SERVICE_ID)).thenReturn(Flux.never()); StepVerifier.create(new DiscoveryClientServiceInstanceListSupplier(reactiveDiscoveryClient, environment).get()) - .expectSubscription().expectNext(Collections.emptyList()).thenCancel().verify(VERIFICATION_TIMEOUT); + .expectSubscription() + .expectNext(Collections.emptyList()) + .thenCancel() + .verify(VERIFICATION_TIMEOUT); } @Test void shouldReturnRetrievedInstancesBlockingClient() { StepVerifier.withVirtualTime(() -> { when(discoveryClient.getInstances(SERVICE_ID)) - .thenReturn(Lists.list(instance("1host", false), instance("2host-secure", true))); + .thenReturn(Lists.list(instance("1host", false), instance("2host-secure", true))); supplier = new DiscoveryClientServiceInstanceListSupplier(discoveryClient, environment); return supplier.get(); - }).expectSubscription().expectNext(Lists.list(instance("1host", false), instance("2host-secure", true))) - .thenCancel().verify(VERIFICATION_TIMEOUT); + }) + .expectSubscription() + .expectNext(Lists.list(instance("1host", false), instance("2host-secure", true))) + .thenCancel() + .verify(VERIFICATION_TIMEOUT); } @Test void shouldUpdateReturnRetrievedInstancesBlockingClient() { StepVerifier.withVirtualTime(() -> { when(discoveryClient.getInstances(SERVICE_ID)) - .thenReturn(Lists.list(instance("1host", false), instance("2host-secure", true))); + .thenReturn(Lists.list(instance("1host", false), instance("2host-secure", true))); supplier = new DiscoveryClientServiceInstanceListSupplier(discoveryClient, environment); supplier.get(); when(discoveryClient.getInstances(SERVICE_ID)).thenReturn( Lists.list(instance("1host", false), instance("2host-secure", true), instance("3host", false))); return supplier.get(); - }).expectSubscription() - .expectNext( - Lists.list(instance("1host", false), instance("2host-secure", true), instance("3host", false))) - .thenCancel().verify(VERIFICATION_TIMEOUT); + }) + .expectSubscription() + .expectNext(Lists.list(instance("1host", false), instance("2host-secure", true), instance("3host", false))) + .thenCancel() + .verify(VERIFICATION_TIMEOUT); } @Test @@ -162,7 +175,10 @@ class DiscoveryClientServiceInstanceListSupplierTests { when(discoveryClient.getInstances(SERVICE_ID)).thenAnswer(new AnswersWithDelay(200, new Returns( Lists.list(instance("1host", false), instance("2host-secure", true), instance("3host", false))))); StepVerifier.create(new DiscoveryClientServiceInstanceListSupplier(discoveryClient, environment).get()) - .expectSubscription().expectNext(Collections.emptyList()).thenCancel().verify(VERIFICATION_TIMEOUT); + .expectSubscription() + .expectNext(Collections.emptyList()) + .thenCancel() + .verify(VERIFICATION_TIMEOUT); } } diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/HealthCheckServiceInstanceListSupplierTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/HealthCheckServiceInstanceListSupplierTests.java index 9576d436..1507fbf1 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/HealthCheckServiceInstanceListSupplierTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/HealthCheckServiceInstanceListSupplierTests.java @@ -213,9 +213,13 @@ class HealthCheckServiceInstanceListSupplierTests { }; return listSupplier.get(); - }).expectSubscription().expectNoEvent(properties.getHealthCheck().getInitialDelay()) - .expectNext(Lists.list(serviceInstance1)).expectNoEvent(properties.getHealthCheck().getInterval()) - .thenCancel().verify(VERIFY_TIMEOUT); + }) + .expectSubscription() + .expectNoEvent(properties.getHealthCheck().getInitialDelay()) + .expectNext(Lists.list(serviceInstance1)) + .expectNoEvent(properties.getHealthCheck().getInterval()) + .thenCancel() + .verify(VERIFY_TIMEOUT); } @Test @@ -244,9 +248,14 @@ class HealthCheckServiceInstanceListSupplierTests { }; return listSupplier.get(); - }).expectSubscription().expectNoEvent(properties.getHealthCheck().getInitialDelay()) - .expectNext(Lists.list(serviceInstance1)).expectNext(Lists.list(serviceInstance1, serviceInstance2)) - .expectNoEvent(properties.getHealthCheck().getInterval()).thenCancel().verify(VERIFY_TIMEOUT); + }) + .expectSubscription() + .expectNoEvent(properties.getHealthCheck().getInitialDelay()) + .expectNext(Lists.list(serviceInstance1)) + .expectNext(Lists.list(serviceInstance1, serviceInstance2)) + .expectNoEvent(properties.getHealthCheck().getInterval()) + .thenCancel() + .verify(VERIFY_TIMEOUT); } @Test @@ -277,9 +286,13 @@ class HealthCheckServiceInstanceListSupplierTests { }; return listSupplier.get(); - }).expectSubscription().expectNoEvent(properties.getHealthCheck().getInitialDelay()) - .expectNext(Lists.list(serviceInstance1, serviceInstance2)) - .expectNoEvent(properties.getHealthCheck().getInterval()).thenCancel().verify(VERIFY_TIMEOUT); + }) + .expectSubscription() + .expectNoEvent(properties.getHealthCheck().getInitialDelay()) + .expectNext(Lists.list(serviceInstance1, serviceInstance2)) + .expectNoEvent(properties.getHealthCheck().getInterval()) + .thenCancel() + .verify(VERIFY_TIMEOUT); } @Test @@ -308,9 +321,13 @@ class HealthCheckServiceInstanceListSupplierTests { }; return listSupplier.get(); - }).expectSubscription().expectNoEvent(properties.getHealthCheck().getInitialDelay()) - .expectNext(Lists.list(serviceInstance1)).expectNoEvent(properties.getHealthCheck().getInterval()) - .thenCancel().verify(VERIFY_TIMEOUT); + }) + .expectSubscription() + .expectNoEvent(properties.getHealthCheck().getInitialDelay()) + .expectNext(Lists.list(serviceInstance1)) + .expectNoEvent(properties.getHealthCheck().getInterval()) + .thenCancel() + .verify(VERIFY_TIMEOUT); } @Test @@ -339,8 +356,13 @@ class HealthCheckServiceInstanceListSupplierTests { }; return listSupplier.get(); - }).expectSubscription().expectNoEvent(properties.getHealthCheck().getInitialDelay()).expectNext(Lists.list()) - .expectNoEvent(properties.getHealthCheck().getInterval()).thenCancel().verify(VERIFY_TIMEOUT); + }) + .expectSubscription() + .expectNoEvent(properties.getHealthCheck().getInitialDelay()) + .expectNext(Lists.list()) + .expectNoEvent(properties.getHealthCheck().getInterval()) + .thenCancel() + .verify(VERIFY_TIMEOUT); } @Test @@ -364,9 +386,13 @@ class HealthCheckServiceInstanceListSupplierTests { listSupplier.afterPropertiesSet(); return listSupplier.get(); - }).expectSubscription().expectNoEvent(properties.getHealthCheck().getInitialDelay()) - .expectNext(Lists.list(serviceInstance1)).expectNoEvent(properties.getHealthCheck().getInterval()) - .thenCancel().verify(VERIFY_TIMEOUT); + }) + .expectSubscription() + .expectNoEvent(properties.getHealthCheck().getInitialDelay()) + .expectNext(Lists.list(serviceInstance1)) + .expectNoEvent(properties.getHealthCheck().getInterval()) + .thenCancel() + .verify(VERIFY_TIMEOUT); } @Test @@ -395,10 +421,16 @@ class HealthCheckServiceInstanceListSupplierTests { }; return listSupplier.get(); - }).expectSubscription().expectNoEvent(properties.getHealthCheck().getInitialDelay()).expectNext(Lists.list()) - .expectNoEvent(properties.getHealthCheck().getInterval()).expectNext(Lists.list(serviceInstance1)) - .expectNoEvent(properties.getHealthCheck().getInterval()).expectNext(Lists.list(serviceInstance1)) - .thenCancel().verify(VERIFY_TIMEOUT); + }) + .expectSubscription() + .expectNoEvent(properties.getHealthCheck().getInitialDelay()) + .expectNext(Lists.list()) + .expectNoEvent(properties.getHealthCheck().getInterval()) + .expectNext(Lists.list(serviceInstance1)) + .expectNoEvent(properties.getHealthCheck().getInterval()) + .expectNext(Lists.list(serviceInstance1)) + .thenCancel() + .verify(VERIFY_TIMEOUT); } @Test @@ -424,11 +456,17 @@ class HealthCheckServiceInstanceListSupplierTests { }; return listSupplier.get(); - }).expectSubscription().expectNoEvent(properties.getHealthCheck().getInitialDelay()) - .expectNoEvent(properties.getHealthCheck().getInterval()).expectNext(Lists.list()) - .expectNoEvent(properties.getHealthCheck().getInterval()).expectNext(Lists.list(serviceInstance1)) - .expectNoEvent(properties.getHealthCheck().getInterval()).expectNext(Lists.list(serviceInstance1)) - .thenCancel().verify(VERIFY_TIMEOUT); + }) + .expectSubscription() + .expectNoEvent(properties.getHealthCheck().getInitialDelay()) + .expectNoEvent(properties.getHealthCheck().getInterval()) + .expectNext(Lists.list()) + .expectNoEvent(properties.getHealthCheck().getInterval()) + .expectNext(Lists.list(serviceInstance1)) + .expectNoEvent(properties.getHealthCheck().getInterval()) + .expectNext(Lists.list(serviceInstance1)) + .thenCancel() + .verify(VERIFY_TIMEOUT); } @Test @@ -443,8 +481,8 @@ class HealthCheckServiceInstanceListSupplierTests { ServiceInstanceListSupplier delegate = mock(ServiceInstanceListSupplier.class); Mockito.when(delegate.getServiceId()).thenReturn(SERVICE_ID); Flux> instances = Flux.just(Lists.list(serviceInstance1)) - .concatWith(Flux.just(Lists.list(serviceInstance1, serviceInstance2)) - .delayElements(properties.getHealthCheck().getInterval().dividedBy(2))); + .concatWith(Flux.just(Lists.list(serviceInstance1, serviceInstance2)) + .delayElements(properties.getHealthCheck().getInterval().dividedBy(2))); Mockito.when(delegate.get()).thenReturn(instances); listSupplier = new HealthCheckServiceInstanceListSupplier(delegate, @@ -456,12 +494,18 @@ class HealthCheckServiceInstanceListSupplierTests { }; return listSupplier.get(); - }).expectSubscription().expectNoEvent(properties.getHealthCheck().getInitialDelay()) - .expectNext(Lists.list(serviceInstance1)) - .thenAwait(properties.getHealthCheck().getInterval().dividedBy(2)) - .expectNext(Lists.list(serviceInstance1)).expectNext(Lists.list(serviceInstance1, serviceInstance2)) - .expectNoEvent(properties.getHealthCheck().getInterval()).expectNext(Lists.list(serviceInstance1)) - .expectNext(Lists.list(serviceInstance1, serviceInstance2)).thenCancel().verify(VERIFY_TIMEOUT); + }) + .expectSubscription() + .expectNoEvent(properties.getHealthCheck().getInitialDelay()) + .expectNext(Lists.list(serviceInstance1)) + .thenAwait(properties.getHealthCheck().getInterval().dividedBy(2)) + .expectNext(Lists.list(serviceInstance1)) + .expectNext(Lists.list(serviceInstance1, serviceInstance2)) + .expectNoEvent(properties.getHealthCheck().getInterval()) + .expectNext(Lists.list(serviceInstance1)) + .expectNext(Lists.list(serviceInstance1, serviceInstance2)) + .thenCancel() + .verify(VERIFY_TIMEOUT); } @Test @@ -478,8 +522,8 @@ class HealthCheckServiceInstanceListSupplierTests { ServiceInstanceListSupplier delegate = mock(ServiceInstanceListSupplier.class); Mockito.when(delegate.getServiceId()).thenReturn(SERVICE_ID); Flux> instances = Flux.just(Lists.list(serviceInstance1)) - .concatWith(Flux.just(Lists.list(serviceInstance1, serviceInstance2)) - .delayElements(properties.getHealthCheck().getInterval().dividedBy(2))); + .concatWith(Flux.just(Lists.list(serviceInstance1, serviceInstance2)) + .delayElements(properties.getHealthCheck().getInterval().dividedBy(2))); Mockito.when(delegate.get()).thenReturn(instances); listSupplier = new HealthCheckServiceInstanceListSupplier(delegate, @@ -491,12 +535,16 @@ class HealthCheckServiceInstanceListSupplierTests { }; return listSupplier.get(); - }).expectSubscription().expectNoEvent(properties.getHealthCheck().getInitialDelay()) - .expectNext(Lists.list(serviceInstance1)) - .thenAwait(properties.getHealthCheck().getInterval().dividedBy(2)) - .expectNext(Lists.list(serviceInstance1, serviceInstance2)) - .expectNoEvent(properties.getHealthCheck().getInterval()) - .expectNext(Lists.list(serviceInstance1, serviceInstance2)).thenCancel().verify(VERIFY_TIMEOUT); + }) + .expectSubscription() + .expectNoEvent(properties.getHealthCheck().getInitialDelay()) + .expectNext(Lists.list(serviceInstance1)) + .thenAwait(properties.getHealthCheck().getInterval().dividedBy(2)) + .expectNext(Lists.list(serviceInstance1, serviceInstance2)) + .expectNoEvent(properties.getHealthCheck().getInterval()) + .expectNext(Lists.list(serviceInstance1, serviceInstance2)) + .thenCancel() + .verify(VERIFY_TIMEOUT); } @Test @@ -514,7 +562,7 @@ class HealthCheckServiceInstanceListSupplierTests { ServiceInstanceListSupplier delegate = mock(ServiceInstanceListSupplier.class); when(delegate.getServiceId()).thenReturn(SERVICE_ID); when(delegate.get()).thenReturn(Flux.just(Collections.singletonList(serviceInstance1))) - .thenReturn(Flux.just(Collections.singletonList(serviceInstance2))); + .thenReturn(Flux.just(Collections.singletonList(serviceInstance2))); listSupplier = new HealthCheckServiceInstanceListSupplier(delegate, buildLoadBalancerClientFactory(SERVICE_ID, properties), webClientHealthCheckFunction()) { @Override @@ -523,10 +571,14 @@ class HealthCheckServiceInstanceListSupplierTests { } }; return listSupplier.get(); - }).expectSubscription().expectNoEvent(properties.getHealthCheck().getInitialDelay()) - .expectNext(Lists.list(serviceInstance1)) - .thenAwait(properties.getHealthCheck().getRefetchInstancesInterval()) - .expectNext(Lists.list(serviceInstance2)).thenCancel().verify(VERIFY_TIMEOUT); + }) + .expectSubscription() + .expectNoEvent(properties.getHealthCheck().getInitialDelay()) + .expectNext(Lists.list(serviceInstance1)) + .thenAwait(properties.getHealthCheck().getRefetchInstancesInterval()) + .expectNext(Lists.list(serviceInstance2)) + .thenCancel() + .verify(VERIFY_TIMEOUT); } @Test @@ -544,7 +596,7 @@ class HealthCheckServiceInstanceListSupplierTests { ServiceInstanceListSupplier delegate = mock(ServiceInstanceListSupplier.class); when(delegate.getServiceId()).thenReturn(SERVICE_ID); when(delegate.get()).thenReturn(Flux.just(Collections.singletonList(serviceInstance1))) - .thenReturn(Flux.just(Collections.singletonList(serviceInstance2))); + .thenReturn(Flux.just(Collections.singletonList(serviceInstance2))); BiFunction> healthCheckFunc = webClientHealthCheckFunction(); listSupplier = new HealthCheckServiceInstanceListSupplier(delegate, buildLoadBalancerClientFactory(SERVICE_ID, properties), healthCheckFunc) { @@ -554,10 +606,14 @@ class HealthCheckServiceInstanceListSupplierTests { } }; return listSupplier.get(); - }).expectSubscription().expectNoEvent(properties.getHealthCheck().getInitialDelay()) - .expectNext(Lists.list(serviceInstance1)) - .thenAwait(properties.getHealthCheck().getRefetchInstancesInterval()) - .expectNext(Lists.list(serviceInstance2)).thenCancel().verify(VERIFY_TIMEOUT); + }) + .expectSubscription() + .expectNoEvent(properties.getHealthCheck().getInitialDelay()) + .expectNext(Lists.list(serviceInstance1)) + .thenAwait(properties.getHealthCheck().getRefetchInstancesInterval()) + .expectNext(Lists.list(serviceInstance2)) + .thenCancel() + .verify(VERIFY_TIMEOUT); } @Test @@ -589,9 +645,13 @@ class HealthCheckServiceInstanceListSupplierTests { listSupplier.afterPropertiesSet(); return listSupplier.get().take(1).concatWith(listSupplier.get().take(1)); - }).expectSubscription().expectNoEvent(properties.getHealthCheck().getInitialDelay()) - .expectNext(Lists.list(serviceInstance1)).expectNext(Lists.list(serviceInstance1)).thenCancel() - .verify(VERIFY_TIMEOUT); + }) + .expectSubscription() + .expectNoEvent(properties.getHealthCheck().getInitialDelay()) + .expectNext(Lists.list(serviceInstance1)) + .expectNext(Lists.list(serviceInstance1)) + .thenCancel() + .verify(VERIFY_TIMEOUT); Assertions.assertThat(emitCounter).hasValue(1); } @@ -602,22 +662,28 @@ class HealthCheckServiceInstanceListSupplierTests { final AtomicInteger instancesCanceled = new AtomicInteger(); final AtomicBoolean subscribed = new AtomicBoolean(); ServiceInstanceListSupplier delegate = mock(ServiceInstanceListSupplier.class); - Mockito.when(delegate.get()).thenReturn(Flux.>never() - .doOnSubscribe(subscription -> subscribed.set(true)).doOnCancel(instancesCanceled::incrementAndGet)); + Mockito.when(delegate.get()) + .thenReturn(Flux.>never() + .doOnSubscribe(subscription -> subscribed.set(true)) + .doOnCancel(instancesCanceled::incrementAndGet)); listSupplier = new HealthCheckServiceInstanceListSupplier(delegate, buildLoadBalancerClientFactory(SERVICE_ID, properties), webClientHealthCheckFunction()); listSupplier.afterPropertiesSet(); - Awaitility.await("delegate subscription").pollDelay(Duration.ofMillis(50)).atMost(VERIFY_TIMEOUT) - .untilTrue(subscribed); + Awaitility.await("delegate subscription") + .pollDelay(Duration.ofMillis(50)) + .atMost(VERIFY_TIMEOUT) + .untilTrue(subscribed); Assertions.assertThat(instancesCanceled).hasValue(0); listSupplier.destroy(); - Awaitility.await("delegate cancellation").pollDelay(Duration.ofMillis(100)).atMost(VERIFY_TIMEOUT) - .untilAsserted(() -> Assertions.assertThat(instancesCanceled).hasValue(1)); + Awaitility.await("delegate cancellation") + .pollDelay(Duration.ofMillis(100)) + .atMost(VERIFY_TIMEOUT) + .untilAsserted(() -> Assertions.assertThat(instancesCanceled).hasValue(1)); } @SuppressWarnings("ConstantConditions") diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/LazyWeightedServiceInstanceListTest.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/LazyWeightedServiceInstanceListTest.java index 723bf4bb..e814cefe 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/LazyWeightedServiceInstanceListTest.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/LazyWeightedServiceInstanceListTest.java @@ -121,7 +121,7 @@ class LazyWeightedServiceInstanceListTest { list.get(list.size() - 1); Map counter = Arrays.stream(list.expanded) - .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); + .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); for (int i = 0; i < 10; i++) { assertThat(counter).containsEntry(serviceInstances.get(i).getInstanceId(), weights[i]); } diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/LoadBalancerTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/LoadBalancerTests.java index 08a3007b..148ebeff 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/LoadBalancerTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/LoadBalancerTests.java @@ -118,7 +118,7 @@ class LoadBalancerTests { void staticConfigurationWorks() { String serviceId = "test1"; RoundRobinLoadBalancer loadBalancer = new RoundRobinLoadBalancer(ServiceInstanceListSuppliers - .toProvider(serviceId, instance(serviceId, "1host", false), instance(serviceId, "2host-secure", true)), + .toProvider(serviceId, instance(serviceId, "1host", false), instance(serviceId, "2host-secure", true)), serviceId, -1); assertLoadBalancer(loadBalancer, Arrays.asList("1host", "2host-secure")); } diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/RetryAwareServiceInstanceListSupplierTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/RetryAwareServiceInstanceListSupplierTests.java index c8befdab..2a169615 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/RetryAwareServiceInstanceListSupplierTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/RetryAwareServiceInstanceListSupplierTests.java @@ -52,7 +52,7 @@ class RetryAwareServiceInstanceListSupplierTests { ServiceInstanceListSupplier supplier = new RetryAwareServiceInstanceListSupplier(delegate); List returnedInstances = supplier.get(new DefaultRequest<>(new RetryableRequestContext(null))) - .blockFirst(); + .blockFirst(); assertThat(returnedInstances).isEmpty(); } @@ -66,7 +66,8 @@ class RetryAwareServiceInstanceListSupplierTests { ServiceInstanceListSupplier supplier = new RetryAwareServiceInstanceListSupplier(delegate); List returnedInstances = supplier - .get(new DefaultRequest<>(new RetryableRequestContext(firstInstance))).blockFirst(); + .get(new DefaultRequest<>(new RetryableRequestContext(firstInstance))) + .blockFirst(); assertThat(returnedInstances).containsExactly(secondInstance); } @@ -78,7 +79,8 @@ class RetryAwareServiceInstanceListSupplierTests { ServiceInstanceListSupplier supplier = new RetryAwareServiceInstanceListSupplier(delegate); List returnedInstances = supplier - .get(new DefaultRequest<>(new RetryableRequestContext(firstInstance))).blockFirst(); + .get(new DefaultRequest<>(new RetryableRequestContext(firstInstance))) + .blockFirst(); assertThat(returnedInstances).containsExactly(firstInstance); } diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/ServiceInstanceListSupplierBuilderTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/ServiceInstanceListSupplierBuilderTests.java index 9bfb0f38..7b12ca1a 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/ServiceInstanceListSupplierBuilderTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/ServiceInstanceListSupplierBuilderTests.java @@ -36,8 +36,11 @@ public class ServiceInstanceListSupplierBuilderTests { @Test public void testBuilder() { new ApplicationContextRunner().withUserConfiguration(CacheTestConfig.class).run(context -> { - ServiceInstanceListSupplier supplier = ServiceInstanceListSupplier.builder().withDiscoveryClient() - .withHealthChecks().withWeighted().build(context); + ServiceInstanceListSupplier supplier = ServiceInstanceListSupplier.builder() + .withDiscoveryClient() + .withHealthChecks() + .withWeighted() + .build(context); assertThat(supplier).isInstanceOf(WeightedServiceInstanceListSupplier.class); DelegatingServiceInstanceListSupplier delegating = (DelegatingServiceInstanceListSupplier) supplier; assertThat(delegating.getDelegate()).isInstanceOf(HealthCheckServiceInstanceListSupplier.class); @@ -63,8 +66,11 @@ public class ServiceInstanceListSupplierBuilderTests { @Test public void testDelegateReturnedIfLoadBalancerCacheManagerNotAvailable() { new ApplicationContextRunner().withUserConfiguration(BaseTestConfig.class).run(context -> { - ServiceInstanceListSupplier supplier = ServiceInstanceListSupplier.builder().withDiscoveryClient() - .withHealthChecks().withCaching().build(context); + ServiceInstanceListSupplier supplier = ServiceInstanceListSupplier.builder() + .withDiscoveryClient() + .withHealthChecks() + .withCaching() + .build(context); assertThat(supplier).isNotInstanceOf(CachingServiceInstanceListSupplier.class); assertThat(supplier).isInstanceOf(HealthCheckServiceInstanceListSupplier.class); DelegatingServiceInstanceListSupplier delegating = (DelegatingServiceInstanceListSupplier) supplier; diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/ServiceInstanceListSuppliersTestUtils.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/ServiceInstanceListSuppliersTestUtils.java index 0635c756..8dceeee7 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/ServiceInstanceListSuppliersTestUtils.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/ServiceInstanceListSuppliersTestUtils.java @@ -45,9 +45,10 @@ final class ServiceInstanceListSuppliersTestUtils { static BiFunction> healthCheckFunction(WebClient webClient) { return (serviceInstance, healthCheckPath) -> webClient.get() - .uri(UriComponentsBuilder.fromUriString(getUri(serviceInstance, healthCheckPath)).build().toUri()) - .exchange().flatMap(clientResponse -> clientResponse.releaseBody() - .thenReturn(HttpStatus.OK.equals(clientResponse.statusCode()))); + .uri(UriComponentsBuilder.fromUriString(getUri(serviceInstance, healthCheckPath)).build().toUri()) + .exchange() + .flatMap(clientResponse -> clientResponse.releaseBody() + .thenReturn(HttpStatus.OK.equals(clientResponse.statusCode()))); } static BiFunction> healthCheckFunction(RestTemplate restTemplate) { diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/SubsetServiceInstanceListSupplierTest.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/SubsetServiceInstanceListSupplierTest.java index ba296524..300dd3b0 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/SubsetServiceInstanceListSupplierTest.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/SubsetServiceInstanceListSupplierTest.java @@ -94,8 +94,8 @@ class SubsetServiceInstanceListSupplierTest { @Test void shouldReturnSublistWithGivenSubsetSize() { List instances = IntStream.range(0, 101) - .mapToObj(i -> new DefaultServiceInstance(Integer.toString(i), "test", "host" + i, 8080, false, null)) - .collect(Collectors.toList()); + .mapToObj(i -> new DefaultServiceInstance(Integer.toString(i), "test", "host" + i, 8080, false, null)) + .collect(Collectors.toList()); when(delegate.getServiceId()).thenReturn("test"); when(delegate.get()).thenReturn(Flux.just(instances)); @@ -109,8 +109,8 @@ class SubsetServiceInstanceListSupplierTest { @Test void shouldReturnRawWhenLessThanSubsetSize() { List instances = IntStream.range(0, 101) - .mapToObj(i -> new DefaultServiceInstance(Integer.toString(i), "test", "host" + i, 8080, false, null)) - .collect(Collectors.toList()); + .mapToObj(i -> new DefaultServiceInstance(Integer.toString(i), "test", "host" + i, 8080, false, null)) + .collect(Collectors.toList()); when(delegate.getServiceId()).thenReturn("test"); when(delegate.get()).thenReturn(Flux.just(instances)); @@ -124,8 +124,8 @@ class SubsetServiceInstanceListSupplierTest { @Test void shouldReturnSameSublistForSameInstanceId() { List instances = IntStream.range(0, 101) - .mapToObj(i -> new DefaultServiceInstance(Integer.toString(i), "test", "host" + i, 8080, false, null)) - .collect(Collectors.toList()); + .mapToObj(i -> new DefaultServiceInstance(Integer.toString(i), "test", "host" + i, 8080, false, null)) + .collect(Collectors.toList()); when(delegate.getServiceId()).thenReturn("test"); when(delegate.get()).thenReturn(Flux.just(instances)); @@ -144,8 +144,8 @@ class SubsetServiceInstanceListSupplierTest { @Test void shouldReturnDifferentSublistForDifferentInstanceId() { List instances = IntStream.range(0, 101) - .mapToObj(i -> new DefaultServiceInstance(Integer.toString(i), "test", "host" + i, 8080, false, null)) - .collect(Collectors.toList()); + .mapToObj(i -> new DefaultServiceInstance(Integer.toString(i), "test", "host" + i, 8080, false, null)) + .collect(Collectors.toList()); when(delegate.getServiceId()).thenReturn("test"); when(delegate.get()).thenReturn(Flux.just(instances)); diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/WeightedServiceInstanceListSupplierTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/WeightedServiceInstanceListSupplierTests.java index 94c35020..99bc057f 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/WeightedServiceInstanceListSupplierTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/WeightedServiceInstanceListSupplierTests.java @@ -73,7 +73,7 @@ class WeightedServiceInstanceListSupplierTests { List serviceInstances = Objects.requireNonNull(supplier.get().blockFirst()); Map counter = serviceInstances.stream() - .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); + .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); assertThat(counter).containsEntry("test-1", 1); assertThat(counter).containsEntry("test-2", 2); assertThat(counter).containsEntry("test-3", 3); @@ -90,7 +90,7 @@ class WeightedServiceInstanceListSupplierTests { List serviceInstances = Objects.requireNonNull(supplier.get().blockFirst()); Map counter = serviceInstances.stream() - .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); + .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); assertThat(counter).containsEntry("test-1", 1); assertThat(counter).containsEntry("test-2", 2); assertThat(counter).containsEntry("test-3", 3); @@ -107,7 +107,7 @@ class WeightedServiceInstanceListSupplierTests { List serviceInstances = Objects.requireNonNull(supplier.get().blockFirst()); Map counter = serviceInstances.stream() - .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); + .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); assertThat(counter).containsEntry("test-1", DEFAULT_WEIGHT); assertThat(counter).containsEntry("test-2", DEFAULT_WEIGHT); assertThat(counter).containsEntry("test-3", 3); @@ -124,7 +124,7 @@ class WeightedServiceInstanceListSupplierTests { List serviceInstances = Objects.requireNonNull(supplier.get().blockFirst()); Map counter = serviceInstances.stream() - .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); + .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); assertThat(counter).containsEntry("test-1", DEFAULT_WEIGHT); assertThat(counter).containsEntry("test-2", DEFAULT_WEIGHT); assertThat(counter).containsEntry("test-3", DEFAULT_WEIGHT); @@ -141,7 +141,7 @@ class WeightedServiceInstanceListSupplierTests { List serviceInstances = Objects.requireNonNull(supplier.get().blockFirst()); Map counter = serviceInstances.stream() - .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); + .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); assertThat(counter).containsEntry("test-1", DEFAULT_WEIGHT); assertThat(counter).containsEntry("test-2", DEFAULT_WEIGHT); assertThat(counter).containsEntry("test-3", DEFAULT_WEIGHT); @@ -159,7 +159,7 @@ class WeightedServiceInstanceListSupplierTests { List serviceInstances = Objects.requireNonNull(supplier.get().blockFirst()); Map counter = serviceInstances.stream() - .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); + .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); assertThat(counter).containsEntry("test-1", DEFAULT_WEIGHT); assertThat(counter).containsEntry("test-2", DEFAULT_WEIGHT); assertThat(counter).containsEntry("test-3", DEFAULT_WEIGHT); @@ -178,7 +178,7 @@ class WeightedServiceInstanceListSupplierTests { List serviceInstances = Objects.requireNonNull(supplier.get().blockFirst()); Map counter = serviceInstances.stream() - .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); + .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); assertThat(counter).containsEntry("test-1", DEFAULT_WEIGHT); assertThat(counter).containsEntry("test-2", DEFAULT_WEIGHT); assertThat(counter).containsEntry("test-3", DEFAULT_WEIGHT); @@ -201,7 +201,7 @@ class WeightedServiceInstanceListSupplierTests { List serviceInstances = Objects.requireNonNull(supplier.get(request).blockFirst()); Map counter = serviceInstances.stream() - .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); + .collect(Collectors.groupingBy(ServiceInstance::getInstanceId, summingInt(e -> 1))); assertThat(counter).containsEntry("test-1", DEFAULT_WEIGHT); assertThat(counter).containsEntry("test-2", DEFAULT_WEIGHT); assertThat(counter).doesNotContainEntry("test-3", 3); diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/security/OAuth2LoadBalancerClientAutoConfigurationTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/security/OAuth2LoadBalancerClientAutoConfigurationTests.java index cafada1e..96430897 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/security/OAuth2LoadBalancerClientAutoConfigurationTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/security/OAuth2LoadBalancerClientAutoConfigurationTests.java @@ -57,8 +57,10 @@ public class OAuth2LoadBalancerClientAutoConfigurationTests { @Test @Disabled public void userInfoNotLoadBalanced() { - this.context = new SpringApplicationBuilder(ClientConfiguration.class).properties("spring.config.name=test", - "server.port=0", "security.oauth2.resource.userInfoUri:https://example.com").run(); + this.context = new SpringApplicationBuilder(ClientConfiguration.class) + .properties("spring.config.name=test", "server.port=0", + "security.oauth2.resource.userInfoUri:https://example.com") + .run(); assertThat(this.context.containsBean("loadBalancedUserInfoRestTemplateCustomizer")).isFalse(); assertThat(this.context.containsBean("retryLoadBalancedUserInfoRestTemplateCustomizer")).isFalse(); @@ -67,9 +69,11 @@ public class OAuth2LoadBalancerClientAutoConfigurationTests { @Test @Disabled public void userInfoLoadBalancedNoRetry() { - this.context = new SpringApplicationBuilder(ClientConfiguration.class).properties("spring.config.name=test", - "server.port=0", "security.oauth2.resource.userInfoUri:https://nosuchservice", - "spring.cloud.oauth2.load-balanced.enabled=true").run(); + this.context = new SpringApplicationBuilder(ClientConfiguration.class) + .properties("spring.config.name=test", "server.port=0", + "security.oauth2.resource.userInfoUri:https://nosuchservice", + "spring.cloud.oauth2.load-balanced.enabled=true") + .run(); assertThat(this.context.containsBean("loadBalancedUserInfoRestTemplateCustomizer")).isTrue(); assertThat(this.context.containsBean("retryLoadBalancedUserInfoRestTemplateCustomizer")).isFalse(); diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/stats/MicrometerStatsLoadBalancerLifecycleTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/stats/MicrometerStatsLoadBalancerLifecycleTests.java index 49d8714c..28104c47 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/stats/MicrometerStatsLoadBalancerLifecycleTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/stats/MicrometerStatsLoadBalancerLifecycleTests.java @@ -67,8 +67,8 @@ class MicrometerStatsLoadBalancerLifecycleTests { statsLifecycle.onStartRequest(lbRequest, lbResponse); assertThat(meterRegistry.get("loadbalancer.requests.active").gauge().value()).isEqualTo(1); - statsLifecycle.onComplete( - new CompletionContext<>(CompletionContext.Status.SUCCESS, lbRequest, lbResponse, responseData)); + statsLifecycle + .onComplete(new CompletionContext<>(CompletionContext.Status.SUCCESS, lbRequest, lbResponse, responseData)); assertThat(meterRegistry.getMeters()).hasSize(2); assertThat(meterRegistry.get("loadbalancer.requests.active").gauge().value()).isEqualTo(0); @@ -126,8 +126,8 @@ class MicrometerStatsLoadBalancerLifecycleTests { statsLifecycle.onStartRequest(lbRequest, lbResponse); assertThat(meterRegistry.get("loadbalancer.requests.active").gauge().value()).isEqualTo(1); - statsLifecycle.onComplete( - new CompletionContext<>(CompletionContext.Status.SUCCESS, lbRequest, lbResponse, responseData)); + statsLifecycle + .onComplete(new CompletionContext<>(CompletionContext.Status.SUCCESS, lbRequest, lbResponse, responseData)); assertThat(meterRegistry.getMeters()).hasSize(1); assertThat(meterRegistry.get("loadbalancer.requests.active").gauge().value()).isEqualTo(0); @@ -141,7 +141,7 @@ class MicrometerStatsLoadBalancerLifecycleTests { assertThat(meterRegistry.get("loadbalancer.requests.active").gauge().value()).isEqualTo(1); statsLifecycle - .onComplete(new CompletionContext<>(CompletionContext.Status.SUCCESS, lbRequest, lbResponse, null)); + .onComplete(new CompletionContext<>(CompletionContext.Status.SUCCESS, lbRequest, lbResponse, null)); assertThat(meterRegistry.getMeters()).hasSize(2); assertThat(meterRegistry.get("loadbalancer.requests.active").gauge().value()).isEqualTo(0); @@ -162,8 +162,8 @@ class MicrometerStatsLoadBalancerLifecycleTests { statsLifecycle.onStartRequest(lbRequest, lbResponse); assertThat(meterRegistry.get("loadbalancer.requests.active").gauge().value()).isEqualTo(1); - statsLifecycle.onComplete( - new CompletionContext<>(CompletionContext.Status.SUCCESS, lbRequest, lbResponse, responseData)); + statsLifecycle + .onComplete(new CompletionContext<>(CompletionContext.Status.SUCCESS, lbRequest, lbResponse, responseData)); assertThat(meterRegistry.getMeters()).hasSize(2); assertThat(meterRegistry.get("loadbalancer.requests.active").gauge().value()).isEqualTo(0); diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/support/LoadBalancerEnvironmentPropertyUtilsTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/support/LoadBalancerEnvironmentPropertyUtilsTests.java index 6e8105b1..52718228 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/support/LoadBalancerEnvironmentPropertyUtilsTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/support/LoadBalancerEnvironmentPropertyUtilsTests.java @@ -60,9 +60,9 @@ class LoadBalancerEnvironmentPropertyUtilsTests { environment.setProperty("spring.cloud.loadbalancer.test", "false"); assertThat(LoadBalancerEnvironmentPropertyUtils.equalToForClientOrDefault(environment, "test", "true")) - .isTrue(); + .isTrue(); assertThat(LoadBalancerEnvironmentPropertyUtils.equalToOrMissingForClientOrDefault(environment, "test", "true")) - .isTrue(); + .isTrue(); } @Test @@ -70,16 +70,16 @@ class LoadBalancerEnvironmentPropertyUtilsTests { environment.setProperty("spring.cloud.loadbalancer.test", "true"); assertThat(LoadBalancerEnvironmentPropertyUtils.equalToForClientOrDefault(environment, "test", "true")) - .isTrue(); + .isTrue(); assertThat(LoadBalancerEnvironmentPropertyUtils.equalToOrMissingForClientOrDefault(environment, "test", "true")) - .isTrue(); + .isTrue(); } @Test void shouldReturnTrueWhenMissingForClientAndDefault() { assertThat(LoadBalancerEnvironmentPropertyUtils.trueOrMissingForClientOrDefault(environment, "test")).isTrue(); assertThat(LoadBalancerEnvironmentPropertyUtils.equalToOrMissingForClientOrDefault(environment, "test", "true")) - .isTrue(); + .isTrue(); } } diff --git a/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ClassPathExclusions.java b/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ClassPathExclusions.java index 075ec66b..2a59424c 100644 --- a/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ClassPathExclusions.java +++ b/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ClassPathExclusions.java @@ -26,6 +26,7 @@ import org.junit.jupiter.api.extension.ExtendWith; /** * Taken from Spring Boot test utils. https://github.com/spring-projects/spring-boot/blob/ * 1.4.x/spring-boot/src/test/java/org/springframework/boot/testutil/ClassPathExclusions.java + * * @author Ryan Baxter */ @Retention(RetentionPolicy.RUNTIME) diff --git a/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ModifiedClassPathClassLoader.java b/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ModifiedClassPathClassLoader.java index df044250..98b104e9 100644 --- a/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ModifiedClassPathClassLoader.java +++ b/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ModifiedClassPathClassLoader.java @@ -99,7 +99,8 @@ final class ModifiedClassPathClassLoader extends URLClassLoader { candidates.add(testMethod); candidates.addAll(getAnnotatedElements(arguments.toArray())); List annotatedElements = candidates.stream() - .filter(ModifiedClassPathClassLoader::hasAnnotation).collect(Collectors.toList()); + .filter(ModifiedClassPathClassLoader::hasAnnotation) + .collect(Collectors.toList()); if (annotatedElements.isEmpty()) { return null; } @@ -128,8 +129,8 @@ final class ModifiedClassPathClassLoader extends URLClassLoader { private static ModifiedClassPathClassLoader compute(ClassLoader classLoader, List annotatedClasses) { List annotations = annotatedClasses.stream() - .map((source) -> MergedAnnotations.from(source, MergedAnnotations.SearchStrategy.TYPE_HIERARCHY)) - .toList(); + .map((source) -> MergedAnnotations.from(source, MergedAnnotations.SearchStrategy.TYPE_HIERARCHY)) + .toList(); return new ModifiedClassPathClassLoader(processUrls(extractUrls(classLoader), annotations), classLoader.getParent(), classLoader); } @@ -152,7 +153,7 @@ final class ModifiedClassPathClassLoader extends URLClassLoader { return Stream.of(urlClassLoader.getURLs()); } return Stream.of(ManagementFactory.getRuntimeMXBean().getClassPath().split(File.pathSeparator)) - .map(ModifiedClassPathClassLoader::toURL); + .map(ModifiedClassPathClassLoader::toURL); } private static URL toURL(String entry) { @@ -239,7 +240,8 @@ final class ModifiedClassPathClassLoader extends URLClassLoader { DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession(); LocalRepository localRepository = new LocalRepository(System.getProperty("user.home") + "/.m2/repository"); RemoteRepository remoteRepository = new RemoteRepository.Builder("central", "default", - "https://repo.maven.apache.org/maven2").build(); + "https://repo.maven.apache.org/maven2") + .build(); session.setLocalRepositoryManager(repositorySystem.newLocalRepositoryManager(session, localRepository)); for (int i = 0; i < MAX_RESOLUTION_ATTEMPTS; i++) { CollectRequest collectRequest = new CollectRequest(null, Arrays.asList(remoteRepository)); diff --git a/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ModifiedClassPathExtension.java b/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ModifiedClassPathExtension.java index c9acb8c3..0805d911 100644 --- a/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ModifiedClassPathExtension.java +++ b/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ModifiedClassPathExtension.java @@ -111,7 +111,8 @@ public class ModifiedClassPathExtension implements InvocationInterceptor { private void runTest(String testId) throws Throwable { LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request() - .selectors(DiscoverySelectors.selectUniqueId(testId)).build(); + .selectors(DiscoverySelectors.selectUniqueId(testId)) + .build(); Launcher launcher = LauncherFactory.create(); TestPlan testPlan = launcher.discover(request); SummaryGeneratingListener listener = new SummaryGeneratingListener(); diff --git a/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ModifiedClassPathRunner.java b/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ModifiedClassPathRunner.java index de4c237b..8ada2f65 100644 --- a/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ModifiedClassPathRunner.java +++ b/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/ModifiedClassPathRunner.java @@ -121,7 +121,7 @@ public class ModifiedClassPathRunner extends BlockJUnit4ClassRunner { return Stream.of(((URLClassLoader) classLoader).getURLs()); } return Stream.of(ManagementFactory.getRuntimeMXBean().getClassPath().split(File.pathSeparator)) - .map(this::toURL); + .map(this::toURL); } private URL toURL(String entry) { @@ -286,7 +286,7 @@ public class ModifiedClassPathRunner extends BlockJUnit4ClassRunner { @SuppressWarnings("unchecked") private List getAnnotatedMethods(String annotationClassName) throws ClassNotFoundException { Class annotationClass = (Class) this.classLoader - .loadClass(annotationClassName); + .loadClass(annotationClassName); List methods = super.getAnnotatedMethods(annotationClass); return wrapFrameworkMethods(methods); } diff --git a/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/TestSocketUtils.java b/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/TestSocketUtils.java index f877430e..789c406b 100644 --- a/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/TestSocketUtils.java +++ b/spring-cloud-test-support/src/main/java/org/springframework/cloud/test/TestSocketUtils.java @@ -192,8 +192,8 @@ public abstract class TestSocketUtils { @Override protected boolean isPortAvailable(int port) { try { - ServerSocket serverSocket = ServerSocketFactory.getDefault().createServerSocket(port, 1, - InetAddress.getByName("localhost")); + ServerSocket serverSocket = ServerSocketFactory.getDefault() + .createServerSocket(port, 1, InetAddress.getByName("localhost")); serverSocket.close(); return true; } diff --git a/spring-cloud-test-support/src/test/java/org/springframework/cloud/test/ModifiedClassPathRunnerOverridesTests.java b/spring-cloud-test-support/src/test/java/org/springframework/cloud/test/ModifiedClassPathRunnerOverridesTests.java index 6b6ccd30..98f9c5a6 100644 --- a/spring-cloud-test-support/src/test/java/org/springframework/cloud/test/ModifiedClassPathRunnerOverridesTests.java +++ b/spring-cloud-test-support/src/test/java/org/springframework/cloud/test/ModifiedClassPathRunnerOverridesTests.java @@ -34,13 +34,13 @@ public class ModifiedClassPathRunnerOverridesTests { @Test public void classesAreLoadedFromOverride() { assertThat(ApplicationContext.class.getProtectionDomain().getCodeSource().getLocation().toString()) - .endsWith("spring-context-4.1.0.RELEASE.jar"); + .endsWith("spring-context-4.1.0.RELEASE.jar"); } @Test public void classesAreLoadedFromTransitiveDependencyOfOverride() { assertThat(StringUtils.class.getProtectionDomain().getCodeSource().getLocation().toString()) - .endsWith("spring-core-4.1.0.RELEASE.jar"); + .endsWith("spring-core-4.1.0.RELEASE.jar"); } } diff --git a/spring-cloud-test-support/src/test/java/org/springframework/cloud/test/TestSocketUtilsTests.java b/spring-cloud-test-support/src/test/java/org/springframework/cloud/test/TestSocketUtilsTests.java index 20c1600a..ca29e8ad 100644 --- a/spring-cloud-test-support/src/test/java/org/springframework/cloud/test/TestSocketUtilsTests.java +++ b/spring-cloud-test-support/src/test/java/org/springframework/cloud/test/TestSocketUtilsTests.java @@ -65,13 +65,13 @@ class TestSocketUtilsTests { @Test void findAvailableTcpPortWhenPortOnLoopbackInterfaceIsNotAvailable() throws Exception { int port = TestSocketUtils.findAvailableTcpPort(); - try (ServerSocket socket = ServerSocketFactory.getDefault().createServerSocket(port, 1, - InetAddress.getByName("localhost"))) { + try (ServerSocket socket = ServerSocketFactory.getDefault() + .createServerSocket(port, 1, InetAddress.getByName("localhost"))) { assertThat(socket).isNotNull(); // will only look for the exact port assertThatIllegalStateException().isThrownBy(() -> TestSocketUtils.findAvailableTcpPort(port, port)) - .withMessageStartingWith("Could not find an available TCP port") - .withMessageEndingWith("after 1 attempts"); + .withMessageStartingWith("Could not find an available TCP port") + .withMessageEndingWith("after 1 attempts"); } } @@ -139,8 +139,8 @@ class TestSocketUtilsTests { assertThat(socket).isNotNull(); // will only look for the exact port assertThatIllegalStateException().isThrownBy(() -> TestSocketUtils.findAvailableUdpPort(port, port)) - .withMessageStartingWith("Could not find an available UDP port") - .withMessageEndingWith("after 1 attempts"); + .withMessageStartingWith("Could not find an available UDP port") + .withMessageEndingWith("after 1 attempts"); } }