[GRADLE-1848] Tooling API: Provide fine-grained dependency resolving notification callbacktool Created: 20/Oct/11  Updated: 10/Feb/17  Resolved: 10/Feb/17

Status: Resolved
Project: Gradle
Affects Version/s: 1.0-milestone-4
Fix Version/s: None

Type: New Feature
Reporter: Denis Zhdanov Assignee: Unassigned
Resolution: Won't Fix Votes: 1


It may take a while for the tooling api to download required external dependencies. It would be nice to provide a client with the information about the current action and its progress.

For example, consider that we're resolving project with, say, 2 unresolved external libraries. It would be nice to get the following notification on client side:

  1. Two libraries need to be downloaded. Name, group and version are provided for the both of them;
  2. Starting downloading the first library;
  3. The first library's size is X1;
  4. Downloaded Y1 bytes of the library1;
  5. Downloaded Y2 bytes of the library1;
  6. Downloaded ... bytes of the library1;
  7. Downloaded YN bytes of the library1;
  8. Library1 is downloaded;
  9. Starting downloading the second library;
  10. The second library's size is X2;
  11. Downloaded Y1 bytes of the library2;
  12. Downloaded Y2 bytes of the library2;
  13. Downloaded ... bytes of the library2;
  14. Downloaded YN bytes of the library2;
  15. Library2 is downloaded;

That would allow to provide nice responsive and informative UI to the end-user that uses Gradle Tooling API via external GUI interface

Comment by Adam Murdoch [ 09/Nov/11 ]

These events are available as progress events, via a ProgressListener. Would this be sufficient for what you need?

Comment by Denis Zhdanov [ 10/Nov/11 ]

Haven't known about ProgressListener, thanks. I incorporated it to IJ gradle plugin but it seems to provide too raw information without ability to define what is actually interested. For example, here is a snippet received during importing 'gradle' project:

Configure projects
Resolve dependencies ':wrapper:classpath'
Configure projects
Resolve dependencies ':scala:classpath'
Configure projects
Resolve dependencies ':signing:classpath'
Configure projects
Resolve dependencies ':sonar:classpath'
Configure projects
Resolve dependencies ':toolingApi:classpath'
Configure projects
Resolve dependencies ':ui:classpath'
Configure projects
Resolve dependencies 'detachedConfiguration4'
Configure projects
Resolve dependencies ':announce:compile'
Download http://repo.gradle.org/gradle/libs/org/codehaus/groovy/groovy-all/1.7.10/groovy-all-1.7.10.pom
Resolve dependencies ':announce:compile'
Download http://repo.gradle.org/gradle/libs/org/slf4j/slf4j-api/1.6.2/slf4j-api-1.6.2.pom
Resolve dependencies ':announce:compile'
Download http://repo.gradle.org/gradle/libs/org/slf4j/slf4j-parent/1.6.2/slf4j-parent-1.6.2.pom
Resolve dependencies ':announce:compile'
Download http://repo.gradle.org/gradle/libs/asm/asm-all/3.3.1/asm-all-3.3.1.pom
Resolve dependencies ':announce:compile'
Download http://repo.gradle.org/gradle/libs/asm/asm-parent/3.3.1/asm-parent-3.3.1.pom
Resolve dependencies ':announce:compile'
Download http://repo.gradle.org/gradle/libs/org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.pom
Resolve dependencies ':announce:compile'
Download http://repo.gradle.org/gradle/libs/org/apache/ant/ant-parent/1.8.2/ant-parent-1.8.2.pom
Resolve dependencies ':announce:compile'
Download http://repo.gradle.org/gradle/libs/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom
Resolve dependencies ':announce:compile'
Download http://repo.gradle.org/gradle/libs/org/apache/commons/commons-parent/9/commons-parent-9.pom

I doubt end-user needs to see all of those 'Configure projects' and 'Resolve dependencies'

Comment by Benjamin Muschko [ 15/Nov/16 ]

As announced on the Gradle blog we are planning to completely migrate issues from JIRA to GitHub.

We intend to prioritize issues that are actionable and impactful while working more closely with the community. Many of our JIRA issues are inactionable or irrelevant. We would like to request your help to ensure we can appropriately prioritize JIRA issues you’ve contributed to.

Please confirm that you still advocate for your JIRA issue before December 10th, 2016 by:

  • Checking that your issues contain requisite context, impact, behaviors, and examples as described in our published guidelines.
  • Leave a comment on the JIRA issue or open a new GitHub issue confirming that the above is complete.

We look forward to collaborating with you more closely on GitHub. Thank you for your contribution to Gradle!

Comment by Benjamin Muschko [ 10/Feb/17 ]

Thanks again for reporting this issue. We haven't heard back from you after our inquiry from November 15th. We are closing this issue now. Please create an issue on GitHub if you still feel passionate about getting it resolved.

Generated at Wed Jun 30 12:06:00 CDT 2021 using Jira 8.4.2#804003-sha1:d21414fc212e3af190e92c2d2ac41299b89402cf.