Skip to content

Commit 754d054

Browse files
committed
Merge branch 'reactor-3.1'
2 parents efd1a10 + 4abafd9 commit 754d054

File tree

85 files changed

+1549
-1574
lines changed

Some content is hidden

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

85 files changed

+1549
-1574
lines changed

ci/deploy.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ set -e -u
55
[[ -d $PWD/maven && ! -d $HOME/.m2 ]] && ln -s $PWD/maven $HOME/.m2
66

77
cd cf-java-client
8-
./mvnw -q -Dmaven.test.skip=true deploy
8+
./mvnw -U -q -Dmaven.test.skip=true deploy # TODO: Remove -U
99
cp target/build-info.json ../build-info/build-info.json

ci/integration-test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ set -e -u
55
[[ -d $PWD/maven && ! -d $HOME/.m2 ]] && ln -s $PWD/maven $HOME/.m2
66

77
cd cf-java-client
8-
./mvnw -q -P integration-test test
8+
./mvnw -U -q -P integration-test test # TODO: Remove -U

ci/unit-test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ set -e -u
55
[[ -d $PWD/maven && ! -d $HOME/.m2 ]] && ln -s $PWD/maven $HOME/.m2
66

77
cd cf-java-client
8-
./mvnw -q package
8+
./mvnw -U -q package # TODO: Remove -U

cloudfoundry-client-reactor/cloudfoundry-client-reactor.iml

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,21 @@
2525
<orderEntry type="library" name="Maven: com.squareup.okio:okio:1.11.0" level="project" />
2626
<orderEntry type="library" scope="TEST" name="Maven: org.bouncycastle:bcprov-jdk15on:1.50" level="project" />
2727
<orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt:0.7.0" level="project" />
28-
<orderEntry type="library" scope="TEST" name="Maven: io.projectreactor.addons:reactor-test:3.0.7.RELEASE" level="project" />
29-
<orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.0.7.RELEASE" level="project" />
28+
<orderEntry type="library" scope="TEST" name="Maven: io.projectreactor:reactor-test:3.1.0.BUILD-SNAPSHOT" level="project" />
29+
<orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.1.0.BUILD-SNAPSHOT" level="project" />
3030
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.0" level="project" />
31-
<orderEntry type="library" name="Maven: io.projectreactor.ipc:reactor-netty:0.6.4.RELEASE" level="project" />
32-
<orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.9.Final" level="project" />
33-
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.9.Final" level="project" />
34-
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.9.Final" level="project" />
35-
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.9.Final" level="project" />
36-
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.9.Final" level="project" />
37-
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.9.Final" level="project" />
38-
<orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.9.Final" level="project" />
39-
<orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.9.Final" level="project" />
40-
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:4.1.9.Final" level="project" />
41-
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.9.Final" level="project" />
31+
<orderEntry type="library" name="Maven: io.projectreactor.ipc:reactor-netty:0.7.0.BUILD-SNAPSHOT" level="project" />
32+
<orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.12.Final" level="project" />
33+
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.12.Final" level="project" />
34+
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.12.Final" level="project" />
35+
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.12.Final" level="project" />
36+
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.12.Final" level="project" />
37+
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.12.Final" level="project" />
38+
<orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.12.Final" level="project" />
39+
<orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.12.Final" level="project" />
40+
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:4.1.12.Final" level="project" />
41+
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.12.Final" level="project" />
42+
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.12.Final" level="project" />
4243
<orderEntry type="library" name="Maven: io.projectreactor.ipc:reactor-ipc:0.6.2.RELEASE" level="project" />
4344
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
4445
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />

cloudfoundry-client-reactor/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<parent>
2727
<groupId>org.cloudfoundry</groupId>
2828
<artifactId>cloudfoundry-java-client</artifactId>
29-
<version>2.16.0.BUILD-SNAPSHOT</version>
29+
<version>3.0.0.BUILD-SNAPSHOT</version>
3030
</parent>
3131

3232
<artifactId>cloudfoundry-client-reactor</artifactId>
@@ -61,7 +61,7 @@
6161
<artifactId>jjwt</artifactId>
6262
</dependency>
6363
<dependency>
64-
<groupId>io.projectreactor.addons</groupId>
64+
<groupId>io.projectreactor</groupId>
6565
<artifactId>reactor-test</artifactId>
6666
<scope>test</scope>
6767
</dependency>

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

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import reactor.core.publisher.Mono;
3434
import reactor.ipc.netty.http.client.HttpClient;
3535
import reactor.ipc.netty.http.client.HttpClientRequest;
36-
import reactor.ipc.netty.options.ClientOptions;
3736
import reactor.ipc.netty.resources.LoopResources;
3837
import reactor.ipc.netty.resources.PoolResources;
3938

@@ -42,6 +41,7 @@
4241
import java.util.List;
4342
import java.util.Map;
4443
import java.util.Optional;
44+
import java.util.function.Function;
4545
import java.util.regex.Matcher;
4646
import java.util.regex.Pattern;
4747

@@ -91,18 +91,27 @@ public Integer getConnectionPoolSize() {
9191
public HttpClient getHttpClient() {
9292
return HttpClient.create(options -> {
9393
options
94+
.compression(true)
9495
.loopResources(getThreadPool())
9596
.option(SO_SNDBUF, SEND_BUFFER_SIZE)
9697
.option(SO_RCVBUF, RECEIVE_BUFFER_SIZE)
9798
.disablePool();
9899

100+
options.sslSupport(ssl -> getSslCertificateTruster().ifPresent(trustManager -> ssl.trustManager(new StaticTrustManagerFactory(trustManager))));
101+
99102
getConnectionPool().ifPresent(options::poolResources);
100-
getKeepAlive().ifPresent(keepAlive -> options.option(SO_KEEPALIVE, keepAlive));
101-
getProxyConfiguration().ifPresent(c -> options.proxy(ClientOptions.Proxy.HTTP, c.getHost(), c.getPort().orElse(null), c.getUsername().orElse(null), u -> c.getPassword().orElse(null)));
102103
getConnectTimeout().ifPresent(socketTimeout -> options.option(CONNECT_TIMEOUT_MILLIS, (int) socketTimeout.toMillis()));
103-
104-
options.sslSupport(ssl -> getSslCertificateTruster().ifPresent(trustManager -> ssl.trustManager(new StaticTrustManagerFactory(trustManager))));
104+
getKeepAlive().ifPresent(keepAlive -> options.option(SO_KEEPALIVE, keepAlive));
105105
getSslHandshakeTimeout().ifPresent(options::sslHandshakeTimeout);
106+
107+
getProxyConfiguration()
108+
.ifPresent(c -> options.proxy(proxyOptions -> {
109+
proxyOptions.host(c.getHost());
110+
111+
c.getPort().ifPresent(proxyOptions::port);
112+
c.getUsername().ifPresent(proxyOptions::username);
113+
c.getPassword().map(password -> (Function<String, String>) s -> password).ifPresent(proxyOptions::password);
114+
}));
106115
});
107116
}
108117

@@ -189,7 +198,7 @@ Optional<PoolResources> getConnectionPool() {
189198
Mono<Map<String, String>> getInfo() {
190199
return getRoot()
191200
.map(uri -> UriComponentsBuilder.fromUriString(uri).pathSegment("v2", "info").build().encode().toUriString())
192-
.then(uri -> getHttpClient()
201+
.flatMap(uri -> getHttpClient()
193202
.get(uri, request -> Mono.just(request)
194203
.map(UserAgent::addUserAgent)
195204
.map(JsonCodec::addDecodeHeaders)

cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/client/v2/applications/ReactorApplicationsV2.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,10 +215,10 @@ public Mono<UpdateApplicationResponse> update(UpdateApplicationRequest request)
215215
public Mono<UploadApplicationResponse> upload(UploadApplicationRequest request) {
216216
return put(request, UploadApplicationResponse.class, builder -> builder.pathSegment("v2", "apps", request.getApplicationId(), "bits"),
217217
outbound -> outbound
218-
.then(r -> {
218+
.flatMap(r -> {
219219
if (Files.isDirectory(request.getApplication())) {
220220
return FileUtils.compress(request.getApplication())
221-
.then(application -> upload(application, r, request)
221+
.flatMap(application -> upload(application, r, request)
222222
.doOnTerminate((v, t) -> {
223223
try {
224224
Files.delete(application);
@@ -237,7 +237,7 @@ public Mono<UploadApplicationResponse> upload(UploadApplicationRequest request)
237237
public Mono<UploadApplicationDropletResponse> uploadDroplet(UploadApplicationDropletRequest request) {
238238
return put(request, UploadApplicationDropletResponse.class, builder -> builder.pathSegment("v2", "apps", request.getApplicationId(), "droplet", "upload"),
239239
outbound -> outbound
240-
.then(r -> upload(r, request)))
240+
.flatMap(r -> upload(r, request)))
241241
.checkpoint();
242242
}
243243

cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/client/v2/buildpacks/ReactorBuildpacks.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,10 @@ public Mono<UpdateBuildpackResponse> update(UpdateBuildpackRequest request) {
9494
public Mono<UploadBuildpackResponse> upload(UploadBuildpackRequest request) {
9595
return put(request, UploadBuildpackResponse.class, builder -> builder.pathSegment("v2", "buildpacks", request.getBuildpackId(), "bits"),
9696
outbound -> outbound
97-
.then(r -> {
97+
.flatMap(r -> {
9898
if (Files.isDirectory(request.getBuildpack())) {
9999
return FileUtils.compress(request.getBuildpack())
100-
.then(buildpack -> upload(buildpack, r, request.getFilename() + ".zip")
100+
.flatMap(buildpack -> upload(buildpack, r, request.getFilename() + ".zip")
101101
.doOnTerminate((v, t) -> {
102102
try {
103103
Files.delete(buildpack);

cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/client/v3/packages/ReactorPackages.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,10 @@ public Mono<StagePackageResponse> stage(StagePackageRequest request) {
109109
public Mono<UploadPackageResponse> upload(UploadPackageRequest request) {
110110
return post(request, UploadPackageResponse.class, builder -> builder.pathSegment("v3", "packages", request.getPackageId(), "upload"),
111111
outbound -> outbound
112-
.then(r -> {
112+
.flatMap(r -> {
113113
if (Files.isDirectory(request.getBits())) {
114114
return FileUtils.compress(request.getBits())
115-
.then(bits -> upload(bits, r)
115+
.flatMap(bits -> upload(bits, r)
116116
.doOnTerminate((v, t) -> {
117117
try {
118118
Files.delete(bits);

cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/tokenprovider/AbstractUaaTokenProvider.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ private Mono<HttpClientResponse> refreshToken(ConnectionContext connectionContex
228228

229229
private Function<Mono<HttpClientRequest>, Mono<Void>> refreshTokenGrantTokenRequestTransformer(String refreshToken) {
230230
return outbound -> outbound
231-
.then(request -> request
231+
.flatMap(request -> request
232232
.sendForm(form -> form
233233
.multipart(false)
234234
.attr("client_id", getClientId())
@@ -242,7 +242,7 @@ private Mono<HttpClientResponse> requestToken(ConnectionContext connectionContex
242242
return connectionContext
243243
.getRoot(AUTHORIZATION_ENDPOINT)
244244
.map(root -> getTokenUri(root, getIdentityZoneSubdomain()))
245-
.then(uri -> connectionContext.getHttpClient()
245+
.flatMap(uri -> connectionContext.getHttpClient()
246246
.post(uri, request -> Mono.just(request)
247247
.map(AbstractUaaTokenProvider::disableChunkedTransfer)
248248
.map(AbstractUaaTokenProvider::disableFailOnError)
@@ -258,7 +258,7 @@ private Mono<HttpClientResponse> requestToken(ConnectionContext connectionContex
258258

259259
private Mono<String> token(ConnectionContext connectionContext) {
260260
return this.refreshTokens.getOrDefault(connectionContext, Mono.empty())
261-
.then(refreshToken -> refreshToken(connectionContext, refreshToken)
261+
.flatMap(refreshToken -> refreshToken(connectionContext, refreshToken)
262262
.doOnSubscribe(s -> LOGGER.debug("Negotiating using refresh token")))
263263
.switchIfEmpty(primaryToken(connectionContext)
264264
.doOnSubscribe(s -> LOGGER.debug("Negotiating using token provider")))

0 commit comments

Comments
 (0)