Skip to content

Commit 2c3f770

Browse files
committed
DefaultDomains: constructor takes XyzClient, not Mono<XyzClient>
1 parent b39d36e commit 2c3f770

File tree

4 files changed

+70
-104
lines changed

4 files changed

+70
-104
lines changed

cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/_DefaultCloudFoundryOperations.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,15 @@ public Buildpacks buildpacks() {
9191
@Override
9292
@Value.Derived
9393
public Domains domains() {
94-
return new DefaultDomains(getCloudFoundryClientPublisher(), getRoutingClientPublisher());
94+
CloudFoundryClient cloudFoundryClient = getCloudFoundryClient();
95+
if (cloudFoundryClient == null) {
96+
throw new IllegalStateException("CloudFoundryClient must be set");
97+
}
98+
RoutingClient routingClient = getRoutingClient();
99+
if (routingClient == null) {
100+
throw new IllegalStateException("RoutingClient must be set");
101+
}
102+
return new DefaultDomains(cloudFoundryClient, routingClient);
95103
}
96104

97105
@Override

cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/domains/DefaultDomains.java

Lines changed: 59 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -45,32 +45,29 @@
4545

4646
public final class DefaultDomains implements Domains {
4747

48-
private final Mono<CloudFoundryClient> cloudFoundryClient;
48+
private final CloudFoundryClient cloudFoundryClient;
4949

50-
private final Mono<RoutingClient> routingClient;
50+
private final RoutingClient routingClient;
5151

52-
public DefaultDomains(
53-
Mono<CloudFoundryClient> cloudFoundryClient, Mono<RoutingClient> routingClient) {
52+
public DefaultDomains(CloudFoundryClient cloudFoundryClient, RoutingClient routingClient) {
5453
this.cloudFoundryClient = cloudFoundryClient;
5554
this.routingClient = routingClient;
5655
}
5756

57+
/**
58+
* @deprecated use {@link DefaultDomains(CloudFoundryClient, RoutingClient)} instead.
59+
*/
60+
@Deprecated
61+
public DefaultDomains(
62+
Mono<CloudFoundryClient> cloudFoundryClient, Mono<RoutingClient> routingClient) {
63+
this.cloudFoundryClient = cloudFoundryClient.block();
64+
this.routingClient = routingClient.block();
65+
}
66+
5867
@Override
5968
public Mono<Void> create(CreateDomainRequest request) {
60-
return this.cloudFoundryClient
61-
.flatMap(
62-
cloudFoundryClient ->
63-
Mono.zip(
64-
Mono.just(cloudFoundryClient),
65-
getOrganizationId(
66-
cloudFoundryClient, request.getOrganization())))
67-
.flatMap(
68-
function(
69-
(cloudFoundryClient, organizationId) ->
70-
requestCreateDomain(
71-
cloudFoundryClient,
72-
request.getDomain(),
73-
organizationId)))
69+
return getOrganizationId(request.getOrganization())
70+
.flatMap(organizationId -> requestCreateDomain(request.getDomain(), organizationId))
7471
.then()
7572
.transform(OperationsLogging.log("Create Domain"))
7673
.checkpoint();
@@ -79,31 +76,15 @@ public Mono<Void> create(CreateDomainRequest request) {
7976
@Override
8077
public Mono<Void> createShared(CreateSharedDomainRequest request) {
8178
if (request.getRouterGroup() == null) {
82-
return this.cloudFoundryClient
83-
.flatMap(
84-
cloudFoundryClient ->
85-
requestCreateSharedDomain(
86-
cloudFoundryClient, request.getDomain(), null))
79+
return requestCreateSharedDomain(request.getDomain(), null)
8780
.then()
8881
.transform(OperationsLogging.log("Create Shared Domain"))
8982
.checkpoint();
9083
} else {
91-
return Mono.zip(this.cloudFoundryClient, this.routingClient)
92-
.flatMap(
93-
function(
94-
(cloudFoundryClient, routingClient) ->
95-
Mono.zip(
96-
Mono.just(cloudFoundryClient),
97-
getRouterGroupId(
98-
routingClient,
99-
request.getRouterGroup()))))
84+
return getRouterGroupId(routingClient, request.getRouterGroup())
10085
.flatMap(
101-
function(
102-
(cloudFoundryClient, routerGroupId) ->
103-
requestCreateSharedDomain(
104-
cloudFoundryClient,
105-
request.getDomain(),
106-
routerGroupId)))
86+
routerGroupId ->
87+
requestCreateSharedDomain(request.getDomain(), routerGroupId))
10788
.then()
10889
.transform(OperationsLogging.log("Create Shared Domain"))
10990
.checkpoint();
@@ -112,22 +93,16 @@ public Mono<Void> createShared(CreateSharedDomainRequest request) {
11293

11394
@Override
11495
public Flux<Domain> list() {
115-
return this.cloudFoundryClient
116-
.flatMapMany(
117-
cloudFoundryClient ->
118-
requestListPrivateDomains(cloudFoundryClient)
119-
.map(DefaultDomains::toDomain)
120-
.mergeWith(
121-
requestListSharedDomains(cloudFoundryClient)
122-
.map(DefaultDomains::toDomain)))
96+
return requestListPrivateDomains()
97+
.map(DefaultDomains::toDomain)
98+
.mergeWith(requestListSharedDomains().map(DefaultDomains::toDomain))
12399
.transform(OperationsLogging.log("List Domains"))
124100
.checkpoint();
125101
}
126102

127103
@Override
128104
public Flux<RouterGroup> listRouterGroups() {
129-
return this.routingClient
130-
.flatMapMany(DefaultDomains::requestListRouterGroups)
105+
return requestListRouterGroups(routingClient)
131106
.flatMapIterable(ListRouterGroupsResponse::getRouterGroups)
132107
.map(DefaultDomains::toRouterGroup)
133108
.transform(OperationsLogging.log("List Router Groups"))
@@ -136,38 +111,27 @@ public Flux<RouterGroup> listRouterGroups() {
136111

137112
@Override
138113
public Mono<Void> share(ShareDomainRequest request) {
139-
return this.cloudFoundryClient
140-
.flatMap(
141-
cloudFoundryClient ->
142-
Mono.zip(
143-
Mono.just(cloudFoundryClient),
144-
getPrivateDomainId(cloudFoundryClient, request.getDomain()),
145-
getOrganizationId(
146-
cloudFoundryClient, request.getOrganization())))
147-
.flatMap(function(DefaultDomains::requestAssociateOrganizationPrivateDomainRequest))
114+
return Mono.zip(
115+
getPrivateDomainId(request.getDomain()),
116+
getOrganizationId(request.getOrganization()))
117+
.flatMap(function(this::requestAssociateOrganizationPrivateDomainRequest))
148118
.then()
149119
.transform(OperationsLogging.log("Share Domain"))
150120
.checkpoint();
151121
}
152122

153123
@Override
154124
public Mono<Void> unshare(UnshareDomainRequest request) {
155-
return this.cloudFoundryClient
156-
.flatMap(
157-
cloudFoundryClient ->
158-
Mono.zip(
159-
Mono.just(cloudFoundryClient),
160-
getPrivateDomainId(cloudFoundryClient, request.getDomain()),
161-
getOrganizationId(
162-
cloudFoundryClient, request.getOrganization())))
163-
.flatMap(function(DefaultDomains::requestRemoveOrganizationPrivateDomainRequest))
125+
return Mono.zip(
126+
getPrivateDomainId(request.getDomain()),
127+
getOrganizationId(request.getOrganization()))
128+
.flatMap(function(this::requestRemoveOrganizationPrivateDomainRequest))
164129
.transform(OperationsLogging.log("Unshare Domain"))
165130
.checkpoint();
166131
}
167132

168-
private static Mono<OrganizationResource> getOrganization(
169-
CloudFoundryClient cloudFoundryClient, String organization) {
170-
return requestOrganizations(cloudFoundryClient, organization)
133+
private Mono<OrganizationResource> getOrganization(String organization) {
134+
return requestOrganizations(organization)
171135
.single()
172136
.onErrorResume(
173137
NoSuchElementException.class,
@@ -176,14 +140,12 @@ private static Mono<OrganizationResource> getOrganization(
176140
"Organization %s does not exist", organization));
177141
}
178142

179-
private static Mono<String> getOrganizationId(
180-
CloudFoundryClient cloudFoundryClient, String organization) {
181-
return getOrganization(cloudFoundryClient, organization).map(ResourceUtils::getId);
143+
private Mono<String> getOrganizationId(String organization) {
144+
return getOrganization(organization).map(ResourceUtils::getId);
182145
}
183146

184-
private static Mono<PrivateDomainResource> getPrivateDomain(
185-
CloudFoundryClient cloudFoundryClient, String domain) {
186-
return requestListPrivateDomains(cloudFoundryClient, domain)
147+
private Mono<PrivateDomainResource> getPrivateDomain(String domain) {
148+
return requestListPrivateDomains(domain)
187149
.single()
188150
.onErrorResume(
189151
NoSuchElementException.class,
@@ -192,9 +154,8 @@ private static Mono<PrivateDomainResource> getPrivateDomain(
192154
"Private domain %s does not exist", domain));
193155
}
194156

195-
private static Mono<String> getPrivateDomainId(
196-
CloudFoundryClient cloudFoundryClient, String domain) {
197-
return getPrivateDomain(cloudFoundryClient, domain).map(ResourceUtils::getId);
157+
private Mono<String> getPrivateDomainId(String domain) {
158+
return getPrivateDomain(domain).map(ResourceUtils::getId);
198159
}
199160

200161
private static Mono<String> getRouterGroupId(RoutingClient routingClient, String routerGroup) {
@@ -205,10 +166,10 @@ private static Mono<String> getRouterGroupId(RoutingClient routingClient, String
205166
.map(org.cloudfoundry.routing.v1.routergroups.RouterGroup::getRouterGroupId);
206167
}
207168

208-
private static Mono<AssociateOrganizationPrivateDomainResponse>
169+
private Mono<AssociateOrganizationPrivateDomainResponse>
209170
requestAssociateOrganizationPrivateDomainRequest(
210-
CloudFoundryClient cloudFoundryClient, String domainId, String organizationId) {
211-
return cloudFoundryClient
171+
String domainId, String organizationId) {
172+
return this.cloudFoundryClient
212173
.organizations()
213174
.associatePrivateDomain(
214175
AssociateOrganizationPrivateDomainRequest.builder()
@@ -217,9 +178,9 @@ private static Mono<String> getRouterGroupId(RoutingClient routingClient, String
217178
.build());
218179
}
219180

220-
private static Mono<CreatePrivateDomainResponse> requestCreateDomain(
221-
CloudFoundryClient cloudFoundryClient, String domain, String organizationId) {
222-
return cloudFoundryClient
181+
private Mono<CreatePrivateDomainResponse> requestCreateDomain(
182+
String domain, String organizationId) {
183+
return this.cloudFoundryClient
223184
.privateDomains()
224185
.create(
225186
CreatePrivateDomainRequest.builder()
@@ -228,9 +189,9 @@ private static Mono<CreatePrivateDomainResponse> requestCreateDomain(
228189
.build());
229190
}
230191

231-
private static Mono<CreateSharedDomainResponse> requestCreateSharedDomain(
232-
CloudFoundryClient cloudFoundryClient, String domain, String routerGroupId) {
233-
return cloudFoundryClient
192+
private Mono<CreateSharedDomainResponse> requestCreateSharedDomain(
193+
String domain, String routerGroupId) {
194+
return this.cloudFoundryClient
234195
.sharedDomains()
235196
.create(
236197
org.cloudfoundry.client.v2.shareddomains.CreateSharedDomainRequest.builder()
@@ -239,11 +200,10 @@ private static Mono<CreateSharedDomainResponse> requestCreateSharedDomain(
239200
.build());
240201
}
241202

242-
private static Flux<PrivateDomainResource> requestListPrivateDomains(
243-
CloudFoundryClient cloudFoundryClient, String domain) {
203+
private Flux<PrivateDomainResource> requestListPrivateDomains(String domain) {
244204
return PaginationUtils.requestClientV2Resources(
245205
page ->
246-
cloudFoundryClient
206+
this.cloudFoundryClient
247207
.privateDomains()
248208
.list(
249209
ListPrivateDomainsRequest.builder()
@@ -252,11 +212,10 @@ private static Flux<PrivateDomainResource> requestListPrivateDomains(
252212
.build()));
253213
}
254214

255-
private static Flux<PrivateDomainResource> requestListPrivateDomains(
256-
CloudFoundryClient cloudFoundryClient) {
215+
private Flux<PrivateDomainResource> requestListPrivateDomains() {
257216
return PaginationUtils.requestClientV2Resources(
258217
page ->
259-
cloudFoundryClient
218+
this.cloudFoundryClient
260219
.privateDomains()
261220
.list(ListPrivateDomainsRequest.builder().page(page).build()));
262221
}
@@ -270,20 +229,18 @@ private static Mono<ListRouterGroupsResponse> requestListRouterGroups(
270229
.build());
271230
}
272231

273-
private static Flux<SharedDomainResource> requestListSharedDomains(
274-
CloudFoundryClient cloudFoundryClient) {
232+
private Flux<SharedDomainResource> requestListSharedDomains() {
275233
return PaginationUtils.requestClientV2Resources(
276234
page ->
277-
cloudFoundryClient
235+
this.cloudFoundryClient
278236
.sharedDomains()
279237
.list(ListSharedDomainsRequest.builder().page(page).build()));
280238
}
281239

282-
private static Flux<OrganizationResource> requestOrganizations(
283-
CloudFoundryClient cloudFoundryClient, String organization) {
240+
private Flux<OrganizationResource> requestOrganizations(String organization) {
284241
return PaginationUtils.requestClientV2Resources(
285242
page ->
286-
cloudFoundryClient
243+
this.cloudFoundryClient
287244
.organizations()
288245
.list(
289246
ListOrganizationsRequest.builder()
@@ -292,9 +249,9 @@ private static Flux<OrganizationResource> requestOrganizations(
292249
.build()));
293250
}
294251

295-
private static Mono<Void> requestRemoveOrganizationPrivateDomainRequest(
296-
CloudFoundryClient cloudFoundryClient, String domainId, String organizationId) {
297-
return cloudFoundryClient
252+
private Mono<Void> requestRemoveOrganizationPrivateDomainRequest(
253+
String domainId, String organizationId) {
254+
return this.cloudFoundryClient
298255
.organizations()
299256
.removePrivateDomain(
300257
RemoveOrganizationPrivateDomainRequest.builder()

cloudfoundry-operations/src/test/java/org/cloudfoundry/operations/DefaultCloudFoundryOperationsTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ final class DefaultCloudFoundryOperationsTest extends AbstractOperationsTest {
2626
DefaultCloudFoundryOperations.builder()
2727
.cloudFoundryClient(this.cloudFoundryClient)
2828
.dopplerClient(this.dopplerClient)
29+
.routingClient(this.routingClient)
2930
.organization(TEST_ORGANIZATION_NAME)
3031
.space(TEST_SPACE_NAME)
3132
.uaaClient(this.uaaClient)

cloudfoundry-operations/src/test/java/org/cloudfoundry/operations/domains/DefaultDomainsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
final class DefaultDomainsTest extends AbstractOperationsTest {
5050

5151
private final DefaultDomains domains =
52-
new DefaultDomains(Mono.just(this.cloudFoundryClient), Mono.just(this.routingClient));
52+
new DefaultDomains(this.cloudFoundryClient, this.routingClient);
5353

5454
@Test
5555
void createDomain() {

0 commit comments

Comments
 (0)