Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-5977

Improve output readability of our MavenTransferListener implementations

    Details

      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 for it.

      concrete examples:
      before

      191/191 KB   27/48 KB   48/119 KB   80/87 KB   13/13 KB   

      after:

      Progress (4): 500/800 B | 40/45 kB | 193 kB/315 kB | 1.3/9.0 MB | 12/30 MB

      if total size is unavailable or the file has already been downloaded but not removed from the list, the output will be:

      Progress (4): 800 B | 40/45 kB | 193 kB | 9.0 MB | 12 MB

      or in debug mode:

      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>)

      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.

        Attachments

        1. current.zip
          78 kB
          Michael Osipov
        2. improved.zip
          78 kB
          Michael Osipov
        3. improved-debug.zip
          516 kB
          Michael Osipov

          Issue Links

            Activity

              People

              • Assignee:
                michael-o Michael Osipov
                Reporter:
                michael-o Michael Osipov
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: