Guava: Google Core Libraries for Java v30.0 Release Notes
Release Date: 2020-10-16 // almost 4 years ago-
Maven
\<dependency\> \<groupId\>com.google.guava\</groupId\> \<artifactId\>guava\</artifactId\> \<version\>30.0-jre\</version\> \<!-- or, for Android: --\> \<version\>30.0-android\</version\> \</dependency\>
Javadoc
- 🚀 30.0-jre
- 🚀 30.0-android
JDiff
🔄 Changelog
- Guava types can no longer be sent over GWT-RPC. Even the earlier, temporary way to reenable support (
guava.gwt.emergency_reenable_rpc
) no longer has an effect. (0cb89dd) - 🛠
cache
: Fixed memory leak inLocalCache
under j2objc. (5e519d9) collect
: Added two-elementmin
andmax
methods toComparators
. (958186c)- 🚚
collect
: Removed@Beta
fromMultimaps.toMultimap
. (b6b4dc4) collect
: Made the set returned byImmutableMap<K, V>.keySet()
serializable as long asK
is serializable, even ifV
is not (and similarly forvalues()
). (f5a69c3)- 🛠
collect
: Fixed bug inpowerSet.equals(otherPowerSet)
would erroneously returnfalse
if the two power sets' underlying sets were equal but had a different iteration order. (215b1f0) collect
: Eliminated j2objc retain-cycle inSingletonImmutableBiMap
. (0ad38b8)eventbus
: Prevented@Subscribe
from being applied to a method that takes a primitive, as that will never be called. (554546c)- ⚡️
graph
: MadeTraverser.breadthFirst()
lazier, and optimizedTraverser
more generally. (32f2d77, b5210ca) graph
: Added@DoNotMock
toTraverser
. (6410f18)- 🗄
io
: DeprecatedFiles.createTempDir()
. (fec0dbc) (CVE forthcoming) - ⬆️
io
: UpgradedByteStreams.copy(InputStream, OutputStream)
to use the fasterFileChannel
if possible. (a1e9a0b) math
: AddedroundToDouble
toBigDecimalMath
,BigIntegerMath
, andLongMath
. (bee4f3c, 2b5c096, 633abf2)net
: AddedMediaType
constants for several font/ types. (571cf66)net
: AddedHttpHeaders
constants forCross-Origin-Embedder-Policy(-Report-Only)?
. (c3bf731)- ✅
testing
: MadeEqualsTester
test that non-String
objects are not equal to theirString
representations. (c9570ea) util.concurrent
: AddedClosingFuture
. (52e048e)- 🚚
util.concurrent
: Removed the deprecated 1-argServiceManager.addListener(Listener)
. Use the 2-argaddListener(Listener, Executor)
overload, setting the executor todirectExecutor()
for equivalent behavior. (dfb0001) util.concurrent
: ChangedAbstractFuture.toString()
to no longer include thetoString()
of the result. (2ebf27f)util.concurrent
: AddedawaitTerminationUninterruptibly
. (f07b954)
Previous changes from v29.0
-
Maven
\<dependency\> \<groupId\>com.google.guava\</groupId\> \<artifactId\>guava\</artifactId\> \<version\>29.0-jre\</version\> \<!-- or, for Android: --\> \<version\>29.0-android\</version\> \</dependency\>
Javadoc
- 🚀 29.0-jre
- 🚀 29.0-android
JDiff
🔄 Changelog
- Guava types can no longer be sent over GWT-RPC. To temporarily reenable support, set the
guava.gwt.emergency_reenable_rpc
system property totrue
. (5214a10)- This is the only breaking change in this release, and it affects only users of the
guava-gwt
artifact, not people who use only theguava
artifact. This release contains no changes that break binary compatibility for any users.
- This is the only breaking change in this release, and it affects only users of the
- 📚 API documentation for Guava classes is now easier to reach. For example, for
ImmutableList
, visit guava.dev/ImmutableList. Also, more easily access the index at guava.dev/api. collect
: AnnotatedFluentIterable.from(FluentIterable)
with@DoNotCall
. (b1c77b7)collect
: Madeceiling
,floor
,headSet(E, boolean)
, andtailSet(E, boolean)
methods available in the GWT-emulatedImmutableSortedSet
. (7e0fe90, 5f2fbf2)- 🏗
graph
: Made it possible to set a stable incident edge order by calling the newly added method[Value]Graph.Builder.incidentEdgeOrder(ElementOrder.stable())
. (7016402) graph
: AddedincidentEdgeOrder()
to the[Value]Graph
interfaces. (cde576e)- ⏱
util.concurrent
: AddedDuration
-baseddefault
methods toListeningScheduledExecutorService
. (931e83f) util.concurrent
: AddedimmediateVoidFuture
. (9f3bae5)- 🚚
util.concurrent
: Removed@Beta
fromService
and related classes. (dc46627) - 🗄
util.concurrent
: Deprecated the 1-arg overload ofServiceManager.addListener
. (86e3620) util.concurrent
: Changed the return type ofServiceManager.servicesByState()
toImmutableSetMultimap
(but also retained a method with the old signature for binary compatibility). (31999ae)- 🔒
util.concurrent
: Made it safe to load theAbstractFuture
class from aForkJoinPool
thread under a security manager. (6e0c5b5)