You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2006/06/01 18:13:35 UTC

svn commit: r410879 - in /geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell: GShell.java command/CommandManager.java

Author: jdillon
Date: Thu Jun  1 09:13:32 2006
New Revision: 410879

URL: http://svn.apache.org/viewvc?rev=410879&view=rev
Log:
Shell variables as they should be

Modified:
    geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShell.java
    geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/command/CommandManager.java

Modified: geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShell.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShell.java?rev=410879&r1=410878&r2=410879&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShell.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShell.java Thu Jun  1 09:13:32 2006
@@ -45,6 +45,8 @@
 
     private final CommandManager commandManager;
 
+    private final Variables vars = new VariablesMap();
+
     public GShell(final IO io) throws CommandException {
         if (io == null) {
             throw new IllegalArgumentException("IO is null");
@@ -63,6 +65,14 @@
         this(new IO());
     }
 
+    public Variables getVariables() {
+        return vars;
+    }
+
+    public IO getIO() {
+        return io;
+    }
+
     public int execute(final String commandLine) throws Exception {
         assert commandLine != null;
 
@@ -72,6 +82,10 @@
         // HACK: Just to get something to work...
         //
 
+        //
+        // TODO: Move builder to field
+        //
+
         CommandLineBuilder builder = new CommandLineBuilder(this);
         CommandLine cl = builder.create(commandLine);
         cl.execute();
@@ -84,7 +98,11 @@
         return 0;
     }
 
-    public int execute(final String commandName, String[] args) throws Exception {
+    //
+    // CommandExecutor
+    //
+
+    public int execute(final String commandName, final String[] args) throws Exception {
         assert commandName != null;
         assert args != null;
 
@@ -93,13 +111,19 @@
         log.info("Executing (" + commandName + "): " + Arguments.asString(args));
 
         //
-        // HACK: Just get something working right now
+        // TODO: Insert CommandContainer bits here
         //
 
         Command cmd = commandManager.getCommand(commandName);
 
+        //
+        // TODO: DI all bits if we can, then free up "context" to replace "category" as a term
+        //
+
+        final Variables parent = getVariables();
+
         cmd.init(new CommandContext() {
-            Variables vars = new VariablesMap();
+            final Variables vars = new VariablesMap(parent);
 
             public IO getIO() {
                 return io;

Modified: geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/command/CommandManager.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/command/CommandManager.java?rev=410879&r1=410878&r2=410879&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/command/CommandManager.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/command/CommandManager.java Thu Jun  1 09:13:32 2006
@@ -28,7 +28,7 @@
 import java.util.Collections;
 
 /**
- * ???
+ * Manager of command definitions and provides access to command instances.
  *
  * @version $Id$
  */
@@ -80,6 +80,12 @@
             throw new IllegalArgumentException("Name is empty");
         }
 
+        //
+        // TODO: Issue warning if there is whitespace, that is a programming error (for someone)
+        //       Investigate auto-trim and complain from the parser too, looks like we are catching
+        //       non-traditional whitespace (ctrl chars, etc).
+        //
+
         // Make sure there is not funky whitespace in there (from Telnet or something)
         name = name.trim();
 
@@ -95,6 +101,10 @@
         // name checked by getCommandDefinition()
 
         CommandDefinition def = getCommandDefinition(name);
+
+        //
+        // TODO: This might change if we DI the class and let the container create
+        //
 
         Command cmd;
         try {