Guava: Google core libraries for Java
github.com
github.com
Used it for JavaFX apps with no problems.
Although people often skip it and put everything in one module. It was released in Java 9 (started in 2014 and completed fully in 2017).
https://stackoverflow.com/a/49811665:
“If your uber JAR is likely to be used as a dependency in another application then there's a risk that the versions of the dependent classes in the uber JAR might clash with versions of those same dependencies in this other application. Shading helps to avoid any such issue by renaming the packages within the uber JAR”
> unless they hand out Guava types to others, of course
You still can hand out guava objects to others, as long as you hand them out as being of a standard Java interface.
That will work as long as the receiver of the type uses instanceof with a class type or reflection, so it is a bit brittle. Technically, any breakage would indicate a bug in the receiving code, but fixing it cleanly may be impossible.
Java 9 modules address this.
See grandparent: "dealing with mismatching guava versions brought in as transitive dependencies"
We may at some point go with Kotlin's Arrow lib (an FP specific tool lib), which may be akin to underscore.js in JS.
long THREE_MINUTES_IN_MILLIS = 3 * 60000;(And then it was included in Java 8 in java.time.*)