geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gianny Damour <gianny.dam...@optusnet.com.au>
Subject Re: svn commit: r600872 - in /geronimo/server/trunk: ./ assemblies/geronimo-boilerplate-minimal/ assemblies/geronimo-boilerplate-minimal/src/main/assembly/ assemblies/geronimo-boilerplate-minimal/src/main/underlay/etc/ framework/modules/geronimo-comm
Date Tue, 22 Apr 2008 10:21:07 GMT
On 22/04/2008, at 4:35 AM, Jason Dillon wrote:

> Hey, what exactly does this remote-server-control command intend to
> solve?  This got committed at the same time as your aliasing work...
> which sorry to say I'm about to nuke.

Please nuke.

>
> I wish you had mentioned you wanted to work on alias stuff and I would
> have given you a nudge on how I was planning on implementing it.  The
> idea was to follow how the alias stuff works for the Groovy Shell
> (aka. groovysh), which closely resembles how aliasing works for
> /bin/bash.  To do so means adding a few hooks into the GShell core and
> adding alias, unalias commands to builtins.

Do not wish anymore. This was discussed along with the remote-server- 
control bits:

http://www.mail-archive.com/dev@geronimo.apache.org/msg54184.html

>
>  * * *
>
> Anyways, I comprehend what the alias bits are intended for, but I'm
> lost for what the remote-server-control bits are for completely.
>
> I'm a bit weary about adding some of these commands to the
> distribution w/o adequate testing and documentation... or use-cases.

Test is there:  
org.apache.geronimo.commands.RemoteServerControlCommandTest

Documentation, talking about use-cases, would have been coming this  
week-end (I slowly started posting docos  two weeks ago with farming  
followed by WADI clustering support).

>
> Perhaps if you want to keep this around we can move it to a sandbox
> module, where we can test out new commands, then once they are
> rocksolid move them over?

Let's nuke it. I let you proceed.

Thanks,
Gianny

>
> --jason
>
>
> On Tue, Dec 4, 2007 at 5:46 PM,  <gdamour@apache.org> wrote:
>> Author: gdamour
>>  Date: Tue Dec  4 02:46:27 2007
>>  New Revision: 600872
>>
>>  URL: http://svn.apache.org/viewvc?rev=600872&view=rev
>>  Log:
>>  Add a couple of gshell commands to simplify the remote control of  
>> servers.
>>  The commands being added are:
>>  * alias: used to alias a commond along with some options and  
>> arguments.
>>  etc/layout.xml provides a first aliasing mechanism: a  
>> hierarchical name is
>>  mapped to a command. alias suplements this first aliasing  
>> mechanism with the
>>  ability to alias a command along with its typical options and  
>> arguments.
>>  * unalias: to remove an alias
>>  * execute-alias: to execute an alias
>>  * remote/rsh to start an rsh client
>>  * remote/rsh-server to start an rsh-server
>>  * remote-control/server-control to control a server
>>
>>  Samples for the aliasing commands:
>>  // create the alias 'st' for the quoted command
>>> alias st 'geronimo/start-server -G server.name=yellow -D  
>>> property=value'
>>  // execute the alias 'st'. This executes the command in quote above
>>> excute-alias st
>>  // display defined aliases
>>> alias
>>  // remove the alias 'st'
>>> unalias st
>>
>>  Samples for the remote server control commands:
>>  // start an rsh-server:
>>> remote/rsh-server tcp://localhost:9999
>>  // remote 'start' the server 'defaultServer'
>>> remote-control/server-control start defaultServer
>>  // remote 'stop' the server 'defaultServer'
>>> remote-control/server-control stop defaultServer
>>
>>  All the commands are implemented in Groovy. XML manipulations are  
>> done via
>>  XmlSlurpers.
>>
>>  Aliases are stored in a configuration file located by default in
>>     etc/aliases.xml
>>
>>  Server configurations, used by the remote control command, are  
>> stored in a
>>  configuration file located by default in
>>     etc/server-configuration.xml
>>
>>  New JARs are being added to lib/gshell for the support of the rsh  
>> bits.
>>
>>  Added:
>>     geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> src/main/underlay/etc/aliases.xml
>>     geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> src/main/underlay/etc/server-configuration.xml
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/AbstractAliasCommand.groovy
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/AliasCommand.groovy
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/ExecuteAliasCommand.groovy
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/ 
>> RemoteServerControlCommand.groovy
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/UnaliasCommand.groovy
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/AliasCommandTest.groovy
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/ 
>> ExecuteAliasCommandTest.groovy
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/GroovyTestSupport.groovy
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/ 
>> RemoteServerControlCommandTest.groovy
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/UnaliasCommandTest.groovy
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/resources/
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/resources/etc/
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/resources/etc/aliases.xml
>>     geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/resources/etc/server-configuration.xml
>>  Modified:
>>     geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> pom.xml
>>     geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> src/main/assembly/boilerplate.xml
>>     geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> src/main/underlay/etc/layout.xml
>>     geronimo/server/trunk/framework/modules/geronimo-commands/pom.xml
>>     geronimo/server/trunk/pom.xml
>>
>>  Modified: geronimo/server/trunk/assemblies/geronimo-boilerplate- 
>> minimal/pom.xml
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/ 
>> assemblies/geronimo-boilerplate-minimal/pom.xml? 
>> rev=600872&r1=600871&r2=600872&view=diff
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> pom.xml (original)
>>  +++ geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> pom.xml Tue Dec  4 02:46:27 2007
>>  @@ -65,6 +65,36 @@
>>          </dependency>
>>
>>          <dependency>
>>  +            <groupId>org.apache.geronimo.gshell</groupId>
>>  +            <artifactId>gshell-whisper</artifactId>
>>  +        </dependency>
>>  +
>>  +        <dependency>
>>  +            <groupId>org.apache.geronimo.gshell.remote</groupId>
>>  +            <artifactId>gshell-remote-client</artifactId>
>>  +        </dependency>
>>  +
>>  +        <dependency>
>>  +            <groupId>org.apache.geronimo.gshell.remote</groupId>
>>  +            <artifactId>gshell-remote-common</artifactId>
>>  +        </dependency>
>>  +
>>  +        <dependency>
>>  +            <groupId>org.apache.geronimo.gshell.remote</groupId>
>>  +            <artifactId>gshell-remote-server</artifactId>
>>  +        </dependency>
>>  +
>>  +        <dependency>
>>  +            <groupId>org.apache.mina</groupId>
>>  +            <artifactId>mina-core</artifactId>
>>  +        </dependency>
>>  +
>>  +        <dependency>
>>  +            <groupId>org.apache.mina</groupId>
>>  +            <artifactId>mina-filter-ssl</artifactId>
>>  +        </dependency>
>>  +
>>  +        <dependency>
>>              <groupId>org.slf4j</groupId>
>>              <artifactId>slf4j-log4j12</artifactId>
>>          </dependency>
>>
>>  Modified: geronimo/server/trunk/assemblies/geronimo-boilerplate- 
>> minimal/src/main/assembly/boilerplate.xml
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/ 
>> assemblies/geronimo-boilerplate-minimal/src/main/assembly/ 
>> boilerplate.xml?rev=600872&r1=600871&r2=600872&view=diff
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> src/main/assembly/boilerplate.xml (original)
>>  +++ geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> src/main/assembly/boilerplate.xml Tue Dec  4 02:46:27 2007
>>  @@ -36,6 +36,15 @@
>>                  <include>org.apache.geronimo.modules:geronimo- 
>> commands</include>
>>                  <include>org.apache.geronimo.gshell:gshell- 
>> embeddable</include>
>>                  <include>org.apache.geronimo.gshell:gshell-cli</ 
>> include>
>>  +
>>  +                <!-- rsh related commands -->
>>  +                <include>org.apache.geronimo.gshell:gshell- 
>> whisper</include>
>>  +                 
>> <include>org.apache.geronimo.gshell.remote:gshell-remote-client</ 
>> include>
>>  +                 
>> <include>org.apache.geronimo.gshell.remote:gshell-remote-common</ 
>> include>
>>  +                 
>> <include>org.apache.geronimo.gshell.remote:gshell-remote-server</ 
>> include>
>>  +                <include>org.apache.mina:mina-core</include>
>>  +                <include>org.apache.mina:mina-filter-ssl</include>
>>  +
>>                  <include>org.codehaus.groovy:groovy-all</include>
>>                  <include>org.apache.ant:ant</include>
>>                  <include>org.apache.ant:ant-launcher</include>
>>
>>  Added: geronimo/server/trunk/assemblies/geronimo-boilerplate- 
>> minimal/src/main/underlay/etc/aliases.xml
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/ 
>> assemblies/geronimo-boilerplate-minimal/src/main/underlay/etc/ 
>> aliases.xml?rev=600872&view=auto
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> src/main/underlay/etc/aliases.xml (added)
>>  +++ geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> src/main/underlay/etc/aliases.xml Tue Dec  4 02:46:27 2007
>>  @@ -0,0 +1,30 @@
>>  +<?xml version="1.0" encoding="UTF-8"?>
>>  +<!--
>>  +    Licensed to the Apache Software Foundation (ASF) under one
>>  +    or more contributor license agreements.  See the NOTICE file
>>  +    distributed with this work for additional information
>>  +    regarding copyright ownership.  The ASF licenses this file
>>  +    to you under the Apache License, Version 2.0 (the
>>  +    "License"); you may not use this file except in compliance
>>  +    with the License.  You may obtain a copy of the License at
>>  +
>>  +     http://www.apache.org/licenses/LICENSE-2.0
>>  +
>>  +    Unless required by applicable law or agreed to in writing,
>>  +    software distributed under the License is distributed on an
>>  +    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>  +    KIND, either express or implied.  See the License for the
>>  +    specific language governing permissions and limitations
>>  +    under the License.
>>  +-->
>>  +
>>  +<!-- $Rev: 597481 $ $Date: 2007-11-23 06:25:03 +1100 (Fri, 23  
>> Nov 2007) $ -->
>>  +
>>  +<aliases>
>>  +  <alias id='start_DEFAULT_SERVER'>
>>  +    <cli>geronimo/start-server -b</cli>
>>  +  </alias>
>>  +  <alias id='stop_DEFAULT_SERVER'>
>>  +    <cli>geronimo/stop-server</cli>
>>  +  </alias>
>>  +</aliases>
>>  \ No newline at end of file
>>
>>  Modified: geronimo/server/trunk/assemblies/geronimo-boilerplate- 
>> minimal/src/main/underlay/etc/layout.xml
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/ 
>> assemblies/geronimo-boilerplate-minimal/src/main/underlay/etc/ 
>> layout.xml?rev=600872&r1=600871&r2=600872&view=diff
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> src/main/underlay/etc/layout.xml (original)
>>  +++ geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> src/main/underlay/etc/layout.xml Tue Dec  4 02:46:27 2007
>>  @@ -80,6 +80,21 @@
>>              <id>gshell-builtins:unset</id>
>>          </command>
>>
>>  +        <command>
>>  +            <name>alias</name>
>>  +            <id>geronimo-commands:alias</id>
>>  +        </command>
>>  +
>>  +        <command>
>>  +            <name>unalias</name>
>>  +            <id>geronimo-commands:unalias</id>
>>  +        </command>
>>  +
>>  +        <command>
>>  +            <name>execute-alias</name>
>>  +            <id>geronimo-commands:execute-alias</id>
>>  +        </command>
>>  +
>>          <!-- Geronimo -->
>>
>>          <group>
>>  @@ -94,6 +109,30 @@
>>                  <command>
>>                      <name>stop-server</name>
>>                      <id>geronimo-commands:stop-server</id>
>>  +                </command>
>>  +            </nodes>
>>  +        </group>
>>  +
>>  +        <group>
>>  +            <name>remote</name>
>>  +            <nodes>
>>  +                <command>
>>  +                    <name>rsh</name>
>>  +                    <id>gshell-remote:rsh</id>
>>  +                </command>
>>  +                <command>
>>  +                    <name>rsh-server</name>
>>  +                    <id>gshell-remote:rsh-server</id>
>>  +                </command>
>>  +            </nodes>
>>  +        </group>
>>  +
>>  +        <group>
>>  +            <name>remote-control</name>
>>  +            <nodes>
>>  +                <command>
>>  +                    <name>server-control</name>
>>  +                    <id>geronimo-commands:remote-server-control</ 
>> id>
>>                  </command>
>>              </nodes>
>>          </group>
>>
>>  Added: geronimo/server/trunk/assemblies/geronimo-boilerplate- 
>> minimal/src/main/underlay/etc/server-configuration.xml
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/ 
>> assemblies/geronimo-boilerplate-minimal/src/main/underlay/etc/ 
>> server-configuration.xml?rev=600872&view=auto
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> src/main/underlay/etc/server-configuration.xml (added)
>>  +++ geronimo/server/trunk/assemblies/geronimo-boilerplate-minimal/ 
>> src/main/underlay/etc/server-configuration.xml Tue Dec  4 02:46:27  
>> 2007
>>  @@ -0,0 +1,40 @@
>>  +<?xml version="1.0" encoding="UTF-8"?>
>>  +<!--
>>  +    Licensed to the Apache Software Foundation (ASF) under one
>>  +    or more contributor license agreements.  See the NOTICE file
>>  +    distributed with this work for additional information
>>  +    regarding copyright ownership.  The ASF licenses this file
>>  +    to you under the Apache License, Version 2.0 (the
>>  +    "License"); you may not use this file except in compliance
>>  +    with the License.  You may obtain a copy of the License at
>>  +
>>  +     http://www.apache.org/licenses/LICENSE-2.0
>>  +
>>  +    Unless required by applicable law or agreed to in writing,
>>  +    software distributed under the License is distributed on an
>>  +    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>  +    KIND, either express or implied.  See the License for the
>>  +    specific language governing permissions and limitations
>>  +    under the License.
>>  +-->
>>  +
>>  +<!-- $Rev: 597481 $ $Date: 2007-11-23 06:25:03 +1100 (Fri, 23  
>> Nov 2007) $ -->
>>  +
>>  +<configuration>
>>  +  <hosts>
>>  +    <host name="localhost">
>>  +      <gshell>
>>  +        <remote-login-cmd>remote/rsh -u NOT_USED -p NOT_USED  
>> tcp://localhost:9999</remote-login-cmd>
>>  +      </gshell>
>>  +    </host>
>>  +  </hosts>
>>  +  <servers>
>>  +    <server name="defaultServer">
>>  +      <host name="localhost" />
>>  +      <controls>
>>  +        <start>execute-alias start_DEFAULT_SERVER</start>
>>  +        <stop>execute-alias stop_DEFAULT_SERVER</stop>
>>  +      </controls>
>>  +    </server>
>>  +  </servers>
>>  +</configuration>
>>
>>  Modified: geronimo/server/trunk/framework/modules/geronimo- 
>> commands/pom.xml
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/ 
>> modules/geronimo-commands/pom.xml? 
>> rev=600872&r1=600871&r2=600872&view=diff
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/framework/modules/geronimo-commands/ 
>> pom.xml (original)
>>  +++ geronimo/server/trunk/framework/modules/geronimo-commands/ 
>> pom.xml Tue Dec  4 02:46:27 2007
>>  @@ -49,7 +49,13 @@
>>              <groupId>org.slf4j</groupId>
>>              <artifactId>slf4j-api</artifactId>
>>          </dependency>
>>  -
>>  +
>>  +        <dependency>
>>  +            <groupId>org.slf4j</groupId>
>>  +            <artifactId>slf4j-simple</artifactId>
>>  +            <scope>test</scope>
>>  +        </dependency>
>>  +
>>          <dependency>
>>              <groupId>org.apache.geronimo.gshell</groupId>
>>              <artifactId>gshell-command-api</artifactId>
>>  @@ -133,6 +139,7 @@
>>                      <execution>
>>                          <goals>
>>                              <goal>compile</goal>
>>  +                            <goal>testCompile</goal>
>>                          </goals>
>>                      </execution>
>>                  </executions>
>>
>>  Added: geronimo/server/trunk/framework/modules/geronimo-commands/ 
>> src/main/groovy/org/apache/geronimo/commands/ 
>> AbstractAliasCommand.groovy
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/ 
>> modules/geronimo-commands/src/main/groovy/org/apache/geronimo/ 
>> commands/AbstractAliasCommand.groovy?rev=600872&view=auto
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/ 
>> AbstractAliasCommand.groovy (added)
>>  +++ geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/ 
>> AbstractAliasCommand.groovy Tue Dec  4 02:46:27 2007
>>  @@ -0,0 +1,76 @@
>>  +/*
>>  + * Licensed to the Apache Software Foundation (ASF) under one
>>  + * or more contributor license agreements.  See the NOTICE file
>>  + * distributed with this work for additional information
>>  + * regarding copyright ownership.  The ASF licenses this file
>>  + * to you under the Apache License, Version 2.0 (the
>>  + * "License"); you may not use this file except in compliance
>>  + * with the License.  You may obtain a copy of the License at
>>  + *
>>  + *  http://www.apache.org/licenses/LICENSE-2.0
>>  + *
>>  + * Unless required by applicable law or agreed to in writing,
>>  + * software distributed under the License is distributed on an
>>  + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>  + * KIND, either express or implied.  See the License for the
>>  + * specific language governing permissions and limitations
>>  + * under the License.
>>  + */
>>  +
>>  +package org.apache.geronimo.commands
>>  +
>>  +import groovy.xml.StreamingMarkupBuilder
>>  +
>>  +import org.apache.geronimo.gshell.clp.Argument;
>>  +import org.apache.geronimo.gshell.clp.Option
>>  +import  
>> org.apache.geronimo.gshell.command.annotation.CommandComponent
>>  +import org.apache.geronimo.gshell.command.annotation.Requirement
>>  +import org.apache.geronimo.gshell.command.CommandExecutor
>>  +import org.apache.geronimo.gshell.command.CommandSupport
>>  +import org.apache.geronimo.gshell.command.IO
>>  +
>>  +
>>  +/**
>>  + *
>>  + * @version $Rev: 580864 $ $Date: 2007-09-30 23:47:39 -0700  
>> (Sun, 30 Sep 2007) $
>>  + */
>>  +abstract class AbstractAliasCommand extends CommandSupport {
>>  +
>>  +    @Option(name='-c', aliases=['--alias-configuration'],  
>> description='Alias configuration file')
>>  +    String aliasFileName = 'etc/aliases.xml'
>>  +
>>  +    @Argument(index=0, description="alias")
>>  +    String aliasName
>>  +
>>  +    def buildAvailableAliases = { aliases ->
>>  +        def availables = '\nAvailable aliases:\n'
>>  +        aliases.alias.list().sort{ it.@id.text() }.each {
>>  +            availables += "    ${it.@id.text()} '${it.'*'.text 
>> ()}'\n"
>>  +        }
>>  +        availables
>>  +    }
>>  +
>>  +    def checkAliasFile = {
>>  +        def aliasFile = new File(aliasFileName)
>>  +        if (!aliasFile.exists()) {
>>  +            throw new IllegalStateException("Alias file $ 
>> {aliasFile.absolutePath} does not exist")
>>  +        }
>>  +        aliasFile
>>  +    }
>>  +
>>  +    def serializeToXML = { aliases ->
>>  +           def outputBuilder = new StreamingMarkupBuilder()
>>  +           outputBuilder.bind { mkp.yield aliases }
>>  +    }
>>  +
>>  +    def createNewAliasFile = { aliasFile, aliasFileName, xml ->
>>  +        aliasFile.renameTo(new File(aliasFileName + ".bak"))
>>  +
>>  +        aliasFile = new File(aliasFileName)
>>  +        aliasFile.createNewFile()
>>  +        aliasFile.withPrintWriter {
>>  +            it.write(xml)
>>  +        }
>>  +    }
>>  +
>>  +}
>>
>>  Added: geronimo/server/trunk/framework/modules/geronimo-commands/ 
>> src/main/groovy/org/apache/geronimo/commands/AliasCommand.groovy
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/ 
>> modules/geronimo-commands/src/main/groovy/org/apache/geronimo/ 
>> commands/AliasCommand.groovy?rev=600872&view=auto
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/AliasCommand.groovy (added)
>>  +++ geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/AliasCommand.groovy Tue  
>> Dec  4 02:46:27 2007
>>  @@ -0,0 +1,79 @@
>>  +/*
>>  + * Licensed to the Apache Software Foundation (ASF) under one
>>  + * or more contributor license agreements.  See the NOTICE file
>>  + * distributed with this work for additional information
>>  + * regarding copyright ownership.  The ASF licenses this file
>>  + * to you under the Apache License, Version 2.0 (the
>>  + * "License"); you may not use this file except in compliance
>>  + * with the License.  You may obtain a copy of the License at
>>  + *
>>  + *  http://www.apache.org/licenses/LICENSE-2.0
>>  + *
>>  + * Unless required by applicable law or agreed to in writing,
>>  + * software distributed under the License is distributed on an
>>  + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>  + * KIND, either express or implied.  See the License for the
>>  + * specific language governing permissions and limitations
>>  + * under the License.
>>  + */
>>  +
>>  +package org.apache.geronimo.commands
>>  +
>>  +import groovy.xml.StreamingMarkupBuilder
>>  +
>>  +import org.apache.geronimo.gshell.clp.Argument;
>>  +import org.apache.geronimo.gshell.clp.Option
>>  +import  
>> org.apache.geronimo.gshell.command.annotation.CommandComponent
>>  +import org.apache.geronimo.gshell.command.annotation.Requirement
>>  +import org.apache.geronimo.gshell.command.CommandExecutor
>>  +import org.apache.geronimo.gshell.command.CommandSupport
>>  +import org.apache.geronimo.gshell.command.IO
>>  +
>>  +
>>  +/**
>>  + *
>>  + * @version $Rev: 580864 $ $Date: 2007-09-30 23:47:39 -0700  
>> (Sun, 30 Sep 2007) $
>>  + */
>>  +@CommandComponent(id='geronimo-commands:alias',  
>> description="Create an alias")
>>  +class AliasCommand extends AbstractAliasCommand {
>>  +
>>  +    @Argument(index=1, description="Command")
>>  +    String command
>>  +
>>  +    protected Object doExecute() throws Exception {
>>  +        def aliasFile = checkAliasFile()
>>  +
>>  +        def xml
>>  +        aliasFile.withInputStream {
>>  +                   def aliases = new XmlSlurper().parse(it)
>>  +
>>  +                   if (!aliasName) {
>>  +                       io.out.println(buildAvailableAliases 
>> (aliases))
>>  +                       return
>>  +                   }
>>  +
>>  +                   if (!aliases.alias.find { it.@id.text().equals 
>> (aliasName) }.isEmpty()) {
>>  +                       throw new IllegalArgumentException("$ 
>> {aliasName} is already defined")
>>  +                   } else if (!command) {
>>  +                       throw new IllegalArgumentException 
>> ("command is required")
>>  +                   }
>>  +
>>  +                   aliases.appendNode {
>>  +                       alias(id: aliasName) {
>>  +                           cli(command)
>>  +                       }
>>  +                   }
>>  +
>>  +                   xml = serializeToXML(aliases)
>>  +        }
>>  +
>>  +        if (!xml) {
>>  +            return false
>>  +        }
>>  +
>>  +        createNewAliasFile(aliasFile, aliasFileName, xml)
>>  +
>>  +        true
>>  +    }
>>  +
>>  +}
>>
>>  Added: geronimo/server/trunk/framework/modules/geronimo-commands/ 
>> src/main/groovy/org/apache/geronimo/commands/ 
>> ExecuteAliasCommand.groovy
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/ 
>> modules/geronimo-commands/src/main/groovy/org/apache/geronimo/ 
>> commands/ExecuteAliasCommand.groovy?rev=600872&view=auto
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/ 
>> ExecuteAliasCommand.groovy (added)
>>  +++ geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/ 
>> ExecuteAliasCommand.groovy Tue Dec  4 02:46:27 2007
>>  @@ -0,0 +1,64 @@
>>  +/*
>>  + * Licensed to the Apache Software Foundation (ASF) under one
>>  + * or more contributor license agreements.  See the NOTICE file
>>  + * distributed with this work for additional information
>>  + * regarding copyright ownership.  The ASF licenses this file
>>  + * to you under the Apache License, Version 2.0 (the
>>  + * "License"); you may not use this file except in compliance
>>  + * with the License.  You may obtain a copy of the License at
>>  + *
>>  + *  http://www.apache.org/licenses/LICENSE-2.0
>>  + *
>>  + * Unless required by applicable law or agreed to in writing,
>>  + * software distributed under the License is distributed on an
>>  + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>  + * KIND, either express or implied.  See the License for the
>>  + * specific language governing permissions and limitations
>>  + * under the License.
>>  + */
>>  +
>>  +package org.apache.geronimo.commands
>>  +
>>  +import org.apache.geronimo.gshell.clp.Argument;
>>  +import org.apache.geronimo.gshell.clp.Option
>>  +import  
>> org.apache.geronimo.gshell.command.annotation.CommandComponent
>>  +import org.apache.geronimo.gshell.command.annotation.Requirement
>>  +import org.apache.geronimo.gshell.command.CommandExecutor
>>  +import org.apache.geronimo.gshell.command.CommandSupport
>>  +import org.apache.geronimo.gshell.command.IO
>>  +
>>  +/**
>>  + *
>>  + * @version $Rev: 580864 $ $Date: 2007-09-30 23:47:39 -0700  
>> (Sun, 30 Sep 2007) $
>>  + */
>>  +@CommandComponent(id='geronimo-commands:execute-alias',  
>> description="Execute an alias")
>>  +class ExecuteAliasCommand extends AbstractAliasCommand {
>>  +
>>  +    @Requirement
>>  +    CommandExecutor executor
>>  +
>>  +    protected Object doExecute() throws Exception {
>>  +        def aliasFile = checkAliasFile()
>>  +
>>  +        def result
>>  +        aliasFile.withInputStream({
>>  +            def aliases = new XmlSlurper().parse(it)
>>  +
>>  +            def alias = aliases.alias.find { it.@id.text().equals 
>> (aliasName) }
>>  +            if (alias.isEmpty()) {
>>  +                def availables = buildAvailableAliases(aliases)
>>  +                throw new IllegalArgumentException("${aliasName}  
>> does not exist.${availables}")
>>  +            }
>>  +
>>  +            def cli = alias.cli.text()
>>  +            if ('' == cli) {
>>  +                throw new UnsupportedOperationException 
>> ("alias.cli is not defined by alias ${aliasName}")
>>  +            }
>>  +
>>  +            result = executor.execute(cli)
>>  +        })
>>  +
>>  +        result
>>  +    }
>>  +
>>  +}
>>
>>  Added: geronimo/server/trunk/framework/modules/geronimo-commands/ 
>> src/main/groovy/org/apache/geronimo/commands/ 
>> RemoteServerControlCommand.groovy
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/ 
>> modules/geronimo-commands/src/main/groovy/org/apache/geronimo/ 
>> commands/RemoteServerControlCommand.groovy?rev=600872&view=auto
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/ 
>> RemoteServerControlCommand.groovy (added)
>>  +++ geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/ 
>> RemoteServerControlCommand.groovy Tue Dec  4 02:46:27 2007
>>  @@ -0,0 +1,92 @@
>>  +/*
>>  + * Licensed to the Apache Software Foundation (ASF) under one
>>  + * or more contributor license agreements.  See the NOTICE file
>>  + * distributed with this work for additional information
>>  + * regarding copyright ownership.  The ASF licenses this file
>>  + * to you under the Apache License, Version 2.0 (the
>>  + * "License"); you may not use this file except in compliance
>>  + * with the License.  You may obtain a copy of the License at
>>  + *
>>  + *  http://www.apache.org/licenses/LICENSE-2.0
>>  + *
>>  + * Unless required by applicable law or agreed to in writing,
>>  + * software distributed under the License is distributed on an
>>  + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>  + * KIND, either express or implied.  See the License for the
>>  + * specific language governing permissions and limitations
>>  + * under the License.
>>  + */
>>  +
>>  +package org.apache.geronimo.commands
>>  +
>>  +import org.apache.geronimo.gshell.clp.Argument;
>>  +import org.apache.geronimo.gshell.clp.Option
>>  +import  
>> org.apache.geronimo.gshell.command.annotation.CommandComponent
>>  +import org.apache.geronimo.gshell.command.annotation.Requirement
>>  +import org.apache.geronimo.gshell.command.CommandExecutor
>>  +import org.apache.geronimo.gshell.command.CommandSupport
>>  +import org.apache.geronimo.gshell.command.IO
>>  +
>>  +/**
>>  + *
>>  + * @version $Rev: 580864 $ $Date: 2007-09-30 23:47:39 -0700  
>> (Sun, 30 Sep 2007) $
>>  + */
>>  +@CommandComponent(id='geronimo-commands:remote-server-control',  
>> description="Remote server control")
>>  +class RemoteServerControlCommand extends CommandSupport {
>>  +
>>  +    @Requirement
>>  +    CommandExecutor executor
>>  +
>>  +    @Option(name='-c', aliases=['--server-configuration'],  
>> description='Server configuration file')
>>  +    String configurationFileName = 'etc/server-configuration.xml'
>>  +
>>  +    @Argument(metaVar="CONTROL", required=true, index=0,  
>> description="Control")
>>  +    String control
>>  +
>>  +    @Argument(metaVar="SERVER", required=true, index=1,  
>> description="Server")
>>  +    String serverName
>>  +
>>  +    protected Object doExecute() throws Exception {
>>  +        def configurationFile = new File(configurationFileName)
>>  +        if (!configurationFile.exists()) {
>>  +            throw new IllegalStateException("File $ 
>> {configurationFile.absolutePath} does not exist")
>>  +        }
>>  +
>>  +        def result
>>  +        configurationFile.withInputStream {
>>  +            result = executeRshCommand(it)
>>  +        }
>>  +        result
>>  +    }
>>  +
>>  +       protected executeRshCommand(is) {
>>  +        def configuration = new XmlSlurper().parse(is)
>>  +
>>  +        def retrieveByNameAttribute = { baseNode, name ->
>>  +               def node = baseNode.find { it.@name.text().equals 
>> (name) }
>>  +               if (node.isEmpty()) {
>>  +                   def availableNames = baseNode.list().sort 
>> { it.@name.text() }.'@name'*.text()
>>  +                   throw new IllegalArgumentException("${name}  
>> does not exist. Available: ${availableNames}")
>>  +               }
>>  +               node
>>  +        }
>>  +
>>  +        def server = retrieveByNameAttribute 
>> (configuration.servers.server, serverName)
>>  +        def host = retrieveByNameAttribute 
>> (configuration.hosts.host, server.host.@name.text())
>>  +
>>  +        def rshCmd = host.gshell.'remote-login-cmd'.text()
>>  +        if ('' == rshCmd) {
>>  +            throw new IllegalStateException("gshell.remote-login- 
>> cmd is not defined by host ${host.@name.text()}")
>>  +        }
>>  +
>>  +           def command = server.controls."${control}".text()
>>  +           if ('' == command) {
>>  +            def controls = server.controls.'*'.list().sort 
>> { it.name() }*.name()
>>  +               throw new IllegalStateException("server.controls.$ 
>> {control} is not defined by server "
>>  +                   + "${server.@name.text()}.\nAvailable  
>> controls: ${controls}")
>>  +           }
>>  +
>>  +        executor.execute("${rshCmd} ${command}")
>>  +       }
>>  +
>>  +}
>>
>>  Added: geronimo/server/trunk/framework/modules/geronimo-commands/ 
>> src/main/groovy/org/apache/geronimo/commands/UnaliasCommand.groovy
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/ 
>> modules/geronimo-commands/src/main/groovy/org/apache/geronimo/ 
>> commands/UnaliasCommand.groovy?rev=600872&view=auto
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/UnaliasCommand.groovy  
>> (added)
>>  +++ geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> main/groovy/org/apache/geronimo/commands/UnaliasCommand.groovy Tue  
>> Dec  4 02:46:27 2007
>>  @@ -0,0 +1,70 @@
>>  +/*
>>  + * Licensed to the Apache Software Foundation (ASF) under one
>>  + * or more contributor license agreements.  See the NOTICE file
>>  + * distributed with this work for additional information
>>  + * regarding copyright ownership.  The ASF licenses this file
>>  + * to you under the Apache License, Version 2.0 (the
>>  + * "License"); you may not use this file except in compliance
>>  + * with the License.  You may obtain a copy of the License at
>>  + *
>>  + *  http://www.apache.org/licenses/LICENSE-2.0
>>  + *
>>  + * Unless required by applicable law or agreed to in writing,
>>  + * software distributed under the License is distributed on an
>>  + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>  + * KIND, either express or implied.  See the License for the
>>  + * specific language governing permissions and limitations
>>  + * under the License.
>>  + */
>>  +
>>  +package org.apache.geronimo.commands
>>  +
>>  +import groovy.xml.StreamingMarkupBuilder
>>  +
>>  +import org.apache.geronimo.gshell.clp.Argument;
>>  +import org.apache.geronimo.gshell.clp.Option
>>  +import  
>> org.apache.geronimo.gshell.command.annotation.CommandComponent
>>  +import org.apache.geronimo.gshell.command.annotation.Requirement
>>  +import org.apache.geronimo.gshell.command.CommandExecutor
>>  +import org.apache.geronimo.gshell.command.CommandSupport
>>  +import org.apache.geronimo.gshell.command.IO
>>  +
>>  +
>>  +/**
>>  + *
>>  + * @version $Rev: 580864 $ $Date: 2007-09-30 23:47:39 -0700  
>> (Sun, 30 Sep 2007) $
>>  + */
>>  +@CommandComponent(id='geronimo-commands:unalias',  
>> description="Remove an alias")
>>  +class UnaliasCommand extends AbstractAliasCommand {
>>  +
>>  +    protected Object doExecute() throws Exception {
>>  +           def aliasFile = checkAliasFile()
>>  +
>>  +           if (!aliasName) {
>>  +               throw new IllegalArgumentException("an alias must  
>> be specified")
>>  +           }
>>  +
>>  +        def xml
>>  +        aliasFile.withInputStream {
>>  +                   def aliases = new XmlSlurper().parse(it)
>>  +
>>  +                   def alias = aliases.alias.find { it.@id.text 
>> ().equals(aliasName) }
>>  +                   if ('' == alias.text()) {
>>  +                       return
>>  +                   }
>>  +
>>  +                   alias.replaceNode {}
>>  +
>>  +                   xml = serializeToXML(aliases)
>>  +        }
>>  +
>>  +        if (!xml) {
>>  +            return false
>>  +        }
>>  +
>>  +        createNewAliasFile(aliasFile, aliasFileName, xml)
>>  +
>>  +        true
>>  +    }
>>  +
>>  +}
>>
>>  Added: geronimo/server/trunk/framework/modules/geronimo-commands/ 
>> src/test/groovy/org/apache/geronimo/commands/AliasCommandTest.groovy
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/ 
>> modules/geronimo-commands/src/test/groovy/org/apache/geronimo/ 
>> commands/AliasCommandTest.groovy?rev=600872&view=auto
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/AliasCommandTest.groovy  
>> (added)
>>  +++ geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/AliasCommandTest.groovy  
>> Tue Dec  4 02:46:27 2007
>>  @@ -0,0 +1,86 @@
>>  +/*
>>  + * Licensed to the Apache Software Foundation (ASF) under one
>>  + * or more contributor license agreements.  See the NOTICE file
>>  + * distributed with this work for additional information
>>  + * regarding copyright ownership.  The ASF licenses this file
>>  + * to you under the Apache License, Version 2.0 (the
>>  + * "License"); you may not use this file except in compliance
>>  + * with the License.  You may obtain a copy of the License at
>>  + *
>>  + *  http://www.apache.org/licenses/LICENSE-2.0
>>  + *
>>  + * Unless required by applicable law or agreed to in writing,
>>  + * software distributed under the License is distributed on an
>>  + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>  + * KIND, either express or implied.  See the License for the
>>  + * specific language governing permissions and limitations
>>  + * under the License.
>>  + */
>>  +
>>  +package org.apache.geronimo.commands;
>>  +
>>  +import org.apache.geronimo.gshell.command.IO
>>  +
>>  +import org.apache.geronimo.testsupport.TestSupport
>>  +
>>  +/**
>>  + *
>>  + * @version $Rev: 580864 $ $Date: 2007-09-30 23:47:39 -0700  
>> (Sun, 30 Sep 2007) $
>>  + */
>>  +class AliasCommandTest extends GroovyTestCase {
>>  +
>>  +    def command
>>  +
>>  +    protected void setUp() {
>>  +               def testSupport = new GroovyTestSupport()
>>  +
>>  +        File baseFile = testSupport.resolveFile('src/test/ 
>> resources/etc/aliases.xml')
>>  +        def lines = baseFile.readLines()
>>  +
>>  +        def workingFile = testSupport.resolveFile('build/etc/ 
>> aliases.xml')
>>  +        workingFile.parentFile.mkdirs()
>>  +        workingFile.createNewFile()
>>  +        workingFile.withPrintWriter { pw ->
>>  +            lines.each { pw.println(it) }
>>  +        }
>>  +
>>  +        command = new AliasCommand([io: new IO(), aliasFileName:  
>> workingFile.absolutePath])
>>  +    }
>>  +
>>  +       void testAliasFileDoesNotExistThrowsISE() {
>>  +           shouldFail(IllegalStateException.class) {
>>  +               command.aliasFileName = 'doesNotExist'
>>  +               command.doExecute()
>>  +           }
>>  +       }
>>  +
>>  +       void testNoAliasArgumentDisplaysAvailableAliases() {
>>  +        command.doExecute()
>>  +       }
>>  +
>>  +       void testAliasWithoutCommandThrowsIAE() {
>>  +           shouldFail(IllegalArgumentException.class) {
>>  +               command.aliasName = 'anNewAlias'
>>  +               command.doExecute()
>>  +           }
>>  +       }
>>  +
>>  +       void testAliasAnExistingAliasThrowsIAE() {
>>  +           shouldFail(IllegalArgumentException.class) {
>>  +               command.aliasName = 'start_DEFAULT_SERVER'
>>  +               command.command = 'test'
>>  +               command.doExecute()
>>  +           }
>>  +       }
>>  +
>>  +       void testAlias() {
>>  +        command.aliasName = 'start_DEFAULT_SERVER_TWO'
>>  +        command.command = 'test'
>>  +        command.doExecute()
>>  +
>>  +           shouldFail(IllegalArgumentException.class) {
>>  +            command.doExecute()
>>  +           }
>>  +       }
>>  +
>>  +}
>>
>>  Added: geronimo/server/trunk/framework/modules/geronimo-commands/ 
>> src/test/groovy/org/apache/geronimo/commands/ 
>> ExecuteAliasCommandTest.groovy
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/ 
>> modules/geronimo-commands/src/test/groovy/org/apache/geronimo/ 
>> commands/ExecuteAliasCommandTest.groovy?rev=600872&view=auto
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/ 
>> ExecuteAliasCommandTest.groovy (added)
>>  +++ geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/ 
>> ExecuteAliasCommandTest.groovy Tue Dec  4 02:46:27 2007
>>  @@ -0,0 +1,73 @@
>>  +/*
>>  + * Licensed to the Apache Software Foundation (ASF) under one
>>  + * or more contributor license agreements.  See the NOTICE file
>>  + * distributed with this work for additional information
>>  + * regarding copyright ownership.  The ASF licenses this file
>>  + * to you under the Apache License, Version 2.0 (the
>>  + * "License"); you may not use this file except in compliance
>>  + * with the License.  You may obtain a copy of the License at
>>  + *
>>  + *  http://www.apache.org/licenses/LICENSE-2.0
>>  + *
>>  + * Unless required by applicable law or agreed to in writing,
>>  + * software distributed under the License is distributed on an
>>  + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>  + * KIND, either express or implied.  See the License for the
>>  + * specific language governing permissions and limitations
>>  + * under the License.
>>  + */
>>  +
>>  +package org.apache.geronimo.commands;
>>  +
>>  +import org.apache.geronimo.gshell.command.CommandExecutor
>>  +import org.apache.geronimo.gshell.command.IO
>>  +
>>  +import org.apache.geronimo.testsupport.TestSupport
>>  +
>>  +/**
>>  + *
>>  + * @version $Rev: 580864 $ $Date: 2007-09-30 23:47:39 -0700  
>> (Sun, 30 Sep 2007) $
>>  + */
>>  +class ExecuteAliasCommandTest extends GroovyTestCase {
>>  +
>>  +    def command
>>  +    def executedCommand
>>  +
>>  +    protected void setUp() {
>>  +               def testSupport = new GroovyTestSupport()
>>  +
>>  +        File aliasFile = testSupport.resolveFile('src/test/ 
>> resources/etc/aliases.xml')
>>  +
>>  +        command = new ExecuteAliasCommand([io: new IO(),  
>> aliasFileName: aliasFile.absolutePath])
>>  +        command.executor = { executedCommand = it } as  
>> CommandExecutor
>>  +    }
>>  +
>>  +       void testAliasFileDoesNotExistThrowsISE() {
>>  +           shouldFail(IllegalStateException.class) {
>>  +               command.aliasFileName = 'doesNotExist'
>>  +               command.doExecute()
>>  +           }
>>  +       }
>>  +
>>  +       void testExecuteUndefinedAliasThrowsIAE() {
>>  +           shouldFail(IllegalArgumentException.class) {
>>  +               command.aliasName = 'undefined'
>>  +               command.doExecute()
>>  +           }
>>  +       }
>>  +
>>  +       void testExecuteAliasWithoutCLIThrowsUOE() {
>>  +           shouldFail(UnsupportedOperationException.class) {
>>  +               command.aliasName = 'alias_without_cli'
>>  +               command.doExecute()
>>  +           }
>>  +       }
>>  +
>>  +       void testExecuteAlias() {
>>  +        command.aliasName = 'start_DEFAULT_SERVER'
>>  +        command.doExecute()
>>  +
>>  +        assert 'start-server -d' == executedCommand
>>  +       }
>>  +
>>  +}
>>
>>  Added: geronimo/server/trunk/framework/modules/geronimo-commands/ 
>> src/test/groovy/org/apache/geronimo/commands/GroovyTestSupport.groovy
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/ 
>> modules/geronimo-commands/src/test/groovy/org/apache/geronimo/ 
>> commands/GroovyTestSupport.groovy?rev=600872&view=auto
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/GroovyTestSupport.groovy  
>> (added)
>>  +++ geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/GroovyTestSupport.groovy  
>> Tue Dec  4 02:46:27 2007
>>  @@ -0,0 +1,29 @@
>>  +/*
>>  + * Licensed to the Apache Software Foundation (ASF) under one
>>  + * or more contributor license agreements.  See the NOTICE file
>>  + * distributed with this work for additional information
>>  + * regarding copyright ownership.  The ASF licenses this file
>>  + * to you under the Apache License, Version 2.0 (the
>>  + * "License"); you may not use this file except in compliance
>>  + * with the License.  You may obtain a copy of the License at
>>  + *
>>  + *  http://www.apache.org/licenses/LICENSE-2.0
>>  + *
>>  + * Unless required by applicable law or agreed to in writing,
>>  + * software distributed under the License is distributed on an
>>  + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>  + * KIND, either express or implied.  See the License for the
>>  + * specific language governing permissions and limitations
>>  + * under the License.
>>  + */
>>  +
>>  +package org.apache.geronimo.commands;
>>  +
>>  +import org.apache.geronimo.testsupport.TestSupport
>>  +
>>  +/**
>>  + *
>>  + * @version $Rev: 580864 $ $Date: 2007-09-30 23:47:39 -0700  
>> (Sun, 30 Sep 2007) $
>>  + */
>>  +class GroovyTestSupport extends TestSupport {
>>  +}
>>
>>  Added: geronimo/server/trunk/framework/modules/geronimo-commands/ 
>> src/test/groovy/org/apache/geronimo/commands/ 
>> RemoteServerControlCommandTest.groovy
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/ 
>> modules/geronimo-commands/src/test/groovy/org/apache/geronimo/ 
>> commands/RemoteServerControlCommandTest.groovy?rev=600872&view=auto
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/ 
>> RemoteServerControlCommandTest.groovy (added)
>>  +++ geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/ 
>> RemoteServerControlCommandTest.groovy Tue Dec  4 02:46:27 2007
>>  @@ -0,0 +1,89 @@
>>  +/*
>>  + * Licensed to the Apache Software Foundation (ASF) under one
>>  + * or more contributor license agreements.  See the NOTICE file
>>  + * distributed with this work for additional information
>>  + * regarding copyright ownership.  The ASF licenses this file
>>  + * to you under the Apache License, Version 2.0 (the
>>  + * "License"); you may not use this file except in compliance
>>  + * with the License.  You may obtain a copy of the License at
>>  + *
>>  + *  http://www.apache.org/licenses/LICENSE-2.0
>>  + *
>>  + * Unless required by applicable law or agreed to in writing,
>>  + * software distributed under the License is distributed on an
>>  + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>  + * KIND, either express or implied.  See the License for the
>>  + * specific language governing permissions and limitations
>>  + * under the License.
>>  + */
>>  +
>>  +package org.apache.geronimo.commands;
>>  +
>>  +import org.apache.geronimo.gshell.command.CommandExecutor
>>  +import org.apache.geronimo.gshell.command.IO
>>  +
>>  +import org.apache.geronimo.testsupport.TestSupport
>>  +
>>  +/**
>>  + *
>>  + * @version $Rev: 580864 $ $Date: 2007-09-30 23:47:39 -0700  
>> (Sun, 30 Sep 2007) $
>>  + */
>>  +class RemoteServerControlCommandTest extends GroovyTestCase {
>>  +
>>  +    def command
>>  +    def executedCommand
>>  +
>>  +    protected void setUp() {
>>  +               def testSupport = new GroovyTestSupport()
>>  +
>>  +        File configurationFile = testSupport.resolveFile('src/ 
>> test/resources/etc/server-configuration.xml')
>>  +
>>  +        command = new RemoteServerControlCommand([io: new IO(),  
>> configurationFileName: configurationFile.absolutePath])
>>  +        command.executor = { executedCommand = it } as  
>> CommandExecutor
>>  +    }
>>  +
>>  +       void testConfigurationFileDoesNotExistThrowsISE() {
>>  +           shouldFail(IllegalStateException.class) {
>>  +               command.configurationFileName = 'doesNotExist'
>>  +               command.doExecute()
>>  +           }
>>  +       }
>>  +
>>  +       void testServerIsUndefinedThrowsIAE() {
>>  +           shouldFail(IllegalArgumentException.class) {
>>  +               command.serverName = 'undefined'
>>  +               command.doExecute()
>>  +           }
>>  +       }
>>  +
>>  +       void testServerIsDefinedWithUndefinedHostThrowsIAE() {
>>  +           shouldFail(IllegalArgumentException.class) {
>>  +               command.serverName = 'serverWithUndefinedHost'
>>  +               command.doExecute()
>>  +           }
>>  +       }
>>  +
>>  +       void testControlIsUndefinedThrowsISE() {
>>  +           shouldFail(IllegalStateException.class) {
>>  +               command.serverName = 'defaultServer'
>>  +               command.control = 'undefined'
>>  +               command.doExecute()
>>  +           }
>>  +       }
>>  +
>>  +       void testRemoteLoginCmdIsUndefinedThrowsISE() {
>>  +           shouldFail(IllegalStateException.class) {
>>  +               command.serverName =  
>> 'serverWithUndefinedRemoteLoginCmd'
>>  +               command.doExecute()
>>  +           }
>>  +       }
>>  +
>>  +       void testRemoteControlOK() {
>>  +        command.serverName = 'defaultServer'
>>  +        command.control = 'start'
>>  +        command.doExecute()
>>  +
>>  +        assert 'rshCommand start-server' == executedCommand
>>  +       }
>>  +
>>  +}
>>
>>  Added: geronimo/server/trunk/framework/modules/geronimo-commands/ 
>> src/test/groovy/org/apache/geronimo/commands/ 
>> UnaliasCommandTest.groovy
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/ 
>> modules/geronimo-commands/src/test/groovy/org/apache/geronimo/ 
>> commands/UnaliasCommandTest.groovy?rev=600872&view=auto
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/UnaliasCommandTest.groovy  
>> (added)
>>  +++ geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/groovy/org/apache/geronimo/commands/UnaliasCommandTest.groovy  
>> Tue Dec  4 02:46:27 2007
>>  @@ -0,0 +1,71 @@
>>  +/*
>>  + * Licensed to the Apache Software Foundation (ASF) under one
>>  + * or more contributor license agreements.  See the NOTICE file
>>  + * distributed with this work for additional information
>>  + * regarding copyright ownership.  The ASF licenses this file
>>  + * to you under the Apache License, Version 2.0 (the
>>  + * "License"); you may not use this file except in compliance
>>  + * with the License.  You may obtain a copy of the License at
>>  + *
>>  + *  http://www.apache.org/licenses/LICENSE-2.0
>>  + *
>>  + * Unless required by applicable law or agreed to in writing,
>>  + * software distributed under the License is distributed on an
>>  + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>  + * KIND, either express or implied.  See the License for the
>>  + * specific language governing permissions and limitations
>>  + * under the License.
>>  + */
>>  +
>>  +package org.apache.geronimo.commands;
>>  +
>>  +import org.apache.geronimo.gshell.command.IO
>>  +
>>  +import org.apache.geronimo.testsupport.TestSupport
>>  +
>>  +/**
>>  + *
>>  + * @version $Rev: 580864 $ $Date: 2007-09-30 23:47:39 -0700  
>> (Sun, 30 Sep 2007) $
>>  + */
>>  +class UnaliasCommandTest extends GroovyTestCase {
>>  +
>>  +    def command
>>  +
>>  +    protected void setUp() {
>>  +               def testSupport = new GroovyTestSupport()
>>  +
>>  +        File baseFile = testSupport.resolveFile('src/test/ 
>> resources/etc/aliases.xml')
>>  +        def lines = baseFile.readLines()
>>  +
>>  +        def workingFile = testSupport.resolveFile('build/etc/ 
>> aliases.xml')
>>  +        workingFile.delete()
>>  +        workingFile.parentFile.mkdirs()
>>  +        workingFile.createNewFile()
>>  +        workingFile.withPrintWriter { pw ->
>>  +            lines.each { pw.println(it) }
>>  +        }
>>  +
>>  +        command = new UnaliasCommand([io: new IO(),  
>> aliasFileName: workingFile.absolutePath])
>>  +    }
>>  +
>>  +       void testAliasFileDoesNotExistThrowsISE() {
>>  +           shouldFail(IllegalStateException.class) {
>>  +               command.aliasFileName = 'doesNotExist'
>>  +               command.doExecute()
>>  +           }
>>  +       }
>>  +
>>  +       void testNoAliasArgumentThrowsIAE() {
>>  +           shouldFail(IllegalArgumentException.class) {
>>  +               command.doExecute()
>>  +           }
>>  +       }
>>  +
>>  +       void testUnalias() {
>>  +        command.aliasName = 'start_DEFAULT_SERVER'
>>  +        assertTrue(command.doExecute())
>>  +
>>  +//        assertFalse(command.doExecute())
>>  +       }
>>  +
>>  +}
>>
>>  Added: geronimo/server/trunk/framework/modules/geronimo-commands/ 
>> src/test/resources/etc/aliases.xml
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/ 
>> modules/geronimo-commands/src/test/resources/etc/aliases.xml? 
>> rev=600872&view=auto
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/resources/etc/aliases.xml (added)
>>  +++ geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/resources/etc/aliases.xml Tue Dec  4 02:46:27 2007
>>  @@ -0,0 +1,11 @@
>>  +<aliases>
>>  +  <alias id='start_DEFAULT_SERVER'>
>>  +    <cli>start-server -d</cli>
>>  +  </alias>
>>  +  <alias id='stop_DEFAULT_SERVER'>
>>  +    <cli>stop-server</cli>
>>  +  </alias>
>>  +  <alias id='alias_without_cli'>
>>  +    <inline-script>a script</inline-script>
>>  +  </alias>
>>  +</aliases>
>>  \ No newline at end of file
>>
>>  Added: geronimo/server/trunk/framework/modules/geronimo-commands/ 
>> src/test/resources/etc/server-configuration.xml
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/ 
>> modules/geronimo-commands/src/test/resources/etc/server- 
>> configuration.xml?rev=600872&view=auto
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/resources/etc/server-configuration.xml (added)
>>  +++ geronimo/server/trunk/framework/modules/geronimo-commands/src/ 
>> test/resources/etc/server-configuration.xml Tue Dec  4 02:46:27 2007
>>  @@ -0,0 +1,30 @@
>>  +<?xml version="1.0" encoding="UTF-8"?>
>>  +<configuration>
>>  +  <hosts>
>>  +    <host name="localhost">
>>  +      <gshell>
>>  +        <remote-login-cmd>rshCommand</remote-login-cmd>
>>  +      </gshell>
>>  +    </host>
>>  +    <host name="hostWithUndefinedRemoteLoginCmd">
>>  +      <gshell>
>>  +        <remote-login-cmd2>rshCommand</remote-login-cmd2>
>>  +      </gshell>
>>  +    </host>
>>  +  </hosts>
>>  +  <servers>
>>  +    <server name="defaultServer">
>>  +      <host name="localhost" />
>>  +      <controls>
>>  +        <start>start-server</start>
>>  +        <stop>stop-server</stop>
>>  +      </controls>
>>  +    </server>
>>  +    <server name="serverWithUndefinedRemoteLoginCmd">
>>  +      <host name="hostWithUndefinedRemoteLoginCmd" />
>>  +    </server>
>>  +    <server name="serverWithUndefinedHost">
>>  +      <host name="undefinedHost" />
>>  +    </server>
>>  +  </servers>
>>  +</configuration>
>>
>>  Modified: geronimo/server/trunk/pom.xml
>>  URL: http://svn.apache.org/viewvc/geronimo/server/trunk/pom.xml? 
>> rev=600872&r1=600871&r2=600872&view=diff
>>   
>> ===================================================================== 
>> =========
>>  --- geronimo/server/trunk/pom.xml (original)
>>  +++ geronimo/server/trunk/pom.xml Tue Dec  4 02:46:27 2007
>>  @@ -1575,13 +1575,49 @@
>>                  <artifactId>gshell-cli</artifactId>
>>                  <version>1.0-alpha-1-SNAPSHOT</version>
>>              </dependency>
>>  -
>>  +
>>  +            <dependency>
>>  +                <groupId>org.apache.geronimo.gshell</groupId>
>>  +                <artifactId>gshell-whisper</artifactId>
>>  +                <version>1.0-alpha-1-SNAPSHOT</version>
>>  +            </dependency>
>>  +
>>              <dependency>
>>                  <groupId>org.apache.geronimo.gshell.commands</ 
>> groupId>
>>                  <artifactId>gshell-builtins</artifactId>
>>                  <version>1.0-alpha-1-SNAPSHOT</version>
>>              </dependency>
>>
>>  +            <dependency>
>>  +                <groupId>org.apache.geronimo.gshell.remote</ 
>> groupId>
>>  +                <artifactId>gshell-remote-client</artifactId>
>>  +                <version>1.0-alpha-1-SNAPSHOT</version>
>>  +            </dependency>
>>  +
>>  +            <dependency>
>>  +                <groupId>org.apache.geronimo.gshell.remote</ 
>> groupId>
>>  +                <artifactId>gshell-remote-common</artifactId>
>>  +                <version>1.0-alpha-1-SNAPSHOT</version>
>>  +            </dependency>
>>  +
>>  +            <dependency>
>>  +                <groupId>org.apache.geronimo.gshell.remote</ 
>> groupId>
>>  +                <artifactId>gshell-remote-server</artifactId>
>>  +                <version>1.0-alpha-1-SNAPSHOT</version>
>>  +            </dependency>
>>  +
>>  +            <dependency>
>>  +                <groupId>org.apache.mina</groupId>
>>  +                <artifactId>mina-core</artifactId>
>>  +                <version>1.1.2</version>
>>  +            </dependency>
>>  +
>>  +            <dependency>
>>  +                <groupId>org.apache.mina</groupId>
>>  +                <artifactId>mina-filter-ssl</artifactId>
>>  +                <version>1.1.2</version>
>>  +            </dependency>
>>  +
>>              <dependency>
>>                  <groupId>org.codehaus.groovy</groupId>
>>                  <artifactId>groovy-all</artifactId>
>>
>>
>>


Mime
View raw message