forked from google/guava
-
Notifications
You must be signed in to change notification settings - Fork 0
Release19
Chris Povirk edited this page Nov 21, 2016
·
19 revisions
- 19.0 was released on December 9, 2015.
- 19.0-rc3 was released on December 1, 2015.
- 19.0-rc2 was released on September 17, 2015.
- 19.0-rc1 was released on July 23, 2015.
(See ReleaseHistory.)
API documentation:
Guava | Guava (GWT) | |
---|---|---|
Maven Identifier | com.google.guava:guava:19.0 | com.google.guava:guava-gwt:19.0 |
Jar | guava-19.0.jar | guava-gwt-19.0.jar |
Javadoc | guava-19.0-javadoc.jar | guava-gwt-19.0-javadoc.jar |
Sources | guava-19.0-sources.jar | guava-gwt-19.0-sources.jar |
See UseGuavaInYourBuild for help integrating Guava into your build environment.
-
Known issue: If you see
No source code is available for type java.lang.InterruptedException
, add<inherits name="java.lang.Lang"/>
to your.gwt.xml
. - Incompatible changes to GWT and Guava are coming. Guava 19 works with versions of GWT prior to the forthcoming GWT 2.8.0 but will in many cases not work with GWT 2.8.0. Once GWT 2.8.0 is out, we will release Guava 20, which will require GWT 2.8.0.
- Additionally, Guava 19 will be the last version to work with the deprecated GWT "classic" Dev Mode. Newer versions will continue to work with Super Dev Mode.
- Guava 19 adds support for many
util.concurrent
APIs under GWT.
- Guava is now annotated for use with the J2ObjC transpiler.
42 issues are resolved in this release.
Full JDiff Report of changes since release 18.0.
Note: for some reason, this diff is showing interface methods as having changed from non-abstract to abstract, resulting in many APIs with no changes showing up as having changes.
- Added
CharMatcher
static factory methods equivalent to theCharMatcher
constants. For example, addedCharMatcher.whitespace()
which is equivalent toCharMatcher.WHITESPACE
. Eventually, the constants will be deprecated and removed.- This is being done because using constants requires a large number of classes to be initialized when anything from
CharMatcher
is used; switching to static factory methods allows classes to be initialized only as needed for the type ofCharMatcher
actually being used.
- This is being done because using constants requires a large number of classes to be initialized when anything from
- Added
Throwables.lazyStackTrace(Throwable)
- Returns aList<StackTraceElement>
that may load the stack trace elements lazily. Useful if you want to get only the first N elements of the stack trace efficiently. - Added
lazyStackTraceIsLazy()
- Returns whether or not the above method is able to use the special implementation that makes it lazy on the current platform. - Added
VerifyException
constructor overloads taking aThrowable
cause.
This package has graduated from @Beta
, making it safe to use in library code.
- Added visibility of
CacheLoader.UnsupportedLoadingOperationException
- Added
RemovalNotification.create
- These should only be needed if creating a custom cache implementation
Added factory and builder methods for various ImmutableMap
s and ImmutableMultimap
s that take Iterable<Map.Entry>
.
- Added
FluentIterable.toMultiset()
- Added
RangeSet.asDescendingSetOfRanges()
andRangeMap.asDescendingMapOfRanges()
- Added
Lists.cartesianProduct(List...)
andLists.cartesianProduct(List<List>>)
- Added
Maps.newLinkedHashMapWithExpectedSize(int)
- Re-added
Multisets.removeOccurrences(Multiset, Multiset)
which was (binary incompatibly) missing in 18.0 because it was replaced withMultisets.removeOccurences(Multiset, Iterable)
-
Deprecated
MapConstraint
andMapConstraints
-
Deprecated
Sets.newSetFromMap(Map)
- Java 6 providesCollections.newSetFromMap(Map)
-
Removed
MapMaker.softValues()
- Added
EventBus.identifier()
-
Removed protected method
AsyncEventBus.dispatchQueuedEvents()
(made package-private)
- Added
BloomFilter.create
overloads taking along
for theexpectedInsertions
- Added
Hashing.sha384()
- Added
Hashing.concatenating(HashFunction, HashFunction, HashFunction...)
andHashing.concatenating(Iterable<HashFunction>)
- Added
ByteSource.sizeIfKnown()
- Added
CharSource.length()
- Added
CharSource.lengthIfKnown()
- Added a couple new constants to
HttpHeaders
andMediaType
- Updated public suffix list for
InternetDomainName
- Added
TypeToken.isSubtypeOf(TypeToken)
,TypeToken.isSupertypeOf(TypeToken)
and overloads of both that take aType
-
Deprecated
TypeToken.isAssignableFrom(TypeToken)
andTypeToken.isAssignableFrom(Type)
-isSupertypeOf
provides equivalent behavior with a less confusing name
- A
CancellationException
from ourListenableFuture
implementations no longer chains in a stack trace that shows wherecancel
was called. To reenable these stack traces, set system propertyguava.concurrent.generate_cancellation_cause
totrue
. -
Futures.getChecked
, the replacement forFutures.get
(see below), has become stricter. It now rejects calls that pass an [unsuitable exception type](http://google.github.io/guava/releases/19.0-rc1/api/docs/com/google/common/util/concurrent/Futures.html#getChecked(java.util.concurrent.Future, java.lang.Class)), even if the inputFuture
succeeded. Previously, it would reject only calls in which the inputFuture
had failed. - Added
AbstractFuture.newCancellationCause()
- Added
AbstractFuture.setFuture(ListenableFuture)
- Added
Futures.getChecked
- Added
Futures.catching
andFutures.catchingAsync
- Added
Futures.transformAsync
- Added
Futures.withTimeout
-
Deprecated
FutureFallback
andFutures.withFallback
methods - these are replaced withFutures.catching
-
Deprecated
Futures.get
methods taking aClass<X extends Exception>
- these are replaced withFutures.getChecked
-
Deprecated
Futures.transform
methods taking anAsyncFunction
- these are replaced withFutures.transformAsync
- Introduction
- Basic Utilities
- Collections
- Graphs
- Caches
- Functional Idioms
- Concurrency
- Strings
- Networking
- Primitives
- Ranges
- I/O
- Hashing
- EventBus
- Math
- Reflection
- Releases
- Tips
- Glossary
- Mailing List
- Stack Overflow
- Footprint of JDK/Guava data structures