1 package org.apache.maven.resolver.internal.ant;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.text.DecimalFormat;
23 import java.text.DecimalFormatSymbols;
24 import java.util.Locale;
25
26 import org.apache.tools.ant.Project;
27 import org.apache.tools.ant.Task;
28 import org.eclipse.aether.transfer.AbstractTransferListener;
29 import org.eclipse.aether.transfer.TransferCancelledException;
30 import org.eclipse.aether.transfer.TransferEvent;
31 import org.eclipse.aether.transfer.TransferResource;
32
33
34
35
36 class AntTransferListener
37 extends AbstractTransferListener
38 {
39
40 private Task task;
41
42 AntTransferListener( Task task )
43 {
44 this.task = task;
45 }
46
47 @Override
48 public void transferInitiated( TransferEvent event )
49 throws TransferCancelledException
50 {
51 String msg = event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploading" : "Downloading";
52 msg += " " + event.getResource().getRepositoryUrl() + event.getResource().getResourceName();
53 task.log( msg );
54 }
55
56 @Override
57 public void transferCorrupted( TransferEvent event )
58 throws TransferCancelledException
59 {
60 TransferResource resource = event.getResource();
61
62 task.log( event.getException().getMessage() + " for " + resource.getRepositoryUrl()
63 + resource.getResourceName(), Project.MSG_WARN );
64 }
65
66 @Override
67 public void transferSucceeded( TransferEvent event )
68 {
69 String msg = event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploaded" : "Downloaded";
70 msg += " " + event.getResource().getRepositoryUrl() + event.getResource().getResourceName();
71
72 long contentLength = event.getTransferredBytes();
73 if ( contentLength >= 0 )
74 {
75 String len = contentLength >= 1024 ? ( ( contentLength + 1023 ) / 1024 ) + " KB" : contentLength + " B";
76
77 String throughput = "";
78 long duration = System.currentTimeMillis() - event.getResource().getTransferStartTime();
79 if ( duration > 0 )
80 {
81 DecimalFormat format = new DecimalFormat( "0.0", new DecimalFormatSymbols( Locale.ENGLISH ) );
82 double kbPerSec = ( contentLength / 1024.0 ) / ( duration / 1000.0 );
83 throughput = " at " + format.format( kbPerSec ) + " KB/sec";
84 }
85
86 msg += " (" + len + throughput + ")";
87 }
88 task.log( msg );
89 }
90
91 }