[ 
https://issues.apache.org/jira/browse/MNG-5977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Osipov updated MNG-5977:
--------------------------------
    Description: 
The current output of Downloading/Downladed/Uploading/Uploaded transfer 
notification has some flaws:

1. It does not scale numbers between 1 and 1000 with appropriate units
2. It should use correct size ({{kB}}, {{MB}}, {{GB}} and time units ({{s}}) 
but doesn't. (see https://en.wikipedia.org/wiki/Binary_prefix and 
https://en.wikipedia.org/wiki/Metric_prefix)
3. When Aether downloads in parallel (which applies for non-POM files) the 
progress interleaves due to race conditions to {{System.out}} and you do not 
know to which resource a progress belongs to.

Let's use an improved version of MPIR {{DependenciesRenderer}}'s 
[{{FileDecimalFormat}}|https://github.com/apache/maven-plugins/blob/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java#L1583]
 for it.

concrete examples:
before
{noformat}191/191 KB   27/48 KB   48/119 KB   80/87 KB   13/13 KB   {noformat}
after:
{noformat}Progress (4): 500/800 B | 40/45 kB | 193 kB/315 kB | 1.3/9.0 MB | 
12/30 MB{noformat}
if total size is unavailable or the file has already been downloaded but not 
removed from the list, the output will be:
{noformat}Progress (4): 800 B | 40/45 kB | 193 kB | 9.0 MB | 12 MB{noformat}
or in debug mode:
{noformat}Progress (5): xml-apis-1.3.04.jar (<progress>) | 
maven-shared-utils-0.6.jar (<progress>) | xercesImpl-2.9.1.jar (<progress>) | 
commons-digester-1.6.jar (<progress>) | maven-reporting-impl-2.3.jar 
(<progress>){noformat}

If the scale is between 1 and 10, one decimal place will be printed out. If it 
is between 10 and 1000+, it will be an integer.

  was:
The current output of Downloading/Downladed/Uploading/Uploaded transfer 
notification has some flaws:

1. It does not scale numbers between 1 and 1000 with appropriate units
2. It should use correct size ({{kB}}, {{MB}}, {{GB}} and time units ({{s}}) 
but doesn't. (see https://en.wikipedia.org/wiki/Binary_prefix and 
https://en.wikipedia.org/wiki/Metric_prefix)
3. When Aether downloads in parallel (which applies for non-POM files) the 
progress interleaves due to race conditions to {{System.out}} and you do not 
know to which resource a progress belongs to.

Let's use an improved version of MPIR {{DependenciesRenderer}}'s 
[{{FileDecimalFormat}}|https://github.com/apache/maven-plugins/blob/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java#L1583]
 for it.

concrete examples:
before
{noformat}191/191 KB   27/48 KB   48/119 KB   80/87 KB   13/13 KB   {noformat}
after:
{noformat}Progress (4): 500/800 B | 40/45 kB | 193 kB/315 kB | 1.3/9 MB | 12/30 
MB{noformat}
if total size is unavailable or the file has already been downloaded but not 
removed from the list, the output will be:
{noformat}Progress (4): 800 B | 40/45 kB | 193 kB | 9 MB | 12 MB{noformat}
or in debug mode:
{noformat}Progress (5): xml-apis-1.3.04.jar (<progress>) | 
maven-shared-utils-0.6.jar (<progress>) | xercesImpl-2.9.1.jar (<progress>) | 
commons-digester-1.6.jar (<progress>) | maven-reporting-impl-2.3.jar 
(<progress>){noformat}

If the scale is between 1 and 10, one decimal position will be printed out. If 
it is between 10 and 1000, it will be an integer.


> Improve output readability of our MavenTransferListener implementations
> -----------------------------------------------------------------------
>
>                 Key: MNG-5977
>                 URL: https://issues.apache.org/jira/browse/MNG-5977
>             Project: Maven
>          Issue Type: Improvement
>          Components: Command Line, Embedding
>    Affects Versions: 3.3.9
>            Reporter: Michael Osipov
>            Assignee: Michael Osipov
>             Fix For: 3.4.0
>
>         Attachments: current.zip, improved.zip, improved.zip
>
>
> The current output of Downloading/Downladed/Uploading/Uploaded transfer 
> notification has some flaws:
> 1. It does not scale numbers between 1 and 1000 with appropriate units
> 2. It should use correct size ({{kB}}, {{MB}}, {{GB}} and time units ({{s}}) 
> but doesn't. (see https://en.wikipedia.org/wiki/Binary_prefix and 
> https://en.wikipedia.org/wiki/Metric_prefix)
> 3. When Aether downloads in parallel (which applies for non-POM files) the 
> progress interleaves due to race conditions to {{System.out}} and you do not 
> know to which resource a progress belongs to.
> Let's use an improved version of MPIR {{DependenciesRenderer}}'s 
> [{{FileDecimalFormat}}|https://github.com/apache/maven-plugins/blob/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/dependencies/renderer/DependenciesRenderer.java#L1583]
>  for it.
> concrete examples:
> before
> {noformat}191/191 KB   27/48 KB   48/119 KB   80/87 KB   13/13 KB   {noformat}
> after:
> {noformat}Progress (4): 500/800 B | 40/45 kB | 193 kB/315 kB | 1.3/9.0 MB | 
> 12/30 MB{noformat}
> if total size is unavailable or the file has already been downloaded but not 
> removed from the list, the output will be:
> {noformat}Progress (4): 800 B | 40/45 kB | 193 kB | 9.0 MB | 12 MB{noformat}
> or in debug mode:
> {noformat}Progress (5): xml-apis-1.3.04.jar (<progress>) | 
> maven-shared-utils-0.6.jar (<progress>) | xercesImpl-2.9.1.jar (<progress>) | 
> commons-digester-1.6.jar (<progress>) | maven-reporting-impl-2.3.jar 
> (<progress>){noformat}
> If the scale is between 1 and 10, one decimal place will be printed out. If 
> it is between 10 and 1000+, it will be an integer.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to