For Gradle, we try to implement download progress reporting. The way we do this now, is to add a TransferListener to each of the repositories.

If the TransferListener receives the TRANSFER_STARTED event, we print something like: Starting to download <url>. For the succeeding TRANSFER_PROGRESS we print dots. All this works fine, except then when transitive dependencies are downloaded, we get more than one TRANSFER_STARTED event (It seems every resolver in the chain is sending one). This clutters obviously our output. I wouldn't like to add state to the listeners. I know that the DefaultRepositoryCacheManager works with a DownloadListener. But it can only have one and access to it is rather hidden.

Any idea how we can solve this problem without adding state to our TransferListener?

- Hans

--
Hans Dockter
Gradle Project lead
http://www.gradle.org




Reply via email to