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/11/30 08:37:16 UTC

svn commit: r721777 - in /geronimo/gshell/trunk/gshell-support: gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/ gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/ gshell-artifact/src/main/java/org...

Author: jdillon
Date: Sat Nov 29 23:37:16 2008
New Revision: 721777

URL: http://svn.apache.org/viewvc?rev=721777&view=rev
Log:
Get the progress monitor working again

Added:
    geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/TransferListenerAdapter.java   (contents, props changed)
      - copied, changed from r721681, geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/ArtifactResolverImpl.java
Modified:
    geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/ArtifactResolverImpl.java
    geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/TransferEvent.java
    geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/TransferListener.java
    geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/monitor/ProgressSpinnerMonitor.java

Modified: geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/ArtifactResolverImpl.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/ArtifactResolverImpl.java?rev=721777&r1=721776&r2=721777&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/ArtifactResolverImpl.java (original)
+++ geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/ArtifactResolverImpl.java Sat Nov 29 23:37:16 2008
@@ -53,32 +53,7 @@
 
     public void setTransferListener(final TransferListener listener) {
         assert listener != null;
-
-        artifactManager.setDownloadMonitor(new org.apache.maven.wagon.events.TransferListener() {
-            public void transferInitiated(final org.apache.maven.wagon.events.TransferEvent transferEvent) {
-                // ignore
-            }
-
-            public void transferStarted(final org.apache.maven.wagon.events.TransferEvent transferEvent) {
-                // TODO:
-            }
-
-            public void transferProgress(final org.apache.maven.wagon.events.TransferEvent transferEvent, final byte[] buffer, final int length) {
-                // TODO:
-            }
-
-            public void transferCompleted(final org.apache.maven.wagon.events.TransferEvent transferEvent) {
-                // TODO:
-            }
-
-            public void transferError(final org.apache.maven.wagon.events.TransferEvent transferEvent) {
-                // TODO:
-            }
-
-            public void debug(final String message) {
-                log.trace(message);
-            }
-        });
+        artifactManager.setDownloadMonitor(new TransferListenerAdapter(listener));
     }
 
     public Result resolve(final Request request) throws Failure {
@@ -149,6 +124,9 @@
         return result;
     }
 
+    /**
+     * Creates a GShell Artifact from a Maven Artifact.
+     */
     private Artifact createArtifact(final org.apache.maven.artifact.Artifact source) {
         assert source != null;
 
@@ -163,6 +141,9 @@
         return artifact;
     }
 
+    /**
+     * Creates a Maven Artifact from a GShell Artifact.
+     */
     private org.apache.maven.artifact.Artifact createArtifact(final Artifact source) {
         assert source != null;
 

Copied: geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/TransferListenerAdapter.java (from r721681, geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/ArtifactResolverImpl.java)
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/TransferListenerAdapter.java?p2=geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/TransferListenerAdapter.java&p1=geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/ArtifactResolverImpl.java&r1=721681&r2=721777&rev=721777&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/ArtifactResolverImpl.java (original)
+++ geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/TransferListenerAdapter.java Sat Nov 29 23:37:16 2008
@@ -19,159 +19,87 @@
 
 package org.apache.geronimo.gshell.artifact.maven;
 
-import org.apache.geronimo.gshell.artifact.ArtifactResolver;
-import org.apache.geronimo.gshell.artifact.Artifact;
+import org.apache.geronimo.gshell.artifact.transfer.TransferEvent;
 import org.apache.geronimo.gshell.artifact.transfer.TransferListener;
-import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
-import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
-import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
-import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
-import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
-import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Set;
-import java.util.LinkedHashSet;
-
 /**
- * <a href="http://maven.apache.org">Apache Maven (maven-artifact)</a> based {@link ArtifactResolver}.
+ * Adapts {@link TransferListener} to Maven Wagon's {@link org.apache.maven.wagon.events.TransferListener}.
  *
  * @version $Rev$ $Date$
  */
-public class ArtifactResolverImpl
-    implements ArtifactResolver
+public class TransferListenerAdapter
+    implements org.apache.maven.wagon.events.TransferListener
 {
     private final Logger log = LoggerFactory.getLogger(getClass());
 
-    private final ArtifactManager artifactManager;
-
-    public ArtifactResolverImpl(final ArtifactManager artifactManager) {
-        assert artifactManager != null;
-        this.artifactManager = artifactManager;
-    }
+    private final TransferListener listener;
 
-    public void setTransferListener(final TransferListener listener) {
+    public TransferListenerAdapter(final TransferListener listener) {
         assert listener != null;
-
-        artifactManager.setDownloadMonitor(new org.apache.maven.wagon.events.TransferListener() {
-            public void transferInitiated(final org.apache.maven.wagon.events.TransferEvent transferEvent) {
-                // ignore
-            }
-
-            public void transferStarted(final org.apache.maven.wagon.events.TransferEvent transferEvent) {
-                // TODO:
-            }
-
-            public void transferProgress(final org.apache.maven.wagon.events.TransferEvent transferEvent, final byte[] buffer, final int length) {
-                // TODO:
-            }
-
-            public void transferCompleted(final org.apache.maven.wagon.events.TransferEvent transferEvent) {
-                // TODO:
-            }
-
-            public void transferError(final org.apache.maven.wagon.events.TransferEvent transferEvent) {
-                // TODO:
-            }
-
-            public void debug(final String message) {
-                log.trace(message);
-            }
-        });
+        this.listener = listener;
     }
 
-    public Result resolve(final Request request) throws Failure {
-        assert request != null;
-
-        ArtifactResolutionRequest _request = new ArtifactResolutionRequest();
-
-        if (request.artifact != null) {
-            log.debug("Artifact: {}", request.artifact);
+    public void transferInitiated(final org.apache.maven.wagon.events.TransferEvent source) {
+        // ignore
+    }
 
-            _request.setArtifact(createArtifact(request.artifact));
-        }
+    public void transferStarted(final org.apache.maven.wagon.events.TransferEvent source) {
+        listener.transferStarted(convert(source));
+    }
 
-        if (request.artifacts != null) {
-            Set<org.apache.maven.artifact.Artifact> artifacts = new LinkedHashSet<org.apache.maven.artifact.Artifact>();
+    public void transferProgress(final org.apache.maven.wagon.events.TransferEvent source, final byte[] buffer, final int length) {
+        listener.transferProgress(convert(source, length));
+    }
 
-            log.debug("Dependencies:");
+    public void transferCompleted(final org.apache.maven.wagon.events.TransferEvent source) {
+        listener.transferCompleted(convert(source));
+    }
 
-            for (Artifact source : request.artifacts) {
-                org.apache.maven.artifact.Artifact artifact = createArtifact(source);
-                log.debug("    {}", artifact);
-                artifacts.add(artifact);
-            }
+    public void transferError(final org.apache.maven.wagon.events.TransferEvent source) {
+        listener.transferFailed(convert(source));
+    }
 
-            _request.setArtifactDependencies(artifacts);
-        }
+    public void debug(final String message) {
+        log.trace(message);
+    }
 
-        AndArtifactFilter filter = new AndArtifactFilter();
-        _request.setFilter(filter);
+    private TransferEvent convert(final org.apache.maven.wagon.events.TransferEvent source, final int length) {
+        assert source != null;
 
-        // Always filter for runtime scope
-        filter.add(new ScopeArtifactFilter(org.apache.maven.artifact.Artifact.SCOPE_RUNTIME));
+        return new TransferEvent()
+        {
+            public RequestType getRequestType() {
+                switch (source.getRequestType()) {
+                    case org.apache.maven.wagon.events.TransferEvent.REQUEST_GET:
+                        return RequestType.DOWNLOAD;
 
-        // Filter deps needed for use of maven-artifact
-        filter.add(new MavenArtifactDependenciesFilter());
-
-        if (request.filter != null) {
-            log.debug("Filter: {}", request.filter);
-            
-            filter.add(new ArtifactFilter() {
-                public boolean include(final org.apache.maven.artifact.Artifact source) {
-                    assert source != null;
-                    Artifact artifact = createArtifact(source);
-                    return request.filter.accept(artifact);
+                    case org.apache.maven.wagon.events.TransferEvent.REQUEST_PUT:
+                        return RequestType.UPLOAD;
                 }
-            });
-        }
-
-        Result result = new Result();
-        try {
-            ArtifactResolutionResult _result = artifactManager.resolve(_request);
-            result.artifacts = new LinkedHashSet<Artifact>();
-
-            log.debug("Resolved:");
-
-            for (org.apache.maven.artifact.Artifact source : _result.getArtifacts()) {
-                Artifact artifact = createArtifact(source);
-
-                log.debug("    {}", artifact);
-                
-                result.artifacts.add(artifact);
+                throw new InternalError();
             }
-        }
-        catch (ResolutionException e) {
-            throw new Failure(e);
-        }
 
-        return result;
-    }
+            public String getLocation() {
+                return source.getWagon().getRepository().getUrl() + "/" + source.getResource().getName();
+            }
 
-    private Artifact createArtifact(final org.apache.maven.artifact.Artifact source) {
-        assert source != null;
+            public long getContentLength() {
+                return source.getResource().getContentLength();
+            }
 
-        Artifact artifact = new Artifact();
-        artifact.setGroup(source.getGroupId());
-        artifact.setName(source.getArtifactId());
-        artifact.setVersion(source.getVersion());
-        artifact.setClassifier(source.getClassifier());
-        artifact.setType(source.getType());
-        artifact.setFile(source.getFile());
+            public long getLength() {
+                return length;
+            }
 
-        return artifact;
+            public Throwable getFailureCause() {
+                return source.getException();
+            }
+        };
     }
 
-    private org.apache.maven.artifact.Artifact createArtifact(final Artifact source) {
-        assert source != null;
-
-        ArtifactFactory factory = artifactManager.getArtifactFactory();
-
-        org.apache.maven.artifact.Artifact artifact = factory.createArtifact(source.getGroup(), source.getName(), source.getVersion(), null, source.getType());
-
-        artifact.setFile(source.getFile());
-        
-        return artifact;
+    private TransferEvent convert(final org.apache.maven.wagon.events.TransferEvent source) {
+        return convert(source, TransferEvent.UNKNOWN_LENGTH);
     }
 }
\ No newline at end of file

Propchange: geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/TransferListenerAdapter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/TransferListenerAdapter.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/TransferListenerAdapter.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Propchange: geronimo/gshell/trunk/gshell-support/gshell-artifact-maven/src/main/java/org/apache/geronimo/gshell/artifact/maven/TransferListenerAdapter.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/TransferEvent.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/TransferEvent.java?rev=721777&r1=721776&r2=721777&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/TransferEvent.java (original)
+++ geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/TransferEvent.java Sat Nov 29 23:37:16 2008
@@ -28,13 +28,27 @@
  */
 public interface TransferEvent
 {
-    enum Type {
+    /**
+     * Constant to be used when the content-length is not known.
+     */
+    int UNKNOWN_LENGTH = -1;
+
+    /**
+     * Transfer request type.
+     */
+    enum RequestType {
         UPLOAD, DOWNLOAD
     }
 
-    Type getType();
+    /**
+     * Transfer request type.
+     */
+    RequestType getRequestType();
 
-    URL getUrl();
+    /**
+     * Content location.
+     */
+    String getLocation();
 
     /**
      * The maximum length of the content.
@@ -46,5 +60,8 @@
      */
     long getLength();
 
-    Throwable getCause();
+    /**
+     * Failure cause.
+     */
+    Throwable getFailureCause();
 }
\ No newline at end of file

Modified: geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/TransferListener.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/TransferListener.java?rev=721777&r1=721776&r2=721777&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/TransferListener.java (original)
+++ geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/TransferListener.java Sat Nov 29 23:37:16 2008
@@ -26,8 +26,6 @@
  */
 public interface TransferListener
 {
-    int UNKNOWN_LENGTH = -1;
-    
     void transferStarted(TransferEvent event);
 
     void transferProgress(TransferEvent event);

Modified: geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/monitor/ProgressSpinnerMonitor.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/monitor/ProgressSpinnerMonitor.java?rev=721777&r1=721776&r2=721777&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/monitor/ProgressSpinnerMonitor.java (original)
+++ geronimo/gshell/trunk/gshell-support/gshell-artifact/src/main/java/org/apache/geronimo/gshell/artifact/transfer/monitor/ProgressSpinnerMonitor.java Sat Nov 29 23:37:16 2008
@@ -70,10 +70,10 @@
 
         spinner.reset();
 
-        String type = event.getType() == TransferEvent.Type.UPLOAD ? "Uploading" : "Downloading";
-        URL url = event.getUrl();
+        String type = event.getRequestType() == TransferEvent.RequestType.UPLOAD ? "Uploading" : "Downloading";
+        String location = event.getLocation();
 
-        String message = type + ": " + url;
+        String message = type + ": " + location;
 
         log.debug(message);
 
@@ -89,10 +89,10 @@
         String message;
 
         if (total >= 1024) {
-            message = complete / 1024 + "/" + (total == UNKNOWN_LENGTH ? "?" : total / 1024 + "K");
+            message = complete / 1024 + "/" + (total == TransferEvent.UNKNOWN_LENGTH ? "?" : total / 1024 + "K");
         }
         else {
-            message = complete + "/" + (total == UNKNOWN_LENGTH ? "?" : total + "b");
+            message = complete + "/" + (total == TransferEvent.UNKNOWN_LENGTH ? "?" : total + "b");
         }
 
         log.trace(message);
@@ -105,11 +105,11 @@
 
         super.transferCompleted(event);
 
-        long length = event.getLength();
-        String type = event.getType() == TransferEvent.Type.UPLOAD ? "Uploaded" : "Downloaded";
-        String bytes = length >= 1024 ? ( length / 1024 ) + "K" : length + "b";
+        long total = event.getContentLength();
+        String type = event.getRequestType() == TransferEvent.RequestType.UPLOAD ? "Uploaded" : "Downloaded";
+        String bytes = total >= 1024 ? ( total / 1024 ) + "K" : total + "b";
 
-        // pad at end just incase, should really blank the reset of the line
+        // HACK: pad at end just incase, should really blank the reset of the line
         print(type + " " + bytes + "          ");
     }
 }
\ No newline at end of file