- 
                Notifications
    You must be signed in to change notification settings 
- Fork 11.1k
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.concurrentAPIs 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 CharMatcherstatic factory methods equivalent to theCharMatcherconstants. 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 CharMatcheris used; switching to static factory methods allows classes to be initialized only as needed for the type ofCharMatcheractually 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 VerifyExceptionconstructor overloads taking aThrowablecause.
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 ImmutableMaps and ImmutableMultimaps 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 MapConstraintandMapConstraints
- 
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.createoverloads taking alongfor 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 HttpHeadersandMediaType
- 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)-isSupertypeOfprovides equivalent behavior with a less confusing name
- A CancellationExceptionfrom ourListenableFutureimplementations no longer chains in a stack trace that shows wherecancelwas called. To reenable these stack traces, set system propertyguava.concurrent.generate_cancellation_causetotrue.
- 
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 inputFuturesucceeded. Previously, it would reject only calls in which the inputFuturehad failed.
- Added AbstractFuture.newCancellationCause()
- Added AbstractFuture.setFuture(ListenableFuture)
- Added Futures.getChecked
- Added Futures.catchingandFutures.catchingAsync
- Added Futures.transformAsync
- Added Futures.withTimeout
- 
Deprecated FutureFallbackandFutures.withFallbackmethods - these are replaced withFutures.catching
- 
Deprecated Futures.getmethods taking aClass<X extends Exception>- these are replaced withFutures.getChecked
- 
Deprecated Futures.transformmethods 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
- Android Overview
- Footprint of JDK/Guava data structures