How guava is put together
Guava is Google's core Java library providing extended collection types (multimaps, multisets, immutable collections), a graph library, caching, concurrency utilities, I/O, hashing, primitives, and string helpers. It is a pure-library Maven multi-module project (no application server or datastores) built as two parallel flavors: a JRE flavor at the repo root and an Android flavor under android/, each producing the same com.google.guava artifacts. The main code lives in guava/src/com/google/common/** organized by package (base, collect, cache, graph, io, net, primitives, etc.), with a companion guava-testlib testing library, GWT-compatible sources in guava-gwt, and Gradle-based integration tests. Data flow is entirely in-process: consumers depend on the published jar (jre or android variant) and call its APIs directly.
Languages
Frameworks
Infrastructure
Major components
guava (JRE flavor)
The core library source tree under guava/src/com/google/common containing base utilities, collections, cache, graph, io, net, math, primitives, hash, concurrent, and escape packages.
android flavor
A parallel Maven reactor rooted at android/pom.xml building Android-compatible variants of guava, guava-bom, guava-testlib, and guava-tests.
guava-testlib
A published testing library (com.google.common.testing) offering EqualsTester, NullPointerTester, ClassSanityTester, ForwardingWrapperTester, FakeTicker, SerializableTester, and related helpers for testing Guava-style APIs.
guava-gwt
GWT-compatible sources and .gwt.xml module descriptors that let Guava be compiled to JavaScript, including third-party public-suffix patterns.
futures (failureaccess / listenablefuture)
Separate small artifacts: failureaccess (the sole runtime linkage dependency of guava) and empty listenablefuture stubs to avoid dependency conflicts.
guava-bom
A Maven Bill of Materials aligning versions of guava, guava-gwt, and guava-testlib for consumers.
integration-tests/gradle
A Gradle-based integration test harness verifying Guava works correctly when consumed through Gradle builds.
proguard rules & build tooling
Per-package ProGuard configuration (base, cache, collect, concurrent, hash, primitives) plus utility scripts for snapshot deployment, surefire report printing, and snapshot doc updates.
A quiet week of housekeeping: silencing warnings, adding a gzip media type, and fixing Maven 4 compatibility.
5 weeksWeek of 2026-08-24
Week of 2026-08-24latest
A quiet week of housekeeping: silencing warnings, adding a gzip media type, and fixing Maven 4 compatibility.
Week of 2026-08-17
Release week for Guava 33.7.0 and 33.7.1, alongside build simplification and test cleanups.
Week of 2026-08-10
A busy week fixing a real concurrency bug in ExecutionSequencer plus broad warning cleanups and data refreshes.
Week of 2026-08-03
Focused on packaging changes—moving module-info and dropping view caching from CompactHashMap—plus doc link fixes.
Week of 2026-07-27
Big cleanup week: eliminated view caching across ImmutableMap implementations and modernized casting and Javadoc conventions.
Over the past five weeks, the Guava team focused heavily on code cleanup and modernization: removing internal caching of collection views, standardizing lazy initialization, and fixing a growing list of compiler warnings and lint errors. There were also user-facing improvements, including a new gzip media type constant, a fix for an executor queue stall, and updated documentation for releases 33.7.0 and 33.7.1. Build tooling got attention too, with Maven 4 compatibility fixes and tighter security settings in GitHub Actions.
Week by week
2026-08-24A quiet week of housekeeping: silencing warnings, adding a gzip media type, and fixing Maven 4 compatibility.latest3 changes
Chore
Silenced 'too many parameters' warnings
The team told their code-checking tool to stop flagging methods that legitimately take many arguments.
Feature
Added application/gzip media type
Guava now includes a built-in constant for the official IANA-registered gzip file format type.
Fix
Fixed Maven 4 compatibility
Adjustments were made so the project builds cleanly with the upcoming version 4 of the Maven build tool.
2026-08-17Release week for Guava 33.7.0 and 33.7.1, alongside build simplification and test cleanups.6 changes
Docs
Released Guava 33.7.1
Documentation was updated to reflect the just-shipped 33.7.1 patch release.
Chore
Prepared release 33.7.0
Final steps were taken to cut the 33.7.0 version of the library.
Refactor
Simplified dependency version management
Gradle now reads expected dependency versions directly from the pom.xml file instead of duplicating them.
Chore
Stopped setting Multi-Release jar flag
The jars no longer declare themselves as multi-release, removing unnecessary metadata.
Chore
Reverted one Truth migration
A recent switch of tests to the Truth assertion library was rolled back where it didn't fit.
Chore
Suppressed inapplicable Refaster suggestions
Automated refactoring hints that didn't apply to this codebase were turned off.
2026-08-10A busy week fixing a real concurrency bug in ExecutionSequencer plus broad warning cleanups and data refreshes.6 changes
Fix
Fixed ExecutionSequencer queue stall
Fixed a bug where task queues could get stuck if the underlying executor rejected new work.
Chore
Removed old Samsung workarounds
Code workarounds for a long-standing reflection bug on old Samsung devices were backed out as no longer needed.
Chore
Updated Public Suffix List data
The bundled list of internet domain suffixes (used for cookie/domain handling) was refreshed.
Refactor
Optimized hash code combining
Internal byte-array access made combining multiple hash codes slightly faster.
Refactor
Standardized racy lazy initialization
Patterns for safely initializing values on first use were made consistent across the codebase.
Chore
Addressed remaining assignment-expression warnings
Cleaned up code patterns that mix assignments into conditions, which linters flag as error-prone.
2026-08-03Focused on packaging changes—moving module-info and dropping view caching from CompactHashMap—plus doc link fixes.5 changes
Refactor
Removed view caching from CompactHashMap
CompactHashMap no longer caches its collection views, simplifying memory behavior.
Chore
Moved module-info to jar root
Java module metadata now lives at the top level of the jar for better tooling compatibility.
Fix
Fixed invalid Javadoc links
Documentation links that pointed to nonexistent targets were corrected.
Docs
Improved Javadoc wording
Small clarity improvements were made to API documentation comments.
Chore
Bumped GitHub Actions dependencies
Three automation workflow dependencies were updated to newer versions.
2026-07-27Big cleanup week: eliminated view caching across ImmutableMap implementations and modernized casting and Javadoc conventions.6 changes
Refactor
Removed view caching from ImmutableMap implementations
Many ImmutableMap variants stopped caching their collection views, reducing memory overhead.
Refactor
Safer type casts throughout
Unchecked casts were replaced with built-in safe-cast methods like Class.cast and Class.asSubclass wherever possible.
Chore
Deprecated Atomics static factories
Static factory methods in Atomics were marked deprecated with automatic inline replacements planned.
Docs
Standardized Javadoc heading levels
User-defined headings in documentation now start at consistent levels (h2 for classes, h4 for methods).
Chore
Secured GitHub Actions checkouts
Workflow checkouts no longer persist login credentials, improving supply-chain security.
Chore
Upgraded JSpecify to 1.0.1
The nullness annotation library used by Guava was bumped to its latest release.
Dependencies and code review
Dependency advisories
Security Watch
No known advisories across 0 scanned dependencies.
No known advisories in the scanned dependencies.
Code review
No concrete code-level issues confirmed.
Get this report every week for your repos.
GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.
$19 a month, flat · First 10 outputs free · No card required