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 2007/09/11 09:08:58 UTC

svn commit: r574492 - in /geronimo/sandbox/gshell/trunk: gshell-bootstrap/src/main/java/org/apache/geronimo/gshell/bootstrap/ gshell-cli/src/main/resources/META-INF/plexus/ gshell-core/src/main/java/org/apache/geronimo/gshell/ gshell-core/src/main/java...

Author: jdillon
Date: Tue Sep 11 00:08:57 2007
New Revision: 574492

URL: http://svn.apache.org/viewvc?rev=574492&view=rev
Log:
Clean up

Modified:
    geronimo/sandbox/gshell/trunk/gshell-bootstrap/src/main/java/org/apache/geronimo/gshell/bootstrap/Launcher.java
    geronimo/sandbox/gshell/trunk/gshell-cli/src/main/resources/META-INF/plexus/plexus.xml
    geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultCommandExecutor.java
    geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultShell.java
    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/ShellSecurityManager.java
    geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/branding/DefaultBranding.java
    geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/layout/DefaultLayoutManager.java
    geronimo/sandbox/gshell/trunk/gshell-parser/src/main/grammar/CommandLineParser.jjt

Modified: geronimo/sandbox/gshell/trunk/gshell-bootstrap/src/main/java/org/apache/geronimo/gshell/bootstrap/Launcher.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-bootstrap/src/main/java/org/apache/geronimo/gshell/bootstrap/Launcher.java?rev=574492&r1=574491&r2=574492&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-bootstrap/src/main/java/org/apache/geronimo/gshell/bootstrap/Launcher.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-bootstrap/src/main/java/org/apache/geronimo/gshell/bootstrap/Launcher.java Tue Sep 11 00:08:57 2007
@@ -39,15 +39,12 @@
         assert args != null;
 
         //
-        // FIXME: Maybe want to add some kinda of support to allow these "gshell.*" bits to be named for custom branding?
+        // NOTE: Branding information is not available here, so we must use the basic GShell properties to configure
+        //       the bootstrap loader.
         //
         
         programName = getProgramName();
         setProperty("program.name", programName);
-
-        //
-        // TODO: Use the Flavor to figure out what the property name to set is here... ?????
-        //
         
         homeDir = getHomeDir();
         setProperty("gshell.home", homeDir.getCanonicalPath());

Modified: geronimo/sandbox/gshell/trunk/gshell-cli/src/main/resources/META-INF/plexus/plexus.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-cli/src/main/resources/META-INF/plexus/plexus.xml?rev=574492&r1=574491&r2=574492&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-cli/src/main/resources/META-INF/plexus/plexus.xml (original)
+++ geronimo/sandbox/gshell/trunk/gshell-cli/src/main/resources/META-INF/plexus/plexus.xml Tue Sep 11 00:08:57 2007
@@ -68,26 +68,11 @@
             <role-hint>default</role-hint>
             <implementation>org.apache.geronimo.gshell.plugin.PluginCollector</implementation>
         </component>
-
+        
         <!--
-        Hook up the branding to use.
-        -->
-        <component>
-            <role>org.apache.geronimo.gshell.branding.Branding</role>
-            <role-hint>default</role-hint>
-            <implementation>org.apache.geronimo.gshell.branding.DefaultBranding</implementation>
-            <requirements>
-                <requirement>
-                    <role>org.apache.geronimo.gshell.branding.VersionLoader</role>
-                </requirement>
-                <requirement>
-                    <role>jline.Terminal</role>
-                </requirement>
-            </requirements>
-        </component>
+        Add our instance lookup components
 
-        <!--
-        Add our instance lookup components.
+        TODO: Once the @Component anno supports component-factory we can drop these.
         -->
 
         <component>

Modified: geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultCommandExecutor.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultCommandExecutor.java?rev=574492&r1=574491&r2=574492&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultCommandExecutor.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultCommandExecutor.java Tue Sep 11 00:08:57 2007
@@ -35,24 +35,20 @@
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * ???
+ * The default command executor.
  *
  * @version $Rev$ $Date$
  */
 @Component(role=CommandExecutor.class, hint="default")
 public class DefaultCommandExecutor
-    implements CommandExecutor, Initializable
+    implements CommandExecutor
 {
     private Logger log = LoggerFactory.getLogger(getClass());
 
-    public DefaultCommandExecutor() {}
-
     @Requirement
     private PlexusContainer container;
 
@@ -62,15 +58,8 @@
     @Requirement
     private CommandLineBuilder commandLineBuilder;
 
-    public void initialize() throws InitializationException {
-        /*
-        assert evaluator != null;
-
-        System.err.println("ENV: " + env);
-        
-        commandLineBuilder = new CommandLineBuilder(this, env, evaluator);
-        */
-    }
+    @Requirement
+    private Environment env;
 
     public Object execute(final String line) throws Exception {
         assert line != null;
@@ -128,15 +117,9 @@
         final PlexusContainer childContainer = container.createChildContainer(realmId, container.getContainerRealm());
         final Command command = (Command)childContainer.lookup(desc.getRole(), desc.getRoleHint());
 
-        //
-        // NOTE: For now, until we can figure out a better way to have the container deal with this stuff, pass in
-        //       the execution context manually
-        //
-        
-        final Environment env = (Environment) container.lookup(Environment.class);
-
         // 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 VariablesImpl(env.getVariables());
 
             public IO getIO() {

Modified: geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultShell.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultShell.java?rev=574492&r1=574491&r2=574492&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultShell.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultShell.java Tue Sep 11 00:08:57 2007
@@ -27,13 +27,13 @@
 import jline.History;
 import jline.Terminal;
 import org.apache.geronimo.gshell.ansi.Renderer;
+import org.apache.geronimo.gshell.branding.Branding;
 import org.apache.geronimo.gshell.command.CommandExecutor;
 import org.apache.geronimo.gshell.command.IO;
 import org.apache.geronimo.gshell.command.Variables;
 import org.apache.geronimo.gshell.console.Console;
 import org.apache.geronimo.gshell.console.JLineConsole;
 import org.apache.geronimo.gshell.console.TerminalInfo;
-import org.apache.geronimo.gshell.branding.Branding;
 import org.apache.geronimo.gshell.lookup.EnvironmentLookup;
 import org.apache.geronimo.gshell.shell.Environment;
 import org.apache.geronimo.gshell.shell.InteractiveShell;
@@ -44,7 +44,6 @@
 import org.codehaus.plexus.component.factory.ComponentFactory;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
-import org.codehaus.plexus.util.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -73,20 +72,14 @@
 
     @Requirement
     private Terminal terminal;
-    
-    @Requirement(role=ComponentFactory.class, hint="EnvironmentLookup")
-    private EnvironmentLookup envLookup;
-    
+
+    @Requirement
     private Environment env;
 
     @Requirement
     private IO io;
 
     public Environment getEnvironment() {
-        if (env == null) {
-            throw new IllegalStateException();
-        }
-
         return env;
     }
 
@@ -96,26 +89,6 @@
 
     public void initialize() throws InitializationException {
         //
-        // FIXME: This is kinda icky IMO...
-        //
-        
-        // Setup our environment instance
-        env = new Environment() {
-            final Variables variables = new VariablesImpl();
-
-            public IO getIO() {
-                return io;
-            }
-
-            public Variables getVariables() {
-                return variables;
-            }
-        };
-
-        // And propagate it to others
-        envLookup.set(env);
-        
-        //
         // FIXME: This won't work as desired, as this shell instance is not yet registered, so if a profile
         //        tries to run something that needs the shell instance... well, loopsvile.
         //
@@ -302,8 +275,7 @@
         assert file != null;
 
         //
-        // FIXME: Don't use 'source 'for right now, the shell spins out of control
-        //        from plexus component loading :-(
+        // FIXME: Don't use 'source 'for right now, the shell spins out of control from plexus component loading :-(
         //
         // execute("source", file.toURI().toURL());
 

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=574492&r1=574491&r2=574492&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 Tue Sep 11 00:08:57 2007
@@ -22,7 +22,9 @@
 import java.util.Map;
 
 import org.apache.geronimo.gshell.command.IO;
+import org.apache.geronimo.gshell.command.Variables;
 import org.apache.geronimo.gshell.common.StopWatch;
+import org.apache.geronimo.gshell.lookup.EnvironmentLookup;
 import org.apache.geronimo.gshell.lookup.IOLookup;
 import org.apache.geronimo.gshell.shell.Environment;
 import org.apache.geronimo.gshell.shell.InteractiveShell;
@@ -84,15 +86,30 @@
             container = new DefaultPlexusContainer(config);
 
             // We first need to stuff in the IO context for the new shell instance
-            IOLookup lookup = (IOLookup) container.lookup(ComponentFactory.class, IOLookup.class.getSimpleName());
-            lookup.set(io);
+            IOLookup ioLookup = (IOLookup) container.lookup(ComponentFactory.class, IOLookup.class.getSimpleName());
+            ioLookup.set(io);
+
+            // And then lets stuff in the environment too
+            Environment env = new Environment() {
+                final Variables vars = new VariablesImpl();
+
+                public IO getIO() {
+                    return io;
+                }
+
+                public Variables getVariables() {
+                    return vars;
+                }
+            };
+
+            EnvironmentLookup envLookup = (EnvironmentLookup) container.lookup(ComponentFactory.class, EnvironmentLookup.class.getSimpleName());
+            envLookup.set(env);
+
+            // And then do some setup some default variables
+            env.getVariables().set("env", System.getenv());
 
             // Then look up the shell we are gonna delegate to
             shell = (InteractiveShell) container.lookup(InteractiveShell.class);
-
-            // And then do some setup ski
-            Map<String,String> env = System.getenv();
-            shell.getEnvironment().getVariables().set("env", env);
         }
         finally {
             System.setSecurityManager(psm);

Modified: geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/ShellSecurityManager.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/ShellSecurityManager.java?rev=574492&r1=574491&r2=574492&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/ShellSecurityManager.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/ShellSecurityManager.java Tue Sep 11 00:08:57 2007
@@ -47,6 +47,9 @@
         }
     }
 
+    /**
+     * Always throws {@link SecurityException}.
+     */
     public void checkExit(final int code) {
         throw new SecurityException("Use of System.exit() if forbidden!");
     }

Modified: geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/branding/DefaultBranding.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/branding/DefaultBranding.java?rev=574492&r1=574491&r2=574492&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/branding/DefaultBranding.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/branding/DefaultBranding.java Tue Sep 11 00:08:57 2007
@@ -82,18 +82,16 @@
 
     public String getAbout() {
         StringWriter writer = new StringWriter();
-        PrintWriter out = new PrintWriter(writer);
+        PrintWriter out = new RenderWriter(writer);
 
-        out.println("For information about GShell, visit:");
-        out.println("    http://geronimo.apache.org/gshell.html ");
+        out.println("For information about @|cyan GShell|, visit:");
+        out.println("    @|bold http://geronimo.apache.org/gshell.html| ");
         out.flush();
 
         return writer.toString();
     }
 
     public String getVersion() {
-        assert versionLoader != null;
-
         return versionLoader.getVersion();
     }
 

Modified: geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/layout/DefaultLayoutManager.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/layout/DefaultLayoutManager.java?rev=574492&r1=574491&r2=574492&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/layout/DefaultLayoutManager.java (original)
+++ geronimo/sandbox/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/layout/DefaultLayoutManager.java Tue Sep 11 00:08:57 2007
@@ -25,6 +25,7 @@
 import org.apache.geronimo.gshell.layout.loader.LayoutLoader;
 import org.apache.geronimo.gshell.layout.model.Layout;
 import org.apache.geronimo.gshell.plugin.PluginCollector;
+import org.apache.geronimo.gshell.shell.Environment;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
@@ -48,6 +49,9 @@
 
     @Requirement
     private LayoutLoader loader;
+
+    @Requirement
+    private Environment env;
     
     private Layout layout;
     
@@ -74,11 +78,6 @@
         assert path != null;
 
         log.debug("Searching for command descriptor for path: {}", path);
-
-        //
-        // TODO: Need the current environment, so we can get the current group (pwd) and search path, and then
-        //       use that to search the layout tree.
-        //
 
         //
         // HACK: For now, assume the path is just the id... should eventually change this

Modified: geronimo/sandbox/gshell/trunk/gshell-parser/src/main/grammar/CommandLineParser.jjt
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gshell/trunk/gshell-parser/src/main/grammar/CommandLineParser.jjt?rev=574492&r1=574491&r2=574492&view=diff
==============================================================================
--- geronimo/sandbox/gshell/trunk/gshell-parser/src/main/grammar/CommandLineParser.jjt (original)
+++ geronimo/sandbox/gshell/trunk/gshell-parser/src/main/grammar/CommandLineParser.jjt Tue Sep 11 00:08:57 2007
@@ -27,6 +27,10 @@
     NODE_EXTENDS = "NodeSupport";
 }
 
+//
+// TODO: Look at including bits from the Jexl parser here
+//
+
 ///////////////////////////////////////////////////////////////////////////////
 
 PARSER_BEGIN(CommandLineParser)