You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2008/10/23 18:25:48 UTC

svn commit: r707408 [2/2] - in /servicemix/smx4/kernel/trunk: ./ assembly/ assembly/src/main/descriptors/ assembly/src/main/filtered-resources/etc/ gshell/ gshell/gshell-core/ gshell/gshell-core/src/main/filtered-resources/org/apache/geronimo/gshell/br...

Modified: servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/META-INF/spring/gshell.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/META-INF/spring/gshell.xml?rev=707408&r1=707407&r2=707408&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/META-INF/spring/gshell.xml (original)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/META-INF/spring/gshell.xml Thu Oct 23 09:25:46 2008
@@ -24,71 +24,156 @@
   http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans.xsd
   http://www.springframework.org/schema/util
-  http://www.springframework.org/schema/util/spring-util.xsd">
+  http://www.springframework.org/schema/util/spring-util.xsd
+  http://servicemix.apache.org/schema/servicemix-gshell
+  http://servicemix.apache.org/schema/servicemix-gshell/servicemix-gshell.xsd">
 
-    <bean id="branding" class="org.apache.geronimo.gshell.branding.ServiceMixBranding">
-        <constructor-arg ref="versionLoader" />
-        <constructor-arg ref="terminal" />
-    </bean>
+    <import resource="classpath:org/apache/servicemix/kernel/gshell/core/commands.xml" />
 
-    <bean id="versionLoader" class="org.apache.geronimo.gshell.branding.PropertiesVersionLoader">
-        <constructor-arg value="servicemix-version.properties" />
+    <bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/>
+    <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
+    <bean class="org.apache.geronimo.gshell.spring.BeanContainerAwareProcessor">
+        <constructor-arg>
+            <bean class="org.apache.servicemix.kernel.gshell.core.SpringBeanContainerFactoryBean" />
+        </constructor-arg>
     </bean>
 
-    <bean id="terminal" class="org.apache.geronimo.gshell.spring.TerminalFactoryBean" />
+    <bean id="io" class="org.apache.geronimo.gshell.io.IO" />
 
-    <bean id="promptReader" class="org.apache.geronimo.gshell.console.PromptReader" init-method="initialize">
-        <constructor-arg ref="terminal" />
-        <constructor-arg ref="io" />
+    <bean id="application" class="org.apache.servicemix.kernel.gshell.core.ApplicationImpl">
+        <property name="id" value="servicemix" />
+        <property name="io" ref="io" />
+        <property name="model">
+            <bean class="org.apache.geronimo.gshell.model.application.ApplicationModel">
+                <!-- TODO: fix version -->
+                <property name="version" value="1.0.0" />
+                <property name="branding" ref="branding" />
+            </bean>
+        </property>
+        <property name="variables">
+            <bean class="org.apache.geronimo.gshell.command.Variables" />
+        </property>
     </bean>
 
-    <bean id="commandExecutor" class="org.apache.geronimo.gshell.spring.SpringCommandExecutor" init-method="init">
-        <property name="commandLineBuilder" ref="commandLineBuilder" />
-        <property name="commandRegistry" ref="commandRegistry" />
-        <property name="env" ref="environment" />
-        <property name="layoutManager" ref="commandRegistry" />
-    </bean>
+    <bean id="branding" class="org.apache.servicemix.kernel.gshell.core.ServiceMixBranding" />
 
-    <bean id="interactiveShell" class="org.apache.geronimo.gshell.DefaultShell">
-        <constructor-arg ref="shellInfo" />
-        <constructor-arg ref="branding" />
-        <constructor-arg ref="commandExecutor" />
-        <constructor-arg ref="terminal" />
-        <constructor-arg ref="environment" />
-        <constructor-arg ref="io" />
-        <constructor-arg ref="history" />
-        <property name="prompter" ref="prompter" />
-    </bean>
+    <bean id="eventManager" class="org.apache.geronimo.gshell.event.EventManagerImpl"/>
 
-    <bean id="shellInfo" class="org.apache.geronimo.gshell.DefaultShellInfo" init-method="initialize">
-        <constructor-arg ref="branding" />
-    </bean>
+    <bean id="commandLineParser" class="org.apache.geronimo.gshell.parser.CommandLineParser"/>
+
+    <bean id="aliasRegistry" class="org.apache.geronimo.gshell.wisdom.registry.AliasRegistryImpl"/>
+
+    <bean id="aliasMetaMapper" class="org.apache.geronimo.gshell.wisdom.registry.AliasMetaMapper"/>
+
+    <bean id="commandRegistry" class="org.apache.geronimo.gshell.wisdom.registry.CommandRegistryImpl"/>
+
+    <bean id="commandMetaMapper" class="org.apache.geronimo.gshell.wisdom.registry.CommandMetaMapper"/>
+
+    <bean id="commandResolver" class="org.apache.geronimo.gshell.wisdom.registry.CommandResolverImpl"/>
+
+    <bean class="org.apache.geronimo.gshell.wisdom.command.AliasCommand" scope="prototype"/>
+
+    <bean class="org.apache.geronimo.gshell.wisdom.command.GroupCommand" scope="prototype"/>
+
+    <bean id="commandLineBuilder" class="org.apache.geronimo.gshell.wisdom.shell.CommandLineBuilderImpl"/>
+
+    <bean id="commandLineExecutor" class="org.apache.geronimo.gshell.wisdom.shell.CommandLineExecutorImpl"/>
 
-    <bean id="commandRegistry" class="org.apache.geronimo.gshell.spring.SpringCommandRegistry">
-        <constructor-arg ref="environment" />
+    <bean id="shell" class="org.apache.geronimo.gshell.wisdom.shell.ShellImpl" scope="prototype">
+        <property name="completers">
+            <list>
+                <ref bean="commandsCompleter"/>
+                <ref bean="aliasNameCompleter"/>
+            </list>
+        </property>
+        <property name="prompter">
+            <bean class="org.apache.geronimo.gshell.wisdom.shell.ConsolePrompterImpl"/>
+        </property>
+        <property name="errorHandler">
+            <bean class="org.apache.geronimo.gshell.wisdom.shell.ConsoleErrorHandlerImpl"/>
+        </property>
+        <property name="history">
+            <bean class="org.apache.geronimo.gshell.wisdom.shell.HistoryImpl"/>
+        </property>
     </bean>
 
-    <bean id="commandLineBuilder" class="org.apache.geronimo.gshell.spring.SpringCommandLineBuilder">
-        <property name="environment" ref="environment" />
-        <property name="executor" ref="commandExecutor" />
+    <bean id="commandNameCompleter" class="org.apache.geronimo.gshell.wisdom.completer.CommandNameCompleter"/>
+
+    <bean id="aliasNameCompleter" class="org.apache.geronimo.gshell.wisdom.completer.AliasNameCompleter"/>
+
+    <bean id="commandsCompleter" class="org.apache.geronimo.gshell.wisdom.completer.CommandsCompleter"/>
+
+    <bean id="metaDataRegistry" class="org.apache.geronimo.gshell.vfs.provider.meta.data.MetaDataRegistryImpl"/>
+
+    <bean id="metaFileProviderConfigurer" class="org.apache.geronimo.gshell.vfs.config.FileProviderConfigurer">
+        <property name="scheme" value="meta"/>
+        <property name="provider">
+            <bean class="org.apache.geronimo.gshell.vfs.provider.meta.MetaFileProvider"/>
+        </property>
     </bean>
 
-    <bean id="environment" class="org.springframework.aop.framework.ProxyFactoryBean">
-      <property name="targetSource">
-          <bean class="org.apache.geronimo.gshell.spring.EnvironmentTargetSource" />
-      </property>
+    <bean id="fileSystemAccess" class="org.apache.geronimo.gshell.vfs.FileSystemAccessImpl"/>
+
+    <bean id="fileObjectNameCompleter" class="org.apache.geronimo.gshell.vfs.FileObjectNameCompleter"/>
+
+    <bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
+        <property name="customEditors">
+            <map>
+                <entry key="org.apache.commons.vfs.CacheStrategy">
+                    <bean class="org.apache.geronimo.gshell.vfs.config.CacheStrategyEditor"/>
+                </entry>
+            </map>
+        </property>
     </bean>
 
-    <bean id="io" class="org.apache.geronimo.gshell.spring.ProxyIO" />
+    <!--
+    TODO: Set tempDir File arg in constructor to set the temporary location, may need 2 replicators?
+    -->
+    <bean id="defaultFileReplicator" class="org.apache.commons.vfs.impl.DefaultFileReplicator"/>
+
+    <bean id="fileSystemManager" class="org.apache.geronimo.gshell.vfs.config.FileSystemManagerFactoryBean">
+        <property name="filesCache">
+            <bean class="org.apache.commons.vfs.cache.SoftRefFilesCache"/>
+        </property>
+
+        <property name="cacheStrategy" value="ON_RESOLVE"/>
+
+        <property name="fileReplicator">
+            <bean class="org.apache.commons.vfs.impl.PrivilegedFileReplicator">
+                <constructor-arg ref="defaultFileReplicator"/>
+            </bean>
+        </property>
+
+        <!--
+        TODO: Try and root the temporary store under ${gshell.home}/tmp or something
+        -->
+        <property name="temporaryFileStore">
+            <ref bean="defaultFileReplicator"/>
+        </property>
+
+        <property name="fileContentInfoFactory">
+            <bean class="org.apache.commons.vfs.impl.FileContentInfoFilenameFactory"/>
+        </property>
+
+        <property name="defaultProvider">
+            <bean class="org.apache.commons.vfs.provider.url.UrlFileProvider"/>
+        </property>
+    </bean>
 
-    <bean id="history" class="org.apache.geronimo.gshell.console.FileHistory">
-        <constructor-arg ref="branding" />
+    <bean class="org.apache.geronimo.gshell.vfs.config.FileProviderConfigurer">
+        <property name="scheme" value="tmp"/>
+        <property name="provider">
+            <bean class="org.apache.commons.vfs.provider.temp.TemporaryFileProvider"/>
+        </property>
     </bean>
 
-    <bean id="prompter" class="org.apache.geronimo.gshell.spring.Prompter">
-        <constructor-arg ref="shellInfo" />
-        <constructor-arg ref="environment" />
-        <property name="branding" ref="branding" />
+    <bean class="org.apache.geronimo.gshell.vfs.config.FileProviderConfigurer">
+        <property name="scheme" value="ram"/>
+        <property name="provider">
+            <bean class="org.apache.commons.vfs.provider.ram.RamFileProvider"/>
+        </property>
     </bean>
+    
+    <bean id="applicationManager" class="org.apache.servicemix.kernel.gshell.core.ApplicationManagerImpl"/>
 
 </beans>
\ No newline at end of file

Copied: servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/org/apache/servicemix/kernel/gshell/core/commands.xml (from r707358, servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/META-INF/spring/gshell-local.xml)
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/org/apache/servicemix/kernel/gshell/core/commands.xml?p2=servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/org/apache/servicemix/kernel/gshell/core/commands.xml&p1=servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/META-INF/spring/gshell-local.xml&r1=707358&r2=707408&rev=707408&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/META-INF/spring/gshell-local.xml (original)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/org/apache/servicemix/kernel/gshell/core/commands.xml Thu Oct 23 09:25:46 2008
@@ -20,24 +20,38 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:util="http://www.springframework.org/schema/util"
-       xmlns:osgi="http://www.springframework.org/schema/osgi"
        xsi:schemaLocation="
   http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans.xsd
   http://www.springframework.org/schema/util
-  http://www.springframework.org/schema/util/spring-util.xsd
-  http://www.springframework.org/schema/osgi
-  http://www.springframework.org/schema/osgi/spring-osgi.xsd">
+  http://www.springframework.org/schema/util/spring-util.xsd">
 
+    <bean id="statelessCommandTemplate" class="org.apache.geronimo.gshell.wisdom.command.StatelessCommand" abstract="true">
+        <property name="documenter">
+            <bean class="org.apache.geronimo.gshell.wisdom.command.MessageSourceCommandDocumenter"/>
+        </property>
 
-    <osgi:reference id="mainService" interface="org.apache.servicemix.kernel.main.spi.MainService" />
-
-    <bean id="gshell" class="org.apache.geronimo.gshell.spring.GShell"
-                      init-method="start" destroy-method="stop">
-        <constructor-arg ref="interactiveShell" />
-        <property name="start" value="${startLocalConsole}" />
-        <property name="mainService" ref="mainService" />
+        <property name="completer">
+            <bean class="org.apache.geronimo.gshell.wisdom.command.NullCommandCompleter"/>
+        </property>
+
+        <property name="messages">
+            <bean class="org.apache.geronimo.gshell.wisdom.command.CommandMessageSource"/>
+        </property>
+    </bean>
+
+    <bean id="statefulCommandTemplate" class="org.apache.geronimo.gshell.wisdom.command.StatefulCommand" abstract="true">
+        <property name="documenter">
+            <bean class="org.apache.geronimo.gshell.wisdom.command.MessageSourceCommandDocumenter"/>
+        </property>
+
+        <property name="completer">
+            <bean class="org.apache.geronimo.gshell.wisdom.command.NullCommandCompleter"/>
+        </property>
+
+        <property name="messages">
+            <bean class="org.apache.geronimo.gshell.wisdom.command.CommandMessageSource"/>
+        </property>
     </bean>
-    
 
 </beans>
\ No newline at end of file

Copied: servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/org/apache/servicemix/kernel/gshell/core/commands/InfoAction.properties (from r707358, servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/filtered-resources/org/apache/geronimo/gshell/branding/servicemix-version.properties)
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/org/apache/servicemix/kernel/gshell/core/commands/InfoAction.properties?p2=servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/org/apache/servicemix/kernel/gshell/core/commands/InfoAction.properties&p1=servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/filtered-resources/org/apache/geronimo/gshell/branding/servicemix-version.properties&r1=707358&r2=707408&rev=707408&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/filtered-resources/org/apache/geronimo/gshell/branding/servicemix-version.properties (original)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/org/apache/servicemix/kernel/gshell/core/commands/InfoAction.properties Thu Oct 23 09:25:46 2008
@@ -17,4 +17,11 @@
 ## under the License.
 ##
 
-version=${pom.version}
+##
+## $Rev: 703511 $ $Date: 2008-10-10 18:07:36 +0200 (Fri, 10 Oct 2008) $
+##
+
+command.description=Display JVM informations about the current application.
+
+command.manual=\
+  TODO: about manual
\ No newline at end of file

Added: servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/org/apache/servicemix/kernel/gshell/core/servicemix-gshell.xsd
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/org/apache/servicemix/kernel/gshell/core/servicemix-gshell.xsd?rev=707408&view=auto
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/org/apache/servicemix/kernel/gshell/core/servicemix-gshell.xsd (added)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-core/src/main/resources/org/apache/servicemix/kernel/gshell/core/servicemix-gshell.xsd Thu Oct 23 09:25:46 2008
@@ -0,0 +1,270 @@
+<?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: 699828 $ $Date: 2008-09-28 16:35:27 +0200 (Sun, 28 Sep 2008) $ -->
+
+<xsd:schema xmlns="http://servicemix.apache.org/schema/servicemix-gshell"
+        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+        xmlns:beans="http://www.springframework.org/schema/beans"
+        targetNamespace="http://servicemix.apache.org/schema/servicemix-gshell"
+        elementFormDefault="qualified"
+        attributeFormDefault="unqualified">
+
+    <xsd:import namespace="http://www.springframework.org/schema/beans"/>
+
+    <xsd:annotation>
+        <xsd:documentation>
+            Defines the configuration elements for Apache ServiceMix Kernel commands support.
+        </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:element name="command-bundle">
+        <xsd:complexType>
+            <xsd:annotation>
+                <xsd:documentation>
+                    Defines a command bundle.
+                </xsd:documentation>
+            </xsd:annotation>
+            <xsd:sequence>
+                <xsd:element ref="beans:description" minOccurs="0" maxOccurs="1"/>
+                <xsd:choice minOccurs="0" maxOccurs="unbounded">
+					<xsd:element ref="command"/>
+					<xsd:element ref="alias"/>
+                    <xsd:element ref="link"/>
+				</xsd:choice>
+            </xsd:sequence>
+        </xsd:complexType>
+    </xsd:element>
+
+    <xsd:element name="command">
+        <xsd:complexType>
+            <xsd:annotation>
+                <xsd:documentation>
+                    Defines a command.
+                </xsd:documentation>
+            </xsd:annotation>
+            <xsd:sequence>
+                <xsd:element ref="beans:description" minOccurs="0" maxOccurs="1"/>
+                <!--
+                NOTE: Not using an xsd:choice here, as I can't seem to figure out how to get it to properly
+                      validate the min/max of the containted elements.  W/o the xsd:choice the validation
+                      works, though have to define elements in order :-(
+                -->
+                <xsd:element ref="action" minOccurs="1" maxOccurs="1"/>
+                <xsd:element ref="documenter" minOccurs="0" maxOccurs="1"/>
+                <xsd:choice minOccurs="0" maxOccurs="1">
+                    <xsd:element ref="completer"/>
+                    <xsd:element ref="completers"/>
+                </xsd:choice>
+                <xsd:element ref="message-source" minOccurs="0" maxOccurs="1"/>
+            </xsd:sequence>
+            <xsd:attribute name="name" type="xsd:string" use="required"/>
+            <xsd:attribute name="type" use="optional" default="stateful">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The command type.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string">
+                        <xsd:enumeration value="stateless"/>
+                        <xsd:enumeration value="stateful"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:attribute>
+        </xsd:complexType>
+    </xsd:element>
+
+    <xsd:element name="link">
+        <xsd:complexType>
+            <xsd:annotation>
+                <xsd:documentation>
+                    Defines a link command.
+                </xsd:documentation>
+            </xsd:annotation>
+            <xsd:sequence>
+                <xsd:element ref="beans:description" minOccurs="0" maxOccurs="1"/>
+            </xsd:sequence>
+            <xsd:attribute name="name" type="xsd:string" use="required"/>
+            <xsd:attribute name="target" type="xsd:string" use="required"/>
+        </xsd:complexType>
+    </xsd:element>
+
+    <xsd:group name="commandComponentElements">
+        <xsd:annotation>
+            <xsd:documentation>
+                Defines the valid elements for command components.  This is based on beans:beanElements,
+                stripping off the bits which are not valid in the command component context.
+            </xsd:documentation>
+        </xsd:annotation>
+		<xsd:sequence>
+			<xsd:element ref="beans:description" minOccurs="0"/>
+			<xsd:choice minOccurs="0" maxOccurs="unbounded">
+				<xsd:element ref="beans:meta"/>
+				<xsd:element ref="beans:constructor-arg"/>
+				<xsd:element ref="beans:property"/>
+				<xsd:element ref="beans:qualifier"/>
+				<xsd:element ref="beans:lookup-method"/>
+				<xsd:element ref="beans:replaced-method"/>
+				<!--
+				NOTE: This seems to cause schema validation problems... not really sure why
+				<xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+				-->
+			</xsd:choice>
+		</xsd:sequence>
+	</xsd:group>
+
+    <xsd:attributeGroup name="commandComponentAttributes">
+        <xsd:annotation>
+            <xsd:documentation>
+                Defines the valid attributes for command components.  This is based on beans:beanAttributes,
+                stripping off the bits which are not valid in the command component context.
+            </xsd:documentation>
+        </xsd:annotation>
+		<xsd:attribute name="class" type="xsd:string"/>
+		<xsd:attribute name="parent" type="xsd:string"/>
+		<xsd:attribute name="autowire" default="default">
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:NMTOKEN">
+					<xsd:enumeration value="default"/>
+					<xsd:enumeration value="no"/>
+					<xsd:enumeration value="byName"/>
+					<xsd:enumeration value="byType"/>
+					<xsd:enumeration value="constructor"/>
+					<xsd:enumeration value="autodetect"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:attribute>
+		<xsd:attribute name="dependency-check" default="default">
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:NMTOKEN">
+					<xsd:enumeration value="default"/>
+					<xsd:enumeration value="none"/>
+					<xsd:enumeration value="simple"/>
+					<xsd:enumeration value="objects"/>
+					<xsd:enumeration value="all"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:attribute>
+		<xsd:attribute name="depends-on" type="xsd:string"/>
+		<xsd:attribute name="autowire-candidate" default="default" type="beans:defaultable-boolean"/>
+		<xsd:attribute name="primary" type="xsd:boolean"/>
+		<xsd:attribute name="init-method" type="xsd:string"/>
+		<xsd:attribute name="destroy-method" type="xsd:string"/>
+		<xsd:attribute name="factory-method" type="xsd:string"/>
+		<xsd:attribute name="factory-bean" type="xsd:string"/>
+		<xsd:anyAttribute namespace="##other" processContents="lax"/>
+	</xsd:attributeGroup>
+
+    <xsd:complexType name="commandComponent" abstract="true">
+        <xsd:annotation>
+            <xsd:documentation>
+                Support for command component elements, which are all basically just beans.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:group ref="commandComponentElements"/>
+        <xsd:attributeGroup ref="commandComponentAttributes"/>
+    </xsd:complexType>
+
+    <xsd:element name="action">
+        <xsd:complexType>
+            <xsd:annotation>
+                <xsd:documentation>
+                    Defines a command action.
+                </xsd:documentation>
+            </xsd:annotation>
+            <xsd:complexContent>
+                <xsd:extension base="commandComponent"/>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <xsd:element name="documenter">
+        <xsd:complexType>
+            <xsd:annotation>
+                <xsd:documentation>
+                    Defines a command documenter.
+                </xsd:documentation>
+            </xsd:annotation>
+            <xsd:complexContent>
+                <xsd:extension base="commandComponent"/>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <xsd:element name="completer">
+        <xsd:complexType>
+            <xsd:annotation>
+                <xsd:documentation>
+                    Defines a command completer.
+                </xsd:documentation>
+            </xsd:annotation>
+            <xsd:complexContent>
+                <xsd:extension base="commandComponent"/>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <xsd:element name="completers">
+        <xsd:complexType>
+            <xsd:annotation>
+                <xsd:documentation>
+                    Defines a configurable command completer with a set of completers.
+                </xsd:documentation>
+            </xsd:annotation>
+            <xsd:sequence>
+                <xsd:choice minOccurs="1" maxOccurs="unbounded">
+                    <xsd:element ref="beans:bean"/>
+                    <xsd:element ref="beans:ref"/>
+                    <xsd:element ref="beans:null"/>
+                </xsd:choice>
+            </xsd:sequence>
+        </xsd:complexType>
+    </xsd:element>
+
+    <xsd:element name="message-source">
+        <xsd:complexType>
+            <xsd:annotation>
+                <xsd:documentation>
+                    Defines a command message source.
+                </xsd:documentation>
+            </xsd:annotation>
+            <xsd:complexContent>
+                <xsd:extension base="commandComponent"/>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+    <xsd:element name="alias">
+        <xsd:complexType>
+            <xsd:annotation>
+                <xsd:documentation>
+                    Defines a command alias.
+                </xsd:documentation>
+            </xsd:annotation>
+            <xsd:sequence>
+                <xsd:element ref="beans:description" minOccurs="0" maxOccurs="1"/>
+            </xsd:sequence>
+            <xsd:attribute name="name" type="xsd:string" use="required"/>
+            <xsd:attribute name="alias" type="xsd:string" use="required"/>
+        </xsd:complexType>
+    </xsd:element>
+
+</xsd:schema>
\ No newline at end of file

Added: servicemix/smx4/kernel/trunk/gshell/gshell-core/src/test/java/org/apache/servicemix/kernel/gshell/core/Test.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-core/src/test/java/org/apache/servicemix/kernel/gshell/core/Test.java?rev=707408&view=auto
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-core/src/test/java/org/apache/servicemix/kernel/gshell/core/Test.java (added)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-core/src/test/java/org/apache/servicemix/kernel/gshell/core/Test.java Thu Oct 23 09:25:46 2008
@@ -0,0 +1,20 @@
+package org.apache.servicemix.kernel.gshell.core;
+
+import junit.framework.TestCase;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.apache.geronimo.gshell.shell.Shell;
+import org.apache.geronimo.gshell.application.ApplicationManager;
+import org.apache.geronimo.gshell.io.SystemOutputHijacker;
+
+public class Test extends TestCase {
+
+    public void test() throws Exception {
+        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
+                new String[] { "META-INF/spring/gshell.xml", "META-INF/spring/gshell-commands.xml" });
+        ApplicationManager appMgr = (ApplicationManager) context.getBean("applicationManager");
+        assertNotNull(appMgr);
+        Shell shell = appMgr.create();
+        assertNotNull(shell);
+        shell.execute("help");
+    }
+}

Added: servicemix/smx4/kernel/trunk/gshell/gshell-core/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/gshell-core/src/test/resources/log4j.properties?rev=707408&view=auto
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/gshell-core/src/test/resources/log4j.properties (added)
+++ servicemix/smx4/kernel/trunk/gshell/gshell-core/src/test/resources/log4j.properties Thu Oct 23 09:25:46 2008
@@ -0,0 +1,33 @@
+################################################################################
+#
+#    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.
+#
+################################################################################
+
+# Root logger
+log4j.rootLogger=INFO, stdout
+
+# CONSOLE appender not used by default
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
+
+# File appender
+log4j.appender.out=org.apache.log4j.FileAppender
+log4j.appender.out.layout=org.apache.log4j.PatternLayout
+log4j.appender.out.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n
+log4j.appender.out.file=${servicemix.base}/data/log/servicemix.log
+log4j.appender.out.append=true

Modified: servicemix/smx4/kernel/trunk/gshell/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/gshell/pom.xml?rev=707408&r1=707407&r2=707408&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/gshell/pom.xml (original)
+++ servicemix/smx4/kernel/trunk/gshell/pom.xml Thu Oct 23 09:25:46 2008
@@ -35,6 +35,7 @@
 
     <modules>
         <module>gshell-core</module>
+        <!--
         <module>gshell-admin</module>
         <module>gshell-osgi</module>
         <module>gshell-obr</module>
@@ -43,6 +44,7 @@
         <module>gshell-log</module>
         <module>gshell-config</module>
         <module>gshell-packages</module>
+        -->
     </modules>
 
 </project>
\ No newline at end of file

Modified: servicemix/smx4/kernel/trunk/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/kernel/trunk/pom.xml?rev=707408&r1=707407&r2=707408&view=diff
==============================================================================
--- servicemix/smx4/kernel/trunk/pom.xml (original)
+++ servicemix/smx4/kernel/trunk/pom.xml Thu Oct 23 09:25:46 2008
@@ -37,11 +37,13 @@
     <modules>
         <module>main</module>
         <module>filemonitor</module>
-        <module>testing</module>
         <module>gshell</module>
         <module>spring</module>
+        <!--
+        <module>testing</module>
         <module>jaas</module>
         <module>client</module>
+        -->
         <module>assembly</module>
     </modules>
 
@@ -66,18 +68,21 @@
         <asm.version>2.2.3_1</asm.version>
         <cglib.version>2.1_3_1</cglib.version>
         <commons.io.version>1.3.2_1</commons.io.version>
+        <commons.jexl.version>1.1_1-SNAPSHOT</commons.jexl.version>
         <commons.logging.version>1.1.1</commons.logging.version>
+        <commons.vfs.version>1.0_1-SNAPSHOT</commons.vfs.version>
         <depends.maven.plugin.version>1.0</depends.maven.plugin.version>
-        <felix.configadmin.version>1.0.4</felix.configadmin.version>
-        <felix.main.version>1.2.1</felix.main.version>
+        <felix.configadmin.version>1.0.0</felix.configadmin.version>
+        <felix.main.version>1.0.4</felix.main.version>
         <felix.plugin.version>1.4.1</felix.plugin.version>
-        <felix.framework.version>1.2.1</felix.framework.version>
-        <felix.osgi.version>1.2.0</felix.osgi.version>
-        <felix.compendium.version>1.2.0</felix.compendium.version>
-        <felix.bundlerepository.version>1.2.0</felix.bundlerepository.version>
+        <felix.framework.version>1.0.4</felix.framework.version>
+        <felix.osgi.version>1.0.1</felix.osgi.version>
+        <felix.compendium.version>1.0.1</felix.compendium.version>
+        <felix.bundlerepository.version>1.0.2</felix.bundlerepository.version>
         <felix.prefs.version>1.0.2</felix.prefs.version>
+        <geronimo.annotation.version>1.1.1</geronimo.annotation.version>
         <geronimo.servlet.version>1.1.2</geronimo.servlet.version>
-        <gshell.version>1.0-alpha-2-r654638</gshell.version>
+        <gshell.version>1.0-alpha-2-SNAPSHOT</gshell.version>
         <jaxp.ri.version>1.4.2_1-SNAPSHOT</jaxp.ri.version>
         <junit.version>4.4_1</junit.version>
         <jline.version>0.9.94</jline.version>
@@ -356,8 +361,13 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.servicemix.bundles</groupId>
-                <artifactId>org.apache.servicemix.bundles.aopalliance</artifactId>
-                <version>${aopalliance.version}</version>
+                <artifactId>org.apache.servicemix.bundles.commons-jexl</artifactId>
+                <version>${commons.jexl.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.servicemix.bundles</groupId>
+                <artifactId>org.apache.servicemix.bundles.commons-vfs</artifactId>
+                <version>${commons.vfs.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.jmock</groupId>
@@ -437,6 +447,11 @@
                 <version>${gshell.version}</version>
             </dependency>
             <dependency>
+                <groupId>org.apache.geronimo.gshell</groupId>
+                <artifactId>gshell-model</artifactId>
+                <version>${gshell.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>org.apache.geronimo.gshell.support</groupId>
                 <artifactId>gshell-common</artifactId>
                 <version>${gshell.version}</version>
@@ -462,7 +477,7 @@
                 <version>${gshell.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.apache.geronimo.gshell</groupId>
+                <groupId>org.apache.geronimo.gshell.remote</groupId>
                 <artifactId>gshell-whisper</artifactId>
                 <version>${gshell.version}</version>
                 <exclusions>
@@ -577,6 +592,11 @@
                 <version>${geronimo.servlet.version}</version>
             </dependency>
             <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-annotation_1.0_spec</artifactId>
+                <version>${geronimo.annotation.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>org.apache.servicemix.specs</groupId>
                 <artifactId>org.apache.servicemix.specs.stax-api-1.0</artifactId>
                 <version>${servicemix.specs.version}</version>