Zhenya, Courtney, Andrey, What do you think about my arguments, was I able to convince you? I would like to reach some consensus here. At the moment, my original points still stand, I'm also ok with shading Guava if needed, though I think it is not necessary at this point.
On Fri, Aug 6, 2021 at 12:45 PM Alexander Polovtcev <alexpolovt...@gmail.com> wrote: > Zhenya, > > > But there is no restrictions from running ignite server nodes from some > other code with it`s own guava version seems we obtain fast path to jar > hell here? > > I'm not sure if I fully understand your question, but it looks like we are > in this situation already, because we have some dependencies that use > Guava. That's why I propose to add Guava explicitly to at least have a > deterministic runtime configuration (see this link > <https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Management> > for an explanation). > > On Fri, Aug 6, 2021 at 12:25 PM Zhenya Stanilovsky > <arzamas...@mail.ru.invalid> wrote: > >> >> Alexander, first of all looks like Ivan Daschinsky approach about thin >> client use only and shadow plugin are cover all Andrey Mashenkov listing >> problems. >> But there is no restrictions from running ignite server nodes from some >> other code with it`s own guava version seems we obtain fast path to jar >> hell here? >> >> >> >Zhenya, >> > >> >My intentions are the following: >> > >> >1. Remove some copy-pasted code (like the "bytecode" module or some >> utility >> >methods). Please see my original message for the links to the code. >> >2. Explicitly pin the Guava version to avoid conflicts in the runtime. >> > >> >About allowing to use Guava in the codebase, my thoughts are the >> following: >> > >> >1. We *already* use some code from Guava either directly (like in the >> >"calcite" module) or by copy-pasting it into a utility class. >> >2. I understand that some Guava methods are obsolete as of Java 11, but >> >some of them still don't have any standard library counterparts, in which >> >case I think using Guava is justified (which is supported by point 1). >> > >> >Can you please explain why you would disapprove of my proposal? >> > >> >On Thu, Aug 5, 2021 at 7:56 PM Zhenya Stanilovsky >> >< arzamas...@mail.ru.invalid > wrote: >> > >> >> >> >> alexpolovtcev please clarify what do you mean under : «possibility of >> >> using Guava in Ignite 3», using how necessary dependency of calcite or >> >> using like «using in our code» ? If using in code, i -1 here. >> >> thanks. >> >> >> >> >> >> >Hello, dear Igniters! >> >> > >> >> >I would like to discuss the possibility of using Guava >> >> >< https://github.com/google/guava > in Ignite 3. I know about the >> >> restrictive >> >> >policy of using it in Ignite 2, but I have the following reasons: >> >> > >> >> >1. We are de-facto using it already as an implicit dependency, since >> the >> >> >Calcite module depends on it, and Calcite is going to stay for a >> while =) >> >> >2. AFAIK, the "bytecode" module is copied into the codebase only to >> strip >> >> >Guava away from it. We can remove this module, which will improve the >> >> >maintainability of the project. >> >> >3. We have some copy-paste of Guava code in the project. For example, >> see >> >> >this >> >> >< >> >> >> https://github.com/apache/ignite-3/blob/main/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java#L136 >> >> > >> >> >and this >> >> >< >> >> >> https://github.com/apache/ignite-3/blob/main/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java#L428 >> >> > >> >> >. >> >> >4. Regarding security concerns, this report >> >> >< >> >> >> https://www.cvedetails.com/product/52274/Google-Guava.html?vendor_id=1224 >> >> > >> >> >shows no major vulnerability issues for the last three years. >> >> > >> >> >Taking these points into account, I propose to allow using Guava both >> in >> >> >production and test code and to add it as an explicit dependency. >> >> > >> >> >What do you think? >> >> > >> >> >-- >> >> >With regards, >> >> >Aleksandr Polovtcev >> >> >> >> >> >> >> >> >> > >> > >> >-- >> >With regards, >> >Aleksandr Polovtcev >> >> >> >> > > > > -- > With regards, > Aleksandr Polovtcev > -- With regards, Aleksandr Polovtcev