hmm, it's just come to me that maybe it's possible to achieve the same 
result without a need for guice-guava, using only maven-shade-plugin's 
filters and  "minimizeJar" option: in theory it should exactly include only 
classes that the project actually 
uses: 
https://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html#minimizeJar
(which makes me wonder why wasn't it used in the first place back when 
Guava was shaded...)

On Thursday, December 9, 2021 at 2:10:57 PM UTC+7 Piotr Morgwai Kotarbinski 
wrote:

> Unfortunately I think that the part "get the PR accepted"  is the main 
> blocker here: I doubt google would be interested in such change: internally 
> they build everything from HEAD of each dependency each time (or at least 
> they used to), so versioning is not an issue for them. On top of this, they 
> use Guice for almost every piece of Java code (again, at least they used 
> to), so I'm afraid they will view any change that does not solve some of 
> *their* problems as an unnecessary risk. On top of on top of this add 
> general unresponsiveness of google to issues and PRs on Guice github repo, 
> so even just starting a discussion what could possibly be an acceptable 
> solution from google's point of view may turn impossible.
> As a consequence, anyone undertaking such task will risk all of his work 
> to never be accepted (or even considered) due to these "political" reasons 
> regardless of his solution's quality and usefulness for non-google users :(
>
> At least for the sake of this conversation, let's try to discuss possible 
> approaches nevertheless:
> - duplicating Guava's functionality directly into Guice is an ugly 
> solution, introduces maintenance problems and IMO should NOT be ever 
> accepted.
> - putting Guava's functionality required by Guice into a separate lib 
> (let's call it "guice-guava") and creating in Guice's pom an additional 
> profile that uses this lib (shaded and relocated) instead of Guava: this 
> way Guice code stays pure, but this new lib has exactly the same problems 
> as described in the previous point.
> - creating guice-guava by including Guava as its submodule and linking 
> from `src/main/java` to a subset of java files in guice-guava submodule 
> folder (hence including only necessary classes in guice-guava) may be 
> reasonable solution. Whether it's actually feasible depends how deep is the 
> dependency graph of Guava classes required by Guice.
>
> Cheers!
>
> On Friday, December 3, 2021 at 3:31:40 AM UTC+7 Brian Pontarelli wrote:
>
>> I agree 100%. 
>>
>> My offer of a bounty still stands. Seriously. Happy to discuss actual 
>> numbers, but it would definitely be worth it for us to pay a good rate to 
>> get this fixed. FusionAuth would be the corporate sponsor of this effort in 
>> case anyone is interested.
>>
>> — Brian
>>
>> On Nov 19, 2021, at 1:35 PM, Piotr Morgwai Kotarbinski <mor...@gmail.com> 
>> wrote:
>>
>> 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...@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
>>  
>> <https://groups.google.com/d/msgid/google-guice/1eb953bf-675b-4d09-8dea-00c38db8a7f4n%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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-guice/ee3eea18-a9ea-4a21-9ff8-8d2a496e511en%40googlegroups.com.

Reply via email to