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