dev@glassfish.java.net

deployment issues

From: Bill Shannon <bill.shannon_at_sun.com>
Date: Thu, 15 Oct 2009 14:32:37 -0700

A few of us have been discussing some issues with deployment recently and
I'd like to let everyone know what we ended up with and get your feedback.

We have three ways to deploy an application using the command line and
two cases to consider for each operation.

Here's what we came up with:

                         | foo does not exist | foo exists
------------------------------------------------------------
deploy foo.war | + | X
deploy --force foo.war | + | + [2]
redeploy foo.war | + [1] | +


Possible outcomes:

X - command fails
+ - command succeeds, app "foo" is deployed

There were two changes we considered:

1. Should redeploying an app that isn't deployed be an error? Is it likely
    that you made a mistake if you try to redeploy something that isn't
    deployed to begin with? If you don't care whether or not it's already
    deployed why not use deploy --force?

2. Should deploy --force with an app that's already deployed cause the
    app to be deployed under a different name? The Java EE spec allows
    (but does not require) the deployment tool to choose a different name
    for the app if the name conflicts with an already deployed application.
    Does --force really mean "replace this app if it's already there", or
    does it mean "deploy this new app no matter what, without disturbing
    other apps that might be deployed"?

Either of these changes would cause redeploy and deploy --force to behave
differently. We were worried about the compatibility impact of such a change,
both with v2 (for which deploy is already incompatible because --force is
the default in v2), and with v3 where people have come to expect these two
commands to behave the same.

If anyone feels strongly that we should make either of these changes,
let me know.

Thanks.