Hook up the default download monitor

git-svn-id: https://svn.apache.org/repos/asf/geronimo/gshell/trunk@721599 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/gshell-cli/pom.xml b/gshell-cli/pom.xml
index 57e1a5d..9a0ebb3 100644
--- a/gshell-cli/pom.xml
+++ b/gshell-cli/pom.xml
@@ -59,6 +59,11 @@
         </dependency>
 
         <dependency>
+            <groupId>org.apache.geronimo.gshell.support</groupId>
+            <artifactId>gshell-artifact</artifactId>
+        </dependency>
+        
+        <dependency>
             <groupId>org.apache.geronimo.gshell</groupId>
             <artifactId>gshell-api</artifactId>
         </dependency>
diff --git a/gshell-cli/src/main/java/org/apache/geronimo/gshell/cli/Main.java b/gshell-cli/src/main/java/org/apache/geronimo/gshell/cli/Main.java
index 75ad3a5..4d0d845 100644
--- a/gshell-cli/src/main/java/org/apache/geronimo/gshell/cli/Main.java
+++ b/gshell-cli/src/main/java/org/apache/geronimo/gshell/cli/Main.java
@@ -20,6 +20,9 @@
 package org.apache.geronimo.gshell.cli;
 
 import org.apache.geronimo.gshell.ansi.Ansi;
+import org.apache.geronimo.gshell.application.model.ApplicationModel;
+import org.apache.geronimo.gshell.artifact.ArtifactResolver;
+import org.apache.geronimo.gshell.artifact.transfer.monitor.ProgressSpinnerMonitor;
 import org.apache.geronimo.gshell.clp.Argument;
 import org.apache.geronimo.gshell.clp.CommandLineProcessor;
 import org.apache.geronimo.gshell.clp.Option;
@@ -35,7 +38,6 @@
 import org.apache.geronimo.gshell.terminal.WindowsTerminal;
 import org.apache.geronimo.gshell.wisdom.builder.ShellBuilder;
 import org.apache.geronimo.gshell.wisdom.builder.ShellBuilderImpl;
-import org.apache.geronimo.gshell.application.model.ApplicationModel;
 
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
@@ -212,6 +214,10 @@
             builder.setClassLoader(getClass().getClassLoader());
             builder.setIo(io);
 
+            // Configure the download monitor
+            ArtifactResolver artifactResolver = builder.getContainer().getBean(ArtifactResolver.class);
+            artifactResolver.setTransferListener(new ProgressSpinnerMonitor(io));
+
             // --help and --version need access to the application's information, so we have to handle these options late
             if (help|version) {
                 ApplicationModel applicationModel = builder.getApplicationModel();
diff --git a/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/ArtifactResolverImpl.java b/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/ArtifactResolverImpl.java
index 2bc74b0..a4b27c0 100644
--- a/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/ArtifactResolverImpl.java
+++ b/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/ArtifactResolverImpl.java
@@ -52,8 +52,9 @@
     }
 
     public void setTransferListener(final TransferListener listener) {
+        assert listener != null;
+        
         // TODO: Hookup adapter to wagon manager
-        throw new Error();
     }
 
     public Result resolve(final Request request) throws Failure {
diff --git a/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/builder/ShellBuilder.java b/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/builder/ShellBuilder.java
index 4be852e..154cbe3 100644
--- a/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/builder/ShellBuilder.java
+++ b/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/builder/ShellBuilder.java
@@ -24,6 +24,7 @@
 import org.apache.geronimo.gshell.command.Variables;
 import org.apache.geronimo.gshell.io.IO;
 import org.apache.geronimo.gshell.shell.ShellFactory;
+import org.apache.geronimo.gshell.spring.BeanContainer;
 
 /**
  * Builds {@link org.apache.geronimo.gshell.shell.Shell} instanes.
@@ -33,6 +34,8 @@
 public interface ShellBuilder
     extends ShellFactory
 {
+    BeanContainer getContainer();
+
     ClassLoader getClassLoader();
 
     void setClassLoader(ClassLoader classLoader);
diff --git a/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/builder/ShellBuilderImpl.java b/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/builder/ShellBuilderImpl.java
index 4c8960e..71a3ff5 100644
--- a/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/builder/ShellBuilderImpl.java
+++ b/gshell-wisdom/gshell-wisdom-bootstrap/src/main/java/org/apache/geronimo/gshell/wisdom/builder/ShellBuilderImpl.java
@@ -60,7 +60,7 @@
         return container;
     }
 
-    private BeanContainer getContainer() {
+    public BeanContainer getContainer() {
         if (container == null) {
             try {
                 container = createContainer();