diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 751a7e7231c..a2e78351cc9 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -6,12 +6,12 @@
-
-
+
+
diff --git a/README.md b/README.md
index 5a952b94e66..e85aa8865a0 100644
--- a/README.md
+++ b/README.md
@@ -1,21 +1,21 @@
# Cloud Foundry Java Client
-[](https://search.maven.org/search?q=g:org.cloudfoundry%20AND%20a:cloudfoundry-client%20AND%20v:3.*)
+[](https://search.maven.org/search?q=g:org.cloudfoundry%20AND%20a:cloudfoundry-client%20AND%20v)
| Artifact | Javadocs
| -------- | --------
-| `cloudfoundry-client` | [](https://javadoc.io/doc/org.cloudfoundry/cloudfoundry-client/3.23.0.RELEASE)
-| `cloudfoundry-client-reactor` | [](https://javadoc.io/doc/org.cloudfoundry/cloudfoundry-client-reactor/3.23.0.RELEASE)
-| `cloudfoundry-operations` | [](https://javadoc.io/doc/org.cloudfoundry/cloudfoundry-operations/3.23.0.RELEASE)
-| `cloudfoundry-util` | [](https://javadoc.io/doc/org.cloudfoundry/cloudfoundry-util/3.23.0.RELEASE)
+| `cloudfoundry-client` | [](https://javadoc.io/doc/org.cloudfoundry/cloudfoundry-client)
+| `cloudfoundry-client-reactor` | [](https://javadoc.io/doc/org.cloudfoundry/cloudfoundry-client-reactor)
+| `cloudfoundry-operations` | [](https://javadoc.io/doc/org.cloudfoundry/cloudfoundry-operations)
+| `cloudfoundry-util` | [](https://javadoc.io/doc/org.cloudfoundry/cloudfoundry-util)
| Job | Status
| --- | ------
-| `unit-test` | [](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/unit-test-3.x)
-| `integration-test-2.5` | [](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/integration-test-2.5-3.x)
-| `integration-test-2.6` | [](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/integration-test-2.6-3.x)
-| `integration-test-2.7` | [](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/integration-test-2.7-3.x)
-| `integration-test-2.8` | [](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/integration-test-2.8-3.x)
-| `deploy` | [](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/deploy-3.x)
+| `unit-test` | [](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/unit-test-master)
+| `integration-test-2.5` | [](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/integration-test-2.5-master)
+| `integration-test-2.6` | [](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/integration-test-2.6-master)
+| `integration-test-2.7` | [](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/integration-test-2.7-master)
+| `integration-test-2.8` | [](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/integration-test-2.8-master)
+| `deploy` | [](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/java-client/jobs/deploy-master)
The `cf-java-client` project is a Java language binding for interacting with a Cloud Foundry instance. The project is broken up into a number of components that expose different levels of abstraction depending on need.
@@ -35,12 +35,12 @@ Most projects will need two dependencies; the Operations API and an implementati
org.cloudfoundry
cloudfoundry-client-reactor
- 3.23.0.RELEASE
+ 4.6.0.RELEASE
org.cloudfoundry
cloudfoundry-operations
- 3.23.0.RELEASE
+ 4.6.0.RELEASE
...
@@ -66,8 +66,8 @@ For Gradle, the dependencies would be defined like this:
```groovy
dependencies {
- compile 'org.cloudfoundry:cloudfoundry-client-reactor:3.23.0.RELEASE'
- compile 'org.cloudfoundry:cloudfoundry-operations:3.23.0.RELEASE'
+ compile 'org.cloudfoundry:cloudfoundry-client-reactor:4.6.0.RELEASE'
+ compile 'org.cloudfoundry:cloudfoundry-operations:4.6.0.RELEASE'
...
}
```
diff --git a/cloudfoundry-client-reactor/pom.xml b/cloudfoundry-client-reactor/pom.xml
index 5e6746ef7a7..c7d9aac2e0a 100644
--- a/cloudfoundry-client-reactor/pom.xml
+++ b/cloudfoundry-client-reactor/pom.xml
@@ -25,7 +25,7 @@
org.cloudfoundry
cloudfoundry-java-client
- 3.27.0.BUILD-SNAPSHOT
+ 4.10.0.BUILD-SNAPSHOT
cloudfoundry-client-reactor
diff --git a/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/_DefaultConnectionContext.java b/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/_DefaultConnectionContext.java
index 35d3e74394f..b3e27fd63c2 100644
--- a/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/_DefaultConnectionContext.java
+++ b/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/_DefaultConnectionContext.java
@@ -173,8 +173,12 @@ public Mono trust(String host, int port) {
@Value.Derived
Optional getConnectionProvider() {
+ ConnectionProvider.Builder builder = ConnectionProvider.builder("cloudfoundry-client");
+
return Optional.ofNullable(getConnectionPoolSize())
- .map(connectionPoolSize -> ConnectionProvider.fixed("cloudfoundry-client", connectionPoolSize));
+ .map(connectionPoolSize -> builder.maxConnections(connectionPoolSize)
+ .pendingAcquireMaxCount(-1)
+ .build());
}
/**
diff --git a/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/tokenprovider/AbstractUaaTokenProvider.java b/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/tokenprovider/AbstractUaaTokenProvider.java
index 3fc901639c2..d4a3049a6b3 100644
--- a/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/tokenprovider/AbstractUaaTokenProvider.java
+++ b/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/tokenprovider/AbstractUaaTokenProvider.java
@@ -148,10 +148,6 @@ private static String extractAccessToken(Map payload) {
}
private static Optional parseToken(String token) {
- if (!token.contains(".")) {
- return Optional.empty();
- }
-
try {
String jws = token.substring(0, token.lastIndexOf('.') + 1);
diff --git a/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/uaa/UsernameProvider.java b/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/uaa/UsernameProvider.java
index 857d0aad284..b172b3d5274 100644
--- a/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/uaa/UsernameProvider.java
+++ b/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/uaa/UsernameProvider.java
@@ -26,6 +26,7 @@
import org.cloudfoundry.uaa.tokens.Tokens;
import reactor.core.publisher.Mono;
import reactor.core.scheduler.Schedulers;
+import reactor.util.retry.Retry;
import java.util.Optional;
@@ -51,14 +52,8 @@ Mono get() {
return getToken(this.connectionContext, this.tokenProvider)
.map(this::getUsername)
.subscribeOn(Schedulers.elastic())
- .retry(1, t -> {
- if (t instanceof ExpiredJwtException) {
- this.tokenProvider.invalidate(this.connectionContext);
- return true;
- }
-
- return false;
- });
+ .retryWhen(Retry.max(1).filter(ExpiredJwtException.class::isInstance)
+ .doAfterRetry(r -> this.tokenProvider.invalidate(this.connectionContext)));
}
private static Mono getToken(ConnectionContext connectionContext, TokenProvider tokenProvider) {
diff --git a/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/util/Operator.java b/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/util/Operator.java
index 332227716ad..9b2c86dd5af 100644
--- a/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/util/Operator.java
+++ b/cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/util/Operator.java
@@ -37,6 +37,7 @@
import reactor.netty.http.client.HttpClientResponse;
import reactor.netty.http.websocket.WebsocketInbound;
import reactor.netty.http.websocket.WebsocketOutbound;
+import reactor.util.retry.Retry;
import java.io.InputStream;
import java.util.ArrayList;
@@ -102,7 +103,8 @@ public Operator withErrorPayloadMapper(ErrorPayloadMapper errorPayloadMapper) {
private static HttpClient attachRequestLogger(HttpClient httpClient) {
RequestLogger requestLogger = new RequestLogger();
return httpClient.doAfterRequest((request, connection) -> requestLogger.request(request))
- .doAfterResponse((response, connection) -> requestLogger.response(response));
+ .doAfterResponseSuccess((response, connection) -> requestLogger.response(response))
+ .doOnResponseError((response, connection) -> requestLogger.response(response));
}
public static class PayloadConfiguration extends OperatorContextAware {
@@ -239,8 +241,7 @@ private Flux invalidateToken(Flux processResponse(Flux inbound) {
return inbound
.transform(this::invalidateToken)
- .retry(this.context.getConnectionContext().getInvalidTokenRetries(),
- t -> t instanceof InvalidTokenException)
+ .retryWhen(Retry.max(this.context.getConnectionContext().getInvalidTokenRetries()).filter(InvalidTokenException.class::isInstance))
.transform(this.context.getErrorPayloadMapper()
.orElse(ErrorPayloadMappers.fallback()));
}
diff --git a/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/client/v3/applications/ReactorApplicationsV3Test.java b/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/client/v3/applications/ReactorApplicationsV3Test.java
index ee26db1f9a1..6d62acef3e1 100644
--- a/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/client/v3/applications/ReactorApplicationsV3Test.java
+++ b/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/client/v3/applications/ReactorApplicationsV3Test.java
@@ -586,7 +586,7 @@ public void getProcessStatistics() {
.usage(ProcessUsage.builder()
.time("2016-03-23T23:17:30.476314154Z")
.cpu(0.00038711029163348665)
- .memory(19177472)
+ .memory((long)19177472)
.disk(69705728)
.build())
.host("10.244.16.10")
@@ -596,10 +596,10 @@ public void getProcessStatistics() {
.internal(8080)
.internalTlsProxyPort(5678)
.build())
- .uptime(9042)
- .memoryQuota(268435456)
- .diskQuota(1073741824)
- .fileDescriptorQuota(16384)
+ .uptime((long)9042)
+ .memoryQuota((long)268435456)
+ .diskQuota((long)1073741824)
+ .fileDescriptorQuota((long)16384)
.build())
.build())
.expectComplete()
diff --git a/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/client/v3/processes/ReactorProcessesTest.java b/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/client/v3/processes/ReactorProcessesTest.java
index 642a93bdd57..bb9bb301b4b 100644
--- a/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/client/v3/processes/ReactorProcessesTest.java
+++ b/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/client/v3/processes/ReactorProcessesTest.java
@@ -166,7 +166,7 @@ public void getProcessStatistics() {
.usage(ProcessUsage.builder()
.time("2016-03-23T23:17:30.476314154Z")
.cpu(0.00038711029163348665)
- .memory(19177472)
+ .memory((long)19177472)
.disk(69705728)
.build())
.host("10.244.16.10")
@@ -176,10 +176,10 @@ public void getProcessStatistics() {
.internal(8080)
.internalTlsProxyPort(5678)
.build())
- .uptime(9042)
- .memoryQuota(268435456)
- .diskQuota(1073741824)
- .fileDescriptorQuota(16384)
+ .uptime((long)9042)
+ .memoryQuota((long)268435456)
+ .diskQuota((long)1073741824)
+ .fileDescriptorQuota((long)16384)
.build())
.build())
.expectComplete()
diff --git a/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/uaa/IdentityZoneBuilderTest.java b/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/uaa/IdentityZoneBuilderTest.java
index cba151f7996..a4d50242cf7 100644
--- a/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/uaa/IdentityZoneBuilderTest.java
+++ b/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/uaa/IdentityZoneBuilderTest.java
@@ -22,7 +22,7 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoInteractions;
public final class IdentityZoneBuilderTest {
@@ -40,7 +40,7 @@ public void augment() {
public void augmentNotIdentityZoned() {
IdentityZoneBuilder.augment(this.outbound, new Object());
- verifyZeroInteractions(this.outbound);
+ verifyNoInteractions(this.outbound);
}
private static final class StubIdentityZoned implements IdentityZoned {
diff --git a/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/uaa/VersionBuilderTest.java b/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/uaa/VersionBuilderTest.java
index 706e94ebc62..b9c93d563c4 100644
--- a/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/uaa/VersionBuilderTest.java
+++ b/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/uaa/VersionBuilderTest.java
@@ -22,7 +22,7 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoInteractions;
public final class VersionBuilderTest {
@@ -38,13 +38,13 @@ public void augment() {
@Test
public void augmentNotVersioned() {
VersionBuilder.augment(this.outbound, new Object());
- verifyZeroInteractions(this.outbound);
+ verifyNoInteractions(this.outbound);
}
@Test
public void augmentNullVersion() {
VersionBuilder.augment(this.outbound, new StubVersioned(null));
- verifyZeroInteractions(this.outbound);
+ verifyNoInteractions(this.outbound);
}
private static final class StubVersioned implements Versioned {
diff --git a/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/util/ErrorPayloadMappersTest.java b/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/util/ErrorPayloadMappersTest.java
index 41ffed24332..4af890bbb69 100644
--- a/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/util/ErrorPayloadMappersTest.java
+++ b/cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/util/ErrorPayloadMappersTest.java
@@ -151,7 +151,7 @@ public void clientV3ClientError() throws IOException {
assertThat(t).isInstanceOf(ClientV3Exception.class)
.hasMessage("CF-UnprocessableEntity(10008): something went wrong")
.extracting("statusCode")
- .containsExactly(BAD_REQUEST.code());
+ .isEqualTo(BAD_REQUEST.code());
assertThat(((ClientV3Exception) t).getErrors()).flatExtracting(org.cloudfoundry.client.v3.Error::getCode,
org.cloudfoundry.client.v3.Error::getDetail,
@@ -188,7 +188,7 @@ public void clientV3ServerError() throws IOException {
assertThat(t).isInstanceOf(ClientV3Exception.class)
.hasMessage("CF-UnprocessableEntity(10008): something went wrong")
.extracting("statusCode")
- .containsExactly(INTERNAL_SERVER_ERROR.code());
+ .isEqualTo(INTERNAL_SERVER_ERROR.code());
assertThat(((ClientV3Exception) t).getErrors()).flatExtracting(org.cloudfoundry.client.v3.Error::getCode,
org.cloudfoundry.client.v3.Error::getDetail,
diff --git a/cloudfoundry-client/pom.xml b/cloudfoundry-client/pom.xml
index 08c0d1059f8..7034c0baef0 100644
--- a/cloudfoundry-client/pom.xml
+++ b/cloudfoundry-client/pom.xml
@@ -25,7 +25,7 @@
org.cloudfoundry
cloudfoundry-java-client
- 3.27.0.BUILD-SNAPSHOT
+ 4.10.0.BUILD-SNAPSHOT
cloudfoundry-client
diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/ProcessStatistics.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/ProcessStatistics.java
index c1d0e8451c6..8f5f1a22ce1 100644
--- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/ProcessStatistics.java
+++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/ProcessStatistics.java
@@ -37,18 +37,21 @@ public abstract class ProcessStatistics {
* The disk quota
*/
@JsonProperty("disk_quota")
- public abstract Integer getDiskQuota();
+ @Nullable
+ public abstract Long getDiskQuota();
/**
* The file descriptor quota
*/
@JsonProperty("fds_quota")
- public abstract Integer getFileDescriptorQuota();
+ @Nullable
+ public abstract Long getFileDescriptorQuota();
/**
* The host
*/
@JsonProperty("host")
+ @Nullable
public abstract String getHost();
/**
@@ -61,6 +64,7 @@ public abstract class ProcessStatistics {
* The instance port mappings
*/
@JsonProperty("instance_ports")
+ @Nullable
public abstract List getInstancePorts();
/**
@@ -74,7 +78,8 @@ public abstract class ProcessStatistics {
* The memory quota
*/
@JsonProperty("mem_quota")
- public abstract Integer getMemoryQuota();
+ @Nullable
+ public abstract Long getMemoryQuota();
/**
* The state
@@ -93,12 +98,13 @@ public abstract class ProcessStatistics {
* The uptime
*/
@JsonProperty("uptime")
- public abstract Integer getUptime();
+ public abstract Long getUptime();
/**
* The usage
*/
@JsonProperty("usage")
+ @Nullable
public abstract ProcessUsage getUsage();
}
diff --git a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/_ProcessUsage.java b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/_ProcessUsage.java
index 76293b67ce6..b9b4ba73c4f 100644
--- a/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/_ProcessUsage.java
+++ b/cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/processes/_ProcessUsage.java
@@ -43,7 +43,7 @@ abstract class _ProcessUsage {
* The memory
*/
@JsonProperty("mem")
- abstract Integer getMemory();
+ abstract Long getMemory();
/**
* The time
diff --git a/cloudfoundry-client/src/test/java/org/cloudfoundry/client/v3/ClientV3ExceptionTest.java b/cloudfoundry-client/src/test/java/org/cloudfoundry/client/v3/ClientV3ExceptionTest.java
index a54f0a9275d..a2683a53259 100644
--- a/cloudfoundry-client/src/test/java/org/cloudfoundry/client/v3/ClientV3ExceptionTest.java
+++ b/cloudfoundry-client/src/test/java/org/cloudfoundry/client/v3/ClientV3ExceptionTest.java
@@ -42,7 +42,7 @@ public void test() {
assertThat(exception)
.hasNoCause()
.hasMessage("test-title-1(-2): test-detail-1, test-title-2(-3): test-detail-2")
- .extracting("statusCode").containsExactly(-1);
+ .extracting("statusCode").isEqualTo(-1);
assertThat(exception.getErrors())
.flatExtracting(Error::getCode, Error::getDetail, Error::getTitle)
diff --git a/cloudfoundry-client/src/test/java/org/cloudfoundry/client/v3/applications/GetApplicationProcessStatisticsRequestTest.java b/cloudfoundry-client/src/test/java/org/cloudfoundry/client/v3/applications/GetApplicationProcessStatisticsRequestTest.java
index 5450b050ccc..d6e83defb09 100644
--- a/cloudfoundry-client/src/test/java/org/cloudfoundry/client/v3/applications/GetApplicationProcessStatisticsRequestTest.java
+++ b/cloudfoundry-client/src/test/java/org/cloudfoundry/client/v3/applications/GetApplicationProcessStatisticsRequestTest.java
@@ -16,6 +16,9 @@
package org.cloudfoundry.client.v3.applications;
+import org.cloudfoundry.client.v3.processes.ProcessState;
+import org.cloudfoundry.client.v3.processes.ProcessStatisticsResource;
+import org.cloudfoundry.client.v3.processes.ProcessUsage;
import org.junit.Test;
public final class GetApplicationProcessStatisticsRequestTest {
@@ -42,4 +45,40 @@ public void valid() {
.build();
}
+ @Test
+ public void validDownResponse() {
+ ProcessStatisticsResource processStatisticsResource = ProcessStatisticsResource.builder()
+ .type("web")
+ .index(0)
+ .state(ProcessState.DOWN)
+ .uptime(new Long(0))
+ .build();
+ GetApplicationProcessStatisticsResponse.builder()
+ .resource(processStatisticsResource)
+ .build();
+ }
+
+ @Test
+ public void validRunningResponse() {
+ ProcessUsage processUsage = ProcessUsage.builder()
+ .time("")
+ .cpu(new Double("0.00038711029163348665"))
+ .memory(new Long(19177472))
+ .disk(new Integer(69705728))
+ .build();
+ ProcessStatisticsResource processStatisticsResource = ProcessStatisticsResource.builder()
+ .type("web")
+ .index(0)
+ .state(ProcessState.RUNNING)
+ .host("10.244.16.10")
+ .usage(processUsage)
+ .uptime(new Long(9042))
+ .memoryQuota(new Long(268435456))
+ .diskQuota(new Long(1073741824))
+ .fileDescriptorQuota(new Long(16384))
+ .build();
+ GetApplicationProcessStatisticsResponse.builder()
+ .resource(processStatisticsResource)
+ .build();
+ }
}
diff --git a/cloudfoundry-operations/pom.xml b/cloudfoundry-operations/pom.xml
index 614b878649a..b386ead9a6e 100644
--- a/cloudfoundry-operations/pom.xml
+++ b/cloudfoundry-operations/pom.xml
@@ -25,7 +25,7 @@
org.cloudfoundry
cloudfoundry-java-client
- 3.27.0.BUILD-SNAPSHOT
+ 4.10.0.BUILD-SNAPSHOT
cloudfoundry-operations
diff --git a/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/applications/DefaultApplications.java b/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/applications/DefaultApplications.java
index 5e8f6cad34c..d37b7b78518 100644
--- a/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/applications/DefaultApplications.java
+++ b/cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/applications/DefaultApplications.java
@@ -900,7 +900,7 @@ private static Flux getLogs(Mono dopplerClient, Strin
return requestLogsStream(dopplerClient, applicationId)
.filter(e -> EventType.LOG_MESSAGE == e.getEventType())
.map(Envelope::getLogMessage)
- .compose(SortingUtils.timespan(LOG_MESSAGE_COMPARATOR, LOG_MESSAGE_TIMESPAN));
+ .transformDeferred(SortingUtils.timespan(LOG_MESSAGE_COMPARATOR, LOG_MESSAGE_TIMESPAN));
}
}
diff --git a/cloudfoundry-util/pom.xml b/cloudfoundry-util/pom.xml
index c5b44747923..02f9952721b 100644
--- a/cloudfoundry-util/pom.xml
+++ b/cloudfoundry-util/pom.xml
@@ -25,7 +25,7 @@
org.cloudfoundry
cloudfoundry-java-client
- 3.27.0.BUILD-SNAPSHOT
+ 4.10.0.BUILD-SNAPSHOT
cloudfoundry-util
diff --git a/integration-test/pom.xml b/integration-test/pom.xml
index 6773a30008b..c5b117897ae 100644
--- a/integration-test/pom.xml
+++ b/integration-test/pom.xml
@@ -25,7 +25,7 @@
org.cloudfoundry
cloudfoundry-java-client
- 3.27.0.BUILD-SNAPSHOT
+ 4.10.0.BUILD-SNAPSHOT
integration-test
diff --git a/integration-test/src/test/java/org/cloudfoundry/CloudFoundryCleaner.java b/integration-test/src/test/java/org/cloudfoundry/CloudFoundryCleaner.java
index 651df0501cd..39ea0b299ed 100644
--- a/integration-test/src/test/java/org/cloudfoundry/CloudFoundryCleaner.java
+++ b/integration-test/src/test/java/org/cloudfoundry/CloudFoundryCleaner.java
@@ -109,6 +109,7 @@
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import reactor.util.function.Tuples;
+import reactor.util.retry.Retry;
import javax.net.ssl.SSLException;
import java.time.Duration;
@@ -188,7 +189,7 @@ void clean() {
))
.thenMany(cleanOrganizations(this.cloudFoundryClient, this.nameFactory)) // After Spaces
.thenMany(cleanOrganizationQuotaDefinitions(this.cloudFoundryClient, this.nameFactory)) // After Organizations
- .retry(5, t -> t instanceof SSLException)
+ .retryWhen(Retry.max(5).filter(SSLException.class::isInstance))
.doOnSubscribe(s -> LOGGER.debug(">> CLEANUP <<"))
.doOnComplete(() -> LOGGER.debug("<< CLEANUP >>"))
.then()
diff --git a/pom.xml b/pom.xml
index e6e128b4d36..6c10cf52a98 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
cloudfoundry-java-client
Cloud Foundry Java Client Parent
A Java language binding for interacting with a Cloud Foundry instance
- 3.27.0.BUILD-SNAPSHOT
+ 4.10.0.BUILD-SNAPSHOT
pom
https://github.com/cloudfoundry/cf-java-client
@@ -59,12 +59,11 @@
1.20
- 2.1.15.RELEASE
+ 2.2.8.RELEASE
1.2.2
2.8.8
0.9.0
0.9.1
- 3.14.9
UTF-8
2.2.0
@@ -84,11 +83,6 @@
java-semver
${java-semver.version}
-
- com.squareup.okhttp3
- mockwebserver
- ${okhttp3.version}
-
com.squareup.wire
wire-runtime
diff --git a/test-service-broker/pom.xml b/test-service-broker/pom.xml
index 0c174dc9863..cba2273b022 100644
--- a/test-service-broker/pom.xml
+++ b/test-service-broker/pom.xml
@@ -25,7 +25,7 @@
org.cloudfoundry
cloudfoundry-java-client
- 3.27.0.BUILD-SNAPSHOT
+ 4.10.0.BUILD-SNAPSHOT
test-service-broker