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/05/21 09:48:25 UTC

svn commit: r658577 [1/2] - in /geronimo/gshell/trunk: ./ gshell-assembly/ gshell-assembly/src/main/assembly/ gshell-bootstrap/ gshell-cli/src/main/java/org/apache/geronimo/gshell/cli/ gshell-cli/src/main/resources/META-INF/plexus/ gshell-command-api/ ...

Author: jdillon
Date: Wed May 21 00:48:22 2008
New Revision: 658577

URL: http://svn.apache.org/viewvc?rev=658577&view=rev
Log:
Really too much to mention, but moving towards container re-factoring to use maven artifacts/repository bits and hooking up the new model muck

Added:
    geronimo/gshell/trunk/gshell-commands/gshell-repository/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/pom.xml   (with props)
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/java/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/java/org/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/java/org/apache/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/java/org/apache/geronimo/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/java/org/apache/geronimo/gshell/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/java/org/apache/geronimo/gshell/commands/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/java/org/apache/geronimo/gshell/commands/repository/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/resources/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/resources/org/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/resources/org/apache/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/resources/org/apache/geronimo/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/resources/org/apache/geronimo/gshell/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/resources/org/apache/geronimo/gshell/commands/
    geronimo/gshell/trunk/gshell-commands/gshell-repository/src/main/resources/org/apache/geronimo/gshell/commands/repository/
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellBuilder.java   (with props)
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellImpl.java   (with props)
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationConfiguration.java   (with props)
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationContext.java   (with props)
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationManager.java   (with props)
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/DefaultApplicationManager.java   (with props)
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandContainer.java   (with props)
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/DefaultPluginManager.java   (with props)
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginCollector.java
      - copied, changed from r653220, geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandDiscoveryListener.java
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginContainer.java
      - copied, changed from r653220, geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandDiscoverer.java
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginContext.java   (with props)
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginDiscoverer.java
      - copied, changed from r653220, geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandDiscoverer.java
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginManager.java   (with props)
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/settings/
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/settings/DefaultSettingsManager.java   (with props)
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/settings/SettingsManager.java   (with props)
    geronimo/gshell/trunk/gshell-core/src/test/java/org/apache/geronimo/gshell/GShellBuilderTest.java
      - copied, changed from r653220, geronimo/gshell/trunk/gshell-core/src/test/java/org/apache/geronimo/gshell/DefaultVariablesTest.java
    geronimo/gshell/trunk/gshell-core/src/test/resources/org/apache/geronimo/gshell/application1.xml   (with props)
    geronimo/gshell/trunk/gshell-core/src/test/resources/org/apache/geronimo/gshell/settings1.xml   (with props)
    geronimo/gshell/trunk/gshell-support/gshell-io/   (with props)
    geronimo/gshell/trunk/gshell-support/gshell-io/pom.xml   (with props)
    geronimo/gshell/trunk/gshell-support/gshell-io/src/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/main/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/main/java/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/main/java/org/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/main/java/org/apache/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/main/java/org/apache/geronimo/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/main/java/org/apache/geronimo/gshell/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/main/java/org/apache/geronimo/gshell/io/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/main/java/org/apache/geronimo/gshell/io/IO.java   (contents, props changed)
      - copied, changed from r653220, geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/command/IO.java
    geronimo/gshell/trunk/gshell-support/gshell-io/src/main/java/org/apache/geronimo/gshell/io/PromptReader.java   (contents, props changed)
      - copied, changed from r653220, geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/console/PromptReader.java
    geronimo/gshell/trunk/gshell-support/gshell-io/src/test/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/test/java/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/test/java/org/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/test/java/org/apache/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/test/java/org/apache/geronimo/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/test/java/org/apache/geronimo/gshell/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/test/java/org/apache/geronimo/gshell/io/
    geronimo/gshell/trunk/gshell-support/gshell-io/src/test/java/org/apache/geronimo/gshell/io/IOTest.java   (with props)
    geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/plexus/
    geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/plexus/GShellPlexusContainer.java   (with props)
    geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/plexus/LookupFactorySupport.java   (with props)
    geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/java/org/apache/geronimo/gshell/plexus/
    geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/resources/org/apache/geronimo/gshell/plexus/
Removed:
    geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/command/IO.java
    geronimo/gshell/trunk/gshell-command-api/src/test/java/org/apache/geronimo/gshell/command/IOTest.java
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/console/PromptReader.java
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/loader/
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/lookup/LookupFactorySupport.java
    geronimo/gshell/trunk/gshell-embeddable/
    geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/java/org/apache/geronimo/gshell/support/
    geronimo/gshell/trunk/gshell-support/gshell-plexus/src/main/resources/org/apache/geronimo/gshell/support/
    geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/java/org/apache/geronimo/gshell/support/
    geronimo/gshell/trunk/gshell-support/gshell-plexus/src/test/resources/org/apache/geronimo/gshell/support/
Modified:
    geronimo/gshell/trunk/   (props changed)
    geronimo/gshell/trunk/gshell-assembly/pom.xml
    geronimo/gshell/trunk/gshell-assembly/src/main/assembly/full.xml
    geronimo/gshell/trunk/gshell-bootstrap/   (props changed)
    geronimo/gshell/trunk/gshell-cli/src/main/java/org/apache/geronimo/gshell/cli/Main.java
    geronimo/gshell/trunk/gshell-cli/src/main/resources/META-INF/plexus/plexus.xml
    geronimo/gshell/trunk/gshell-command-api/pom.xml
    geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/command/CommandContext.java
    geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/command/CommandSupport.java
    geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/shell/Environment.java
    geronimo/gshell/trunk/gshell-commands/gshell-bsf/   (props changed)
    geronimo/gshell/trunk/gshell-commands/gshell-optional/   (props changed)
    geronimo/gshell/trunk/gshell-commands/gshell-optional/src/main/java/org/apache/geronimo/gshell/commands/optional/CatCommand.java
    geronimo/gshell/trunk/gshell-commands/gshell-vfs/   (props changed)
    geronimo/gshell/trunk/gshell-commands/pom.xml
    geronimo/gshell/trunk/gshell-core/   (props changed)
    geronimo/gshell/trunk/gshell-core/pom.xml
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultCommandExecutor.java
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultEnvironment.java
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultShell.java
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShell.java
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/console/JLineConsole.java
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/lookup/EnvironmentLookup.java
    geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/lookup/IOLookup.java
    geronimo/gshell/trunk/gshell-core/src/test/java/org/apache/geronimo/gshell/layout/DefaultLayoutManagerTest.java
    geronimo/gshell/trunk/gshell-diet/gshell-diet-log4j/   (props changed)
    geronimo/gshell/trunk/gshell-maven-plugin/   (props changed)
    geronimo/gshell/trunk/gshell-maven-plugin/pom.xml
    geronimo/gshell/trunk/gshell-model/   (props changed)
    geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/Application.java
    geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationMarshaller.java
    geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Dependency.java
    geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/SourceRepository.java
    geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/marshal/MarshallerSupport.java
    geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/plugin/Plugin.java
    geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/plugin/PluginMarshaller.java
    geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/settings/SettingsMarshaller.java
    geronimo/gshell/trunk/gshell-parser/   (props changed)
    geronimo/gshell/trunk/gshell-parser/pom.xml
    geronimo/gshell/trunk/gshell-remote/gshell-remote-client/   (props changed)
    geronimo/gshell/trunk/gshell-remote/gshell-remote-client/pom.xml
    geronimo/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/RshCommand.java
    geronimo/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/proxy/RemoteEnvironmentProxy.java
    geronimo/gshell/trunk/gshell-remote/gshell-remote-client/src/main/java/org/apache/geronimo/gshell/remote/client/proxy/RemoteShellProxy.java
    geronimo/gshell/trunk/gshell-remote/gshell-remote-common/   (props changed)
    geronimo/gshell/trunk/gshell-remote/gshell-remote-server/pom.xml
    geronimo/gshell/trunk/gshell-remote/gshell-remote-server/src/main/java/org/apache/geronimo/gshell/remote/server/RemoteIO.java
    geronimo/gshell/trunk/gshell-support/gshell-ansi/   (props changed)
    geronimo/gshell/trunk/gshell-support/gshell-artifact/   (props changed)
    geronimo/gshell/trunk/gshell-support/gshell-artifact/pom.xml
    geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/ArtifactManager.java
    geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/monitor/ProgressSpinnerMonitor.java
    geronimo/gshell/trunk/gshell-support/gshell-clp/   (props changed)
    geronimo/gshell/trunk/gshell-support/gshell-common/   (props changed)
    geronimo/gshell/trunk/gshell-support/gshell-i18n/   (props changed)
    geronimo/gshell/trunk/gshell-support/gshell-plexus/   (props changed)
    geronimo/gshell/trunk/gshell-support/gshell-plexus/pom.xml
    geronimo/gshell/trunk/gshell-support/gshell-prefs/   (props changed)
    geronimo/gshell/trunk/gshell-support/pom.xml
    geronimo/gshell/trunk/gshell-whisper/   (props changed)
    geronimo/gshell/trunk/javacc-maven-plugin/pom.xml
    geronimo/gshell/trunk/javacc-maven-plugin/src/main/groovy/org/apache/geronimo/gshell/maven/javacc/JavaccMojoSupport.groovy
    geronimo/gshell/trunk/pom.xml

Propchange: geronimo/gshell/trunk/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed May 21 00:48:22 2008
@@ -0,0 +1 @@
+target-eclipse

Modified: geronimo/gshell/trunk/gshell-assembly/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-assembly/pom.xml?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-assembly/pom.xml (original)
+++ geronimo/gshell/trunk/gshell-assembly/pom.xml Wed May 21 00:48:22 2008
@@ -142,24 +142,20 @@
     <profiles>
         <profile>
             <id>full</id>
-            
             <dependencies>
                 <dependency>
                     <groupId>org.apache.geronimo.gshell.commands</groupId>
                     <artifactId>gshell-bsf</artifactId>
-                    <version>${version}</version>
                 </dependency>
 
                 <dependency>
                     <groupId>org.beanshell</groupId>
                     <artifactId>bsh</artifactId>
-                    <version>2.0b4</version>
                 </dependency>
 
                 <dependency>
                     <groupId>org.apache.geronimo.gshell.commands</groupId>
                     <artifactId>gshell-vfs</artifactId>
-                    <version>${version}</version>
                 </dependency>
             </dependencies>
         </profile>

Modified: geronimo/gshell/trunk/gshell-assembly/src/main/assembly/full.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-assembly/src/main/assembly/full.xml?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-assembly/src/main/assembly/full.xml (original)
+++ geronimo/gshell/trunk/gshell-assembly/src/main/assembly/full.xml Wed May 21 00:48:22 2008
@@ -70,7 +70,6 @@
                 <exclude>org.codehaus.plexus:plexus-classworlds</exclude>
                 <exclude>org.apache.geronimo.gshell:gshell-assembly</exclude>
                 <exclude>org.apache.geronimo.gshell:gshell-bootstrap</exclude>
-                <exclude>junit:junit</exclude>
             </excludes>
         </dependencySet>
 

Propchange: geronimo/gshell/trunk/gshell-bootstrap/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed May 21 00:48:22 2008
@@ -0,0 +1 @@
+target-eclipse

Modified: geronimo/gshell/trunk/gshell-cli/src/main/java/org/apache/geronimo/gshell/cli/Main.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-cli/src/main/java/org/apache/geronimo/gshell/cli/Main.java?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-cli/src/main/java/org/apache/geronimo/gshell/cli/Main.java (original)
+++ geronimo/gshell/trunk/gshell-cli/src/main/java/org/apache/geronimo/gshell/cli/Main.java Wed May 21 00:48:22 2008
@@ -25,13 +25,14 @@
 
 import org.apache.geronimo.gshell.ExitNotification;
 import org.apache.geronimo.gshell.GShell;
+import org.apache.geronimo.gshell.GShellImpl;
+import org.apache.geronimo.gshell.io.IO;
 import org.apache.geronimo.gshell.ansi.ANSI;
 import org.apache.geronimo.gshell.branding.Branding;
 import org.apache.geronimo.gshell.clp.Argument;
 import org.apache.geronimo.gshell.clp.CommandLineProcessor;
 import org.apache.geronimo.gshell.clp.Option;
 import org.apache.geronimo.gshell.clp.Printer;
-import org.apache.geronimo.gshell.command.IO;
 import org.codehaus.plexus.ContainerConfiguration;
 import org.codehaus.plexus.DefaultContainerConfiguration;
 import org.codehaus.plexus.DefaultPlexusContainer;
@@ -240,7 +241,8 @@
         });
 
         try {
-            GShell gshell = new GShell(classWorld, io);
+            // FIXME:
+            GShell gshell = new GShellImpl(classWorld, io);
 
             // clp gives us a list, but we need an array
             String[] _args = commandArgs.toArray(new String[commandArgs.size()]);

Modified: geronimo/gshell/trunk/gshell-cli/src/main/resources/META-INF/plexus/plexus.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-cli/src/main/resources/META-INF/plexus/plexus.xml?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-cli/src/main/resources/META-INF/plexus/plexus.xml (original)
+++ geronimo/gshell/trunk/gshell-cli/src/main/resources/META-INF/plexus/plexus.xml Wed May 21 00:48:22 2008
@@ -37,7 +37,7 @@
         TODO: Drop this and use the annotations to set factories.
         -->
         <component>
-            <role>org.apache.geronimo.gshell.command.IO</role>
+            <role>org.apache.geronimo.gshell.io.IO</role>
             <component-factory>IOLookup</component-factory>
             <instantiation-strategy>per-lookup</instantiation-strategy>
         </component>

Modified: geronimo/gshell/trunk/gshell-command-api/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-command-api/pom.xml?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-command-api/pom.xml (original)
+++ geronimo/gshell/trunk/gshell-command-api/pom.xml Wed May 21 00:48:22 2008
@@ -62,7 +62,12 @@
             <groupId>org.apache.geronimo.gshell.support</groupId>
             <artifactId>gshell-prefs</artifactId>
         </dependency>
-        
+
+        <dependency>
+            <groupId>org.apache.geronimo.gshell.support</groupId>
+            <artifactId>gshell-io</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>

Modified: geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/command/CommandContext.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/command/CommandContext.java?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/command/CommandContext.java (original)
+++ geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/command/CommandContext.java Wed May 21 00:48:22 2008
@@ -19,6 +19,8 @@
 
 package org.apache.geronimo.gshell.command;
 
+import org.apache.geronimo.gshell.io.IO;
+
 /**
  * Provides commands with the context of its execution.
  *

Modified: geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/command/CommandSupport.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/command/CommandSupport.java?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/command/CommandSupport.java (original)
+++ geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/command/CommandSupport.java Wed May 21 00:48:22 2008
@@ -24,6 +24,7 @@
 import org.apache.geronimo.gshell.clp.Printer;
 import org.apache.geronimo.gshell.command.annotation.CommandComponent;
 import org.apache.geronimo.gshell.common.Arguments;
+import org.apache.geronimo.gshell.io.IO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

Modified: geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/shell/Environment.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/shell/Environment.java?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/shell/Environment.java (original)
+++ geronimo/gshell/trunk/gshell-command-api/src/main/java/org/apache/geronimo/gshell/shell/Environment.java Wed May 21 00:48:22 2008
@@ -19,7 +19,7 @@
 
 package org.apache.geronimo.gshell.shell;
 
-import org.apache.geronimo.gshell.command.IO;
+import org.apache.geronimo.gshell.io.IO;
 import org.apache.geronimo.gshell.command.Variables;
 
 /**

Propchange: geronimo/gshell/trunk/gshell-commands/gshell-bsf/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed May 21 00:48:22 2008
@@ -0,0 +1 @@
+target-eclipse

Propchange: geronimo/gshell/trunk/gshell-commands/gshell-optional/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed May 21 00:48:22 2008
@@ -0,0 +1 @@
+target-eclipse

Modified: geronimo/gshell/trunk/gshell-commands/gshell-optional/src/main/java/org/apache/geronimo/gshell/commands/optional/CatCommand.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-optional/src/main/java/org/apache/geronimo/gshell/commands/optional/CatCommand.java?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-optional/src/main/java/org/apache/geronimo/gshell/commands/optional/CatCommand.java (original)
+++ geronimo/gshell/trunk/gshell-commands/gshell-optional/src/main/java/org/apache/geronimo/gshell/commands/optional/CatCommand.java Wed May 21 00:48:22 2008
@@ -31,7 +31,7 @@
 import org.apache.geronimo.gshell.clp.Argument;
 import org.apache.geronimo.gshell.clp.Option;
 import org.apache.geronimo.gshell.command.CommandSupport;
-import org.apache.geronimo.gshell.command.IO;
+import org.apache.geronimo.gshell.io.IO;
 import org.apache.geronimo.gshell.command.annotation.CommandComponent;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;

Added: geronimo/gshell/trunk/gshell-commands/gshell-repository/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-repository/pom.xml?rev=658577&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-repository/pom.xml (added)
+++ geronimo/gshell/trunk/gshell-commands/gshell-repository/pom.xml Wed May 21 00:48:22 2008
@@ -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$ $Date$ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    
+    <modelVersion>4.0.0</modelVersion>
+    
+    <parent>
+        <groupId>org.apache.geronimo.gshell.commands</groupId>
+        <artifactId>gshell-commands</artifactId>
+        <version>1.0-alpha-2-SNAPSHOT</version>
+    </parent>
+    
+    <artifactId>gshell-repository</artifactId>
+    <name>GShell Commands :: Repository</name>
+    
+    <description>
+        Provides commands to opperate on the repository.
+    </description>
+
+</project>

Propchange: geronimo/gshell/trunk/gshell-commands/gshell-repository/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-commands/gshell-repository/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-commands/gshell-repository/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Propchange: geronimo/gshell/trunk/gshell-commands/gshell-vfs/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed May 21 00:48:22 2008
@@ -0,0 +1 @@
+target-eclipse

Modified: geronimo/gshell/trunk/gshell-commands/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/pom.xml?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/pom.xml (original)
+++ geronimo/gshell/trunk/gshell-commands/pom.xml Wed May 21 00:48:22 2008
@@ -49,6 +49,7 @@
     <modules>
         <module>gshell-builtins</module>
         <module>gshell-optional</module>
+        <module>gshell-repository</module>
         <module>gshell-bsf</module>
         <module>gshell-vfs</module>
     </modules>
@@ -58,7 +59,6 @@
             <plugin>
                 <groupId>org.apache.geronimo.gshell</groupId>
                 <artifactId>gshell-maven-plugin</artifactId>
-                <version>${version}</version>
                 <executions>
                     <execution>
                         <goals>

Propchange: geronimo/gshell/trunk/gshell-core/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed May 21 00:48:22 2008
@@ -0,0 +1 @@
+target-eclipse

Modified: geronimo/gshell/trunk/gshell-core/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/pom.xml?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-core/pom.xml (original)
+++ geronimo/gshell/trunk/gshell-core/pom.xml Wed May 21 00:48:22 2008
@@ -44,6 +44,11 @@
         </dependency>
 
         <dependency>
+            <groupId>org.apache.geronimo.gshell.support</groupId>
+            <artifactId>gshell-artifact</artifactId>
+        </dependency>
+
+        <dependency>
             <groupId>org.apache.geronimo.gshell</groupId>
             <artifactId>gshell-command-api</artifactId>
         </dependency>
@@ -59,36 +64,28 @@
         </dependency>
 
         <dependency>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-container-default</artifactId>
+            <groupId>jline</groupId>
+            <artifactId>jline</artifactId>
         </dependency>
 
         <dependency>
-            <groupId>org.apache.maven.artifact</groupId>
-            <artifactId>maven-artifact</artifactId>
+            <groupId>commons-jexl</groupId>
+            <artifactId>commons-jexl</artifactId>
         </dependency>
         
+        <!-- Required for layout bits that have not yet migrated to gshell-model -->
         <dependency>
             <groupId>com.thoughtworks.xstream</groupId>
             <artifactId>xstream</artifactId>
         </dependency>
-
+        
+        <!-- Not really sure this is needed, but GSHELL-113 thinks it is -->
         <dependency>
             <groupId>xpp3</groupId>
             <artifactId>xpp3</artifactId>
             <scope>test</scope>
         </dependency>
-
-        <dependency>
-            <groupId>jline</groupId>
-            <artifactId>jline</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-jexl</groupId>
-            <artifactId>commons-jexl</artifactId>
-        </dependency>
-
+        
         <!-- Required for commons-jexl usage -->
         <dependency>
             <groupId>org.slf4j</groupId>
@@ -115,4 +112,5 @@
             </resource>
         </resources>
     </build>
+
 </project>

Modified: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultCommandExecutor.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultCommandExecutor.java?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultCommandExecutor.java (original)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultCommandExecutor.java Wed May 21 00:48:22 2008
@@ -31,7 +31,7 @@
 import org.apache.geronimo.gshell.command.CommandContext;
 import org.apache.geronimo.gshell.command.CommandExecutor;
 import org.apache.geronimo.gshell.command.CommandInfo;
-import org.apache.geronimo.gshell.command.IO;
+import org.apache.geronimo.gshell.io.IO;
 import org.apache.geronimo.gshell.command.Variables;
 import org.apache.geronimo.gshell.common.Arguments;
 import org.apache.geronimo.gshell.common.StopWatch;

Modified: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultEnvironment.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultEnvironment.java?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultEnvironment.java (original)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultEnvironment.java Wed May 21 00:48:22 2008
@@ -19,7 +19,7 @@
 
 package org.apache.geronimo.gshell;
 
-import org.apache.geronimo.gshell.command.IO;
+import org.apache.geronimo.gshell.io.IO;
 import org.apache.geronimo.gshell.command.Variables;
 import org.apache.geronimo.gshell.common.tostring.ReflectionToStringBuilder;
 import org.apache.geronimo.gshell.shell.Environment;

Modified: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultShell.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultShell.java?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultShell.java (original)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/DefaultShell.java Wed May 21 00:48:22 2008
@@ -29,7 +29,7 @@
 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.io.IO;
 import org.apache.geronimo.gshell.console.Console;
 import org.apache.geronimo.gshell.console.Console.ErrorHandler;
 import org.apache.geronimo.gshell.console.FileHistory;

Modified: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShell.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShell.java?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShell.java (original)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShell.java Wed May 21 00:48:22 2008
@@ -19,161 +19,14 @@
 
 package org.apache.geronimo.gshell;
 
-import org.apache.geronimo.gshell.command.IO;
-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;
-import org.apache.geronimo.gshell.shell.ShellInfo;
-import org.apache.geronimo.gshell.plugin.CommandDiscoverer;
-import org.apache.geronimo.gshell.plugin.CommandDiscoveryListener;
-import org.apache.geronimo.gshell.security.ShellSecurityManager;
-import org.codehaus.plexus.ContainerConfiguration;
-import org.codehaus.plexus.DefaultContainerConfiguration;
-import org.codehaus.plexus.DefaultPlexusContainer;
-import org.codehaus.plexus.classworlds.ClassWorld;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
- * A simple facade over GShell, sets up the container for you... you just run commands :-)
+ * ???
  *
  * @version $Rev$ $Date$
  */
-public class GShell
-    implements InteractiveShell
+public interface GShell
+    extends InteractiveShell
 {
-    private Logger log = LoggerFactory.getLogger(getClass());
-
-    private final ClassWorld classWorld;
-
-    private final IO io;
-    
-    private final DefaultPlexusContainer container;
-
-    private final SecurityManager sm;
-
-    private final InteractiveShell shell;
-
-    public GShell(final IO io) throws Exception {
-        this(new ClassWorld("gshell", Thread.currentThread().getContextClassLoader()), io);
-    }
-
-    public GShell(final ClassWorld classWorld, final IO io) throws Exception {
-        assert classWorld != null;
-        assert io != null;
-
-        this.classWorld = classWorld;
-        this.io = io;
-
-        // Lets time how long init takes
-        StopWatch watch = new StopWatch(true);
-
-        log.debug("Initializing");
-
-        sm = new ShellSecurityManager();
-
-        SecurityManager psm = System.getSecurityManager();
-        System.setSecurityManager(sm);
-
-        try {
-            ContainerConfiguration config = new DefaultContainerConfiguration();
-            config.setName("gshell");
-            config.setClassWorld(classWorld);
-            config.addComponentDiscoverer(new CommandDiscoverer());
-            config.addComponentDiscoveryListener(new CommandDiscoveryListener());
-
-            container = new DefaultPlexusContainer(config);
-
-            //
-            // TODO: Disabled for now, re-hookup once rfile bits are ready
-            //
-            // Get our URL handler factory installed
-            // container.lookup(URLHandlerFactory.class);
-
-            // We first need to stuff in the IO context for the new shell instance
-            IOLookup.set(container, io);
-
-            // And then lets stuff in the environment too
-            Environment env = new DefaultEnvironment(io);
-            EnvironmentLookup.set(container, env);
-
-            // Then look up the shell we are gonna delegate to
-            shell = (InteractiveShell) container.lookup(InteractiveShell.class);
-        }
-        finally {
-            System.setSecurityManager(psm);
-        }
-
-        log.debug("Initialized in {}", watch);
-    }
-
-    public ShellInfo getShellInfo() {
-        return shell.getShellInfo();
-    }
-
-    public Environment getEnvironment() {
-        return shell.getEnvironment();
-    }
-
-    public Object execute(final String line) throws Exception {
-        SecurityManager psm = System.getSecurityManager();
-        System.setSecurityManager(sm);
-
-        try {
-            return shell.execute(line);
-        }
-        finally {
-            System.setSecurityManager(psm);
-        }
-    }
-
-    public Object execute(final Object... args) throws Exception {
-        SecurityManager psm = System.getSecurityManager();
-        System.setSecurityManager(sm);
-
-        try {
-            return shell.execute((Object[])args);
-        }
-        finally {
-            System.setSecurityManager(psm);
-        }
-    }
-
-    public Object execute(final String path, final Object[] args) throws Exception {
-        SecurityManager psm = System.getSecurityManager();
-        System.setSecurityManager(sm);
-
-        try {
-            return shell.execute(path, args);
-        }
-        finally {
-            System.setSecurityManager(psm);
-        }
-    }
-
-    public Object execute(Object[][] commands) throws Exception {
-        SecurityManager psm = System.getSecurityManager();
-        System.setSecurityManager(sm);
-
-        try {
-            return shell.execute(commands);
-        }
-        finally {
-            System.setSecurityManager(psm);
-        }
-    }
-
-    public void run(final Object... args) throws Exception {
-        SecurityManager psm = System.getSecurityManager();
-        System.setSecurityManager(sm);
-
-        try {
-            shell.run(args);
-        }
-        finally {
-            System.setSecurityManager(psm);
-        }
-    }
 }
\ No newline at end of file

Added: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellBuilder.java?rev=658577&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellBuilder.java (added)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellBuilder.java Wed May 21 00:48:22 2008
@@ -0,0 +1,210 @@
+/*
+ * 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.gshell;
+
+import org.apache.geronimo.gshell.application.ApplicationConfiguration;
+import org.apache.geronimo.gshell.application.ApplicationManager;
+import org.apache.geronimo.gshell.artifact.ArtifactManager;
+import org.apache.geronimo.gshell.artifact.monitor.ProgressSpinnerMonitor;
+import org.apache.geronimo.gshell.io.IO;
+import org.apache.geronimo.gshell.model.application.Application;
+import org.apache.geronimo.gshell.model.settings.Settings;
+import org.apache.geronimo.gshell.plexus.GShellPlexusContainer;
+import org.apache.geronimo.gshell.settings.SettingsManager;
+import org.apache.geronimo.gshell.shell.Environment;
+import org.codehaus.plexus.ContainerConfiguration;
+import org.codehaus.plexus.DefaultContainerConfiguration;
+import org.codehaus.plexus.PlexusContainerException;
+import org.codehaus.plexus.classworlds.ClassWorld;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Builds {@link GShell} instances.
+ *
+ * @version $Rev$ $Date$
+ */
+public class GShellBuilder
+{
+    private final Logger log = LoggerFactory.getLogger(getClass());
+
+    private static final String DEFAULT_REALM_ID = "gshell";
+
+    private static final String DEFAULT_CONTAINER_NAME = "gshell";
+
+    private GShellPlexusContainer container;
+
+    private ClassWorld classWorld;
+
+    private Settings settings;
+
+    private SettingsManager settingsManager;
+
+    private ApplicationManager applicationManager;
+
+    private ApplicationConfiguration applicationConfig = new ApplicationConfiguration();
+
+    private ArtifactManager artifactManager;
+
+    public GShellBuilder() {}
+
+    private GShellPlexusContainer createContainer() throws PlexusContainerException {
+        ContainerConfiguration config = new DefaultContainerConfiguration();
+        
+        config.setName(DEFAULT_CONTAINER_NAME);
+        config.setClassWorld(getClassWorld());
+        // config.addComponentDiscoverer(new PluginDiscoverer());
+        // config.addComponentDiscoveryListener(new PluginCollector());
+
+        return new GShellPlexusContainer(config);
+    }
+
+    public GShellPlexusContainer getContainer() throws PlexusContainerException {
+        if (container == null) {
+            container = createContainer();
+        }
+        return container;
+    }
+
+    public void setContainer(final GShellPlexusContainer container) {
+        this.container = container;
+    }
+
+    private ClassWorld createClassWorld() {
+        return new ClassWorld(DEFAULT_REALM_ID, Thread.currentThread().getContextClassLoader());
+    }
+
+    public ClassWorld getClassWorld() {
+        if (classWorld == null) {
+            classWorld = createClassWorld();
+        }
+        return classWorld;
+    }
+
+    public void setClassWorld(final ClassWorld classWorld) {
+        this.classWorld = classWorld;
+    }
+
+    public IO getIo() {
+        return applicationConfig.getIo();
+    }
+
+    public void setIo(final IO io) {
+        applicationConfig.setIo(io);
+    }
+
+    public Environment getEnvironment() {
+        return applicationConfig.getEnvironment();
+    }
+
+    public void setEnvironment(final Environment environment) {
+        applicationConfig.setEnvironment(environment);
+    }
+
+    public Settings getSettings() {
+        return settings;
+    }
+
+    public void setSettings(final Settings settings) {
+        this.settings = settings;
+    }
+
+    private SettingsManager createSettingsManager() throws ComponentLookupException {
+        return container.lookupComponent(SettingsManager.class);
+    }
+
+    public SettingsManager getSettingsManager() throws ComponentLookupException {
+        if (settingsManager == null) {
+            settingsManager = createSettingsManager();
+        }
+        return settingsManager;
+    }
+
+    public void setSettingsManager(final SettingsManager settingsManager) {
+        this.settingsManager = settingsManager;
+    }
+    
+    public Application getApplication() {
+        return applicationConfig.getApplication();
+    }
+
+    public void setApplication(final Application application) {
+        applicationConfig.setApplication(application);
+    }
+
+    private ApplicationManager createApplicationManager() throws ComponentLookupException {
+        return container.lookupComponent(ApplicationManager.class);
+    }
+
+    public ApplicationManager getApplicationManager() throws ComponentLookupException {
+        if (applicationManager == null) {
+            applicationManager = createApplicationManager();
+        }
+        return applicationManager;
+    }
+
+    public void setApplicationManager(final ApplicationManager applicationManager) {
+        this.applicationManager = applicationManager;
+    }
+
+    private ArtifactManager createArtifactManager() throws PlexusContainerException, ComponentLookupException {
+        return getContainer().lookupComponent(ArtifactManager.class);
+    }
+
+    public ArtifactManager getArtifactManager() throws ComponentLookupException, PlexusContainerException {
+        if (artifactManager == null) {
+            artifactManager = createArtifactManager();
+        }
+        return artifactManager;
+    }
+
+    public void setArtifactManager(final ArtifactManager artifactManager) {
+        this.artifactManager = artifactManager;
+    }
+
+    //
+    // Building
+    //
+
+    public GShell build() throws Exception {
+        log.debug("Building");
+
+        // Initialize the container & components
+        getContainer();
+
+        // Configure download monitor
+        getArtifactManager().setDownloadMonitor(new ProgressSpinnerMonitor(getIo()));
+
+        // Configure settings (settings)
+        if (settings != null) {
+            getSettingsManager().setSettings(settings);
+        }
+        getSettingsManager().configure();
+
+        // Configure application
+        getApplicationManager().configure(applicationConfig);
+
+        // TODO: Get application shell
+        // return getApplicationManager().createShell();
+        
+        return null;
+    }
+}
\ No newline at end of file

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellBuilder.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellImpl.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellImpl.java?rev=658577&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellImpl.java (added)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellImpl.java Wed May 21 00:48:22 2008
@@ -0,0 +1,179 @@
+/*
+ * 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.gshell;
+
+import org.apache.geronimo.gshell.io.IO;
+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;
+import org.apache.geronimo.gshell.shell.ShellInfo;
+import org.apache.geronimo.gshell.plugin.CommandDiscoverer;
+import org.apache.geronimo.gshell.plugin.CommandDiscoveryListener;
+import org.apache.geronimo.gshell.security.ShellSecurityManager;
+import org.codehaus.plexus.ContainerConfiguration;
+import org.codehaus.plexus.DefaultContainerConfiguration;
+import org.codehaus.plexus.DefaultPlexusContainer;
+import org.codehaus.plexus.classworlds.ClassWorld;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A simple facade over GShell, sets up the container for you... you just run commands :-)
+ *
+ * @version $Rev$ $Date$
+ */
+public class GShellImpl
+    implements GShell
+{
+    private Logger log = LoggerFactory.getLogger(getClass());
+
+    private final ClassWorld classWorld;
+
+    private final IO io;
+
+    private final DefaultPlexusContainer container;
+
+    private final SecurityManager sm;
+
+    private final InteractiveShell shell;
+
+    public GShellImpl(final IO io) throws Exception {
+        this(new ClassWorld("gshell", Thread.currentThread().getContextClassLoader()), io);
+    }
+
+    public GShellImpl(final ClassWorld classWorld, final IO io) throws Exception {
+        assert classWorld != null;
+        assert io != null;
+
+        this.classWorld = classWorld;
+        this.io = io;
+
+        // Lets time how long init takes
+        StopWatch watch = new StopWatch(true);
+
+        log.debug("Initializing");
+
+        sm = new ShellSecurityManager();
+
+        SecurityManager psm = System.getSecurityManager();
+        System.setSecurityManager(sm);
+
+        try {
+            ContainerConfiguration config = new DefaultContainerConfiguration();
+            config.setName("gshell");
+            config.setClassWorld(classWorld);
+            config.addComponentDiscoverer(new CommandDiscoverer());
+            config.addComponentDiscoveryListener(new CommandDiscoveryListener());
+
+            container = new DefaultPlexusContainer(config);
+
+            //
+            // TODO: Disabled for now, re-hookup once rfile bits are ready
+            //
+            // Get our URL handler factory installed
+            // container.lookup(URLHandlerFactory.class);
+
+            // We first need to stuff in the IO context for the new shell instance
+            IOLookup.set(container, io);
+
+            // And then lets stuff in the environment too
+            Environment env = new DefaultEnvironment(io);
+            EnvironmentLookup.set(container, env);
+
+            // Then look up the shell we are gonna delegate to
+            shell = (InteractiveShell) container.lookup(InteractiveShell.class);
+        }
+        finally {
+            System.setSecurityManager(psm);
+        }
+
+        log.debug("Initialized in {}", watch);
+    }
+
+    public ShellInfo getShellInfo() {
+        return shell.getShellInfo();
+    }
+
+    public Environment getEnvironment() {
+        return shell.getEnvironment();
+    }
+
+    public Object execute(final String line) throws Exception {
+        SecurityManager psm = System.getSecurityManager();
+        System.setSecurityManager(sm);
+
+        try {
+            return shell.execute(line);
+        }
+        finally {
+            System.setSecurityManager(psm);
+        }
+    }
+
+    public Object execute(final Object... args) throws Exception {
+        SecurityManager psm = System.getSecurityManager();
+        System.setSecurityManager(sm);
+
+        try {
+            return shell.execute((Object[])args);
+        }
+        finally {
+            System.setSecurityManager(psm);
+        }
+    }
+
+    public Object execute(final String path, final Object[] args) throws Exception {
+        SecurityManager psm = System.getSecurityManager();
+        System.setSecurityManager(sm);
+
+        try {
+            return shell.execute(path, args);
+        }
+        finally {
+            System.setSecurityManager(psm);
+        }
+    }
+
+    public Object execute(Object[][] commands) throws Exception {
+        SecurityManager psm = System.getSecurityManager();
+        System.setSecurityManager(sm);
+
+        try {
+            return shell.execute(commands);
+        }
+        finally {
+            System.setSecurityManager(psm);
+        }
+    }
+
+    public void run(final Object... args) throws Exception {
+        SecurityManager psm = System.getSecurityManager();
+        System.setSecurityManager(sm);
+
+        try {
+            shell.run(args);
+        }
+        finally {
+            System.setSecurityManager(psm);
+        }
+    }
+}
\ No newline at end of file

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellImpl.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/GShellImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationConfiguration.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationConfiguration.java?rev=658577&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationConfiguration.java (added)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationConfiguration.java Wed May 21 00:48:22 2008
@@ -0,0 +1,78 @@
+/*
+ * 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.gshell.application;
+
+import org.apache.geronimo.gshell.io.IO;
+import org.apache.geronimo.gshell.shell.Environment;
+import org.apache.geronimo.gshell.model.application.Application;
+import org.apache.geronimo.gshell.DefaultEnvironment;
+
+/**
+ * ???
+ *
+ * @version $Rev$ $Date$
+ */
+public class ApplicationConfiguration
+{
+    private IO io;
+
+    private Environment environment;
+
+    private Application application;
+
+    private IO createIo() {
+        return new IO();
+    }
+
+    public IO getIo() {
+        if (io == null) {
+            io = createIo();
+        }
+        return io;
+    }
+
+    public void setIo(final IO io) {
+        this.io = io;
+    }
+
+    private Environment createEnvironment() {
+        return new DefaultEnvironment(getIo());
+    }
+
+    public Environment getEnvironment() {
+        if (environment == null) {
+            environment = createEnvironment();
+        }
+
+        return environment;
+    }
+
+    public void setEnvironment(final Environment environment) {
+        this.environment = environment;
+    }
+
+    public Application getApplication() {
+        return application;
+    }
+
+    public void setApplication(final Application application) {
+        this.application = application;
+    }
+}
\ No newline at end of file

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationConfiguration.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationConfiguration.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationConfiguration.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationContext.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationContext.java?rev=658577&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationContext.java (added)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationContext.java Wed May 21 00:48:22 2008
@@ -0,0 +1,36 @@
+/*
+ * 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.gshell.application;
+
+/**
+ * ???
+ *
+ * @version $Rev$ $Date$
+ */
+public interface ApplicationContext
+{
+    // getIo()
+
+    // getEnvironment()
+
+    // getApplication()
+    
+    // getContainer()
+}
\ No newline at end of file

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationContext.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationContext.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationContext.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationManager.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationManager.java?rev=658577&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationManager.java (added)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationManager.java Wed May 21 00:48:22 2008
@@ -0,0 +1,43 @@
+/*
+ * 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.gshell.application;
+
+import org.apache.geronimo.gshell.model.application.Application;
+import org.apache.geronimo.gshell.io.IO;
+import org.apache.geronimo.gshell.shell.Environment;
+import org.apache.maven.artifact.InvalidRepositoryException;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.PlexusContainerException;
+
+import java.net.MalformedURLException;
+
+/**
+ * ???
+ *
+ * @version $Rev$ $Date$
+ */
+public interface ApplicationManager
+{
+    void configure(ApplicationConfiguration config) throws Exception;
+
+    // createShell()
+
+    // getContext()
+}
\ No newline at end of file

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationManager.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/ApplicationManager.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/DefaultApplicationManager.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/DefaultApplicationManager.java?rev=658577&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/DefaultApplicationManager.java (added)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/DefaultApplicationManager.java Wed May 21 00:48:22 2008
@@ -0,0 +1,179 @@
+/*
+ * 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.gshell.application;
+
+import org.apache.geronimo.gshell.artifact.ArtifactManager;
+import org.apache.geronimo.gshell.lookup.EnvironmentLookup;
+import org.apache.geronimo.gshell.lookup.IOLookup;
+import org.apache.geronimo.gshell.model.application.Application;
+import org.apache.geronimo.gshell.model.common.Dependency;
+import org.apache.geronimo.gshell.model.common.SourceRepository;
+import org.apache.geronimo.gshell.plexus.GShellPlexusContainer;
+import org.apache.geronimo.gshell.plugin.CommandDiscoverer;
+import org.apache.geronimo.gshell.plugin.CommandDiscoveryListener;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
+import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
+import org.codehaus.plexus.ContainerConfiguration;
+import org.codehaus.plexus.DefaultContainerConfiguration;
+import org.codehaus.plexus.PlexusConstants;
+import org.codehaus.plexus.classworlds.ClassWorld;
+import org.codehaus.plexus.classworlds.realm.ClassRealm;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.context.Context;
+import org.codehaus.plexus.context.ContextException;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.net.URL;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Default implementation of the {@link ApplicationManager} component.
+ *
+ * @version $Rev$ $Date$
+ */
+@Component(role=ApplicationManager.class)
+public class DefaultApplicationManager
+    implements ApplicationManager, Contextualizable
+{
+    private final Logger log = LoggerFactory.getLogger(getClass());
+
+    @Requirement
+    private ArtifactManager artifactManager;
+    
+    private GShellPlexusContainer parentContainer;
+
+    private GShellPlexusContainer container;
+
+    public void contextualize(final Context context) throws ContextException {
+        assert context != null;
+
+        parentContainer = (GShellPlexusContainer) context.get(PlexusConstants.PLEXUS_KEY);
+        
+        log.debug("Parent container: {}", parentContainer);
+    }
+
+    // createContext()
+    
+    // getContext()
+
+    public void configure(final ApplicationConfiguration config) throws Exception {
+        assert config != null;
+
+        log.debug("Configuring; config: {}", config);
+
+        Application application = config.getApplication();
+        if (application == null) {
+            throw new IllegalStateException("Missing application configuration");
+        }
+
+        // Setup artifact manager repositories
+        assert artifactManager != null;
+        
+        File repository = application.getRepository();
+        if (repository != null) {
+            artifactManager.setLocalRepository(repository);
+        }
+
+        List<SourceRepository> sourceRepositories = application.sourceRepositories();
+        if (sourceRepositories != null) {
+            for (SourceRepository repo : sourceRepositories) {
+                String loc = repo.getLocation();
+                URL url = new URL(loc);
+                String id = url.getHost(); // FIXME: Need to expose the repo id in the model, for now assume the id is the hostname
+                artifactManager.addRemoteRepository(id, url);
+            }
+        }
+
+        // Configure other application bits (branding, layout)
+        // TODO:
+
+        // Setup container
+        ArtifactFactory factory = artifactManager.getArtifactFactory();
+
+        Artifact originating = factory.createArtifact("dummy", "dummy", "1.0", null, "jar");
+
+        ArtifactResolutionRequest request = new ArtifactResolutionRequest();
+        request.setArtifact(originating);
+        request.setFilter(new ScopeArtifactFilter(Artifact.SCOPE_RUNTIME));
+
+        Set<Artifact> artifacts = new LinkedHashSet<Artifact>();
+        List<Dependency> dependencies = application.dependencies();
+        
+        if (dependencies != null && !dependencies.isEmpty()) {
+            log.debug("Application dependencies:");
+
+            for (Dependency dep : dependencies) {
+                Artifact artifact = factory.createArtifact(dep.getGroupId(), dep.getArtifactId(), dep.getVersion(), null, dep.getType());
+                assert artifact != null;
+
+                log.debug(" + {}", artifact);
+
+                artifacts.add(artifact);
+            }
+        }
+
+        request.setArtifactDependencies(artifacts);
+
+        ArtifactResolutionResult result = artifactManager.resolve(request);
+        // TODO: Validate the result and complain if not valid (exceptions/missing/whatever), may want to move that to the AM
+
+        ClassWorld classWorld = parentContainer.getContainerRealm().getWorld();
+        ClassRealm realm = parentContainer.getContainerRealm().createChildRealm(application.getId());
+        Set<Artifact> resolvedArtifacts = result.getArtifacts();
+
+        if (resolvedArtifacts != null && !resolvedArtifacts.isEmpty()) {
+            log.debug("Application classpath:");
+
+            for (Artifact artifact : resolvedArtifacts) {
+                File file = artifact.getFile();
+                assert file != null;
+
+                log.debug(" + {}", file);
+
+                realm.addURL(file.toURI().toURL());
+            }
+        }
+
+        ContainerConfiguration cc = new DefaultContainerConfiguration();
+        cc.setName(application.getId());
+        cc.setClassWorld(classWorld);
+        cc.setRealm(realm);
+        cc.addComponentDiscoverer(new CommandDiscoverer());
+        cc.addComponentDiscoveryListener(new CommandDiscoveryListener());
+        // cc.addComponentDiscoverer(new PluginDiscoverer());
+        // cc.addComponentDiscoveryListener(new PluginCollector());
+
+        container = parentContainer.createChild(cc);
+        log.debug("Container: {}", container);
+
+        // Install lookup intestances
+        IOLookup.set(container, config.getIo());
+        EnvironmentLookup.set(container, config.getEnvironment());
+    }
+}
\ No newline at end of file

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/DefaultApplicationManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/DefaultApplicationManager.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/application/DefaultApplicationManager.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/console/JLineConsole.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/console/JLineConsole.java?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/console/JLineConsole.java (original)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/console/JLineConsole.java Wed May 21 00:48:22 2008
@@ -19,14 +19,13 @@
 
 package org.apache.geronimo.gshell.console;
 
-import java.io.File;
 import java.io.IOException;
 import java.io.PrintWriter;
 
 import jline.ConsoleReader;
 import jline.History;
 import jline.Terminal;
-import org.apache.geronimo.gshell.command.IO;
+import org.apache.geronimo.gshell.io.IO;
 import org.apache.geronimo.gshell.shell.Shell;
 
 /**

Modified: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/lookup/EnvironmentLookup.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/lookup/EnvironmentLookup.java?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/lookup/EnvironmentLookup.java (original)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/lookup/EnvironmentLookup.java Wed May 21 00:48:22 2008
@@ -20,6 +20,7 @@
 package org.apache.geronimo.gshell.lookup;
 
 import org.apache.geronimo.gshell.shell.Environment;
+import org.apache.geronimo.gshell.plexus.LookupFactorySupport;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.factory.ComponentFactory;

Modified: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/lookup/IOLookup.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/lookup/IOLookup.java?rev=658577&r1=658576&r2=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/lookup/IOLookup.java (original)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/lookup/IOLookup.java Wed May 21 00:48:22 2008
@@ -19,7 +19,8 @@
 
 package org.apache.geronimo.gshell.lookup;
 
-import org.apache.geronimo.gshell.command.IO;
+import org.apache.geronimo.gshell.io.IO;
+import org.apache.geronimo.gshell.plexus.LookupFactorySupport;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.factory.ComponentFactory;

Added: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandContainer.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandContainer.java?rev=658577&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandContainer.java (added)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandContainer.java Wed May 21 00:48:22 2008
@@ -0,0 +1,30 @@
+/*
+ * 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.gshell.plugin;
+
+/**
+ * ???
+ *
+ * @version $Rev$ $Date$
+ */
+public interface CommandContainer
+{
+
+}
\ No newline at end of file

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandContainer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandContainer.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandContainer.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/DefaultPluginManager.java?rev=658577&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/DefaultPluginManager.java (added)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/DefaultPluginManager.java Wed May 21 00:48:22 2008
@@ -0,0 +1,45 @@
+/*
+ * 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.gshell.plugin;
+
+import org.codehaus.plexus.component.annotations.Component;
+import org.apache.geronimo.gshell.model.plugin.Plugin;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Default implementation of the {@link PluginManager} component.
+ *
+ * @version $Rev$ $Date$
+ */
+@Component(role=PluginManager.class)
+public class DefaultPluginManager
+    implements PluginManager
+{
+    private final Logger log = LoggerFactory.getLogger(getClass());
+
+    public void addPlugin(final Plugin plugin) {
+        assert plugin != null;
+
+        log.debug("Adding plugin: {}", plugin);
+        
+        // TODO
+    }
+}
\ No newline at end of file

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/DefaultPluginManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/DefaultPluginManager.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/DefaultPluginManager.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginCollector.java (from r653220, geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandDiscoveryListener.java)
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginCollector.java?p2=geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginCollector.java&p1=geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandDiscoveryListener.java&r1=653220&r2=658577&rev=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandDiscoveryListener.java (original)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginCollector.java Wed May 21 00:48:22 2008
@@ -19,62 +19,30 @@
 
 package org.apache.geronimo.gshell.plugin;
 
-import org.apache.geronimo.gshell.descriptor.CommandDescriptor;
-import org.apache.geronimo.gshell.descriptor.CommandSetDescriptor;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.discovery.ComponentDiscoveryEvent;
 import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener;
-import org.codehaus.plexus.component.repository.ComponentSetDescriptor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Map;
-import java.util.HashMap;
-
 /**
- * Maps command ids to command descriptors for just in time component initialization.
- *
- * This is not a typical Plexus component and can not have any requirements or custom configuration
- * due to how the container hacks this puppy into existance.  This component is bound to a role
- * which is the same as its classname.
+ * ???
  *
  * @version $Rev$ $Date$
  */
 @Component(role=CommandDiscoveryListener.class)
-public class CommandDiscoveryListener
+public class PluginCollector
     implements ComponentDiscoveryListener
 {
     private final Logger log = LoggerFactory.getLogger(getClass());
 
-    private Map<String,CommandDescriptor> descriptors = new HashMap<String,CommandDescriptor>();
-
-    public CommandDiscoveryListener() {}
-
     public String getId() {
         return getClass().getSimpleName();
     }
-    
+
     public void componentDiscovered(final ComponentDiscoveryEvent event) {
         assert event != null;
 
-        log.trace("Event: {}", event);
-
-        ComponentSetDescriptor components = event.getComponentSetDescriptor();
-
-        if (components instanceof ComponentSetDescriptorAdapter) {
-            CommandSetDescriptor commands = ((ComponentSetDescriptorAdapter)components).getCommands();
-
-            for (CommandDescriptor descriptor : commands.getCommands()) {
-                log.debug("Found: {}", descriptor);
-
-                descriptors.put(descriptor.getId(), descriptor);
-            }
-        }
-    }
-
-    public CommandDescriptor getCommandDescriptor(final String id) {
-        assert id != null;
-
-        return descriptors.get(id);
+        // TODO: Track plugin component set descriptors
     }
 }
\ No newline at end of file

Copied: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginContainer.java (from r653220, geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandDiscoverer.java)
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginContainer.java?p2=geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginContainer.java&p1=geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandDiscoverer.java&r1=653220&r2=658577&rev=658577&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/CommandDiscoverer.java (original)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginContainer.java Wed May 21 00:48:22 2008
@@ -19,47 +19,12 @@
 
 package org.apache.geronimo.gshell.plugin;
 
-import java.io.Reader;
-
-import com.thoughtworks.xstream.XStreamException;
-import org.apache.geronimo.gshell.descriptor.CommandSetDescriptor;
-import org.codehaus.plexus.component.discovery.AbstractComponentDiscoverer;
-import org.codehaus.plexus.component.repository.ComponentSetDescriptor;
-import org.codehaus.plexus.configuration.PlexusConfigurationException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 /**
- * Plexus component discovery for GShell commands.
+ * ???
  *
  * @version $Rev$ $Date$
  */
-public class CommandDiscoverer
-    extends AbstractComponentDiscoverer
+public interface PluginContainer
 {
-    private final Logger log = LoggerFactory.getLogger(getClass());
-
-    public CommandDiscoverer() {}
-
-    protected String getComponentDescriptorLocation() {
-        return "META-INF/gshell/commands.xml";
-    }
-
-    protected ComponentSetDescriptor createComponentDescriptors(final Reader reader, final String source) throws PlexusConfigurationException {
-        assert reader != null;
-        assert source != null;
-
-        log.debug("Loading descriptors from: {}", source);
-
-        try {
-            CommandSetDescriptor commands = CommandSetDescriptor.fromXML(reader);
-
-            log.debug("Loaded command set: {}", commands.getId());
 
-            return new ComponentSetDescriptorAdapter(commands);
-        }
-        catch (XStreamException e) {
-            throw new PlexusConfigurationException("Failed to load descriptors from: " + source, e);
-        }
-    }
 }
\ No newline at end of file

Added: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginContext.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginContext.java?rev=658577&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginContext.java (added)
+++ geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginContext.java Wed May 21 00:48:22 2008
@@ -0,0 +1,30 @@
+/*
+ * 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.gshell.plugin;
+
+/**
+ * ???
+ *
+ * @version $Rev$ $Date$
+ */
+public interface PluginContext
+{
+
+}
\ No newline at end of file

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginContext.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginContext.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-core/src/main/java/org/apache/geronimo/gshell/plugin/PluginContext.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain