Bumping versions
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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)));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user