diff --git a/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/CloudFoundryOperations.java b/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/CloudFoundryOperations.java index 903aa728dd..fb99b23cd2 100644 --- a/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/CloudFoundryOperations.java +++ b/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/CloudFoundryOperations.java @@ -16,6 +16,7 @@ package org.cloudfoundry.operations; +import org.cloudfoundry.client.CloudFoundryClient; import org.cloudfoundry.operations.advanced.Advanced; import org.cloudfoundry.operations.applications.Applications; import org.cloudfoundry.operations.buildpacks.Buildpacks; @@ -66,7 +67,9 @@ public interface CloudFoundryOperations { * Main entry point to the Cloud Foundry Domains Operations API * * @return the Cloud Foundry Domains Operations API + * @deprecated use {@link CloudFoundryClient#domainsV3()} instead. */ + @Deprecated Domains domains(); /** diff --git a/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/_DefaultCloudFoundryOperations.java b/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/_DefaultCloudFoundryOperations.java index 299b4bf5e4..f1a8d9f97d 100644 --- a/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/_DefaultCloudFoundryOperations.java +++ b/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/_DefaultCloudFoundryOperations.java @@ -91,7 +91,15 @@ public Buildpacks buildpacks() { @Override @Value.Derived public Domains domains() { - return new DefaultDomains(getCloudFoundryClientPublisher(), getRoutingClientPublisher()); + CloudFoundryClient cloudFoundryClient = getCloudFoundryClient(); + if (cloudFoundryClient == null) { + throw new IllegalStateException("CloudFoundryClient must be set"); + } + RoutingClient routingClient = getRoutingClient(); + if (routingClient == null) { + throw new IllegalStateException("RoutingClient must be set"); + } + return new DefaultDomains(cloudFoundryClient, routingClient); } @Override diff --git a/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/domains/DefaultDomains.java b/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/domains/DefaultDomains.java index aa30f42811..cbd5886250 100644 --- a/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/domains/DefaultDomains.java +++ b/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/domains/DefaultDomains.java @@ -45,129 +45,99 @@ public final class DefaultDomains implements Domains { - private final Mono cloudFoundryClient; + private final CloudFoundryClient cloudFoundryClient; - private final Mono routingClient; + private final RoutingClient routingClient; - public DefaultDomains( - Mono cloudFoundryClient, Mono routingClient) { + public DefaultDomains(CloudFoundryClient cloudFoundryClient, RoutingClient routingClient) { this.cloudFoundryClient = cloudFoundryClient; this.routingClient = routingClient; } + /** + * @deprecated use {@link DefaultDomains(CloudFoundryClient, RoutingClient)} instead. + */ + @Deprecated + public DefaultDomains( + Mono cloudFoundryClient, Mono routingClient) { + this.cloudFoundryClient = cloudFoundryClient.block(); + this.routingClient = routingClient.block(); + } + + @Deprecated @Override public Mono create(CreateDomainRequest request) { - return this.cloudFoundryClient - .flatMap( - cloudFoundryClient -> - Mono.zip( - Mono.just(cloudFoundryClient), - getOrganizationId( - cloudFoundryClient, request.getOrganization()))) - .flatMap( - function( - (cloudFoundryClient, organizationId) -> - requestCreateDomain( - cloudFoundryClient, - request.getDomain(), - organizationId))) + return getOrganizationId(request.getOrganization()) + .flatMap(organizationId -> requestCreateDomain(request.getDomain(), organizationId)) .then() .transform(OperationsLogging.log("Create Domain")) .checkpoint(); } + @Deprecated @Override public Mono createShared(CreateSharedDomainRequest request) { if (request.getRouterGroup() == null) { - return this.cloudFoundryClient - .flatMap( - cloudFoundryClient -> - requestCreateSharedDomain( - cloudFoundryClient, request.getDomain(), null)) + return requestCreateSharedDomain(request.getDomain(), null) .then() .transform(OperationsLogging.log("Create Shared Domain")) .checkpoint(); } else { - return Mono.zip(this.cloudFoundryClient, this.routingClient) - .flatMap( - function( - (cloudFoundryClient, routingClient) -> - Mono.zip( - Mono.just(cloudFoundryClient), - getRouterGroupId( - routingClient, - request.getRouterGroup())))) + return getRouterGroupId(routingClient, request.getRouterGroup()) .flatMap( - function( - (cloudFoundryClient, routerGroupId) -> - requestCreateSharedDomain( - cloudFoundryClient, - request.getDomain(), - routerGroupId))) + routerGroupId -> + requestCreateSharedDomain(request.getDomain(), routerGroupId)) .then() .transform(OperationsLogging.log("Create Shared Domain")) .checkpoint(); } } + @Deprecated @Override public Flux list() { - return this.cloudFoundryClient - .flatMapMany( - cloudFoundryClient -> - requestListPrivateDomains(cloudFoundryClient) - .map(DefaultDomains::toDomain) - .mergeWith( - requestListSharedDomains(cloudFoundryClient) - .map(DefaultDomains::toDomain))) + return requestListPrivateDomains() + .map(DefaultDomains::toDomain) + .mergeWith(requestListSharedDomains().map(DefaultDomains::toDomain)) .transform(OperationsLogging.log("List Domains")) .checkpoint(); } + @Deprecated @Override public Flux listRouterGroups() { - return this.routingClient - .flatMapMany(DefaultDomains::requestListRouterGroups) + return requestListRouterGroups(routingClient) .flatMapIterable(ListRouterGroupsResponse::getRouterGroups) .map(DefaultDomains::toRouterGroup) .transform(OperationsLogging.log("List Router Groups")) .checkpoint(); } + @Deprecated @Override public Mono share(ShareDomainRequest request) { - return this.cloudFoundryClient - .flatMap( - cloudFoundryClient -> - Mono.zip( - Mono.just(cloudFoundryClient), - getPrivateDomainId(cloudFoundryClient, request.getDomain()), - getOrganizationId( - cloudFoundryClient, request.getOrganization()))) - .flatMap(function(DefaultDomains::requestAssociateOrganizationPrivateDomainRequest)) + return Mono.zip( + getPrivateDomainId(request.getDomain()), + getOrganizationId(request.getOrganization())) + .flatMap(function(this::requestAssociateOrganizationPrivateDomainRequest)) .then() .transform(OperationsLogging.log("Share Domain")) .checkpoint(); } + @Deprecated @Override public Mono unshare(UnshareDomainRequest request) { - return this.cloudFoundryClient - .flatMap( - cloudFoundryClient -> - Mono.zip( - Mono.just(cloudFoundryClient), - getPrivateDomainId(cloudFoundryClient, request.getDomain()), - getOrganizationId( - cloudFoundryClient, request.getOrganization()))) - .flatMap(function(DefaultDomains::requestRemoveOrganizationPrivateDomainRequest)) + return Mono.zip( + getPrivateDomainId(request.getDomain()), + getOrganizationId(request.getOrganization())) + .flatMap(function(this::requestRemoveOrganizationPrivateDomainRequest)) .transform(OperationsLogging.log("Unshare Domain")) .checkpoint(); } - private static Mono getOrganization( - CloudFoundryClient cloudFoundryClient, String organization) { - return requestOrganizations(cloudFoundryClient, organization) + private Mono getOrganization(String organization) { + return requestOrganizations(organization) .single() .onErrorResume( NoSuchElementException.class, @@ -176,14 +146,12 @@ private static Mono getOrganization( "Organization %s does not exist", organization)); } - private static Mono getOrganizationId( - CloudFoundryClient cloudFoundryClient, String organization) { - return getOrganization(cloudFoundryClient, organization).map(ResourceUtils::getId); + private Mono getOrganizationId(String organization) { + return getOrganization(organization).map(ResourceUtils::getId); } - private static Mono getPrivateDomain( - CloudFoundryClient cloudFoundryClient, String domain) { - return requestListPrivateDomains(cloudFoundryClient, domain) + private Mono getPrivateDomain(String domain) { + return requestListPrivateDomains(domain) .single() .onErrorResume( NoSuchElementException.class, @@ -192,9 +160,8 @@ private static Mono getPrivateDomain( "Private domain %s does not exist", domain)); } - private static Mono getPrivateDomainId( - CloudFoundryClient cloudFoundryClient, String domain) { - return getPrivateDomain(cloudFoundryClient, domain).map(ResourceUtils::getId); + private Mono getPrivateDomainId(String domain) { + return getPrivateDomain(domain).map(ResourceUtils::getId); } private static Mono getRouterGroupId(RoutingClient routingClient, String routerGroup) { @@ -205,10 +172,10 @@ private static Mono getRouterGroupId(RoutingClient routingClient, String .map(org.cloudfoundry.routing.v1.routergroups.RouterGroup::getRouterGroupId); } - private static Mono + private Mono requestAssociateOrganizationPrivateDomainRequest( - CloudFoundryClient cloudFoundryClient, String domainId, String organizationId) { - return cloudFoundryClient + String domainId, String organizationId) { + return this.cloudFoundryClient .organizations() .associatePrivateDomain( AssociateOrganizationPrivateDomainRequest.builder() @@ -217,9 +184,9 @@ private static Mono getRouterGroupId(RoutingClient routingClient, String .build()); } - private static Mono requestCreateDomain( - CloudFoundryClient cloudFoundryClient, String domain, String organizationId) { - return cloudFoundryClient + private Mono requestCreateDomain( + String domain, String organizationId) { + return this.cloudFoundryClient .privateDomains() .create( CreatePrivateDomainRequest.builder() @@ -228,9 +195,9 @@ private static Mono requestCreateDomain( .build()); } - private static Mono requestCreateSharedDomain( - CloudFoundryClient cloudFoundryClient, String domain, String routerGroupId) { - return cloudFoundryClient + private Mono requestCreateSharedDomain( + String domain, String routerGroupId) { + return this.cloudFoundryClient .sharedDomains() .create( org.cloudfoundry.client.v2.shareddomains.CreateSharedDomainRequest.builder() @@ -239,11 +206,10 @@ private static Mono requestCreateSharedDomain( .build()); } - private static Flux requestListPrivateDomains( - CloudFoundryClient cloudFoundryClient, String domain) { + private Flux requestListPrivateDomains(String domain) { return PaginationUtils.requestClientV2Resources( page -> - cloudFoundryClient + this.cloudFoundryClient .privateDomains() .list( ListPrivateDomainsRequest.builder() @@ -252,11 +218,10 @@ private static Flux requestListPrivateDomains( .build())); } - private static Flux requestListPrivateDomains( - CloudFoundryClient cloudFoundryClient) { + private Flux requestListPrivateDomains() { return PaginationUtils.requestClientV2Resources( page -> - cloudFoundryClient + this.cloudFoundryClient .privateDomains() .list(ListPrivateDomainsRequest.builder().page(page).build())); } @@ -270,20 +235,18 @@ private static Mono requestListRouterGroups( .build()); } - private static Flux requestListSharedDomains( - CloudFoundryClient cloudFoundryClient) { + private Flux requestListSharedDomains() { return PaginationUtils.requestClientV2Resources( page -> - cloudFoundryClient + this.cloudFoundryClient .sharedDomains() .list(ListSharedDomainsRequest.builder().page(page).build())); } - private static Flux requestOrganizations( - CloudFoundryClient cloudFoundryClient, String organization) { + private Flux requestOrganizations(String organization) { return PaginationUtils.requestClientV2Resources( page -> - cloudFoundryClient + this.cloudFoundryClient .organizations() .list( ListOrganizationsRequest.builder() @@ -292,9 +255,9 @@ private static Flux requestOrganizations( .build())); } - private static Mono requestRemoveOrganizationPrivateDomainRequest( - CloudFoundryClient cloudFoundryClient, String domainId, String organizationId) { - return cloudFoundryClient + private Mono requestRemoveOrganizationPrivateDomainRequest( + String domainId, String organizationId) { + return this.cloudFoundryClient .organizations() .removePrivateDomain( RemoveOrganizationPrivateDomainRequest.builder() diff --git a/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/domains/Domains.java b/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/domains/Domains.java index 74ffa068b8..f6ca0b5266 100644 --- a/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/domains/Domains.java +++ b/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/domains/Domains.java @@ -29,7 +29,9 @@ public interface Domains { * * @param request The Create Domain request * @return a completion indicator + * @deprecated use {@link #createV3} instead */ + @Deprecated Mono create(CreateDomainRequest request); /** @@ -37,7 +39,9 @@ public interface Domains { * * @param request the Create Shared Domain request * @return a completion indicator + * @deprecated use {@link #createV3} instead */ + @Deprecated Mono createShared(CreateSharedDomainRequest request); /** @@ -59,7 +63,9 @@ public interface Domains { * * @param request The Share Domain request * @return a completion indicator + * @deprecated use {@link #update} instead. */ + @Deprecated Mono share(ShareDomainRequest request); /** @@ -67,6 +73,8 @@ public interface Domains { * * @param request The Unshare Domain request * @return a completion indicator + * @deprecated use {@link #update} instead. */ + @Deprecated Mono unshare(UnshareDomainRequest request); } diff --git a/cloudfoundry-operations/src/test/java/org/cloudfoundry/operations/DefaultCloudFoundryOperationsTest.java b/cloudfoundry-operations/src/test/java/org/cloudfoundry/operations/DefaultCloudFoundryOperationsTest.java index fd1027e7f0..02e671a3e6 100644 --- a/cloudfoundry-operations/src/test/java/org/cloudfoundry/operations/DefaultCloudFoundryOperationsTest.java +++ b/cloudfoundry-operations/src/test/java/org/cloudfoundry/operations/DefaultCloudFoundryOperationsTest.java @@ -26,6 +26,7 @@ final class DefaultCloudFoundryOperationsTest extends AbstractOperationsTest { DefaultCloudFoundryOperations.builder() .cloudFoundryClient(this.cloudFoundryClient) .dopplerClient(this.dopplerClient) + .routingClient(this.routingClient) .organization(TEST_ORGANIZATION_NAME) .space(TEST_SPACE_NAME) .uaaClient(this.uaaClient) diff --git a/cloudfoundry-operations/src/test/java/org/cloudfoundry/operations/domains/DefaultDomainsTest.java b/cloudfoundry-operations/src/test/java/org/cloudfoundry/operations/domains/DefaultDomainsTest.java index 15d97267ad..a370e06b34 100644 --- a/cloudfoundry-operations/src/test/java/org/cloudfoundry/operations/domains/DefaultDomainsTest.java +++ b/cloudfoundry-operations/src/test/java/org/cloudfoundry/operations/domains/DefaultDomainsTest.java @@ -49,7 +49,7 @@ final class DefaultDomainsTest extends AbstractOperationsTest { private final DefaultDomains domains = - new DefaultDomains(Mono.just(this.cloudFoundryClient), Mono.just(this.routingClient)); + new DefaultDomains(this.cloudFoundryClient, this.routingClient); @Test void createDomain() {