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 2008/06/20 17:22:34 UTC

svn commit: r669932 - in /geronimo/gshell/trunk: gshell-commands/gshell-builtins/src/main/java/org/apache/geronimo/gshell/commands/builtins/ gshell-plugin/src/main/java/org/apache/geronimo/gshell/plugin/descriptor/ gshell-rapture/src/main/java/org/apac...

Author: jdillon
Date: Fri Jun 20 08:22:34 2008
New Revision: 669932

URL: http://svn.apache.org/viewvc?rev=669932&view=rev
Log:
More updates to the command documentation muck, drop support for 'help <command>' for the moment while we figure out how to implement that

Added:
    geronimo/gshell/trunk/gshell-rapture/src/main/java/org/apache/geronimo/gshell/rapture/DefaultCommandInfo.java
      - copied, changed from r669926, geronimo/gshell/trunk/gshell-rapture/src/main/java/org/apache/geronimo/gshell/rapture/DefaultCommandCompleter.java
Modified:
    geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/java/org/apache/geronimo/gshell/commands/builtins/HelpCommand.java
    geronimo/gshell/trunk/gshell-plugin/src/main/java/org/apache/geronimo/gshell/plugin/descriptor/CommandDescriptor.java
    geronimo/gshell/trunk/gshell-rapture/src/main/java/org/apache/geronimo/gshell/rapture/DefaultCommandLineExecutor.java

Modified: geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/java/org/apache/geronimo/gshell/commands/builtins/HelpCommand.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/java/org/apache/geronimo/gshell/commands/builtins/HelpCommand.java?rev=669932&r1=669931&r2=669932&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/java/org/apache/geronimo/gshell/commands/builtins/HelpCommand.java (original)
+++ geronimo/gshell/trunk/gshell-commands/gshell-builtins/src/main/java/org/apache/geronimo/gshell/commands/builtins/HelpCommand.java Fri Jun 20 08:22:34 2008
@@ -23,11 +23,10 @@
 import org.apache.geronimo.gshell.ansi.Renderer;
 import org.apache.geronimo.gshell.application.ApplicationManager;
 import org.apache.geronimo.gshell.clp.Argument;
+import org.apache.geronimo.gshell.command.Command;
 import org.apache.geronimo.gshell.command.CommandAction;
 import org.apache.geronimo.gshell.command.CommandContext;
 import org.apache.geronimo.gshell.command.CommandFactory;
-import org.apache.geronimo.gshell.command.Command;
-import org.apache.geronimo.gshell.command.CommandDocumenter;
 import org.apache.geronimo.gshell.command.annotation.CommandComponent;
 import org.apache.geronimo.gshell.command.annotation.Requirement;
 import org.apache.geronimo.gshell.io.IO;
@@ -60,7 +59,7 @@
     @Requirement
     private LayoutManager layoutManager;
 
-    @Argument(metaVar="COMMAND", description="Display help for COMMAND")
+    @Argument(metaVar="COMMAND", required=true, description="Display help for COMMAND")
     private String command;
 
     private Renderer renderer = new Renderer();
@@ -79,25 +78,8 @@
         assert context != null;
 
         IO io = context.getIo();
-        io.out.println();
-
-        if (command == null) {
-            displayAvailableCommands(io);
-        }
-        else {
-            Command cmd = commandFactory.create(command);
-
-            if (cmd == null) {
-                io.out.println("Command " + Renderer.encode(command, Code.BOLD) + " not found.");
-                io.out.println("Try " + Renderer.encode("help", Code.BOLD) + " for a list of available commands.");
-                return Result.FAILURE;
-            }
-
-            CommandDocumenter documenter = cmd.getDocumenter();
-            // documenter.renderManual(info, io.out);
-
-            io.error("FIXME: Manual rendering is still pending, sorry");
-        }
+        
+        displayAvailableCommands(io);
 
         return Result.SUCCESS;
     }

Modified: geronimo/gshell/trunk/gshell-plugin/src/main/java/org/apache/geronimo/gshell/plugin/descriptor/CommandDescriptor.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-plugin/src/main/java/org/apache/geronimo/gshell/plugin/descriptor/CommandDescriptor.java?rev=669932&r1=669931&r2=669932&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-plugin/src/main/java/org/apache/geronimo/gshell/plugin/descriptor/CommandDescriptor.java (original)
+++ geronimo/gshell/trunk/gshell-plugin/src/main/java/org/apache/geronimo/gshell/plugin/descriptor/CommandDescriptor.java Fri Jun 20 08:22:34 2008
@@ -45,6 +45,7 @@
         setIsolatedRealm(false);
         setInstantiationStrategy("singleton");
 
+        // Need to pass the command ID to the container
         XmlPlexusConfiguration config = new XmlPlexusConfiguration("configuration");
         config.addChild(new XmlPlexusConfiguration("commandId", model.getId()));
         setConfiguration(config);

Copied: geronimo/gshell/trunk/gshell-rapture/src/main/java/org/apache/geronimo/gshell/rapture/DefaultCommandInfo.java (from r669926, geronimo/gshell/trunk/gshell-rapture/src/main/java/org/apache/geronimo/gshell/rapture/DefaultCommandCompleter.java)
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-rapture/src/main/java/org/apache/geronimo/gshell/rapture/DefaultCommandInfo.java?p2=geronimo/gshell/trunk/gshell-rapture/src/main/java/org/apache/geronimo/gshell/rapture/DefaultCommandInfo.java&p1=geronimo/gshell/trunk/gshell-rapture/src/main/java/org/apache/geronimo/gshell/rapture/DefaultCommandCompleter.java&r1=669926&r2=669932&rev=669932&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-rapture/src/main/java/org/apache/geronimo/gshell/rapture/DefaultCommandCompleter.java (original)
+++ geronimo/gshell/trunk/gshell-rapture/src/main/java/org/apache/geronimo/gshell/rapture/DefaultCommandInfo.java Fri Jun 20 08:22:34 2008
@@ -19,30 +19,58 @@
 
 package org.apache.geronimo.gshell.rapture;
 
-import jline.Completor;
-import org.apache.geronimo.gshell.command.CommandCompleter;
-import org.apache.geronimo.gshell.command.CommandDocumenter;
 import org.apache.geronimo.gshell.command.CommandInfo;
-import org.codehaus.plexus.component.annotations.Component;
+import org.apache.geronimo.gshell.model.layout.AliasNode;
+import org.apache.geronimo.gshell.model.layout.CommandNode;
+import org.apache.geronimo.gshell.model.layout.Node;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * The default {@link CommandCompleter} component.
+ * The default {@link CommandInfo} implementation.
  *
  * @version $Rev$ $Date$
  */
-@Component(role=CommandDocumenter.class)
-public class DefaultCommandCompleter
-    implements CommandCompleter
+public class DefaultCommandInfo
+    implements CommandInfo
 {
     private final Logger log = LoggerFactory.getLogger(getClass());
 
-    public Completor createCompletor(final CommandInfo info) {
-        assert info != null;
+    private final Node node;
 
-        // TODO:
+    public DefaultCommandInfo(final Node node) {
+        assert node != null;
+        this.node = node;
+    }
+
+    public String getId() {
+        if (node instanceof CommandNode) {
+            return ((CommandNode)node).getId();
+        }
+        else if (node instanceof AliasNode) {
+            return ((AliasNode)node).getCommand();
+        }
+
+        throw new IllegalStateException();
+    }
+
+    public String getName() {
+        if (node instanceof AliasNode) {
+            return ((AliasNode)node).getCommand();
+        }
+
+        return node.getName();
+    }
+
+    public String getAlias() {
+        if (node instanceof AliasNode) {
+            return node.getName();
+        }
+
+        return null;
+    }
 
+    public String getPath() {
         throw new Error();
     }
 }
\ No newline at end of file

Modified: geronimo/gshell/trunk/gshell-rapture/src/main/java/org/apache/geronimo/gshell/rapture/DefaultCommandLineExecutor.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-rapture/src/main/java/org/apache/geronimo/gshell/rapture/DefaultCommandLineExecutor.java?rev=669932&r1=669931&r2=669932&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-rapture/src/main/java/org/apache/geronimo/gshell/rapture/DefaultCommandLineExecutor.java (original)
+++ geronimo/gshell/trunk/gshell-rapture/src/main/java/org/apache/geronimo/gshell/rapture/DefaultCommandLineExecutor.java Fri Jun 20 08:22:34 2008
@@ -83,7 +83,7 @@
     @Requirement
     private CommandLineBuilder commandLineBuilder;
 
-    private ShellContext env;
+    private ShellContext shellContext;
 
     public DefaultCommandLineExecutor() {}
     
@@ -102,7 +102,7 @@
     public void initialize() throws InitializationException {
         assert applicationManager != null;
         
-        this.env = applicationManager.getContext().getEnvironment();
+        this.shellContext = applicationManager.getContext().getEnvironment();
     }
 
     public Object execute(final String line) throws Exception {
@@ -138,7 +138,7 @@
 
         log.info("Executing (Object...): [{}]", Arguments.asString(args));
 
-        return execute(String.valueOf(args[0]), Arguments.shift(args), env.getIo());
+        return execute(String.valueOf(args[0]), Arguments.shift(args), shellContext.getIo());
     }
 
     public Object execute(final String path, final Object[] args) throws Exception {
@@ -147,7 +147,7 @@
 
         log.info("Executing ({}): [{}]", path, Arguments.asString(args));
 
-        return execute(path, args, env.getIo());
+        return execute(path, args, shellContext.getIo());
     }
 
     public Object execute(final Object[][] commands) throws Exception {
@@ -158,17 +158,17 @@
         PipedOutputStream pos = null;
 
         for (int i = 0; i < ios.length; i++) {
-            InputStream is = (i == 0) ? env.getIo().inputStream : new PipedInputStream(pos);
+            InputStream is = (i == 0) ? shellContext.getIo().inputStream : new PipedInputStream(pos);
             OutputStream os;
 
             if (i == ios.length - 1) {
-                os = env.getIo().outputStream;
+                os = shellContext.getIo().outputStream;
             }
             else {
                 os = pos = new PipedOutputStream();
             }
 
-            ios[i] = new IO(is, new PrintStream(os), env.getIo().errorStream);
+            ios[i] = new IO(is, new PrintStream(os), shellContext.getIo().errorStream);
         }
 
         Thread[] threads = new Thread[commands.length];
@@ -230,7 +230,7 @@
     protected Object execute(final String path, final Object[] args, final IO io) throws Exception {
         log.debug("Executing");
 
-        final String searchPath = (String) env.getVariables().get(LayoutManager.COMMAND_PATH);
+        final String searchPath = (String) shellContext.getVariables().get(LayoutManager.COMMAND_PATH);
         log.debug("Search path: {}", searchPath);
 
         final Node node = layoutManager.findNode(path, searchPath);
@@ -250,7 +250,7 @@
         // Setup the command context and pass it to the command instance
         CommandContext context = new CommandContext() {
             // Command instances get their own namespace with defaults from the current
-            final Variables vars = new DefaultVariables(env.getVariables());
+            final Variables vars = new DefaultVariables(shellContext.getVariables());
 
             CommandInfo info;
 
@@ -268,36 +268,7 @@
 
             public CommandInfo getInfo() {
                 if (info == null) {
-                    info = new CommandInfo()
-                    {
-                        public String getId() {
-                            return id;
-                        }
-
-                        public String getName() {
-                            if (node instanceof AliasNode) {
-                                return ((AliasNode)node).getCommand();
-                            }
-
-                            return node.getName();
-                        }
-
-                        public String getAlias() {
-                            if (node instanceof AliasNode) {
-                                return node.getName();
-                            }
-
-                            return null;
-                        }
-
-                        public String getPath() {
-                            //
-                            // TODO:
-                            //
-                            
-                            return null;
-                        }
-                    };
+                    info = new DefaultCommandInfo(node);
                 }
 
                 return info;