From 2e2ff80e0730006730a96cb1e31f9338f1b6cdc3 Mon Sep 17 00:00:00 2001 From: buildmaster Date: Thu, 17 Sep 2020 17:52:36 +0000 Subject: [PATCH] Bumping versions --- .../CloudFoundryClientAutoConfiguration.java | 54 +++----- .../cloudfoundry/CloudFoundryProperties.java | 3 +- .../cloudfoundry/CloudFoundryService.java | 21 ++- ...oudFoundryClientAutoConfigurationTest.java | 22 ++-- ...CloudFoundryAppServiceDiscoveryClient.java | 15 +-- .../CloudFoundryDiscoveryClient.java | 19 ++- ...udFoundryDiscoveryClientConfiguration.java | 35 ++--- .../CloudFoundryHeartbeatSender.java | 3 +- ...itionalOnCloudFoundryDiscoveryEnabled.java | 3 +- .../SimpleDnsBasedDiscoveryClient.java | 7 +- ...ndryAppServiceReactiveDiscoveryClient.java | 11 +- ...dFoundryNativeReactiveDiscoveryClient.java | 19 +-- ...yReactiveDiscoveryClientConfiguration.java | 51 +++----- .../CloudFoundryReactiveHeartbeatSender.java | 9 +- ...SimpleDnsBasedReactiveDiscoveryClient.java | 15 +-- ...dFoundryAppServiceDiscoveryClientTest.java | 52 +++----- ...undryDiscoveryClientConfigurationTest.java | 50 +++----- .../CloudFoundryDiscoveryClientTest.java | 35 ++--- ...ppServiceReactiveDiscoveryClientTests.java | 19 +-- ...dryNativeReactiveDiscoveryClientTests.java | 18 +-- ...tiveDiscoveryClientConfigurationTests.java | 120 ++++++------------ .../sample/CloudFoundryApplication.java | 3 +- ...ceCredentialsEnvironmentPostProcessor.java | 50 +++----- .../session/StickyFilterConfiguration.java | 8 +- ...dentialsEnvironmentPostProcessorTests.java | 60 +++------ 25 files changed, 255 insertions(+), 447 deletions(-) diff --git a/spring-cloud-cloudfoundry-commons/src/main/java/org/springframework/cloud/cloudfoundry/CloudFoundryClientAutoConfiguration.java b/spring-cloud-cloudfoundry-commons/src/main/java/org/springframework/cloud/cloudfoundry/CloudFoundryClientAutoConfiguration.java index c1ac328..4e8479b 100644 --- a/spring-cloud-cloudfoundry-commons/src/main/java/org/springframework/cloud/cloudfoundry/CloudFoundryClientAutoConfiguration.java +++ b/spring-cloud-cloudfoundry-commons/src/main/java/org/springframework/cloud/cloudfoundry/CloudFoundryClientAutoConfiguration.java @@ -47,12 +47,9 @@ import org.springframework.context.annotation.Lazy; * @author Scott Frederick */ @Configuration(proxyBeanMethods = false) -@ConditionalOnProperty(prefix = "spring.cloud.cloudfoundry", - name = { "username", "password" }) -@ConditionalOnClass(name = { "reactor.core.publisher.Flux", - "org.cloudfoundry.operations.DefaultCloudFoundryOperations", - "org.cloudfoundry.reactor.client.ReactorCloudFoundryClient", - "org.reactivestreams.Publisher" }) +@ConditionalOnProperty(prefix = "spring.cloud.cloudfoundry", name = { "username", "password" }) +@ConditionalOnClass(name = { "reactor.core.publisher.Flux", "org.cloudfoundry.operations.DefaultCloudFoundryOperations", + "org.cloudfoundry.reactor.client.ReactorCloudFoundryClient", "org.reactivestreams.Publisher" }) @EnableConfigurationProperties(CloudFoundryProperties.class) public class CloudFoundryClientAutoConfiguration { @@ -65,59 +62,50 @@ public class CloudFoundryClientAutoConfiguration { @Bean @Lazy @ConditionalOnMissingBean - public CloudFoundryService cloudFoundryService( - CloudFoundryOperations cloudFoundryOperations) { + public CloudFoundryService cloudFoundryService(CloudFoundryOperations cloudFoundryOperations) { return new CloudFoundryService(cloudFoundryOperations); } @Bean @Lazy @ConditionalOnMissingBean - public DefaultCloudFoundryOperations cloudFoundryOperations( - CloudFoundryClient cloudFoundryClient, DopplerClient dopplerClient, - RoutingClient routingClient, UaaClient uaaClient) { + public DefaultCloudFoundryOperations cloudFoundryOperations(CloudFoundryClient cloudFoundryClient, + DopplerClient dopplerClient, RoutingClient routingClient, UaaClient uaaClient) { String organization = this.cloudFoundryProperties.getOrg(); String space = this.cloudFoundryProperties.getSpace(); - return DefaultCloudFoundryOperations.builder() - .cloudFoundryClient(cloudFoundryClient).dopplerClient(dopplerClient) - .routingClient(routingClient).uaaClient(uaaClient) + return DefaultCloudFoundryOperations.builder().cloudFoundryClient(cloudFoundryClient) + .dopplerClient(dopplerClient).routingClient(routingClient).uaaClient(uaaClient) .organization(organization).space(space).build(); } @Bean @Lazy @ConditionalOnMissingBean - public ReactorCloudFoundryClient cloudFoundryClient( - ConnectionContext connectionContext, TokenProvider tokenProvider) { - return ReactorCloudFoundryClient.builder().connectionContext(connectionContext) - .tokenProvider(tokenProvider).build(); + public ReactorCloudFoundryClient cloudFoundryClient(ConnectionContext connectionContext, + TokenProvider tokenProvider) { + return ReactorCloudFoundryClient.builder().connectionContext(connectionContext).tokenProvider(tokenProvider) + .build(); } @Bean @Lazy @ConditionalOnMissingBean - public DopplerClient dopplerClient(ConnectionContext connectionContext, - TokenProvider tokenProvider) { - return ReactorDopplerClient.builder().connectionContext(connectionContext) - .tokenProvider(tokenProvider).build(); + public DopplerClient dopplerClient(ConnectionContext connectionContext, TokenProvider tokenProvider) { + return ReactorDopplerClient.builder().connectionContext(connectionContext).tokenProvider(tokenProvider).build(); } @Bean @Lazy @ConditionalOnMissingBean - public RoutingClient routingClient(ConnectionContext connectionContext, - TokenProvider tokenProvider) { - return ReactorRoutingClient.builder().connectionContext(connectionContext) - .tokenProvider(tokenProvider).build(); + public RoutingClient routingClient(ConnectionContext connectionContext, TokenProvider tokenProvider) { + return ReactorRoutingClient.builder().connectionContext(connectionContext).tokenProvider(tokenProvider).build(); } @Bean @Lazy @ConditionalOnMissingBean - public ReactorUaaClient uaaClient(ConnectionContext connectionContext, - TokenProvider tokenProvider) { - return ReactorUaaClient.builder().connectionContext(connectionContext) - .tokenProvider(tokenProvider).build(); + public ReactorUaaClient uaaClient(ConnectionContext connectionContext, TokenProvider tokenProvider) { + return ReactorUaaClient.builder().connectionContext(connectionContext).tokenProvider(tokenProvider).build(); } @Bean @@ -127,8 +115,7 @@ public class CloudFoundryClientAutoConfiguration { String apiHost = this.cloudFoundryProperties.getUrl(); Boolean skipSslValidation = this.cloudFoundryProperties.isSkipSslValidation(); - return DefaultConnectionContext.builder().apiHost(apiHost) - .skipSslValidation(skipSslValidation).build(); + return DefaultConnectionContext.builder().apiHost(apiHost).skipSslValidation(skipSslValidation).build(); } @Bean @@ -137,8 +124,7 @@ public class CloudFoundryClientAutoConfiguration { public PasswordGrantTokenProvider tokenProvider() { String username = this.cloudFoundryProperties.getUsername(); String password = this.cloudFoundryProperties.getPassword(); - return PasswordGrantTokenProvider.builder().password(password).username(username) - .build(); + return PasswordGrantTokenProvider.builder().password(password).username(username).build(); } } diff --git a/spring-cloud-cloudfoundry-commons/src/main/java/org/springframework/cloud/cloudfoundry/CloudFoundryProperties.java b/spring-cloud-cloudfoundry-commons/src/main/java/org/springframework/cloud/cloudfoundry/CloudFoundryProperties.java index 4de0e0a..459a49c 100644 --- a/spring-cloud-cloudfoundry-commons/src/main/java/org/springframework/cloud/cloudfoundry/CloudFoundryProperties.java +++ b/spring-cloud-cloudfoundry-commons/src/main/java/org/springframework/cloud/cloudfoundry/CloudFoundryProperties.java @@ -146,8 +146,7 @@ public class CloudFoundryProperties implements InitializingBean { vals.put("url", getUrl()); vals.put("username", getUsername()); vals.put("password", getPassword()); - vals.forEach((key, value) -> Assert.hasText(value, - String.format("'%s' must be provided", key))); + vals.forEach((key, value) -> Assert.hasText(value, String.format("'%s' must be provided", key))); } } diff --git a/spring-cloud-cloudfoundry-commons/src/main/java/org/springframework/cloud/cloudfoundry/CloudFoundryService.java b/spring-cloud-cloudfoundry-commons/src/main/java/org/springframework/cloud/cloudfoundry/CloudFoundryService.java index 36c78fc..4f64aaa 100644 --- a/spring-cloud-cloudfoundry-commons/src/main/java/org/springframework/cloud/cloudfoundry/CloudFoundryService.java +++ b/spring-cloud-cloudfoundry-commons/src/main/java/org/springframework/cloud/cloudfoundry/CloudFoundryService.java @@ -37,19 +37,14 @@ public class CloudFoundryService { this.cloudFoundryOperations = cloudFoundryOperations; } - public Flux> getApplicationInstances( - String serviceId) { - GetApplicationRequest applicationRequest = GetApplicationRequest.builder() - .name(serviceId).build(); - return this.cloudFoundryOperations.applications().get(applicationRequest) - .flatMapMany(applicationDetail -> { - Flux ids = Flux - .fromStream(applicationDetail.getInstanceDetails().stream()) - .filter(id -> id.getState().equalsIgnoreCase("RUNNING")); - Flux generate = Flux - .generate(sink -> sink.next(applicationDetail)); - return generate.zipWith(ids); - }); + public Flux> getApplicationInstances(String serviceId) { + GetApplicationRequest applicationRequest = GetApplicationRequest.builder().name(serviceId).build(); + return this.cloudFoundryOperations.applications().get(applicationRequest).flatMapMany(applicationDetail -> { + Flux ids = Flux.fromStream(applicationDetail.getInstanceDetails().stream()) + .filter(id -> id.getState().equalsIgnoreCase("RUNNING")); + Flux generate = Flux.generate(sink -> sink.next(applicationDetail)); + return generate.zipWith(ids); + }); } } diff --git a/spring-cloud-cloudfoundry-commons/src/test/java/org/springframework/cloud/cloudfoundry/CloudFoundryClientAutoConfigurationTest.java b/spring-cloud-cloudfoundry-commons/src/test/java/org/springframework/cloud/cloudfoundry/CloudFoundryClientAutoConfigurationTest.java index c7a68df..753e903 100644 --- a/spring-cloud-cloudfoundry-commons/src/test/java/org/springframework/cloud/cloudfoundry/CloudFoundryClientAutoConfigurationTest.java +++ b/spring-cloud-cloudfoundry-commons/src/test/java/org/springframework/cloud/cloudfoundry/CloudFoundryClientAutoConfigurationTest.java @@ -36,12 +36,11 @@ import static org.assertj.core.api.Assertions.assertThat; public class CloudFoundryClientAutoConfigurationTest { - private final static String[] SPRING_CLOUD_PROPERTIES = { - "spring.cloud.cloudfoundry.username", "spring.cloud.cloudfoundry.password", }; + private final static String[] SPRING_CLOUD_PROPERTIES = { "spring.cloud.cloudfoundry.username", + "spring.cloud.cloudfoundry.password", }; private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration( - AutoConfigurations.of(CloudFoundryClientAutoConfiguration.class)); + .withConfiguration(AutoConfigurations.of(CloudFoundryClientAutoConfiguration.class)); private static boolean requiredPropertiesSet() { for (String k : SPRING_CLOUD_PROPERTIES) { @@ -59,13 +58,11 @@ public class CloudFoundryClientAutoConfigurationTest { @Test public void autoConfiguresBeansWithAllProperties() { this.contextRunner.withPropertyValues("spring.cloud.cloudfoundry.username=user", - "spring.cloud.cloudfoundry.password=secret", - "spring.cloud.cloudfoundry.org=myorg", + "spring.cloud.cloudfoundry.password=secret", "spring.cloud.cloudfoundry.org=myorg", "spring.cloud.cloudfoundry.space=myspace").run((context) -> { assertCloudFoundryClientBeansPresent(context); - DefaultCloudFoundryOperations operations = context - .getBean(DefaultCloudFoundryOperations.class); + DefaultCloudFoundryOperations operations = context.getBean(DefaultCloudFoundryOperations.class); assertThat(operations.getOrganization()).isEqualTo("myorg"); assertThat(operations.getSpace()).isEqualTo("myspace"); }); @@ -77,8 +74,7 @@ public class CloudFoundryClientAutoConfigurationTest { "spring.cloud.cloudfoundry.password=secret").run((context) -> { assertCloudFoundryClientBeansPresent(context); - DefaultCloudFoundryOperations operations = context - .getBean(DefaultCloudFoundryOperations.class); + DefaultCloudFoundryOperations operations = context.getBean(DefaultCloudFoundryOperations.class); assertThat(operations.getOrganization()).isNullOrEmpty(); assertThat(operations.getSpace()).isNullOrEmpty(); }); @@ -90,8 +86,7 @@ public class CloudFoundryClientAutoConfigurationTest { this.contextRunner.run((context) -> { assertCloudFoundryClientBeansPresent(context); - CloudFoundryOperations operations = context - .getBean(CloudFoundryOperations.class); + CloudFoundryOperations operations = context.getBean(CloudFoundryOperations.class); OrganizationSummary summary = operations.organizations().list().blockFirst(); @@ -101,8 +96,7 @@ public class CloudFoundryClientAutoConfigurationTest { }); } - private void assertCloudFoundryClientBeansPresent( - AssertableApplicationContext context) { + private void assertCloudFoundryClientBeansPresent(AssertableApplicationContext context) { assertThat(context).hasSingleBean(ReactorCloudFoundryClient.class); assertThat(context).hasSingleBean(DefaultCloudFoundryOperations.class); assertThat(context).hasSingleBean(DefaultConnectionContext.class); diff --git a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryAppServiceDiscoveryClient.java b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryAppServiceDiscoveryClient.java index 4d397bb..7a421a7 100644 --- a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryAppServiceDiscoveryClient.java +++ b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryAppServiceDiscoveryClient.java @@ -43,8 +43,7 @@ public class CloudFoundryAppServiceDiscoveryClient extends CloudFoundryDiscovery private static final String INTERNAL_DOMAIN = "apps.internal"; - CloudFoundryAppServiceDiscoveryClient(CloudFoundryOperations cloudFoundryOperations, - CloudFoundryService svc, + CloudFoundryAppServiceDiscoveryClient(CloudFoundryOperations cloudFoundryOperations, CloudFoundryService svc, CloudFoundryDiscoveryProperties cloudFoundryDiscoveryProperties) { super(cloudFoundryOperations, svc, cloudFoundryDiscoveryProperties); } @@ -56,23 +55,19 @@ public class CloudFoundryAppServiceDiscoveryClient extends CloudFoundryDiscovery @Override public List getInstances(String serviceId) { - return getCloudFoundryService() - .getApplicationInstances(serviceId).filter(tuple -> tuple.getT1() - .getUrls().stream().anyMatch(this::isInternalDomain)) - .map(tuple -> { + return getCloudFoundryService().getApplicationInstances(serviceId) + .filter(tuple -> tuple.getT1().getUrls().stream().anyMatch(this::isInternalDomain)).map(tuple -> { ApplicationDetail applicationDetail = tuple.getT1(); InstanceDetail instanceDetail = tuple.getT2(); String applicationId = applicationDetail.getId(); String applicationIndex = instanceDetail.getIndex(); String name = applicationDetail.getName(); - String url = applicationDetail.getUrls().stream() - .filter(this::isInternalDomain).findFirst() + String url = applicationDetail.getUrls().stream().filter(this::isInternalDomain).findFirst() .map(x -> instanceDetail.getIndex() + "." + x).get(); HashMap metadata = new HashMap<>(); metadata.put("applicationId", applicationId); metadata.put("instanceId", applicationIndex); - return (ServiceInstance) new DefaultServiceInstance(name, url, 8080, - false, metadata); + return (ServiceInstance) new DefaultServiceInstance(name, url, 8080, false, metadata); }).collectList().block(); } diff --git a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClient.java b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClient.java index f673101..fc2dcc4 100644 --- a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClient.java +++ b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClient.java @@ -48,11 +48,10 @@ public class CloudFoundryDiscoveryClient implements DiscoveryClient { private final CloudFoundryDiscoveryProperties properties; - private final String description = "Cloud Foundry " + DiscoveryClient.class.getName() - + " implementation"; + private final String description = "Cloud Foundry " + DiscoveryClient.class.getName() + " implementation"; - CloudFoundryDiscoveryClient(CloudFoundryOperations cloudFoundryOperations, - CloudFoundryService svc, CloudFoundryDiscoveryProperties properties) { + CloudFoundryDiscoveryClient(CloudFoundryOperations cloudFoundryOperations, CloudFoundryService svc, + CloudFoundryDiscoveryProperties properties) { this.cloudFoundryService = svc; this.cloudFoundryOperations = cloudFoundryOperations; this.properties = properties; @@ -73,24 +72,22 @@ public class CloudFoundryDiscoveryClient implements DiscoveryClient { String applicationIndex = instanceDetail.getIndex(); String instanceId = applicationId + "." + applicationIndex; String name = applicationDetail.getName(); - String url = applicationDetail.getUrls().size() > 0 - ? applicationDetail.getUrls().get(0) : null; + String url = applicationDetail.getUrls().size() > 0 ? applicationDetail.getUrls().get(0) : null; boolean secure = (url + "").toLowerCase().startsWith("https"); HashMap metadata = new HashMap<>(); metadata.put("applicationId", applicationId); metadata.put("instanceId", applicationIndex); - return (ServiceInstance) new DefaultServiceInstance(instanceId, name, url, - secure ? 443 : 80, secure, metadata); + return (ServiceInstance) new DefaultServiceInstance(instanceId, name, url, secure ? 443 : 80, secure, + metadata); }).collectList().blockOptional().orElse(new ArrayList<>()); } @Override public List getServices() { - return this.cloudFoundryOperations.applications().list() - .map(ApplicationSummary::getName).collectList().blockOptional() - .orElse(new ArrayList<>()); + return this.cloudFoundryOperations.applications().list().map(ApplicationSummary::getName).collectList() + .blockOptional().orElse(new ArrayList<>()); } @Override diff --git a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClientConfiguration.java b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClientConfiguration.java index 1eee639..306c972 100644 --- a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClientConfiguration.java +++ b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClientConfiguration.java @@ -45,39 +45,32 @@ public class CloudFoundryDiscoveryClientConfiguration { @Bean @ConditionalOnBean(CloudFoundryDiscoveryClient.class) - public CloudFoundryHeartbeatSender cloudFoundryHeartbeatSender( - CloudFoundryDiscoveryClient client) { + public CloudFoundryHeartbeatSender cloudFoundryHeartbeatSender(CloudFoundryDiscoveryClient client) { return new CloudFoundryHeartbeatSender(client); } @Configuration(proxyBeanMethods = false) - @ConditionalOnProperty(value = "spring.cloud.cloudfoundry.discovery.use-dns", - havingValue = "false", matchIfMissing = true) + @ConditionalOnProperty(value = "spring.cloud.cloudfoundry.discovery.use-dns", havingValue = "false", + matchIfMissing = true) public static class CloudFoundryDiscoveryClientConfig { @Bean @ConditionalOnMissingBean(DiscoveryClient.class) - public CloudFoundryDiscoveryClient cloudFoundryDiscoveryClient( - CloudFoundryOperations cf, CloudFoundryService svc, - CloudFoundryDiscoveryProperties cloudFoundryDiscoveryProperties) { - return new CloudFoundryDiscoveryClient(cf, svc, - cloudFoundryDiscoveryProperties); + public CloudFoundryDiscoveryClient cloudFoundryDiscoveryClient(CloudFoundryOperations cf, + CloudFoundryService svc, CloudFoundryDiscoveryProperties cloudFoundryDiscoveryProperties) { + return new CloudFoundryDiscoveryClient(cf, svc, cloudFoundryDiscoveryProperties); } } @Configuration(proxyBeanMethods = false) - @ConditionalOnProperty(value = "spring.cloud.cloudfoundry.discovery.use-dns", - havingValue = "true") + @ConditionalOnProperty(value = "spring.cloud.cloudfoundry.discovery.use-dns", havingValue = "true") public static class DnsBasedCloudFoundryDiscoveryClientConfig { @Bean - @ConditionalOnProperty( - value = "spring.cloud.cloudfoundry.discovery.use-container-ip", - havingValue = "true") + @ConditionalOnProperty(value = "spring.cloud.cloudfoundry.discovery.use-container-ip", havingValue = "true") @ConditionalOnMissingBean(DiscoveryClient.class) - public SimpleDnsBasedDiscoveryClient discoveryClient( - ObjectProvider provider, + public SimpleDnsBasedDiscoveryClient discoveryClient(ObjectProvider provider, CloudFoundryDiscoveryProperties properties) { ServiceIdToHostnameConverter converter = provider.getIfAvailable(); return converter == null ? new SimpleDnsBasedDiscoveryClient(properties) @@ -85,13 +78,11 @@ public class CloudFoundryDiscoveryClientConfiguration { } @Bean - @ConditionalOnProperty( - value = "spring.cloud.cloudfoundry.discovery.use-container-ip", - havingValue = "false", matchIfMissing = true) + @ConditionalOnProperty(value = "spring.cloud.cloudfoundry.discovery.use-container-ip", havingValue = "false", + matchIfMissing = true) @ConditionalOnMissingBean(DiscoveryClient.class) - public CloudFoundryAppServiceDiscoveryClient cloudFoundryDiscoveryClient( - CloudFoundryOperations cf, CloudFoundryService svc, - CloudFoundryDiscoveryProperties properties) { + public CloudFoundryAppServiceDiscoveryClient cloudFoundryDiscoveryClient(CloudFoundryOperations cf, + CloudFoundryService svc, CloudFoundryDiscoveryProperties properties) { return new CloudFoundryAppServiceDiscoveryClient(cf, svc, properties); } diff --git a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryHeartbeatSender.java b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryHeartbeatSender.java index cac7c85..e859f73 100644 --- a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryHeartbeatSender.java +++ b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryHeartbeatSender.java @@ -42,8 +42,7 @@ public class CloudFoundryHeartbeatSender implements ApplicationEventPublisherAwa this.client = client; } - @Scheduled( - fixedDelayString = "${spring.cloud.cloudfoundry.discovery.heartbeatFrequency:5000}") + @Scheduled(fixedDelayString = "${spring.cloud.cloudfoundry.discovery.heartbeatFrequency:5000}") public void poll() { if (this.publisher != null) { List services = this.client.getServices(); diff --git a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/ConditionalOnCloudFoundryDiscoveryEnabled.java b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/ConditionalOnCloudFoundryDiscoveryEnabled.java index 82afcd1..b3cb732 100644 --- a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/ConditionalOnCloudFoundryDiscoveryEnabled.java +++ b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/ConditionalOnCloudFoundryDiscoveryEnabled.java @@ -36,8 +36,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited -@ConditionalOnProperty(value = "spring.cloud.cloudfoundry.discovery.enabled", - matchIfMissing = true) +@ConditionalOnProperty(value = "spring.cloud.cloudfoundry.discovery.enabled", matchIfMissing = true) public @interface ConditionalOnCloudFoundryDiscoveryEnabled { } diff --git a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/SimpleDnsBasedDiscoveryClient.java b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/SimpleDnsBasedDiscoveryClient.java index 8ad2e08..10e3aba 100644 --- a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/SimpleDnsBasedDiscoveryClient.java +++ b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/SimpleDnsBasedDiscoveryClient.java @@ -40,8 +40,7 @@ import org.springframework.cloud.client.discovery.DiscoveryClient; */ public class SimpleDnsBasedDiscoveryClient implements DiscoveryClient { - private static final Logger log = LoggerFactory - .getLogger(SimpleDnsBasedDiscoveryClient.class); + private static final Logger log = LoggerFactory.getLogger(SimpleDnsBasedDiscoveryClient.class); private final ServiceIdToHostnameConverter serviceIdToHostnameConverter; @@ -67,8 +66,8 @@ public class SimpleDnsBasedDiscoveryClient implements DiscoveryClient { InetAddress[] addresses = InetAddress.getAllByName(hostname); if (addresses != null) { for (InetAddress address : addresses) { - DefaultServiceInstance serviceInstance = new DefaultServiceInstance( - serviceId, address.getHostAddress(), 8080, false); + DefaultServiceInstance serviceInstance = new DefaultServiceInstance(serviceId, + address.getHostAddress(), 8080, false); serviceInstances.add(serviceInstance); } } diff --git a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryAppServiceReactiveDiscoveryClient.java b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryAppServiceReactiveDiscoveryClient.java index 73f76d9..ef1ada8 100644 --- a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryAppServiceReactiveDiscoveryClient.java +++ b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryAppServiceReactiveDiscoveryClient.java @@ -34,16 +34,14 @@ import org.springframework.cloud.cloudfoundry.discovery.CloudFoundryDiscoveryPro * "https://www.cloudfoundry.org/blog/polyglot-service-discovery-container-networking-cloud-foundry/">Polyglot * Service Discovery for Container Networking in Cloud Foundry */ -public class CloudFoundryAppServiceReactiveDiscoveryClient - extends CloudFoundryNativeReactiveDiscoveryClient { +public class CloudFoundryAppServiceReactiveDiscoveryClient extends CloudFoundryNativeReactiveDiscoveryClient { private static final String INTERNAL_DOMAIN = "apps.internal"; private final CloudFoundryService cloudFoundryService; - CloudFoundryAppServiceReactiveDiscoveryClient( - CloudFoundryOperations cloudFoundryOperations, CloudFoundryService svc, - CloudFoundryDiscoveryProperties cloudFoundryDiscoveryProperties) { + CloudFoundryAppServiceReactiveDiscoveryClient(CloudFoundryOperations cloudFoundryOperations, + CloudFoundryService svc, CloudFoundryDiscoveryProperties cloudFoundryDiscoveryProperties) { super(cloudFoundryOperations, svc, cloudFoundryDiscoveryProperties); this.cloudFoundryService = svc; } @@ -56,8 +54,7 @@ public class CloudFoundryAppServiceReactiveDiscoveryClient @Override public Flux getInstances(String serviceId) { return cloudFoundryService.getApplicationInstances(serviceId) - .filter(tuple -> tuple.getT1().getUrls().stream() - .anyMatch(this::isInternalDomain)) + .filter(tuple -> tuple.getT1().getUrls().stream().anyMatch(this::isInternalDomain)) .map(this::mapApplicationInstanceToServiceInstance); } diff --git a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryNativeReactiveDiscoveryClient.java b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryNativeReactiveDiscoveryClient.java index fd49171..4c1e7d0 100644 --- a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryNativeReactiveDiscoveryClient.java +++ b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryNativeReactiveDiscoveryClient.java @@ -37,8 +37,7 @@ import org.springframework.cloud.cloudfoundry.discovery.CloudFoundryDiscoveryPro * * @author Tim Ysewyn */ -public class CloudFoundryNativeReactiveDiscoveryClient - implements ReactiveDiscoveryClient { +public class CloudFoundryNativeReactiveDiscoveryClient implements ReactiveDiscoveryClient { private final CloudFoundryService cloudFoundryService; @@ -46,8 +45,8 @@ public class CloudFoundryNativeReactiveDiscoveryClient private final CloudFoundryDiscoveryProperties properties; - CloudFoundryNativeReactiveDiscoveryClient(CloudFoundryOperations operations, - CloudFoundryService svc, CloudFoundryDiscoveryProperties properties) { + CloudFoundryNativeReactiveDiscoveryClient(CloudFoundryOperations operations, CloudFoundryService svc, + CloudFoundryDiscoveryProperties properties) { this.cloudFoundryService = svc; this.cloudFoundryOperations = operations; this.properties = properties; @@ -66,8 +65,7 @@ public class CloudFoundryNativeReactiveDiscoveryClient @Override public Flux getServices() { - return this.cloudFoundryOperations.applications().list() - .map(ApplicationSummary::getName); + return this.cloudFoundryOperations.applications().list().map(ApplicationSummary::getName); } @Override @@ -75,8 +73,7 @@ public class CloudFoundryNativeReactiveDiscoveryClient return this.properties.getOrder(); } - protected ServiceInstance mapApplicationInstanceToServiceInstance( - Tuple2 tuple) { + protected ServiceInstance mapApplicationInstanceToServiceInstance(Tuple2 tuple) { ApplicationDetail applicationDetail = tuple.getT1(); InstanceDetail instanceDetail = tuple.getT2(); @@ -84,16 +81,14 @@ public class CloudFoundryNativeReactiveDiscoveryClient String applicationIndex = instanceDetail.getIndex(); String instanceId = applicationId + "." + applicationIndex; String name = applicationDetail.getName(); - String url = applicationDetail.getUrls().size() > 0 - ? applicationDetail.getUrls().get(0) : null; + String url = applicationDetail.getUrls().size() > 0 ? applicationDetail.getUrls().get(0) : null; boolean secure = (url + "").toLowerCase().startsWith("https"); HashMap metadata = new HashMap<>(); metadata.put("applicationId", applicationId); metadata.put("instanceId", applicationIndex); - return new DefaultServiceInstance(instanceId, name, url, secure ? 443 : 80, - secure, metadata); + return new DefaultServiceInstance(instanceId, name, url, secure ? 443 : 80, secure, metadata); } } diff --git a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryReactiveDiscoveryClientConfiguration.java b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryReactiveDiscoveryClientConfiguration.java index 5516966..cb7382c 100644 --- a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryReactiveDiscoveryClientConfiguration.java +++ b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryReactiveDiscoveryClientConfiguration.java @@ -55,26 +55,22 @@ import org.springframework.context.annotation.Configuration; public class CloudFoundryReactiveDiscoveryClientConfiguration { @Configuration(proxyBeanMethods = false) - @ConditionalOnProperty(value = "spring.cloud.cloudfoundry.discovery.use-dns", - havingValue = "false", matchIfMissing = true) + @ConditionalOnProperty(value = "spring.cloud.cloudfoundry.discovery.use-dns", havingValue = "false", + matchIfMissing = true) public static class CloudFoundryNativeReactiveDiscoveryClientConfig { @Bean @ConditionalOnMissingBean - public CloudFoundryNativeReactiveDiscoveryClient nativeCloudFoundryDiscoveryClient( - CloudFoundryOperations cf, CloudFoundryService svc, - CloudFoundryDiscoveryProperties cloudFoundryDiscoveryProperties) { - return new CloudFoundryNativeReactiveDiscoveryClient(cf, svc, - cloudFoundryDiscoveryProperties); + public CloudFoundryNativeReactiveDiscoveryClient nativeCloudFoundryDiscoveryClient(CloudFoundryOperations cf, + CloudFoundryService svc, CloudFoundryDiscoveryProperties cloudFoundryDiscoveryProperties) { + return new CloudFoundryNativeReactiveDiscoveryClient(cf, svc, cloudFoundryDiscoveryProperties); } @Bean - @ConditionalOnClass( - name = "org.springframework.boot.actuate.health.ReactiveHealthIndicator") + @ConditionalOnClass(name = "org.springframework.boot.actuate.health.ReactiveHealthIndicator") @ConditionalOnDiscoveryHealthIndicatorEnabled public ReactiveDiscoveryClientHealthIndicator cloudFoundryReactiveDiscoveryClientHealthIndicator( - CloudFoundryNativeReactiveDiscoveryClient client, - DiscoveryClientHealthIndicatorProperties properties) { + CloudFoundryNativeReactiveDiscoveryClient client, DiscoveryClientHealthIndicatorProperties properties) { return new ReactiveDiscoveryClientHealthIndicator(client, properties); } @@ -87,34 +83,27 @@ public class CloudFoundryReactiveDiscoveryClientConfiguration { } @Configuration(proxyBeanMethods = false) - @ConditionalOnProperty(value = "spring.cloud.cloudfoundry.discovery.use-dns", - havingValue = "true") + @ConditionalOnProperty(value = "spring.cloud.cloudfoundry.discovery.use-dns", havingValue = "true") public static class DnsConfig { @Configuration(proxyBeanMethods = false) - @ConditionalOnProperty( - value = "spring.cloud.cloudfoundry.discovery.use-container-ip", - havingValue = "true") + @ConditionalOnProperty(value = "spring.cloud.cloudfoundry.discovery.use-container-ip", havingValue = "true") public static class SimpleDnsConfig { @Bean @ConditionalOnMissingBean public SimpleDnsBasedReactiveDiscoveryClient dnsBasedReactiveDiscoveryClient( - ObjectProvider provider, - CloudFoundryDiscoveryProperties properties) { + ObjectProvider provider, CloudFoundryDiscoveryProperties properties) { ServiceIdToHostnameConverter converter = provider.getIfAvailable(); - return converter == null - ? new SimpleDnsBasedReactiveDiscoveryClient(properties) + return converter == null ? new SimpleDnsBasedReactiveDiscoveryClient(properties) : new SimpleDnsBasedReactiveDiscoveryClient(converter); } @Bean - @ConditionalOnClass( - name = "org.springframework.boot.actuate.health.ReactiveHealthIndicator") + @ConditionalOnClass(name = "org.springframework.boot.actuate.health.ReactiveHealthIndicator") @ConditionalOnDiscoveryHealthIndicatorEnabled public ReactiveDiscoveryClientHealthIndicator cloudFoundryReactiveDiscoveryClientHealthIndicator( - SimpleDnsBasedReactiveDiscoveryClient client, - DiscoveryClientHealthIndicatorProperties properties) { + SimpleDnsBasedReactiveDiscoveryClient client, DiscoveryClientHealthIndicatorProperties properties) { return new ReactiveDiscoveryClientHealthIndicator(client, properties); } @@ -127,23 +116,19 @@ public class CloudFoundryReactiveDiscoveryClientConfiguration { } @Configuration(proxyBeanMethods = false) - @ConditionalOnProperty( - value = "spring.cloud.cloudfoundry.discovery.use-container-ip", - havingValue = "false", matchIfMissing = true) + @ConditionalOnProperty(value = "spring.cloud.cloudfoundry.discovery.use-container-ip", havingValue = "false", + matchIfMissing = true) public static class AppServiceConfig { @Bean @ConditionalOnMissingBean public CloudFoundryAppServiceReactiveDiscoveryClient appServiceReactiveDiscoveryClient( - CloudFoundryOperations cf, CloudFoundryService svc, - CloudFoundryDiscoveryProperties properties) { - return new CloudFoundryAppServiceReactiveDiscoveryClient(cf, svc, - properties); + CloudFoundryOperations cf, CloudFoundryService svc, CloudFoundryDiscoveryProperties properties) { + return new CloudFoundryAppServiceReactiveDiscoveryClient(cf, svc, properties); } @Bean - @ConditionalOnClass( - name = "org.springframework.boot.actuate.health.ReactiveHealthIndicator") + @ConditionalOnClass(name = "org.springframework.boot.actuate.health.ReactiveHealthIndicator") @ConditionalOnDiscoveryHealthIndicatorEnabled public ReactiveDiscoveryClientHealthIndicator cloudFoundryReactiveDiscoveryClientHealthIndicator( CloudFoundryAppServiceReactiveDiscoveryClient client, diff --git a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryReactiveHeartbeatSender.java b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryReactiveHeartbeatSender.java index e633f29..3dccaa6 100644 --- a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryReactiveHeartbeatSender.java +++ b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryReactiveHeartbeatSender.java @@ -30,8 +30,7 @@ import org.springframework.stereotype.Component; * @author Tim Ysewyn */ @Component -public class CloudFoundryReactiveHeartbeatSender - implements ApplicationEventPublisherAware { +public class CloudFoundryReactiveHeartbeatSender implements ApplicationEventPublisherAware { private final ReactiveDiscoveryClient client; @@ -41,12 +40,10 @@ public class CloudFoundryReactiveHeartbeatSender this.client = client; } - @Scheduled( - fixedDelayString = "${spring.cloud.cloudfoundry.discovery.heartbeatFrequency:5000}") + @Scheduled(fixedDelayString = "${spring.cloud.cloudfoundry.discovery.heartbeatFrequency:5000}") public void poll() { if (this.publisher != null) { - this.publisher.publishEvent( - new HeartbeatEvent(this.client, this.client.getServices())); + this.publisher.publishEvent(new HeartbeatEvent(this.client, this.client.getServices())); } } diff --git a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/SimpleDnsBasedReactiveDiscoveryClient.java b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/SimpleDnsBasedReactiveDiscoveryClient.java index 6d5d98e..6b41512 100644 --- a/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/SimpleDnsBasedReactiveDiscoveryClient.java +++ b/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/reactive/SimpleDnsBasedReactiveDiscoveryClient.java @@ -42,18 +42,15 @@ import org.springframework.cloud.cloudfoundry.discovery.CloudFoundryDiscoveryPro */ public class SimpleDnsBasedReactiveDiscoveryClient implements ReactiveDiscoveryClient { - private static final Logger log = LoggerFactory - .getLogger(SimpleDnsBasedReactiveDiscoveryClient.class); + private static final Logger log = LoggerFactory.getLogger(SimpleDnsBasedReactiveDiscoveryClient.class); private final ServiceIdToHostnameConverter serviceIdToHostnameConverter; - public SimpleDnsBasedReactiveDiscoveryClient( - ServiceIdToHostnameConverter serviceIdToHostnameConverter) { + public SimpleDnsBasedReactiveDiscoveryClient(ServiceIdToHostnameConverter serviceIdToHostnameConverter) { this.serviceIdToHostnameConverter = serviceIdToHostnameConverter; } - public SimpleDnsBasedReactiveDiscoveryClient( - CloudFoundryDiscoveryProperties properties) { + public SimpleDnsBasedReactiveDiscoveryClient(CloudFoundryDiscoveryProperties properties) { this(serviceId -> serviceId + "." + properties.getInternalDomain()); } @@ -64,10 +61,8 @@ public class SimpleDnsBasedReactiveDiscoveryClient implements ReactiveDiscoveryC @Override public Flux getInstances(String serviceId) { - return Mono.justOrEmpty(serviceIdToHostnameConverter.toHostname(serviceId)) - .flatMapMany(getInetAddresses()) - .map(address -> new DefaultServiceInstance(serviceId, - address.getHostAddress(), 8080, false)); + return Mono.justOrEmpty(serviceIdToHostnameConverter.toHostname(serviceId)).flatMapMany(getInetAddresses()) + .map(address -> new DefaultServiceInstance(serviceId, address.getHostAddress(), 8080, false)); } private Function> getInetAddresses() { diff --git a/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryAppServiceDiscoveryClientTest.java b/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryAppServiceDiscoveryClientTest.java index 5ccbcec..79f0b4a 100644 --- a/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryAppServiceDiscoveryClientTest.java +++ b/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryAppServiceDiscoveryClientTest.java @@ -50,26 +50,23 @@ public class CloudFoundryAppServiceDiscoveryClientTest { public void setUp() { this.cloudFoundryOperations = mock(CloudFoundryOperations.class); this.cloudFoundryService = mock(CloudFoundryService.class); - this.discoveryClient = new CloudFoundryAppServiceDiscoveryClient( - this.cloudFoundryOperations, this.cloudFoundryService, - new CloudFoundryDiscoveryProperties()); + this.discoveryClient = new CloudFoundryAppServiceDiscoveryClient(this.cloudFoundryOperations, + this.cloudFoundryService, new CloudFoundryDiscoveryProperties()); } @Test public void getInstancesOneInstance() { String serviceId = "billing"; - ApplicationDetail applicationDetail = ApplicationDetail.builder().id("billing1") - .name("billing").instances(1).memoryLimit(1024).stack("cflinux2") - .diskQuota(1024).requestedState("Running").runningInstances(1) + ApplicationDetail applicationDetail = ApplicationDetail.builder().id("billing1").name("billing").instances(1) + .memoryLimit(1024).stack("cflinux2").diskQuota(1024).requestedState("Running").runningInstances(1) .urls("billing.apps.example.com", "billing.apps.internal").build(); given(this.cloudFoundryService.getApplicationInstances(serviceId)) - .willReturn(Flux.just(Tuples.of(applicationDetail, - InstanceDetail.builder().index("0").build()))); + .willReturn(Flux.just(Tuples.of(applicationDetail, InstanceDetail.builder().index("0").build()))); List instances = this.discoveryClient.getInstances(serviceId); assertThat(instances).hasSize(1); - assertThat(instances.get(0)).isEqualTo(new DefaultServiceInstance(serviceId, - "0.billing.apps.internal", 8080, false, new HashMap() { + assertThat(instances.get(0)).isEqualTo(new DefaultServiceInstance(serviceId, "0.billing.apps.internal", 8080, + false, new HashMap() { { put("applicationId", "billing1"); put("instanceId", "0"); @@ -80,37 +77,32 @@ public class CloudFoundryAppServiceDiscoveryClientTest { @Test public void getInstancesThreeInstance() { String serviceId = "billing"; - ApplicationDetail applicationDetail = ApplicationDetail.builder().id("billing-id") - .name("billing").instances(3).memoryLimit(1024).stack("cflinux2") - .diskQuota(1024).requestedState("Running").runningInstances(3) + ApplicationDetail applicationDetail = ApplicationDetail.builder().id("billing-id").name("billing").instances(3) + .memoryLimit(1024).stack("cflinux2").diskQuota(1024).requestedState("Running").runningInstances(3) .urls("billing.apps.example.com", "billing.apps.internal").build(); given(this.cloudFoundryService.getApplicationInstances(serviceId)) - .willReturn(Flux.just( - Tuples.of(applicationDetail, - InstanceDetail.builder().index("0").build()), - Tuples.of(applicationDetail, - InstanceDetail.builder().index("1").build()), - Tuples.of(applicationDetail, - InstanceDetail.builder().index("2").build()))); + .willReturn(Flux.just(Tuples.of(applicationDetail, InstanceDetail.builder().index("0").build()), + Tuples.of(applicationDetail, InstanceDetail.builder().index("1").build()), + Tuples.of(applicationDetail, InstanceDetail.builder().index("2").build()))); List instances = this.discoveryClient.getInstances(serviceId); assertThat(instances).hasSize(3); - assertThat(instances.get(0)).isEqualTo(new DefaultServiceInstance(serviceId, - "0.billing.apps.internal", 8080, false, new HashMap() { + assertThat(instances.get(0)).isEqualTo(new DefaultServiceInstance(serviceId, "0.billing.apps.internal", 8080, + false, new HashMap() { { put("applicationId", "billing-id"); put("instanceId", "0"); } })); - assertThat(instances.get(1)).isEqualTo(new DefaultServiceInstance(serviceId, - "1.billing.apps.internal", 8080, false, new HashMap() { + assertThat(instances.get(1)).isEqualTo(new DefaultServiceInstance(serviceId, "1.billing.apps.internal", 8080, + false, new HashMap() { { put("applicationId", "billing-id"); put("instanceId", "1"); } })); - assertThat(instances.get(2)).isEqualTo(new DefaultServiceInstance(serviceId, - "2.billing.apps.internal", 8080, false, new HashMap() { + assertThat(instances.get(2)).isEqualTo(new DefaultServiceInstance(serviceId, "2.billing.apps.internal", 8080, + false, new HashMap() { { put("applicationId", "billing-id"); put("instanceId", "2"); @@ -121,13 +113,11 @@ public class CloudFoundryAppServiceDiscoveryClientTest { @Test public void getInstancesEmpty() { String serviceId = "billing"; - ApplicationDetail applicationDetail = ApplicationDetail.builder().id("billing1") - .name("billing").instances(1).memoryLimit(1024).stack("cflinux2") - .diskQuota(1024).requestedState("Running").runningInstances(1) + ApplicationDetail applicationDetail = ApplicationDetail.builder().id("billing1").name("billing").instances(1) + .memoryLimit(1024).stack("cflinux2").diskQuota(1024).requestedState("Running").runningInstances(1) .url("billing.apps.example.com").build(); given(this.cloudFoundryService.getApplicationInstances(serviceId)) - .willReturn(Flux.just(Tuples.of(applicationDetail, - InstanceDetail.builder().index("0").build()))); + .willReturn(Flux.just(Tuples.of(applicationDetail, InstanceDetail.builder().index("0").build()))); List instances = this.discoveryClient.getInstances(serviceId); assertThat(instances).isEmpty(); diff --git a/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClientConfigurationTest.java b/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClientConfigurationTest.java index fb5891c..a257cd9 100644 --- a/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClientConfigurationTest.java +++ b/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClientConfigurationTest.java @@ -37,41 +37,31 @@ import static org.assertj.core.api.Assertions.assertThat; public class CloudFoundryDiscoveryClientConfigurationTest { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations - .of(CloudFoundryDiscoveryClientConfiguration.class)); + .withConfiguration(AutoConfigurations.of(CloudFoundryDiscoveryClientConfiguration.class)); @Test public void testDefault() { - this.contextRunner.withUserConfiguration(CloudFoundryConfig.class) - .run((context) -> { - DiscoveryClient discoveryClient = context - .getBean(DiscoveryClient.class); - assertThat(discoveryClient.getClass()) - .isEqualTo(CloudFoundryDiscoveryClient.class); - }); + this.contextRunner.withUserConfiguration(CloudFoundryConfig.class).run((context) -> { + DiscoveryClient discoveryClient = context.getBean(DiscoveryClient.class); + assertThat(discoveryClient.getClass()).isEqualTo(CloudFoundryDiscoveryClient.class); + }); } @Test public void testUseDnsTrue() { this.contextRunner.withUserConfiguration(CloudFoundryConfig.class) - .withPropertyValues("spring.cloud.cloudfoundry.discovery.use-dns=true") - .run((context) -> { - DiscoveryClient discoveryClient = context - .getBean(DiscoveryClient.class); - assertThat(discoveryClient.getClass()) - .isEqualTo(CloudFoundryAppServiceDiscoveryClient.class); + .withPropertyValues("spring.cloud.cloudfoundry.discovery.use-dns=true").run((context) -> { + DiscoveryClient discoveryClient = context.getBean(DiscoveryClient.class); + assertThat(discoveryClient.getClass()).isEqualTo(CloudFoundryAppServiceDiscoveryClient.class); }); } @Test public void testUseDnsFalse() { this.contextRunner.withUserConfiguration(CloudFoundryConfig.class) - .withPropertyValues("spring.cloud.cloudfoundry.discovery.use-dns=false") - .run((context) -> { - DiscoveryClient discoveryClient = context - .getBean(DiscoveryClient.class); - assertThat(discoveryClient.getClass()) - .isEqualTo(CloudFoundryDiscoveryClient.class); + .withPropertyValues("spring.cloud.cloudfoundry.discovery.use-dns=false").run((context) -> { + DiscoveryClient discoveryClient = context.getBean(DiscoveryClient.class); + assertThat(discoveryClient.getClass()).isEqualTo(CloudFoundryDiscoveryClient.class); }); } @@ -81,23 +71,17 @@ public class CloudFoundryDiscoveryClientConfigurationTest { .withPropertyValues("spring.cloud.cloudfoundry.discovery.use-dns=true", "spring.cloud.cloudfoundry.discovery.use-container-ip=false") .run((context) -> { - DiscoveryClient discoveryClient = context - .getBean(DiscoveryClient.class); - assertThat(discoveryClient.getClass()) - .isEqualTo(CloudFoundryAppServiceDiscoveryClient.class); + DiscoveryClient discoveryClient = context.getBean(DiscoveryClient.class); + assertThat(discoveryClient.getClass()).isEqualTo(CloudFoundryAppServiceDiscoveryClient.class); }); } @Test public void testUseContainerIpTrue() { - this.contextRunner - .withPropertyValues("spring.cloud.cloudfoundry.discovery.use-dns=true", - "spring.cloud.cloudfoundry.discovery.use-container-ip=true") - .run((context) -> { - DiscoveryClient discoveryClient = context - .getBean(DiscoveryClient.class); - assertThat(discoveryClient.getClass()) - .isEqualTo(SimpleDnsBasedDiscoveryClient.class); + this.contextRunner.withPropertyValues("spring.cloud.cloudfoundry.discovery.use-dns=true", + "spring.cloud.cloudfoundry.discovery.use-container-ip=true").run((context) -> { + DiscoveryClient discoveryClient = context.getBean(DiscoveryClient.class); + assertThat(discoveryClient.getClass()).isEqualTo(SimpleDnsBasedDiscoveryClient.class); }); } diff --git a/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClientTest.java b/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClientTest.java index b589364..796b66d 100644 --- a/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClientTest.java +++ b/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryDiscoveryClientTest.java @@ -58,42 +58,35 @@ public class CloudFoundryDiscoveryClientTest { public void setUp() { this.ops = mock(CloudFoundryOperations.class); this.svc = mock(CloudFoundryService.class); - this.cloudFoundryDiscoveryClient = new CloudFoundryDiscoveryClient(this.ops, - this.svc, new CloudFoundryDiscoveryProperties()); + this.cloudFoundryDiscoveryClient = new CloudFoundryDiscoveryClient(this.ops, this.svc, + new CloudFoundryDiscoveryProperties()); } @Test public void testServiceResolution() { Applications apps = mock(Applications.class); - ApplicationSummary s = ApplicationSummary.builder() - .id(UUID.randomUUID().toString()).instances(2).memoryLimit(1024) - .requestedState("requestedState").diskQuota(1024) - .name(this.hiServiceServiceId).runningInstances(2).build(); + ApplicationSummary s = ApplicationSummary.builder().id(UUID.randomUUID().toString()).instances(2) + .memoryLimit(1024).requestedState("requestedState").diskQuota(1024).name(this.hiServiceServiceId) + .runningInstances(2).build(); Mockito.when(apps.list()).thenReturn(Flux.just(s)); Mockito.when(this.ops.applications()).thenReturn(apps); List serviceNames = this.cloudFoundryDiscoveryClient.getServices(); - assertThat(serviceNames.contains(this.hiServiceServiceId)) - .as("there should be one registered service.").isTrue(); - serviceNames.forEach(serviceName -> this.log - .debug("\t discovered serviceName: " + serviceName)); + assertThat(serviceNames.contains(this.hiServiceServiceId)).as("there should be one registered service.") + .isTrue(); + serviceNames.forEach(serviceName -> this.log.debug("\t discovered serviceName: " + serviceName)); } @Test public void testInstances() { - ApplicationDetail applicationDetail = ApplicationDetail.builder().instances(2) - .name("my-app").stack("stack").memoryLimit(1024).id("id") - .requestedState("requestedState").runningInstances(2) + ApplicationDetail applicationDetail = ApplicationDetail.builder().instances(2).name("my-app").stack("stack") + .memoryLimit(1024).id("id").requestedState("requestedState").runningInstances(2) .url("http://my-app-cfapps-io").diskQuota(20).build(); InstanceDetail instanceDetail = InstanceDetail.builder().index("0").build(); - Tuple2 tuple2 = Tuples.of(applicationDetail, - instanceDetail); - Mockito.when(this.svc.getApplicationInstances(this.hiServiceServiceId)) - .thenReturn(Flux.just(tuple2)); - List instances = this.cloudFoundryDiscoveryClient - .getInstances(this.hiServiceServiceId); + Tuple2 tuple2 = Tuples.of(applicationDetail, instanceDetail); + Mockito.when(this.svc.getApplicationInstances(this.hiServiceServiceId)).thenReturn(Flux.just(tuple2)); + List instances = this.cloudFoundryDiscoveryClient.getInstances(this.hiServiceServiceId); assertThat(instances.size()).as("Wrong instances: " + instances).isEqualTo(1); - assertThat(instances.get(0).getInstanceId()).as("Wrong instance ID") - .isEqualTo("id.0"); + assertThat(instances.get(0).getInstanceId()).as("Wrong instance ID").isEqualTo("id.0"); } } diff --git a/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryAppServiceReactiveDiscoveryClientTests.java b/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryAppServiceReactiveDiscoveryClientTests.java index 443c4ff..c4da585 100644 --- a/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryAppServiceReactiveDiscoveryClientTests.java +++ b/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryAppServiceReactiveDiscoveryClientTests.java @@ -49,22 +49,17 @@ class CloudFoundryAppServiceReactiveDiscoveryClientTests { @Test public void shouldReturnFluxOfServiceInstances() { - ApplicationDetail appDetail1 = ApplicationDetail.builder() - .id(UUID.randomUUID().toString()).stack("stack").instances(1) - .memoryLimit(1024).requestedState("requestedState").diskQuota(1024) - .name("service").runningInstances(1).url("instance.apps.internal") - .build(); + ApplicationDetail appDetail1 = ApplicationDetail.builder().id(UUID.randomUUID().toString()).stack("stack") + .instances(1).memoryLimit(1024).requestedState("requestedState").diskQuota(1024).name("service") + .runningInstances(1).url("instance.apps.internal").build(); Tuple2 instance1 = Tuples.of(appDetail1, InstanceDetail.builder().index("0").build()); - ApplicationDetail appDetail2 = ApplicationDetail.builder() - .id(UUID.randomUUID().toString()).stack("stack").instances(1) - .memoryLimit(1024).requestedState("requestedState").diskQuota(1024) - .name("service").runningInstances(1).url("instance.apps.not.internal") - .build(); + ApplicationDetail appDetail2 = ApplicationDetail.builder().id(UUID.randomUUID().toString()).stack("stack") + .instances(1).memoryLimit(1024).requestedState("requestedState").diskQuota(1024).name("service") + .runningInstances(1).url("instance.apps.not.internal").build(); Tuple2 instance2 = Tuples.of(appDetail2, InstanceDetail.builder().index("0").build()); - when(this.svc.getApplicationInstances("service")) - .thenReturn(Flux.just(instance1, instance2)); + when(this.svc.getApplicationInstances("service")).thenReturn(Flux.just(instance1, instance2)); Flux instances = this.client.getInstances("service"); StepVerifier.create(instances).expectNextCount(1).expectComplete().verify(); } diff --git a/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryNativeReactiveDiscoveryClientTests.java b/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryNativeReactiveDiscoveryClientTests.java index b8c8c59..7b52a6a 100644 --- a/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryNativeReactiveDiscoveryClientTests.java +++ b/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryNativeReactiveDiscoveryClientTests.java @@ -62,8 +62,7 @@ class CloudFoundryNativeReactiveDiscoveryClientTests { @Test public void verifyDefaults() { when(properties.getOrder()).thenReturn(0); - assertThat(client.description()) - .isEqualTo("CF Reactive Service Discovery Client"); + assertThat(client.description()).isEqualTo("CF Reactive Service Discovery Client"); assertThat(client.getOrder()).isEqualTo(0); } @@ -71,10 +70,9 @@ class CloudFoundryNativeReactiveDiscoveryClientTests { public void shouldReturnFluxOfServices() { Applications apps = mock(Applications.class); when(operations.applications()).thenReturn(apps); - ApplicationSummary summary = ApplicationSummary.builder() - .id(UUID.randomUUID().toString()).instances(1).memoryLimit(1024) - .requestedState("requestedState").diskQuota(1024).name("service") - .runningInstances(1).build(); + ApplicationSummary summary = ApplicationSummary.builder().id(UUID.randomUUID().toString()).instances(1) + .memoryLimit(1024).requestedState("requestedState").diskQuota(1024).name("service").runningInstances(1) + .build(); when(apps.list()).thenReturn(Flux.just(summary)); Flux services = this.client.getServices(); StepVerifier.create(services).expectNext("service").expectComplete().verify(); @@ -89,13 +87,11 @@ class CloudFoundryNativeReactiveDiscoveryClientTests { @Test public void shouldReturnFluxOfServiceInstances() { - ApplicationDetail applicationDetail = ApplicationDetail.builder() - .id(UUID.randomUUID().toString()).stack("stack").instances(1) - .memoryLimit(1024).requestedState("requestedState").diskQuota(1024) + ApplicationDetail applicationDetail = ApplicationDetail.builder().id(UUID.randomUUID().toString()) + .stack("stack").instances(1).memoryLimit(1024).requestedState("requestedState").diskQuota(1024) .name("service").runningInstances(1).build(); InstanceDetail instanceDetail = InstanceDetail.builder().index("0").build(); - Tuple2 instance = Tuples.of(applicationDetail, - instanceDetail); + Tuple2 instance = Tuples.of(applicationDetail, instanceDetail); when(this.svc.getApplicationInstances("service")).thenReturn(Flux.just(instance)); Flux instances = this.client.getInstances("service"); StepVerifier.create(instances).expectNextCount(1).expectComplete().verify(); diff --git a/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryReactiveDiscoveryClientConfigurationTests.java b/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryReactiveDiscoveryClientConfigurationTests.java index aeca87b..13749e6 100644 --- a/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryReactiveDiscoveryClientConfigurationTests.java +++ b/spring-cloud-cloudfoundry-discovery/src/test/java/org/springframework/cloud/cloudfoundry/discovery/reactive/CloudFoundryReactiveDiscoveryClientConfigurationTests.java @@ -39,138 +39,100 @@ import static org.mockito.Mockito.mock; */ class CloudFoundryReactiveDiscoveryClientConfigurationTests { - private ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration( - AutoConfigurations.of(MockedCloudFoundryConfiguration.class, - CloudFoundryReactiveDiscoveryClientConfiguration.class)); + private ApplicationContextRunner contextRunner = new ApplicationContextRunner().withConfiguration(AutoConfigurations + .of(MockedCloudFoundryConfiguration.class, CloudFoundryReactiveDiscoveryClientConfiguration.class)); @Test public void shouldNotHaveDiscoveryClientsWhenDiscoveryDisabled() { - contextRunner.withPropertyValues("spring.cloud.discovery.enabled=false") - .run(context -> { - assertThat(context).doesNotHaveBean("cloudFoundryHeartbeatSender"); - assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class); - assertThat(context).doesNotHaveBean( - ReactiveDiscoveryClientHealthIndicator.class); - }); + contextRunner.withPropertyValues("spring.cloud.discovery.enabled=false").run(context -> { + assertThat(context).doesNotHaveBean("cloudFoundryHeartbeatSender"); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); + }); } @Test public void shouldNotHaveDiscoveryClientsWhenReactiveDiscoveryDisabled() { - contextRunner.withPropertyValues("spring.cloud.discovery.reactive.enabled=false") - .run(context -> { - assertThat(context).doesNotHaveBean("cloudFoundryHeartbeatSender"); - assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class); - assertThat(context).doesNotHaveBean( - ReactiveDiscoveryClientHealthIndicator.class); - }); + contextRunner.withPropertyValues("spring.cloud.discovery.reactive.enabled=false").run(context -> { + assertThat(context).doesNotHaveBean("cloudFoundryHeartbeatSender"); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); + }); } @Test public void shouldNotHaveDiscoveryClientsWhenCloudFoundryDiscoveryDisabled() { - contextRunner - .withPropertyValues("spring.cloud.cloudfoundry.discovery.enabled=false") - .run(context -> { - assertThat(context).doesNotHaveBean("cloudFoundryHeartbeatSender"); - assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class); - assertThat(context).doesNotHaveBean( - ReactiveDiscoveryClientHealthIndicator.class); - }); + contextRunner.withPropertyValues("spring.cloud.cloudfoundry.discovery.enabled=false").run(context -> { + assertThat(context).doesNotHaveBean("cloudFoundryHeartbeatSender"); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); + }); } @Test public void shouldUseNativeDiscovery() { - contextRunner - .withConfiguration(AutoConfigurations - .of(ReactiveCommonsClientAutoConfiguration.class)) + contextRunner.withConfiguration(AutoConfigurations.of(ReactiveCommonsClientAutoConfiguration.class)) .run(context -> { - assertThat(context) - .hasSingleBean(CloudFoundryReactiveHeartbeatSender.class); + assertThat(context).hasSingleBean(CloudFoundryReactiveHeartbeatSender.class); assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class); assertThat(context).hasBean("nativeCloudFoundryDiscoveryClient"); - assertThat(context) - .hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class); + assertThat(context).hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class); }); } @Test public void shouldUseDnsDiscovery() { - contextRunner - .withConfiguration(AutoConfigurations - .of(ReactiveCommonsClientAutoConfiguration.class)) + contextRunner.withConfiguration(AutoConfigurations.of(ReactiveCommonsClientAutoConfiguration.class)) .withPropertyValues("spring.cloud.cloudfoundry.discovery.use-dns=true", "spring.cloud.cloudfoundry.discovery.use-container-ip=true") .run(context -> { - assertThat(context) - .hasSingleBean(CloudFoundryReactiveHeartbeatSender.class); + assertThat(context).hasSingleBean(CloudFoundryReactiveHeartbeatSender.class); assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class); assertThat(context).hasBean("dnsBasedReactiveDiscoveryClient"); - assertThat(context) - .hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class); + assertThat(context).hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class); }); } @Test public void shouldUseAppServiceDiscovery() { - contextRunner - .withConfiguration(AutoConfigurations - .of(ReactiveCommonsClientAutoConfiguration.class)) + contextRunner.withConfiguration(AutoConfigurations.of(ReactiveCommonsClientAutoConfiguration.class)) .withPropertyValues("spring.cloud.cloudfoundry.discovery.use-dns=true", "spring.cloud.cloudfoundry.discovery.use-container-ip=false") .run(context -> { - assertThat(context) - .hasSingleBean(CloudFoundryReactiveHeartbeatSender.class); + assertThat(context).hasSingleBean(CloudFoundryReactiveHeartbeatSender.class); assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class); assertThat(context).hasBean("appServiceReactiveDiscoveryClient"); - assertThat(context) - .hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class); + assertThat(context).hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class); }); } @Test public void shouldUseCustomServiceDiscovery() { - contextRunner - .withConfiguration(AutoConfigurations - .of(ReactiveCommonsClientAutoConfiguration.class)) - .withUserConfiguration( - CustomCloudFoundryReactiveDiscoveryClientConfiguration.class) - .run(context -> { - assertThat(context) - .hasSingleBean(CloudFoundryReactiveHeartbeatSender.class); - assertThat(context).getBeans(ReactiveDiscoveryClient.class) - .hasSize(2); + contextRunner.withConfiguration(AutoConfigurations.of(ReactiveCommonsClientAutoConfiguration.class)) + .withUserConfiguration(CustomCloudFoundryReactiveDiscoveryClientConfiguration.class).run(context -> { + assertThat(context).hasSingleBean(CloudFoundryReactiveHeartbeatSender.class); + assertThat(context).getBeans(ReactiveDiscoveryClient.class).hasSize(2); assertThat(context).hasBean("nativeCloudFoundryDiscoveryClient"); - assertThat(context) - .hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class); + assertThat(context).hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class); }); } @Test public void worksWithoutWebflux() { - contextRunner - .withClassLoader( - new FilteredClassLoader("org.springframework.web.reactive")) - .run(context -> { - assertThat(context) - .doesNotHaveBean(CloudFoundryReactiveHeartbeatSender.class); - assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class); - assertThat(context).doesNotHaveBean( - ReactiveDiscoveryClientHealthIndicator.class); - }); + contextRunner.withClassLoader(new FilteredClassLoader("org.springframework.web.reactive")).run(context -> { + assertThat(context).doesNotHaveBean(CloudFoundryReactiveHeartbeatSender.class); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); + }); } @Test public void worksWithoutActuator() { - contextRunner - .withClassLoader( - new FilteredClassLoader("org.springframework.boot.actuate")) - .run(context -> { - assertThat(context) - .hasSingleBean(CloudFoundryReactiveHeartbeatSender.class); - assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class); - assertThat(context).doesNotHaveBean( - ReactiveDiscoveryClientHealthIndicator.class); - }); + contextRunner.withClassLoader(new FilteredClassLoader("org.springframework.boot.actuate")).run(context -> { + assertThat(context).hasSingleBean(CloudFoundryReactiveHeartbeatSender.class); + assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class); + assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class); + }); } @TestConfiguration diff --git a/spring-cloud-cloudfoundry-sample/src/main/java/org/springframework/cloud/cloudfoundry/sample/CloudFoundryApplication.java b/spring-cloud-cloudfoundry-sample/src/main/java/org/springframework/cloud/cloudfoundry/sample/CloudFoundryApplication.java index e9c4cea..071911d 100644 --- a/spring-cloud-cloudfoundry-sample/src/main/java/org/springframework/cloud/cloudfoundry/sample/CloudFoundryApplication.java +++ b/spring-cloud-cloudfoundry-sample/src/main/java/org/springframework/cloud/cloudfoundry/sample/CloudFoundryApplication.java @@ -59,8 +59,7 @@ public class CloudFoundryApplication { Log log = LogFactory.getLog(getClass()); return args -> discoveryClient.getServices().forEach(svc -> { log.info("service = " + svc); - discoveryClient.getInstances(svc) - .forEach(si -> log.info("\tinstance = " + si)); + discoveryClient.getInstances(svc).forEach(si -> log.info("\tinstance = " + si)); }); } diff --git a/spring-cloud-cloudfoundry-web/src/main/java/org/springframework/cloud/cloudfoundry/environment/VcapServiceCredentialsEnvironmentPostProcessor.java b/spring-cloud-cloudfoundry-web/src/main/java/org/springframework/cloud/cloudfoundry/environment/VcapServiceCredentialsEnvironmentPostProcessor.java index e34e9a2..a95923c 100644 --- a/spring-cloud-cloudfoundry-web/src/main/java/org/springframework/cloud/cloudfoundry/environment/VcapServiceCredentialsEnvironmentPostProcessor.java +++ b/spring-cloud-cloudfoundry-web/src/main/java/org/springframework/cloud/cloudfoundry/environment/VcapServiceCredentialsEnvironmentPostProcessor.java @@ -35,11 +35,9 @@ import org.springframework.util.StringUtils; * @author Dave Syer * */ -public class VcapServiceCredentialsEnvironmentPostProcessor - implements EnvironmentPostProcessor, Ordered { +public class VcapServiceCredentialsEnvironmentPostProcessor implements EnvironmentPostProcessor, Ordered { - static final Bindable> STRING_OBJECT_MAP = Bindable - .mapOf(String.class, Object.class); + static final Bindable> STRING_OBJECT_MAP = Bindable.mapOf(String.class, Object.class); // After VcapEnvironmentPostProcessor and ConfigFileEnvironmentPostProcessor so // values here can @@ -52,63 +50,52 @@ public class VcapServiceCredentialsEnvironmentPostProcessor } @Override - public void postProcessEnvironment(ConfigurableEnvironment environment, - SpringApplication application) { - Binder.get(environment).bind("vcap.services", STRING_OBJECT_MAP) - .orElseGet(Collections::emptyMap); + public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { + Binder.get(environment).bind("vcap.services", STRING_OBJECT_MAP).orElseGet(Collections::emptyMap); if (!hasChildProperties(environment, "vcap.services")) { return; } Map source = new HashMap<>(); String serviceId; if (hasChildProperties(environment, "security.oauth2.resource")) { - serviceId = environment.getProperty("security.oauth2.resource.service-id", - "resource"); + serviceId = environment.getProperty("security.oauth2.resource.service-id", "resource"); } else { serviceId = environment.getProperty("security.oauth2.sso.service-id", "sso"); } - String authDomain = environment - .getProperty("vcap.services." + serviceId + ".credentials.auth-domain"); + String authDomain = environment.getProperty("vcap.services." + serviceId + ".credentials.auth-domain"); if (authDomain != null) { - source.put("security.oauth2.resource.user-info-uri", - authDomain + "/userinfo"); + source.put("security.oauth2.resource.user-info-uri", authDomain + "/userinfo"); source.put("security.oauth2.resource.jwt.key-uri", authDomain + "/token_key"); - source.put("security.oauth2.client.access-token-uri", - authDomain + "/oauth/token"); - source.put("security.oauth2.client.user-authorization-uri", - authDomain + "/oauth/authorize"); + source.put("security.oauth2.client.access-token-uri", authDomain + "/oauth/token"); + source.put("security.oauth2.client.user-authorization-uri", authDomain + "/oauth/authorize"); } else { addProperty(source, environment, serviceId, "resource", "user-info-uri"); addProperty(source, environment, serviceId, "resource", "token-info-uri"); addProperty(source, environment, serviceId, "resource.jwt", "key-uri"); addProperty(source, environment, serviceId, "resource", "key-value"); - addProperty(source, environment, serviceId, "client", "access-token-uri", - "token-uri"); - addProperty(source, environment, serviceId, "client", - "user-authorization-uri", "authorization-uri"); + addProperty(source, environment, serviceId, "client", "access-token-uri", "token-uri"); + addProperty(source, environment, serviceId, "client", "user-authorization-uri", "authorization-uri"); } addProperty(source, environment, serviceId, "client", "client-id"); addProperty(source, environment, serviceId, "client", "client-secret"); addProperty(source, environment, serviceId, "client", "scope"); - String resourceId = environment - .getProperty("vcap.services." + serviceId + ".credentials.id", ""); + String resourceId = environment.getProperty("vcap.services." + serviceId + ".credentials.id", ""); if (StringUtils.hasText(resourceId)) { source.put("security.oauth2.resource.id", resourceId); } - environment.getPropertySources() - .addLast(new MapPropertySource("cloudDefaultSecurityBindings", source)); + environment.getPropertySources().addLast(new MapPropertySource("cloudDefaultSecurityBindings", source)); } private boolean hasChildProperties(ConfigurableEnvironment environment, String name) { - Map properties = Binder.get(environment) - .bind(name, STRING_OBJECT_MAP).orElseGet(Collections::emptyMap); + Map properties = Binder.get(environment).bind(name, STRING_OBJECT_MAP) + .orElseGet(Collections::emptyMap); return !properties.isEmpty(); } - private void addProperty(Map source, PropertyResolver resolver, - String serviceId, String stem, String key, String... altKeys) { + private void addProperty(Map source, PropertyResolver resolver, String serviceId, String stem, + String key, String... altKeys) { String value = resolve(resolver, serviceId, key); if (StringUtils.hasText(value)) { source.put("security.oauth2." + stem + "." + key, value); @@ -124,8 +111,7 @@ public class VcapServiceCredentialsEnvironmentPostProcessor } private String resolve(PropertyResolver resolver, String serviceId, String key) { - return resolver.getProperty( - String.format("vcap.services.%s.credentials.%s", serviceId, key), ""); + return resolver.getProperty(String.format("vcap.services.%s.credentials.%s", serviceId, key), ""); } } diff --git a/spring-cloud-cloudfoundry-web/src/main/java/org/springframework/cloud/cloudfoundry/session/StickyFilterConfiguration.java b/spring-cloud-cloudfoundry-web/src/main/java/org/springframework/cloud/cloudfoundry/session/StickyFilterConfiguration.java index 3672a8d..cb0ca18 100644 --- a/spring-cloud-cloudfoundry-web/src/main/java/org/springframework/cloud/cloudfoundry/session/StickyFilterConfiguration.java +++ b/spring-cloud-cloudfoundry-web/src/main/java/org/springframework/cloud/cloudfoundry/session/StickyFilterConfiguration.java @@ -49,12 +49,10 @@ public class StickyFilterConfiguration { filter.setOrder(Ordered.LOWEST_PRECEDENCE); filter.setFilter(new OncePerRequestFilter() { @Override - protected void doFilterInternal(HttpServletRequest request, - HttpServletResponse response, FilterChain filterChain) - throws ServletException, IOException { + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, + FilterChain filterChain) throws ServletException, IOException { if (!response.containsHeader("Set-Cookie")) { - response.addCookie(new Cookie("JSESSIONID", - StickyFilterConfiguration.this.cookie)); + response.addCookie(new Cookie("JSESSIONID", StickyFilterConfiguration.this.cookie)); } filterChain.doFilter(request, response); } diff --git a/spring-cloud-cloudfoundry-web/src/test/java/org/springframework/cloud/cloudfoundry/environment/VcapServiceCredentialsEnvironmentPostProcessorTests.java b/spring-cloud-cloudfoundry-web/src/test/java/org/springframework/cloud/cloudfoundry/environment/VcapServiceCredentialsEnvironmentPostProcessorTests.java index 88edb00..64b80d8 100644 --- a/spring-cloud-cloudfoundry-web/src/test/java/org/springframework/cloud/cloudfoundry/environment/VcapServiceCredentialsEnvironmentPostProcessorTests.java +++ b/spring-cloud-cloudfoundry-web/src/test/java/org/springframework/cloud/cloudfoundry/environment/VcapServiceCredentialsEnvironmentPostProcessorTests.java @@ -43,85 +43,67 @@ public class VcapServiceCredentialsEnvironmentPostProcessorTests { @Test public void noop() { this.listener.postProcessEnvironment(this.environment, new SpringApplication()); - Map properties = Binder.get(this.environment) - .bind("security.oauth2", STRING_OBJECT_MAP) + Map properties = Binder.get(this.environment).bind("security.oauth2", STRING_OBJECT_MAP) .orElseGet(Collections::emptyMap); assertThat(properties.isEmpty()).isTrue(); } @Test public void addClientId() { - TestPropertyValues.of("vcap.services.sso.credentials.clientId:foo") - .applyTo(this.environment); + TestPropertyValues.of("vcap.services.sso.credentials.clientId:foo").applyTo(this.environment); this.listener.postProcessEnvironment(this.environment, new SpringApplication()); - assertThat(this.environment - .resolvePlaceholders("${security.oauth2.client.client-id}")) - .isEqualTo("foo"); + assertThat(this.environment.resolvePlaceholders("${security.oauth2.client.client-id}")).isEqualTo("foo"); } @Test public void addClientIdUnderscores() { - TestPropertyValues.of("vcap.services.sso.credentials.client-id:foo") - .applyTo(this.environment); + TestPropertyValues.of("vcap.services.sso.credentials.client-id:foo").applyTo(this.environment); this.listener.postProcessEnvironment(this.environment, new SpringApplication()); - assertThat(this.environment - .resolvePlaceholders("${security.oauth2.client.client-id}")) - .isEqualTo("foo"); + assertThat(this.environment.resolvePlaceholders("${security.oauth2.client.client-id}")).isEqualTo("foo"); } @Test public void addTokenUri() { - TestPropertyValues - .of("vcap.services.sso.credentials.accessTokenUri:http://exampledomain") + TestPropertyValues.of("vcap.services.sso.credentials.accessTokenUri:http://exampledomain") .applyTo(this.environment); this.listener.postProcessEnvironment(this.environment, new SpringApplication()); - assertThat(this.environment - .resolvePlaceholders("${security.oauth2.client.access-token-uri}")) - .isEqualTo("http://exampledomain"); + assertThat(this.environment.resolvePlaceholders("${security.oauth2.client.access-token-uri}")) + .isEqualTo("http://exampledomain"); } @Test public void addTokenUriAuthDomain() { - TestPropertyValues - .of("vcap.services.sso.credentials.auth-domain:http://exampledomain") + TestPropertyValues.of("vcap.services.sso.credentials.auth-domain:http://exampledomain") .applyTo(this.environment); this.listener.postProcessEnvironment(this.environment, new SpringApplication()); - assertThat(this.environment - .resolvePlaceholders("${security.oauth2.client.access-token-uri}")) - .isEqualTo("http://exampledomain/oauth/token"); + assertThat(this.environment.resolvePlaceholders("${security.oauth2.client.access-token-uri}")) + .isEqualTo("http://exampledomain/oauth/token"); } @Test public void addUserInfoUri() { - TestPropertyValues - .of("vcap.services.sso.credentials.userInfoUri:http://exampledomain") + TestPropertyValues.of("vcap.services.sso.credentials.userInfoUri:http://exampledomain") .applyTo(this.environment); this.listener.postProcessEnvironment(this.environment, new SpringApplication()); - assertThat(this.environment - .resolvePlaceholders("${security.oauth2.resource.user-info-uri}")) - .isEqualTo("http://exampledomain"); + assertThat(this.environment.resolvePlaceholders("${security.oauth2.resource.user-info-uri}")) + .isEqualTo("http://exampledomain"); } @Test public void addServiceId() { - TestPropertyValues - .of("vcap.services.my.credentials.accessTokenUri:http://exampledomain", - "security.oauth2.sso.serviceId:my") - .applyTo(this.environment); + TestPropertyValues.of("vcap.services.my.credentials.accessTokenUri:http://exampledomain", + "security.oauth2.sso.serviceId:my").applyTo(this.environment); this.listener.postProcessEnvironment(this.environment, new SpringApplication()); - assertThat(this.environment - .resolvePlaceholders("${security.oauth2.client.access-token-uri}")) - .isEqualTo("http://exampledomain"); + assertThat(this.environment.resolvePlaceholders("${security.oauth2.client.access-token-uri}")) + .isEqualTo("http://exampledomain"); } @Test public void addJwtKeyUri() { - TestPropertyValues.of("vcap.services.sso.credentials.keyUri:http://exampledomain") - .applyTo(this.environment); + TestPropertyValues.of("vcap.services.sso.credentials.keyUri:http://exampledomain").applyTo(this.environment); this.listener.postProcessEnvironment(this.environment, new SpringApplication()); - assertThat(this.environment - .resolvePlaceholders("${security.oauth2.resource.jwt.key-uri}")) - .isEqualTo("http://exampledomain"); + assertThat(this.environment.resolvePlaceholders("${security.oauth2.resource.jwt.key-uri}")) + .isEqualTo("http://exampledomain"); } }