Thank you for those notes. i can certainhly see the reasoning behind those choice. Here's some further thoughts :
1. CF-DELETE - would love that, even if it's optionally available by some further notation in the plugin closure.
2. Delete existing services - well did not consider the costs provisions behind service additions/removals - ouch ! In our case, we are using redis persistence as a caching tool to boost performance, so it really is quite useful to be able to auto-remove the data content on a full re-deployment. Would there be any way to add another service attribute on redeployment ? Something along the lines of:
cloudfoundry {
organization = 'northrop_orange_fr' // for anynines
space = 'development' // for anynines
username='****'
password='***'
file = new File('build/libs/asciidoctor-project-1.1.2.war')
application = 'caelyfdoctor'
memory = 384
instances = 1
serviceInfos
{
"rediscloud-asciidoctor"
{
label = 'rediscloud'
provider = 'Garantiadata'
version = 'n/a'
plan = '25mb'
bind = true
redeployment:'keep' // 'remove' as another hint to the cf-delete process as to what to do with this service
}
} // end of serviceInfos
} // end of cloudfoundry
3. since i cannot find a feature like 'cf update' we used to have, it makes it necessary to use cf-push when 're-pushing'. if i do this in a terminal session with absolutely NO changes to anything, just 2 pushes one after the other :
gradlew cf-push
gradlew cf-push
the first push works as long as a previous app of same name is not there. The url taken from the closure(i'm guessing) is used as expected. The 2nd push unbinds the url from the app(i'm guessing) to allow the second push to success - which it does and shows 'running 100%' on pivotal console but without the URL having been re-attached to the new instance. This may not be a valid use case. but in the absence of a cf-update, my work-around is cf-delete cf-push then manual rebind of app to new url using pivotal console. I can't even rebind to the same URL as it's in use !! :-P
4. ok, i can dig the rational for using gradle.properties first, so my work-around here is to hard-code credentials in the script closure and stop using gradle.properties. That way i can cf-push to several targets(yes i have to tweek the script) and still make all of them happy credentials-wise :-}
sure liked the idea of a gradle tweek so will see if that can be used as it's kinda along the lines i was thinking too.
5. am pleased too. it did work ok using cf gradle plugin 1.0.1 but have an issue with 1.0.2 - will post that under separate cover.
more soon
thx
jim