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/09/12 09:47:43 UTC

svn commit: r694633 - in /geronimo/gshell/trunk: gshell-application/src/main/java/org/apache/geronimo/gshell/application/ gshell-application/src/main/java/org/apache/geronimo/gshell/application/plugin/ gshell-assembly/src/main/underlay/etc/ gshell-mode...

Author: jdillon
Date: Fri Sep 12 00:47:42 2008
New Revision: 694633

URL: http://svn.apache.org/viewvc?rev=694633&view=rev
Log:
Add plugin elements to model
Added PluginManager component to handle loading plugins

Added:
    geronimo/gshell/trunk/gshell-application/src/main/java/org/apache/geronimo/gshell/application/plugin/
    geronimo/gshell/trunk/gshell-application/src/main/java/org/apache/geronimo/gshell/application/plugin/PluginManager.java   (with props)
    geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/Plugin.java   (contents, props changed)
      - copied, changed from r694338, 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/application/PluginGroup.java   (contents, props changed)
      - copied, changed from r694338, geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/DependencyGroup.java
    geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Artifact.java   (contents, props changed)
      - copied, changed from r694338, geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/DependencySupport.java
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/PluginManagerImpl.java   (contents, props changed)
      - copied, changed from r694356, geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/application/SettingsManagerImpl.java
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/event/
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/event/PluginLoadedEvent.java   (contents, props changed)
      - copied, changed from r694356, geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/application/event/ShellCreatedEvent.java
Removed:
    geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/DependencySupport.java
Modified:
    geronimo/gshell/trunk/gshell-application/src/main/java/org/apache/geronimo/gshell/application/ApplicationManager.java
    geronimo/gshell/trunk/gshell-assembly/src/main/underlay/etc/application.xml
    geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModel.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/DependencyGroup.java
    geronimo/gshell/trunk/gshell-model/src/test/java/org/apache/geronimo/gshell/model/application/ApplicationMarshallerTest.java
    geronimo/gshell/trunk/gshell-model/src/test/resources/org/apache/geronimo/gshell/model/application/application1.xml
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/application/ApplicationManagerImpl.java
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/resources/META-INF/spring/components.xml
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/resources/META-INF/spring/components.xml

Modified: geronimo/gshell/trunk/gshell-application/src/main/java/org/apache/geronimo/gshell/application/ApplicationManager.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-application/src/main/java/org/apache/geronimo/gshell/application/ApplicationManager.java?rev=694633&r1=694632&r2=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-application/src/main/java/org/apache/geronimo/gshell/application/ApplicationManager.java (original)
+++ geronimo/gshell/trunk/gshell-application/src/main/java/org/apache/geronimo/gshell/application/ApplicationManager.java Fri Sep 12 00:47:42 2008
@@ -22,7 +22,7 @@
 import org.apache.geronimo.gshell.shell.ShellFactory;
 
 /**
- * Provides the interface to manager applications.
+ * Provides the interface to manage applications.
  *
  * @version $Rev$ $Date$
  */

Added: geronimo/gshell/trunk/gshell-application/src/main/java/org/apache/geronimo/gshell/application/plugin/PluginManager.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-application/src/main/java/org/apache/geronimo/gshell/application/plugin/PluginManager.java?rev=694633&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-application/src/main/java/org/apache/geronimo/gshell/application/plugin/PluginManager.java (added)
+++ geronimo/gshell/trunk/gshell-application/src/main/java/org/apache/geronimo/gshell/application/plugin/PluginManager.java Fri Sep 12 00:47:42 2008
@@ -0,0 +1,29 @@
+/*
+ * 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.plugin;
+
+/**
+ * Provides the interface to manage plugins.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface PluginManager
+{
+}
\ No newline at end of file

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

Propchange: geronimo/gshell/trunk/gshell-application/src/main/java/org/apache/geronimo/gshell/application/plugin/PluginManager.java
------------------------------------------------------------------------------
    svn:executable = *

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

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

Modified: geronimo/gshell/trunk/gshell-assembly/src/main/underlay/etc/application.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-assembly/src/main/underlay/etc/application.xml?rev=694633&r1=694632&r2=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-assembly/src/main/underlay/etc/application.xml (original)
+++ geronimo/gshell/trunk/gshell-assembly/src/main/underlay/etc/application.xml Fri Sep 12 00:47:42 2008
@@ -44,63 +44,43 @@
         -->
     </remoteRepositories>
 
-    <dependencyGroups>
-        <dependencyGroup>
+    <dependencies>
+        <dependency>
             <groupId>org.apache.geronimo.gshell.wisdom</groupId>
+            <artifactId>gshell-wisdom-core</artifactId>
             <version>1.0-alpha-2-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
 
-            <dependency>
-                <artifactId>gshell-wisdom-core</artifactId>
-            </dependency>
-        </dependencyGroup>
-
-        <dependencyGroup>
+    <pluginGroups>
+        <pluginGroup>
             <groupId>org.apache.geronimo.gshell.commands</groupId>
             <version>1.0-alpha-2-SNAPSHOT</version>
 
-            <dependency>
+            <plugin>
                 <artifactId>gshell-builtins</artifactId>
-            </dependency>
+            </plugin>
 
             <!--
-            <dependency>
+            <plugin>
                 <artifactId>gshell-optional</artifactId>
-            </dependency>
+            </plugin>
 
-            <dependency>
+            <plugin>
                 <artifactId>gshell-repository</artifactId>
-            </dependency>
+            </plugin>
 
-            <dependency>
+            <plugin>
                 <artifactId>gshell-bsf</artifactId>
-            </dependency>
+            </plugin>
 
-            <dependency>
+            <plugin>
                 <artifactId>gshell-vfs</artifactId>
-            </dependency>
+            </plugin>
             -->
-        </dependencyGroup>
-
-        <!--
-        <dependencyGroup>
-            <groupId>org.apache.geronimo.gshell.remote</groupId>
-            <version>1.0-alpha-2-SNAPSHOT</version>
-
-            <dependency>
-                <artifactId>gshell-remote-client</artifactId>
-            </dependency>
-
-            <dependency>
-                <artifactId>gshell-remote-server</artifactId>
-            </dependency>
-        </dependencyGroup>
-        -->
-    </dependencyGroups>
+        </pluginGroup>
+    </pluginGroups>
 
-    <!--
-    TODO: Need plugins
-    -->
-    
     <branding>
         <name>gshell</name>
     </branding>

Modified: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModel.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModel.java?rev=694633&r1=694632&r2=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModel.java (original)
+++ geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/ApplicationModel.java Fri Sep 12 00:47:42 2008
@@ -25,6 +25,8 @@
 import org.apache.geronimo.gshell.model.common.DescriptorSupport;
 import org.apache.geronimo.gshell.model.common.LocalRepository;
 import org.apache.geronimo.gshell.model.common.RemoteRepository;
+import org.apache.geronimo.gshell.model.application.Plugin;
+import org.apache.geronimo.gshell.model.application.PluginGroup;
 import org.apache.geronimo.gshell.model.layout.Layout;
 
 import java.util.ArrayList;
@@ -46,11 +48,17 @@
     private List<Dependency> dependencies;
 
     private List<DependencyGroup> dependencyGroups;
-    
+
+    private List<Plugin> plugins;
+
+    private List<PluginGroup> pluginGroups;
+
     private Branding branding;
 
     private Layout layout;
 
+    // LocalRepository
+
     public LocalRepository getLocalRepository() {
         return localRepository;
     }
@@ -59,7 +67,9 @@
         this.localRepository = localRepository;
     }
 
-    public List<RemoteRepository> remoteRepositories() {
+    // RemoteRepository
+
+    public List<RemoteRepository> getRemoteRepositories() {
         if (remoteRepositories == null) {
             remoteRepositories = new ArrayList<RemoteRepository>();
         }
@@ -70,10 +80,12 @@
     public void add(final RemoteRepository repository) {
         assert repository != null;
 
-        remoteRepositories().add(repository);
+        getRemoteRepositories().add(repository);
     }
 
-    public List<DependencyGroup> dependencyGroups() {
+    // DependencyGroup
+
+    public List<DependencyGroup> getDependencyGroups() {
         if (dependencyGroups == null) {
             dependencyGroups = new ArrayList<DependencyGroup>();
         }
@@ -84,10 +96,12 @@
     public void add(final DependencyGroup group) {
         assert group != null;
 
-        dependencyGroups().add(group);
+        getDependencyGroups().add(group);
     }
 
-    public List<Dependency> dependencies() {
+    // Dependency
+
+    public List<Dependency> getDependencies() {
         if (dependencies == null) {
             dependencies = new ArrayList<Dependency>();
         }
@@ -95,17 +109,17 @@
         return dependencies;
     }
 
-    public List<Dependency> dependencies(boolean includeGroups) {
+    public List<Dependency> getDependencies(boolean includeGroups) {
         if (!includeGroups) {
-            return dependencies();
+            return getDependencies();
         }
 
         List<Dependency> list = new ArrayList<Dependency>();
 
-        list.addAll(dependencies());
+        list.addAll(getDependencies());
 
-        for (DependencyGroup group : dependencyGroups()) {
-            list.addAll(group.dependencies());
+        for (DependencyGroup group : getDependencyGroups()) {
+            list.addAll(group.getDependencies());
         }
 
         return list;
@@ -114,9 +128,59 @@
     public void add(final Dependency dependency) {
         assert dependency != null;
 
-        dependencies().add(dependency);
+        getDependencies().add(dependency);
     }
 
+    // PluginGroup
+
+    public List<PluginGroup> getPluginGroups() {
+        if (pluginGroups == null) {
+            pluginGroups = new ArrayList<PluginGroup>();
+        }
+
+        return pluginGroups;
+    }
+
+    public void add(final PluginGroup group) {
+        assert group != null;
+
+        getPluginGroups().add(group);
+    }
+
+    // Plugin
+
+    public List<Plugin> getPlugins() {
+        if (plugins == null) {
+            plugins = new ArrayList<Plugin>();
+        }
+
+        return plugins;
+    }
+
+    public List<Plugin> getPlugins(boolean includeGroups) {
+        if (!includeGroups) {
+            return getPlugins();
+        }
+
+        List<Plugin> list = new ArrayList<Plugin>();
+
+        list.addAll(getPlugins());
+
+        for (PluginGroup group : getPluginGroups()) {
+            list.addAll(group.getPlugins());
+        }
+
+        return list;
+    }
+
+    public void add(final Plugin plugin) {
+        assert plugin != null;
+
+        getPlugins().add(plugin);
+    }
+
+    // Branding
+
     public Branding getBranding() {
         if (branding == null) {
             throw new IllegalStateException("Missing 'branding' configuration");
@@ -129,6 +193,8 @@
         this.branding = branding;
     }
 
+    // Layout
+    
     public Layout getLayout() {
         return layout;
     }

Copied: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/Plugin.java (from r694338, geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Dependency.java)
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/Plugin.java?p2=geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/Plugin.java&p1=geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Dependency.java&r1=694338&r2=694633&rev=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Dependency.java (original)
+++ geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/Plugin.java Fri Sep 12 00:47:42 2008
@@ -17,29 +17,30 @@
  * under the License.
  */
 
-package org.apache.geronimo.gshell.model.common;
+package org.apache.geronimo.gshell.model.application;
 
 import com.thoughtworks.xstream.annotations.XStreamAlias;
+import org.apache.geronimo.gshell.model.common.Artifact;
 
 /**
- * Dependency artifact configuration.
+ * Plugin artifact configuration.
  *
  * @version $Rev$ $Date$
  */
-@XStreamAlias("dependency")
-public class Dependency
-    extends DependencySupport
+@XStreamAlias("plugin")
+public class Plugin
+    extends Artifact
 {
     public static final String DEFAULT_TYPE = "jar";
 
-    private transient DependencyGroup dependencyGroup;
+    private transient PluginGroup pluginGroup;
 
-    public DependencyGroup getDependencyGroup() {
-        return dependencyGroup;
+    public PluginGroup getPluginGroup() {
+        return pluginGroup;
     }
 
-    public void setDependencyGroup(final DependencyGroup group) {
-        this.dependencyGroup = group;
+    public void setPluginGroup(final PluginGroup group) {
+        this.pluginGroup = group;
     }
 
     // Return configuration detals from the group if not directly configured
@@ -48,8 +49,8 @@
     public String getGroupId() {
         String tmp = super.getGroupId();
 
-        if (tmp == null && dependencyGroup != null) {
-            tmp = dependencyGroup.getGroupId();
+        if (tmp == null && pluginGroup != null) {
+            tmp = pluginGroup.getGroupId();
         }
 
         return tmp;
@@ -59,8 +60,8 @@
     public String getArtifactId() {
         String tmp = super.getArtifactId();
 
-        if (tmp == null && dependencyGroup != null) {
-            tmp = dependencyGroup.getArtifactId();
+        if (tmp == null && pluginGroup != null) {
+            tmp = pluginGroup.getArtifactId();
         }
 
         return tmp;
@@ -70,8 +71,8 @@
     public String getClassifier() {
         String tmp = super.getClassifier();
 
-        if (tmp == null && dependencyGroup != null) {
-            tmp = dependencyGroup.getClassifier();
+        if (tmp == null && pluginGroup != null) {
+            tmp = pluginGroup.getClassifier();
         }
 
         return tmp;
@@ -81,8 +82,8 @@
     public String getType() {
         String tmp = super.getType();
 
-        if (tmp == null && dependencyGroup != null) {
-            tmp = dependencyGroup.getType();
+        if (tmp == null && pluginGroup != null) {
+            tmp = pluginGroup.getType();
         }
 
         if (tmp == null) {
@@ -96,8 +97,8 @@
     public String getVersion() {
         String tmp = super.getVersion();
 
-        if (tmp == null && dependencyGroup != null) {
-            tmp = dependencyGroup.getVersion();
+        if (tmp == null && pluginGroup != null) {
+            tmp = pluginGroup.getVersion();
         }
 
         return tmp;

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

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

Propchange: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/Plugin.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

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

Copied: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/PluginGroup.java (from r694338, geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/DependencyGroup.java)
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/PluginGroup.java?p2=geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/PluginGroup.java&p1=geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/DependencyGroup.java&r1=694338&r2=694633&rev=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/DependencyGroup.java (original)
+++ geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/PluginGroup.java Fri Sep 12 00:47:42 2008
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.geronimo.gshell.model.common;
+package org.apache.geronimo.gshell.model.application;
 
 import com.thoughtworks.xstream.annotations.XStreamAlias;
 import com.thoughtworks.xstream.annotations.XStreamImplicit;
@@ -25,38 +25,40 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.geronimo.gshell.model.common.Artifact;
+
 /**
- * Groups dependency elements to allow artifact configuration to be shared.
+ * Groups plugin elements to allow artifact configuration to be shared.
  *
  * @version $Rev$ $Date$
  */
-@XStreamAlias("dependencyGroup")
-public class DependencyGroup
-    extends DependencySupport
+@XStreamAlias("pluginGroup")
+public class PluginGroup
+    extends Artifact
 {
     @XStreamImplicit
-    private List<Dependency> dependencies;
+    private List<Plugin> plugins;
 
-    public List<Dependency> dependencies() {
-        if (dependencies == null) {
-            dependencies = new ArrayList<Dependency>();
+    public List<Plugin> getPlugins() {
+        if (plugins == null) {
+            plugins = new ArrayList<Plugin>();
         }
 
-        return dependencies;
+        return plugins;
     }
-    
-    public void add(final Dependency dependency) {
-        assert dependency != null;
 
-        dependencies().add(dependency);
+    public void add(final Plugin plugin) {
+        assert plugin != null;
+
+        getPlugins().add(plugin);
     }
 
     public int size() {
-        return dependencies().size();
+        return getPlugins().size();
     }
-    
+
     public boolean isEmpty() {
-        return dependencies().isEmpty();
+        return getPlugins().isEmpty();
     }
 
     /**
@@ -65,8 +67,8 @@
     @SuppressWarnings({"UnusedDeclaration"})
     private Object readResolve() {
         if (!isEmpty()) {
-            for (Dependency child : dependencies()) {
-                child.setDependencyGroup(this);
+            for (Plugin child : getPlugins()) {
+                child.setPluginGroup(this);
             }
         }
 

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

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

Propchange: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/application/PluginGroup.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

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

Copied: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Artifact.java (from r694338, geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/DependencySupport.java)
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Artifact.java?p2=geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Artifact.java&p1=geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/DependencySupport.java&r1=694338&r2=694633&rev=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/DependencySupport.java (original)
+++ geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Artifact.java Fri Sep 12 00:47:42 2008
@@ -22,11 +22,11 @@
 import org.apache.geronimo.gshell.model.Element;
 
 /**
- * Support for {@link Dependency} and {@link DependencyGroup} elements.
+ * Defines an artifact (groupId, artifactId, version, etc).
  *
  * @version $Rev$ $Date$
  */
-public abstract class DependencySupport
+public abstract class Artifact
     extends Element
 {
     private String groupId;

Propchange: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Artifact.java
------------------------------------------------------------------------------
    svn:eol-style = native

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

Propchange: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Artifact.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Dependency.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Dependency.java?rev=694633&r1=694632&r2=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Dependency.java (original)
+++ geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/Dependency.java Fri Sep 12 00:47:42 2008
@@ -28,7 +28,7 @@
  */
 @XStreamAlias("dependency")
 public class Dependency
-    extends DependencySupport
+    extends Artifact
 {
     public static final String DEFAULT_TYPE = "jar";
 

Modified: geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/DependencyGroup.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/DependencyGroup.java?rev=694633&r1=694632&r2=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/DependencyGroup.java (original)
+++ geronimo/gshell/trunk/gshell-model/src/main/java/org/apache/geronimo/gshell/model/common/DependencyGroup.java Fri Sep 12 00:47:42 2008
@@ -32,12 +32,12 @@
  */
 @XStreamAlias("dependencyGroup")
 public class DependencyGroup
-    extends DependencySupport
+    extends Artifact
 {
     @XStreamImplicit
     private List<Dependency> dependencies;
 
-    public List<Dependency> dependencies() {
+    public List<Dependency> getDependencies() {
         if (dependencies == null) {
             dependencies = new ArrayList<Dependency>();
         }
@@ -48,15 +48,15 @@
     public void add(final Dependency dependency) {
         assert dependency != null;
 
-        dependencies().add(dependency);
+        getDependencies().add(dependency);
     }
 
     public int size() {
-        return dependencies().size();
+        return getDependencies().size();
     }
     
     public boolean isEmpty() {
-        return dependencies().isEmpty();
+        return getDependencies().isEmpty();
     }
 
     /**
@@ -65,7 +65,7 @@
     @SuppressWarnings({"UnusedDeclaration"})
     private Object readResolve() {
         if (!isEmpty()) {
-            for (Dependency child : dependencies()) {
+            for (Dependency child : getDependencies()) {
                 child.setDependencyGroup(this);
             }
         }

Modified: geronimo/gshell/trunk/gshell-model/src/test/java/org/apache/geronimo/gshell/model/application/ApplicationMarshallerTest.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/test/java/org/apache/geronimo/gshell/model/application/ApplicationMarshallerTest.java?rev=694633&r1=694632&r2=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/test/java/org/apache/geronimo/gshell/model/application/ApplicationMarshallerTest.java (original)
+++ geronimo/gshell/trunk/gshell-model/src/test/java/org/apache/geronimo/gshell/model/application/ApplicationMarshallerTest.java Fri Sep 12 00:47:42 2008
@@ -86,7 +86,7 @@
 
         ApplicationModel root = marshaller.unmarshal(input);
 
-        root.dependencies(true);
+        root.getDependencies(true);
         
         System.out.println(root);
     }
@@ -96,7 +96,7 @@
 
         ApplicationModel root = marshaller.unmarshal(url);
 
-        root.dependencies(true);
+        root.getDependencies(true);
 
         System.out.println(root);
     }

Modified: geronimo/gshell/trunk/gshell-model/src/test/resources/org/apache/geronimo/gshell/model/application/application1.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-model/src/test/resources/org/apache/geronimo/gshell/model/application/application1.xml?rev=694633&r1=694632&r2=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-model/src/test/resources/org/apache/geronimo/gshell/model/application/application1.xml (original)
+++ geronimo/gshell/trunk/gshell-model/src/test/resources/org/apache/geronimo/gshell/model/application/application1.xml Fri Sep 12 00:47:42 2008
@@ -42,13 +42,13 @@
     </remoteRepositories>
 
     <!--
-    <dependencies>
+    <getDependencies>
         <dependency>
             <groupId>a</groupId>
             <artifactId>b</artifactId>
             <version>c</version>
         </dependency>
-    </dependencies>
+    </getDependencies>
     -->
 
     <dependencyGroups>

Modified: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/application/ApplicationManagerImpl.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/application/ApplicationManagerImpl.java?rev=694633&r1=694632&r2=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/application/ApplicationManagerImpl.java (original)
+++ geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/application/ApplicationManagerImpl.java Fri Sep 12 00:47:42 2008
@@ -19,8 +19,8 @@
 
 package org.apache.geronimo.gshell.wisdom.application;
 
-import org.apache.geronimo.gshell.application.ApplicationConfiguration;
 import org.apache.geronimo.gshell.application.Application;
+import org.apache.geronimo.gshell.application.ApplicationConfiguration;
 import org.apache.geronimo.gshell.application.ApplicationManager;
 import org.apache.geronimo.gshell.application.ApplicationSecurityManager;
 import org.apache.geronimo.gshell.application.settings.SettingsManager;
@@ -43,9 +43,9 @@
 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.AndArtifactFilter;
 import org.apache.maven.artifact.resolver.filter.ExclusionSetFilter;
 import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
-import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
 import org.codehaus.plexus.interpolation.PropertiesBasedValueSource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -77,13 +77,13 @@
 
     @Autowired
     private SettingsManager settingsManager;
-
-    private Application application;
-
+    
     private BeanContainer container;
 
     private BeanContainer applicationContainer;
 
+    private Application application;
+    
     public void setBeanContainer(final BeanContainer container) {
         assert container != null;
         
@@ -182,7 +182,7 @@
         }
 
         // Setup remote repositories
-        for (RemoteRepository repo : applicationModel.remoteRepositories()) {
+        for (RemoteRepository repo : applicationModel.getRemoteRepositories()) {
             artifactManager.getRepositoryManager().addRemoteRepository(repo.getId(), repo.getLocationUri());
         }
     }
@@ -194,7 +194,7 @@
 
         List<URL> classPath = createClassPath(applicationModel);
 
-        BeanContainer child = container.createChild(applicationModel.getId(), classPath);
+        BeanContainer child = container.createChild("application[" + applicationModel.getId() + "]", classPath);
 
         log.debug("Application container: {}", child);
 
@@ -263,7 +263,7 @@
         request.setFilter(filter);
 
         Set<Artifact> artifacts = new LinkedHashSet<Artifact>();
-        List<Dependency> dependencies = applicationModel.dependencies(true); // include groups
+        List<Dependency> dependencies = applicationModel.getDependencies(true); // include groups
 
         if (!dependencies.isEmpty()) {
             ArtifactFactory factory = artifactManager.getArtifactFactory();

Modified: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/resources/META-INF/spring/components.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/resources/META-INF/spring/components.xml?rev=694633&r1=694632&r2=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/resources/META-INF/spring/components.xml (original)
+++ geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/resources/META-INF/spring/components.xml Fri Sep 12 00:47:42 2008
@@ -28,9 +28,9 @@
             http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
 
     <context:annotation-config/>
-    
-    <bean id="applicationManager" class="org.apache.geronimo.gshell.wisdom.application.ApplicationManagerImpl"/>
 
     <bean id="settingsManager" class="org.apache.geronimo.gshell.wisdom.application.SettingsManagerImpl"/>
 
+    <bean id="applicationManager" class="org.apache.geronimo.gshell.wisdom.application.ApplicationManagerImpl"/>
+
 </beans>
\ No newline at end of file

Copied: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/PluginManagerImpl.java (from r694356, geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/application/SettingsManagerImpl.java)
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/PluginManagerImpl.java?p2=geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/PluginManagerImpl.java&p1=geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/application/SettingsManagerImpl.java&r1=694356&r2=694633&rev=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/application/SettingsManagerImpl.java (original)
+++ geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/PluginManagerImpl.java Fri Sep 12 00:47:42 2008
@@ -17,115 +17,165 @@
  * under the License.
  */
 
-package org.apache.geronimo.gshell.wisdom.application;
+package org.apache.geronimo.gshell.wisdom.plugin;
 
-import org.apache.geronimo.gshell.application.settings.SettingsConfiguration;
-import org.apache.geronimo.gshell.application.settings.SettingsManager;
-import org.apache.geronimo.gshell.application.settings.Settings;
-import org.apache.geronimo.gshell.artifact.ArtifactManager;
-import org.apache.geronimo.gshell.model.common.RemoteRepository;
-import org.apache.geronimo.gshell.model.interpolate.Interpolator;
-import org.apache.geronimo.gshell.model.interpolate.InterpolatorSupport;
-import org.apache.geronimo.gshell.model.settings.SettingsModel;
 import org.apache.geronimo.gshell.spring.BeanContainerAware;
 import org.apache.geronimo.gshell.spring.BeanContainer;
-import org.apache.geronimo.gshell.wisdom.application.event.SettingsConfiguredEvent;
-import org.codehaus.plexus.interpolation.PropertiesBasedValueSource;
-import org.slf4j.Logger;
+import org.apache.geronimo.gshell.application.plugin.PluginManager;
+import org.apache.geronimo.gshell.application.Application;
+import org.apache.geronimo.gshell.artifact.ArtifactManager;
+import org.apache.geronimo.gshell.wisdom.application.event.ApplicationConfiguredEvent;
+import org.apache.geronimo.gshell.wisdom.plugin.event.PluginLoadedEvent;
+import org.apache.geronimo.gshell.model.application.Plugin;
+import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
+import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.ExclusionSetFilter;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.slf4j.LoggerFactory;
+import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.ApplicationEvent;
+
+import java.util.List;
+import java.util.Set;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
+import java.net.URL;
+import java.io.File;
 
 /**
- * Default implementation of the {@link SettingsManager} component.
+ * Default implementation of the {@link PluginManager} component.
  *
  * @version $Rev$ $Date$
  */
-public class SettingsManagerImpl
-    implements SettingsManager, BeanContainerAware
+public class PluginManagerImpl
+    implements PluginManager, BeanContainerAware, ApplicationListener
 {
     private final Logger log = LoggerFactory.getLogger(getClass());
 
     @Autowired
     private ArtifactManager artifactManager;
 
-    private SettingsConfiguration settingsConfiguration;
-
-    private Settings settings;
-
     private BeanContainer container;
 
     public void setBeanContainer(final BeanContainer container) {
         assert container != null;
 
+        System.out.println("Setting bean container: " + container);
+        
         this.container = container;
     }
 
-    public Settings getSettings() {
-        if (settings == null) {
-            throw new IllegalStateException("Not configured");
-        }
+    public void onApplicationEvent(final ApplicationEvent event) {
+        assert event != null;
 
-        return settings;
-    }
+        if (event instanceof ApplicationConfiguredEvent) {
+            ApplicationConfiguredEvent targetEvent = (ApplicationConfiguredEvent)event;
 
-    public void configure(final SettingsConfiguration config) throws Exception {
-        assert config != null;
+            loadPlugins(targetEvent.getApplication());
+        }
+    }
 
-        log.trace("Configuring; config: {}", config);
+    private void loadPlugins(final Application application) {
+        assert application != null;
 
-        // Validate the configuration
-        config.validate();
+        log.debug("Loading plugins for application: {}", application.getModel().getId());
 
-        if (config.getModel() != null) {
-	        // Interpolate the model
-	        interpolate(config);
+        List<Plugin> plugins = application.getModel().getPlugins(true);
 
-	        // Configure settings
-            configure(config.getModel());
+        for (Plugin plugin : plugins) {
+            try {
+                loadPlugin(plugin);
+            }
+            catch (Exception e) {
+                log.error("Failed to load plugin: " + plugin, e);
+            }
         }
+    }
 
-        // TODO: Merge in some default settings or something?
+    private void loadPlugin(final Plugin plugin) throws Exception {
+        assert plugin != null;
 
-        settingsConfiguration = config;
+        log.debug("Loading plugin: {}", plugin);
 
-        settings = new Settings()
-        {
-            public SettingsModel getModel() {
-                return settingsConfiguration.getModel();
-            }
-        };
+        List<URL> classPath = createClassPath(plugin);
 
-        log.debug("Settings configured");
+        BeanContainer pluginContainer = container.createChild("plugin[" + plugin + "]", classPath);
 
-        container.publish(new SettingsConfiguredEvent(this));
+        pluginContainer.publish(new PluginLoadedEvent(this, plugin));
     }
 
-    private void interpolate(final SettingsConfiguration config) throws Exception {
-    	assert config != null;
-
-    	SettingsModel model = config.getModel();
-        Interpolator<SettingsModel> interp = new InterpolatorSupport<SettingsModel>();
+    private List<URL> createClassPath(final Plugin plugin) throws Exception {
+        assert plugin != null;
 
-        // Add value sources to resolve muck
-        interp.addValueSource(new PropertiesBasedValueSource(System.getProperties()));
-        interp.addValueSource(new PropertiesBasedValueSource(model.getProperties()));
+        ArtifactResolutionRequest request = new ArtifactResolutionRequest();
 
-        model = interp.interpolate(model);
+        AndArtifactFilter filter = new AndArtifactFilter();
 
-        // Update the configuration with the new model
-        config.setModel(model);
-    }
+        filter.add(new ScopeArtifactFilter(Artifact.SCOPE_RUNTIME));
 
-    private void configure(final SettingsModel settingsModel) throws Exception {
-        assert settingsModel != null;
+        filter.add(new ExclusionSetFilter(new String[] {
+            "aopalliance",
+            "geronimo-annotation_1.0_spec",
+            "gshell-ansi",
+            "gshell-api",
+            "gshell-application",
+            "gshell-clp",
+            "gshell-i18n",
+            "gshell-io",
+            "gshell-model",
+            "gshell-spring",
+            "gshell-yarn",
+            "gshell-interpolation",
+            "gshell-layout",
+            "jcl104-over-slf4j",
+            "jline",
+            "plexus-classworlds",
+            "slf4j-api",
+            "spring-core",
+            "spring-context",
+            "spring-beans",
+            "xpp3_min",
+            "xstream",
+        }));
+
+        request.setFilter(filter);
+
+        Set<Artifact> artifacts = new LinkedHashSet<Artifact>();
+        ArtifactFactory factory = artifactManager.getArtifactFactory();
+
+        Artifact pluginArtifact = factory.createArtifact(plugin.getGroupId(), plugin.getArtifactId(), plugin.getVersion(), null, plugin.getType());
+        assert pluginArtifact != null;
+
+        log.debug("Plugin artifact: {}", pluginArtifact);
+
+        artifacts.add(pluginArtifact);
+
+        request.setArtifactDependencies(artifacts);
+
+        ArtifactResolutionResult result = artifactManager.resolve(request);
+
+        List<URL> classPath = new LinkedList<URL>();
+        Set<Artifact> resolvedArtifacts = result.getArtifacts();
+
+        if (resolvedArtifacts != null && !resolvedArtifacts.isEmpty()) {
+            log.debug("Plugin classpath:");
+
+            for (Artifact artifact : resolvedArtifacts) {
+                File file = artifact.getFile();
+                assert file != null;
 
-        // TODO: Add settings interpolation here
+                URL url = file.toURI().toURL();
+                log.debug(" + {}", url);
 
-        // Setup remote repositories
-        for (RemoteRepository repo : settingsModel.remoteRepositories()) {
-            artifactManager.getRepositoryManager().addRemoteRepository(repo.getId(), repo.getLocationUri());
+                classPath.add(url);
+            }
         }
 
-        // TODO: apply other artifact related settings (proxy, auth, whatever)
+        return classPath;
     }
 }
\ No newline at end of file

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

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

Propchange: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/PluginManagerImpl.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

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

Copied: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/event/PluginLoadedEvent.java (from r694356, geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/application/event/ShellCreatedEvent.java)
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/event/PluginLoadedEvent.java?p2=geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/event/PluginLoadedEvent.java&p1=geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/application/event/ShellCreatedEvent.java&r1=694356&r2=694633&rev=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/application/event/ShellCreatedEvent.java (original)
+++ geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/event/PluginLoadedEvent.java Fri Sep 12 00:47:42 2008
@@ -17,24 +17,33 @@
  * under the License.
  */
 
-package org.apache.geronimo.gshell.wisdom.application.event;
+package org.apache.geronimo.gshell.wisdom.plugin.event;
 
-import org.apache.geronimo.gshell.shell.Shell;
 import org.springframework.context.ApplicationEvent;
+import org.apache.geronimo.gshell.application.plugin.PluginManager;
+import org.apache.geronimo.gshell.model.application.Plugin;
 
 /**
- * Event fired once the application has constructed a shell.
- * 
+ * Event fire once a plugin has been loaded.
+ *
  * @version $Rev$ $Date$
  */
-public class ShellCreatedEvent
+public class PluginLoadedEvent
     extends ApplicationEvent
 {
-    public ShellCreatedEvent(final Shell source) {
+    private Plugin plugin;
+
+    public PluginLoadedEvent(final PluginManager source, final Plugin plugin) {
         super(source);
+
+        this.plugin = plugin;
+    }
+
+    public PluginManager getPluginManager() {
+        return (PluginManager)getSource();
     }
 
-    public Shell getShell() {
-        return (Shell) getSource();
+    public Plugin getPlugin() {
+        return plugin;
     }
 }
\ No newline at end of file

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

Propchange: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/event/PluginLoadedEvent.java
------------------------------------------------------------------------------
    svn:executable = *

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

Propchange: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/plugin/event/PluginLoadedEvent.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

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

Modified: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/resources/META-INF/spring/components.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/resources/META-INF/spring/components.xml?rev=694633&r1=694632&r2=694633&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/resources/META-INF/spring/components.xml (original)
+++ geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/resources/META-INF/spring/components.xml Fri Sep 12 00:47:42 2008
@@ -28,6 +28,8 @@
             http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
 
     <context:annotation-config/>
+
+    <bean id="pluginManager" class="org.apache.geronimo.gshell.wisdom.plugin.PluginManagerImpl"/>
     
     <bean id="commandContainerFactory" class="org.apache.geronimo.gshell.wisdom.command.CommandContainerFactoryImpl"/>