Skip to content

Commit 2bebc6c

Browse files
committed
Merge branch '1030-Domains-V3' into 3.x
2 parents 7bc654b + edff248 commit 2bebc6c

File tree

50 files changed

+2452
-3
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+2452
-3
lines changed

.idea/encodings.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/client/_ReactorCloudFoundryClient.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
import org.cloudfoundry.client.v3.applications.ApplicationsV3;
5252
import org.cloudfoundry.client.v3.builds.Builds;
5353
import org.cloudfoundry.client.v3.deployments.DeploymentsV3;
54+
import org.cloudfoundry.client.v3.domains.DomainsV3;
5455
import org.cloudfoundry.client.v3.droplets.Droplets;
5556
import org.cloudfoundry.client.v3.isolationsegments.IsolationSegments;
5657
import org.cloudfoundry.client.v3.jobs.JobsV3;
@@ -97,6 +98,7 @@
9798
import org.cloudfoundry.reactor.client.v3.applications.ReactorApplicationsV3;
9899
import org.cloudfoundry.reactor.client.v3.builds.ReactorBuilds;
99100
import org.cloudfoundry.reactor.client.v3.deployments.ReactorDeploymentsV3;
101+
import org.cloudfoundry.reactor.client.v3.domains.ReactorDomainsV3;
100102
import org.cloudfoundry.reactor.client.v3.droplets.ReactorDroplets;
101103
import org.cloudfoundry.reactor.client.v3.isolationsegments.ReactorIsolationSegments;
102104
import org.cloudfoundry.reactor.client.v3.jobs.ReactorJobsV3;
@@ -173,6 +175,12 @@ public Domains domains() {
173175
return new ReactorDomains(getConnectionContext(), getRootV2(), getTokenProvider(), getRequestTags());
174176
}
175177

178+
@Override
179+
@Value.Derived
180+
public DomainsV3 domainsV3() {
181+
return new ReactorDomainsV3(getConnectionContext(), getRootV3(), getTokenProvider(), getRequestTags());
182+
}
183+
176184
@Override
177185
@Value.Derived
178186
public Droplets droplets() {
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
/*
2+
* Copyright 2013-2020 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.cloudfoundry.reactor.client.v3.domains;
18+
19+
import org.cloudfoundry.client.v3.domains.CreateDomainRequest;
20+
import org.cloudfoundry.client.v3.domains.CreateDomainResponse;
21+
import org.cloudfoundry.client.v3.domains.DeleteDomainRequest;
22+
import org.cloudfoundry.client.v3.domains.DomainsV3;
23+
import org.cloudfoundry.client.v3.domains.GetDomainRequest;
24+
import org.cloudfoundry.client.v3.domains.GetDomainResponse;
25+
import org.cloudfoundry.client.v3.domains.ListDomainsRequest;
26+
import org.cloudfoundry.client.v3.domains.ListDomainsResponse;
27+
import org.cloudfoundry.client.v3.domains.ShareDomainRequest;
28+
import org.cloudfoundry.client.v3.domains.ShareDomainResponse;
29+
import org.cloudfoundry.client.v3.domains.UnshareDomainRequest;
30+
import org.cloudfoundry.client.v3.domains.UpdateDomainRequest;
31+
import org.cloudfoundry.client.v3.domains.UpdateDomainResponse;
32+
import org.cloudfoundry.reactor.ConnectionContext;
33+
import org.cloudfoundry.reactor.TokenProvider;
34+
import org.cloudfoundry.reactor.client.v3.AbstractClientV3Operations;
35+
import reactor.core.publisher.Mono;
36+
37+
import java.util.Map;
38+
39+
/**
40+
* The Reactor-based implementation of {@link DomainsV3}
41+
*/
42+
public final class ReactorDomainsV3 extends AbstractClientV3Operations implements DomainsV3 {
43+
44+
/**
45+
* Creates an instance
46+
*
47+
* @param connectionContext the {@link ConnectionContext} to use when communicating with the server
48+
* @param root the root URI of the server. Typically something like {@code https://api.run.pivotal.io}.
49+
* @param tokenProvider the {@link TokenProvider} to use when communicating with the server
50+
* @param requestTags map with custom http headers which will be added to web request
51+
*/
52+
public ReactorDomainsV3(ConnectionContext connectionContext, Mono<String> root, TokenProvider tokenProvider, Map<String, String> requestTags) {
53+
super(connectionContext, root, tokenProvider, requestTags);
54+
}
55+
56+
@Override
57+
public Mono<CreateDomainResponse> create(CreateDomainRequest request) {
58+
return post(request, CreateDomainResponse.class, builder -> builder.pathSegment("domains"))
59+
.checkpoint();
60+
}
61+
62+
@Override
63+
public Mono<String> delete(DeleteDomainRequest request) {
64+
return delete(request, builder -> builder.pathSegment("domains", request.getDomainId()))
65+
.checkpoint();
66+
}
67+
68+
@Override
69+
public Mono<GetDomainResponse> get(GetDomainRequest request) {
70+
return get(request, GetDomainResponse.class, builder -> builder.pathSegment("domains", request.getDomainId()))
71+
.checkpoint();
72+
}
73+
74+
@Override
75+
public Mono<ListDomainsResponse> list(ListDomainsRequest request) {
76+
return get(request, ListDomainsResponse.class, builder -> builder.pathSegment("domains"))
77+
.checkpoint();
78+
}
79+
80+
@Override
81+
public Mono<ShareDomainResponse> share(ShareDomainRequest request) {
82+
return post(request, ShareDomainResponse.class, builder -> builder.pathSegment("domains", request.getDomainId(), "relationships", "shared_organizations"))
83+
.checkpoint();
84+
}
85+
86+
@Override
87+
public Mono<Void> unshare(UnshareDomainRequest request) {
88+
return delete(request, Void.class, builder -> builder.pathSegment("domains", request.getDomainId(), "relationships", "shared_organizations", request.getOrganizationId()))
89+
.checkpoint();
90+
}
91+
92+
@Override
93+
public Mono<UpdateDomainResponse> update(UpdateDomainRequest request) {
94+
return patch(request, UpdateDomainResponse.class, builder -> builder.pathSegment("domains", request.getDomainId()))
95+
.checkpoint();
96+
}
97+
}

cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/client/v3/organizations/ReactorOrganizationsV3.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
import org.cloudfoundry.client.v3.organizations.GetOrganizationDefaultIsolationSegmentResponse;
2727
import org.cloudfoundry.client.v3.organizations.GetOrganizationRequest;
2828
import org.cloudfoundry.client.v3.organizations.GetOrganizationResponse;
29+
import org.cloudfoundry.client.v3.organizations.ListOrganizationDomainsRequest;
30+
import org.cloudfoundry.client.v3.organizations.ListOrganizationDomainsResponse;
2931
import org.cloudfoundry.client.v3.organizations.ListOrganizationsRequest;
3032
import org.cloudfoundry.client.v3.organizations.ListOrganizationsResponse;
3133
import org.cloudfoundry.client.v3.organizations.OrganizationsV3;
@@ -95,6 +97,12 @@ public Mono<ListOrganizationsResponse> list(ListOrganizationsRequest request) {
9597
.checkpoint();
9698
}
9799

100+
@Override
101+
public Mono<ListOrganizationDomainsResponse> listDomains(ListOrganizationDomainsRequest request) {
102+
return get(request, ListOrganizationDomainsResponse.class, builder -> builder.pathSegment("organizations", request.getOrganizationId(), "domains"))
103+
.checkpoint();
104+
}
105+
98106
@Override
99107
public Mono<UpdateOrganizationResponse> update(UpdateOrganizationRequest request) {
100108
return patch(request, UpdateOrganizationResponse.class, builder -> builder.pathSegment("organizations", request.getOrganizationId()))

cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/client/ReactorCloudFoundryClientTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ public void domains() {
6060
assertThat(this.client.domains()).isNotNull();
6161
}
6262

63+
@Test
64+
public void domainsV3() {
65+
assertThat(this.client.domainsV3()).isNotNull();
66+
}
67+
6368
@Test
6469
public void droplets() {
6570
assertThat(this.client.droplets()).isNotNull();

0 commit comments

Comments
 (0)