9696import org .cloudfoundry .client .v3 .Relationship ;
9797import org .cloudfoundry .client .v3 .Resource ;
9898import org .cloudfoundry .client .v3 .ToOneRelationship ;
99+ import org .cloudfoundry .client .v3 .applications .Application ;
99100import org .cloudfoundry .client .v3 .applications .ApplicationFeature ;
100101import org .cloudfoundry .client .v3 .applications .ApplicationResource ;
101102import org .cloudfoundry .client .v3 .applications .ApplicationState ;
@@ -207,8 +208,6 @@ public final class DefaultApplications implements Applications {
207208
208209 private static final String STARTED_STATE = "STARTED" ;
209210
210- private static final String STOPPED_STATE = "STOPPED" ;
211-
212211 private static final String APP_FEATURE_SSH = "ssh" ;
213212
214213 private final CloudFoundryClient cloudFoundryClient ;
@@ -2303,7 +2302,7 @@ private Mono<Void> restartApplication(
23032302 String applicationId ,
23042303 Duration stagingTimeout ,
23052304 Duration startupTimeout ) {
2306- return stopApplication (applicationId )
2305+ return stopApplicationV3 (applicationId )
23072306 .then (
23082307 startApplicationAndWait (
23092308 application , applicationId , stagingTimeout , startupTimeout ));
@@ -2330,7 +2329,15 @@ private Mono<Void> startApplicationAndWait(
23302329
23312330 private Mono <Void > stopAndStartApplication (
23322331 String applicationId , String name , PushApplicationManifestRequest request ) {
2333- return stopApplication (applicationId )
2332+ return stopApplicationV3 (applicationId )
2333+ .then (
2334+ this .cloudFoundryClient
2335+ .applicationsV2 ()
2336+ .get (
2337+ org .cloudfoundry .client .v2 .applications
2338+ .GetApplicationRequest .builder ()
2339+ .applicationId (applicationId )
2340+ .build ()))
23342341 .filter (resource -> shouldStartApplication (request , resource ))
23352342 .flatMap (
23362343 resource ->
@@ -2341,11 +2348,17 @@ private Mono<Void> stopAndStartApplication(
23412348 request .getStartupTimeout ()));
23422349 }
23432350
2344- private Mono <AbstractApplicationResource > stopApplication (String applicationId ) {
2345- return requestUpdateApplicationState (applicationId , STOPPED_STATE );
2351+ private Mono <Void > stopApplicationV3 (String applicationId ) {
2352+ return this .cloudFoundryClient
2353+ .applicationsV3 ()
2354+ .get (
2355+ org .cloudfoundry .client .v3 .applications .GetApplicationRequest .builder ()
2356+ .applicationId (applicationId )
2357+ .build ())
2358+ .flatMap (this ::stopApplicationV3 );
23462359 }
23472360
2348- private Mono <Void > stopApplicationV3 (ApplicationResource application ) {
2361+ private Mono <Void > stopApplicationV3 (Application application ) {
23492362 if (application .getState () == ApplicationState .STOPPED ) {
23502363 return Mono .empty ();
23512364 }
@@ -2358,13 +2371,6 @@ private Mono<Void> stopApplicationV3(ApplicationResource application) {
23582371 .then ();
23592372 }
23602373
2361- private Mono <AbstractApplicationResource > stopApplicationIfNotStopped (
2362- AbstractApplicationResource resource ) {
2363- return isNotIn (resource , STOPPED_STATE )
2364- ? stopApplication (ResourceUtils .getId (resource ))
2365- : Mono .just (resource );
2366- }
2367-
23682374 private static ApplicationEnvironments toApplicationEnvironments (
23692375 GetApplicationEnvironmentResponse response ) {
23702376 return ApplicationEnvironments .builder ()
@@ -2430,10 +2436,6 @@ private static Date toDate(String date) {
24302436 return date == null ? null : DateUtils .parseFromIso8601 (date );
24312437 }
24322438
2433- private static Date toDate (Double date ) {
2434- return date == null ? null : DateUtils .parseSecondsFromEpoch (date );
2435- }
2436-
24372439 private static Docker toDocker (SummaryApplicationResponse response ) {
24382440 if (response .getDockerImage () == null ) {
24392441 return null ;
0 commit comments