Open mitcoding opened 1 year ago
@markdaugherty I've submitted a pull request that will make sure Veneer continues to work after adobe removes Guava from adobe cloud next month (April 20223). So far with our regression testing in Adobe cloud this patch, to shade guava like acs-commons does, has worked liked a charm.
Per recent AEM cloud sdk deprecation notes:
com.google.common.* Deprecated The Google Guava Core Libraries are deprecated and will not be part of the AEM SDK after April 2023
Currently these Classes depend on AEM Cloud SDK including Google Guava Core:
The reason I'm opening this ticket, is I'm hoping, that Veneer either remove usage of Guava or use some method to make sure the library is included at build/run time since it will no longer be included by Adobe. But I want to make sure that all the 3rd Party AEM libraries that continue to use Guava either all agree to stick to the same version or use some method to prevent dependency hell.
So far I know that acs-commons also depends on guava being included in the AEM Cloud SDK: https://github.com/Adobe-Consulting-Services/acs-aem-commons
UPDATE: after looking further into our code base the only 3rd party libraries, in our code base, that use guava are, acs-commons are Veneer.
I also found that acs-commons appear to be building an ubar-jar and thus using the maven shade plugin, so that they could use the latest version of guava and not conflict with the AEM SDK using the outdated version of guava. So Veneer wouldn't cause dependency hell with acs-commons if veneer used a different version then acs-commons.
However, This can still be an issue with other clients of Veneer and other third party libraries that also depend on guava from the AEM SDK, as they could enter into dependency hell if Veneer and another hypothetical third party choose to use two different versions of guava and didn't use some technique like shading.