IMO, if a lib breaks backwards compatibility so often as Guava, it must be 
shaded: otherwise conflicts are unavoidable. The real problem is that Guava 
is too big as mentioned before. The right solution IMO would be to split it 
to smaller sub-libs. This way shading a small part that Guice depends on, 
would not be a problem anymore.

Cheers!

On Monday, April 5, 2021 at 9:43:26 PM UTC+7 Brian Pontarelli wrote:

> I understand why it would be best to leave Guava out of shading, but it 
> really causes issues because of the way that Guava manages releases and 
> versioning. The fact that it is on major version 27 while many projects are 
> using version 10 is an issue. Every time a library upgrades Guava, we are 
> all just hoping that it doesn’t break out entire classpath at runtime due 
> to some incompatible change. And manually shading everything in our 
> classpath for every upgrade is not feasible (hence the reason we are 
> removing Guava deps whenever possible).
>
> I’d be willing to provide a bounty if someone is willing to remove Guava 
> completely and can get the PR accepted.
>
> — Brian
>
> On Mar 14, 2021, at 4:57 PM, Stuart McCulloch <mcc...@gmail.com> wrote:
>
>
> On Fri, 19 Feb 2021 at 18:44, Brian Pontarelli <br...@pontarelli.com> 
> wrote:
>
>> I’d be interested in this as well since we will be upgrading to Java 17 
>> for FusionAuth once it is released.
>>
>> And not to hijack, but will it be possible to remove Guava and all shaded 
>> deps?
>>
>  
> In the latest release (5.0.1) the CGLIB dependency has been removed 
> leaving ASM as the only shaded dependency - because it's shaded it 
> shouldn't conflict with other versions on your classpath.
>
> Guava used to be shaded as well, but this caused overhead for users who 
> were also using Guava elsewhere in their application. It also made it 
> harder to pick up Guava fixes in-between releases of Guice. So it's now a 
> direct dependency that people can decide to shade themselves if they want 
> to use different versions on their classpath.
>
> Removing Guava completely would be a big undertaking - it's not part of 
> the public API, but the internals use it for caches and multimap support.
>
> Guava is a great example of how not to manage a library and it keeps 
>> rolling major versions that break compatibility. Tons of libraries uses 
>> different versions and regularly break our classpath. We are slowly yanking 
>> libraries in FusionAuth that use CGLIB, ASM, and Guava. It would be awesome 
>> if Guice could yank those deps. Ideally, Guice would have no deps (except 
>> javax.inject) and just be a drop in lib.
>>
>> — Brian
>>
>> On Feb 19, 2021, at 11:05 AM, Peter Burka <pe...@quux.net> wrote:
>>
>> Java 17 will be released later this year, and will be the first long term 
>> support (LTS) OpenJDK version since Java 11 in 2018. I imagine that Guice 5 
>> will add support for Java 17, however the current beta version does not 
>> work on Java 17 early-access as it includes an out-of-date shaded version 
>> of ASM.
>>
>> What is the anticipated schedule for releasing Guice 5? Will it be 
>> available before Java 17? Will there be any additional beta releases before 
>> GA?
>>
>> Are there any plans to update Guice 4 with Java 17 support, too?
>>
>> Thank you!
>>
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "google-guice" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to google-guice...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/google-guice/88f24d78-f0b0-4633-881b-44deb050610fn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/google-guice/88f24d78-f0b0-4633-881b-44deb050610fn%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>>
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "google-guice" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to google-guice...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/google-guice/AF183807-C0A0-4C3B-8C23-6B93F89D4BA9%40pontarelli.com
>>  
>> <https://groups.google.com/d/msgid/google-guice/AF183807-C0A0-4C3B-8C23-6B93F89D4BA9%40pontarelli.com?utm_medium=email&utm_source=footer>
>> .
>>
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "google-guice" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to google-guice...@googlegroups.com.
>
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/google-guice/CAMr6Z4%3DLAU4QDiH_gvJ%2BtMm1SpWDhdpPcZ6GB3oqm%3Dnm%2Bc%2BtNQ%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/google-guice/CAMr6Z4%3DLAU4QDiH_gvJ%2BtMm1SpWDhdpPcZ6GB3oqm%3Dnm%2Bc%2BtNQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-guice+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-guice/1eb953bf-675b-4d09-8dea-00c38db8a7f4n%40googlegroups.com.

Reply via email to