Code Monkey home page Code Monkey logo

Comments (7)

Alex-Vol-Amz avatar Alex-Vol-Amz commented on June 7, 2024 1

Absolutely @big-guy I can do that. In fact I already prototyped it to prove it works and patch internally as an experiment. So, it would be easy to make it happen.

I can also add the suggested optimization to only resolve the file path if there is a potential pattern match with groovy in the file name as this is definitively the use case we have, we retain the groovy part just all others are mutated in the symlink. The target of course is the source of truth.

from gradle.

ov7a avatar ov7a commented on June 7, 2024

There is a potential performance problem of requesting a real path, because the method is invoked for every library in the classpath. Probably it can be resolved with two levels of checks, limiting the real path resolution to only something that has groovy in its filename. Would it work in your use case?

from gradle.

Alex-Vol-Amz avatar Alex-Vol-Amz commented on June 7, 2024

Good point and yes, that would work. Our naming conventions happen to keep the groovy name but other aspects including version numbers and group are twisted. The ideal option is to have the resolved symlink for the names that are likely to be candidates.

from gradle.

ov7a avatar ov7a commented on June 7, 2024

The issue is in the backlog of the relevant team and is prioritized by them.

from gradle.

big-guy avatar big-guy commented on June 7, 2024

@Alex-Vol-Amz would you be interested in submitting your change as a PR?

The real fix for this would be to remove the need for GroovyJarFile entirely, but this is a deeper change to the way the Groovy plugin works.

from gradle.

big-guy avatar big-guy commented on June 7, 2024

@Alex-Vol-Amz we can see if the performance impact as you have it is a big deal with our tests. You can just submit what you have plus an integ test.

from gradle.

Alex-Vol-Amz avatar Alex-Vol-Amz commented on June 7, 2024

I posted the working PR with unit tests. I have not come up with a clever way to simulate this environment in an integration test yet. If you think an integration test is a must have I will try to work out the detail. I may end up using the mechanism I did for the example project that reproduced the issue on the description of this bug.

from gradle.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.