Guava can cause issues when a single Eclipse runtime has multiple different versions.
A long time ago we already tried to isolate our use of it to internals, and not expose Guava-provided values in our APIs to reduce the risk.
There is no urgency, and this can be done progressively over many versions, but it would be nice if we could reduce our usage to the minimum.
Quite a few of these are helpers which used to make sense in the pre-Java 8 times, but could be replaced by now standard Java APIs (sometimes the replacement is trivial, even mechanical; sometimes it's more invovled like converting the many uses of Iterables into equivalent stream operations).
There are two categories where current Java version (we're on Java 17 at the moment) do not provide an alternative by defaults com.google.common.cache and com.google.common.collect.BiMap.
com.google.common.collect.BiMap is quite useful, so it'll probably be the last remnant, but depending on each use case it may be possible to get rid of it too.
Guava can cause issues when a single Eclipse runtime has multiple different versions. A long time ago we already tried to isolate our use of it to internals, and not expose Guava-provided values in our APIs to reduce the risk.
There is no urgency, and this can be done progressively over many versions, but it would be nice if we could reduce our usage to the minimum.
At the time of this writing we have lots of uses:
If we look at the details:
Quite a few of these are helpers which used to make sense in the pre-Java 8 times, but could be replaced by now standard Java APIs (sometimes the replacement is trivial, even mechanical; sometimes it's more invovled like converting the many uses of
Iterables
into equivalent stream operations).There are two categories where current Java version (we're on Java 17 at the moment) do not provide an alternative by defaults
com.google.common.cache
andcom.google.common.collect.BiMap
.com.google.common.cache
is only used in a limited set of types, and Guava itself considers it mostly deprecated now, recommending to switch to https://github.com/ben-manes/caffeine instead. Note that caffeine has recently been added to Orbit: https://github.com/eclipse-orbit/orbit-simrel/issues/22com.google.common.collect.BiMap
is quite useful, so it'll probably be the last remnant, but depending on each use case it may be possible to get rid of it too.