Releases: maxmind/GeoIP2-java
Releases · maxmind/GeoIP2-java
5.2.0
Sorry, something went wrong.
No results found
Immutable
release. Only release title and notes can be modified.
- A new residential field has been added to the Anonymizer record. This
is an AnonymizerFeed record containing confidence, networkLastSeen,
and providerName fields with residential proxy data for the network.
residential may be populated even when none of the other fields on
Anonymizer are set. The AnonymizerFeed record is intended to be reused
for additional feeds, such as VPNs, mobile networks, and hosting or
datacenter providers, that may be added in the future.
5.1.0
Sorry, something went wrong.
No results found
Immutable
release. Only release title and notes can be modified.
- Updated maxmind-db dependency to 4.1.0. This release fixes an issue with
unbounded off-heap memory growth when using FileMode.MEMORY and a latent
short-read bug when loading databases larger than 2GB into memory.
- Added WebServiceClient.Builder.maxRetries(int) to bound transport-failure
retries (default 1; set 0 to disable). See the README for retry semantics.
Behavior change: previously, transient transport failures (connection
reset, broken pipe, etc.) surfaced to callers immediately. They are now
retried once by default; pass .maxRetries(0) to restore the prior
behavior.
5.0.2
Sorry, something went wrong.
No results found
Immutable
release. Only release title and notes can be modified.
- Fixed an issue where decoding IpRiskResponse from the IP Risk database would
fail when the ip_risk field was not present in the database record. The
ipRisk field now defaults to 0.0 when not present. A value of 0.0 indicates
that the risk score was not set in the database. In a future major release,
this field may be changed to a nullable Double to better distinguish between
"no data" and "zero risk". Reported by Fabrice Bacchella. GitHub #644.
- Updated maxmind-db dependency to 4.0.2. This fixes a bug where enums with
@MaxMindDbCreator would throw ConstructorNotFoundException when the data
was stored via a pointer in the database, commonly occurring with deduplicated
data in larger databases. It also improves error messages when constructor
invocation fails. Reported by Fabrice Bacchella. GitHub #644.
5.0.1
Sorry, something went wrong.
No results found
Immutable
release. Only release title and notes can be modified.
- Updated maxmind-db dependency to 4.0.1. This makes DecodedValue public
again, allowing custom NodeCache implementations to be created. GitHub
#636.
5.0.0
Sorry, something went wrong.
No results found
- BREAKING: All model and record classes have been converted to Java records.
This provides a more modern, immutable data model with automatic implementations
of equals(), hashCode(), and toString(). The abstract classes
AbstractRecord, AbstractNamedRecord, AbstractResponse,
AbstractCountryResponse, AbstractCityResponse, and IpBaseResponse have
been removed. Record components can be accessed using the new accessor methods
(e.g., city(), country(), location()). The traditional getter methods
(e.g., getCity(), getCountry(), getLocation()) are still available but
have been deprecated and will be removed in version 6.0.0.
- BREAKING: RepresentedCountry is now a separate record type instead of
extending Country. It shares the same fields as Country but adds a type
field.
- The deprecation notices for IP Risk database support have been removed.
IP Risk database support will continue to be maintained.
- A new Anonymizer record has been added to the InsightsResponse model. This
record consolidates anonymizer information including VPN confidence scores,
network last seen dates, and provider names. It includes the following fields:
confidence, isAnonymous, isAnonymousVpn, isHostingProvider,
isPublicProxy, isResidentialProxy, isTorExitNode, networkLastSeen, and
providerName.
- A new ipRiskSnapshot field has been added to the Traits record. This field
provides a static risk score (ranging from 0.01 to 99) associated with the IP
address. This is available from the GeoIP2 Precision Insights web service.
- The anonymous IP flags in the Traits record (isAnonymous, isAnonymousVpn,
isHostingProvider, isPublicProxy, isResidentialProxy, and isTorExitNode)
have been deprecated in favor of using the new Anonymizer record in the
InsightsResponse. These fields will continue to work but will be removed in
version 6.0.0.
- BREAKING: The deprecated WebServiceClient.Builder methods
connectTimeout(int), readTimeout(int), and proxy(Proxy) have been
removed. Use connectTimeout(Duration), requestTimeout(Duration), and
proxy(ProxySelector) respectively.
- BREAKING: The deprecated WebServiceClient.close() method has been
removed along with the Closeable interface implementation.
- BREAKING: The deprecated getUrl() methods in HttpException and
InvalidRequestException have been removed. Use getUri() instead.
- BREAKING: The deprecated Traits constructors and methods
isAnonymousProxy() and isSatelliteProvider() have been removed. Use the
GeoIP2 Anonymous IP database for anonymous proxy detection instead.
- BREAKING: The deprecated Location.getMetroCode() method has been
removed. Metro code values are no longer maintained.
- BREAKING: Java 11 support has been dropped. Java 17 or later is now required.
- BREAKING: Removed explicit serialVersionUID from all exception classes.
Java will auto-generate serialVersionUID when needed, following modern practices.
- BREAKING: Removed no longer necessary JacksonInject annotations for
ip_address, network, and traits from several classes. The
JsonInjector class was removed.
- Public getter methods in non-record classes (e.g., DatabaseReader,
exception classes) have been renamed to follow the same naming convention as
records (e.g., metadata() instead of getMetadata()). The old getter
methods are still available but have been deprecated and will be removed in
version 6.0.0.
4.4.0
Sorry, something went wrong.
No results found
- WebServiceClient.Builder now has an httpClient() method to allow
passing in a custom HttpClient.
4.3.1
Sorry, something went wrong.
No results found
- First release using Central Portal instead of Legacy OSSRH.
- Dependency updates.
4.3.0
Sorry, something went wrong.
No results found
- Support for the GeoIP Anonymous Plus database has been added. To do a
lookup in this database, use the anonymousPlus method on
DatabaseReader.
- getMetroCode in the Location model has been deprecated. The code
values are no longer being maintained.
4.2.1
Sorry, something went wrong.
No results found
- Dependency updates:
- maxmind-db was upgraded to 3.1.1.
- Jackson was upgraded to 2.17.2.
- Added missing API documentation.
4.2.0
Sorry, something went wrong.
No results found
- A WebServiceProvider interface has been added to facilitate mocking of
WebServiceClient. Requested by Evan Chrisinger. GitHub #359.
- The GeoIP2 IP Risk database has been discontinued. Methods and classes
related to it have been deprecated.
- The fromString static method on the ConnectionType enum now has
the JsonCreator annotation so that it is used when deserializing.
This will prevent new additions in the future from causing a
deserialization error.
- The isAnycast() method was added to com.maxmind.geoip2.record.Traits.
This returns true if the IP address belongs to an anycast
network. This is available for the
GeoIP2 Country, City Plus, and Insights web services and the GeoIP2 Country,
City, and Enterprise databases.