Bumping versions

This commit is contained in:
buildmaster
2020-09-17 17:52:36 +00:00
parent dad59dea10
commit 2e2ff80e07
25 changed files with 255 additions and 447 deletions

View File

@@ -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();
}
}

View File

@@ -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)));
}
}

View File

@@ -37,19 +37,14 @@ public class CloudFoundryService {
this.cloudFoundryOperations = cloudFoundryOperations;
}
public Flux<Tuple2<ApplicationDetail, InstanceDetail>> getApplicationInstances(
String serviceId) {
GetApplicationRequest applicationRequest = GetApplicationRequest.builder()
.name(serviceId).build();
return this.cloudFoundryOperations.applications().get(applicationRequest)
.flatMapMany(applicationDetail -> {
Flux<InstanceDetail> ids = Flux
.fromStream(applicationDetail.getInstanceDetails().stream())
.filter(id -> id.getState().equalsIgnoreCase("RUNNING"));
Flux<ApplicationDetail> generate = Flux
.generate(sink -> sink.next(applicationDetail));
return generate.zipWith(ids);
});
public Flux<Tuple2<ApplicationDetail, InstanceDetail>> getApplicationInstances(String serviceId) {
GetApplicationRequest applicationRequest = GetApplicationRequest.builder().name(serviceId).build();
return this.cloudFoundryOperations.applications().get(applicationRequest).flatMapMany(applicationDetail -> {
Flux<InstanceDetail> ids = Flux.fromStream(applicationDetail.getInstanceDetails().stream())
.filter(id -> id.getState().equalsIgnoreCase("RUNNING"));
Flux<ApplicationDetail> generate = Flux.generate(sink -> sink.next(applicationDetail));
return generate.zipWith(ids);
});
}
}

View File

@@ -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);