Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Nov 17, 2025

Bumps com.maxmind.db:maxmind-db from 3.2.0 to 4.0.0.

Release notes

Sourced from com.maxmind.db:maxmind-db's releases.

4.0.0

This is a major release with several breaking changes. Please see https://github.com/maxmind/MaxMind-DB-Reader-java/blob/HEAD/UPGRADING.md for detailed migration instructions.

  • Java 17 or greater is now required.
  • Added support for MaxMind DB files larger than 2GB. The library now uses an internal Buffer abstraction that can handle databases exceeding the 2GB ByteBuffer limit. Files under 2GB continue to use a single ByteBuffer for optimal performance. Requested by nonetallt. GitHub #154. Fixed by Silvano Cerza. GitHub #289.
  • Metadata.getBuildDate() has been replaced with buildTime(), which returns java.time.Instant instead of java.util.Date. The instant represents the database build time in UTC.
  • DatabaseRecord, Metadata, Network, and internal DecodedValue classes have been converted to records. The following API changes were made:
    • DatabaseRecord.getData() and DatabaseRecord.getNetwork() have been replaced with record accessor methods data() and network().
    • Simple getter methods on Metadata (e.g., getBinaryFormatMajorVersion(), getDatabaseType(), etc.) have been replaced with their corresponding record accessor methods (e.g., binaryFormatMajorVersion(), databaseType(), etc.).
    • Network.getNetworkAddress() and Network.getPrefixLength() have been replaced with record accessor methods networkAddress() and prefixLength().
    • Removed the legacy DatabaseRecord(T, InetAddress, int) constructor; pass a Network when constructing records manually.
  • Deserialization improvements:
    • If no constructor is annotated with @MaxMindDbConstructor, records now use their canonical constructor automatically. For non‑record classes with a single public constructor, that constructor is used by default.
    • @MaxMindDbParameter annotations are now optional when parameter names match field names in the database: for records, component names are used; for classes, Java parameter names are used (when compiled with -parameters). Annotations still take precedence when present.
    • Added @MaxMindDbIpAddress and @MaxMindDbNetwork annotations to inject the lookup IP address and resulting network into constructors. Annotation metadata is cached per type to avoid repeated reflection overhead.
Changelog

Sourced from com.maxmind.db:maxmind-db's changelog.

4.0.0 (2025-11-10)

This is a major release with several breaking changes. Please see https://github.com/maxmind/MaxMind-DB-Reader-java/blob/main/UPGRADING.md for detailed migration instructions.

  • Java 17 or greater is now required.
  • Added support for MaxMind DB files larger than 2GB. The library now uses an internal Buffer abstraction that can handle databases exceeding the 2GB ByteBuffer limit. Files under 2GB continue to use a single ByteBuffer for optimal performance. Requested by nonetallt. GitHub #154. Fixed by Silvano Cerza. GitHub #289.
  • Metadata.getBuildDate() has been replaced with buildTime(), which returns java.time.Instant instead of java.util.Date. The instant represents the database build time in UTC.
  • DatabaseRecord, Metadata, Network, and internal DecodedValue classes have been converted to records. The following API changes were made:
    • DatabaseRecord.getData() and DatabaseRecord.getNetwork() have been replaced with record accessor methods data() and network().
    • Simple getter methods on Metadata (e.g., getBinaryFormatMajorVersion(), getDatabaseType(), etc.) have been replaced with their corresponding record accessor methods (e.g., binaryFormatMajorVersion(), databaseType(), etc.).
    • Network.getNetworkAddress() and Network.getPrefixLength() have been replaced with record accessor methods networkAddress() and prefixLength().
    • Removed the legacy DatabaseRecord(T, InetAddress, int) constructor; pass a Network when constructing records manually.
  • Deserialization improvements:
    • If no constructor is annotated with @MaxMindDbConstructor, records now use their canonical constructor automatically. For non‑record classes with a single public constructor, that constructor is used by default.
    • @MaxMindDbParameter annotations are now optional when parameter names match field names in the database: for records, component names are used; for classes, Java parameter names are used (when compiled with -parameters). Annotations still take precedence when present.
    • Added @MaxMindDbIpAddress and @MaxMindDbNetwork annotations to inject the lookup IP address and resulting network into constructors. Annotation metadata is cached per type to avoid repeated reflection overhead.
Commits
  • 73d600c Preparing for 4.0.0
  • bad6ed5 Prepare documentation for 4.0.0 release
  • 0a08799 Merge pull request #314 from maxmind/dependabot/maven/org.junit.jupiter-junit...
  • 2e12f94 Bump org.junit.jupiter:junit-jupiter from 6.0.0 to 6.0.1
  • 158a84b Merge pull request #313 from maxmind/greg/eng-3236
  • 02d85c9 Set Dependabot cooldown period to 4 days
  • 7d6d8d0 Merge pull request #312 from maxmind/dependabot/maven/com.puppycrawl.tools-ch...
  • 5ebaf90 Bump com.puppycrawl.tools:checkstyle from 12.1.0 to 12.1.1
  • 1013dc6 Merge pull request #309 from maxmind/greg/eng-3230
  • 1d28478 Optimize UINT64/UINT128 decoding to avoid BigInteger allocation
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [com.maxmind.db:maxmind-db](https://github.com/maxmind/MaxMind-DB-Reader-java) from 3.2.0 to 4.0.0.
- [Release notes](https://github.com/maxmind/MaxMind-DB-Reader-java/releases)
- [Changelog](https://github.com/maxmind/MaxMind-DB-Reader-java/blob/main/CHANGELOG.md)
- [Commits](maxmind/MaxMind-DB-Reader-java@v3.2.0...v4.0.0)

---
updated-dependencies:
- dependency-name: com.maxmind.db:maxmind-db
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file java Pull requests that update java code labels Nov 17, 2025
@github-actions github-actions bot merged commit 8190742 into main Nov 17, 2025
1 of 2 checks passed
@dependabot dependabot bot deleted the dependabot/gradle/com.maxmind.db-maxmind-db-4.0.0 branch November 17, 2025 21:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file java Pull requests that update java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant