Regarding the G3.0 Wiki documentation:
Creating a new server instance can be completed with gogo commands as follows:
To create an instance named foo do the following. All your instance data will be put in <geronimo_home>/foo. All the directories named below are relative to <geronimo_home>.
Follow the procedures as below:
Create a directory foo under <geronimo_home>.
Copy var, repository and etc directories to foo.You can use the command deploy:new-server-instance to help you with this step.
Edit foo/var/config/config-substitutions.properties and change the portOffset.
Try using any integers such as 1, 2, 10, 20, 30.. for various instances.
I interpret that the "deploy:new-server-instance" command should do the following:
1. Create a directory foo under <geronimo_home>.
2. Copy var to foo
3. Copy repository to foo
4. Copy etc to foo
However, in G3.0-SNAPSHOT this command only does steps 1 and 2.
I have to perform steps 3 and 4 manually.
The "deploy:new-server-instance" should perform all 4 steps?
To repeat the failure, perform the following:
1. Download and unpack G3.0 SNAPSHOT (3.0-20110523 tested)
2. In Geronimo shell (or using the shell deploy command) execute
– deploy:new-server-instance foo
3. Start the new server instance
– env GERONIMO_OPTS=-Dorg.apache.geronimo.server.name=foo bin/startup
4. The foo instance fails to startup, complaining of missing etc/ and repository/
In G3.0, Geronimo refuses to start until the repository and etc exist in org.apache.geronimo.server.dir (which is $GERONIMO_HOME/foo/ in this example).
Ultimately, I feel that the deploy:new-server-instance procedure should not do a straight copy, as the documentation suggests, as long as the default shipped var/ directory is used for a run-time server instance. We don't want to copy specialized configuration the user makes in that default working directory.
However, to resolve this issue immediately and easily, I do feel it should do a straight copy. Those of us who will manage Geronimo on an Enterprise level will know to keep the default shipped var/ directory as a "template" directory, only utilizing instances, and this can be documented as an advanced practice.