- BREAKING: All model and record classes have been converted to Java records.
This provides a more modern, immutable data model with automatic implementations
ofequals(),hashCode(), andtoString(). The abstract classes
AbstractRecord,AbstractNamedRecord,AbstractResponse,
AbstractCountryResponse,AbstractCityResponse, andIpBaseResponsehave
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:
RepresentedCountryis now a separate record type instead of
extendingCountry. It shares the same fields asCountrybut adds atype
field. - The deprecation notices for IP Risk database support have been removed.
IP Risk database support will continue to be maintained. - A new
Anonymizerrecord has been added to theInsightsResponsemodel. 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
ipRiskSnapshotfield has been added to theTraitsrecord. 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
Traitsrecord (isAnonymous,isAnonymousVpn,
isHostingProvider,isPublicProxy,isResidentialProxy, andisTorExitNode)
have been deprecated in favor of using the newAnonymizerrecord in the
InsightsResponse. These fields will continue to work but will be removed in
version 6.0.0. - BREAKING: The deprecated
WebServiceClient.Buildermethods
connectTimeout(int),readTimeout(int), andproxy(Proxy)have been
removed. UseconnectTimeout(Duration),requestTimeout(Duration), and
proxy(ProxySelector)respectively. - BREAKING: The deprecated
WebServiceClient.close()method has been
removed along with theCloseableinterface implementation. - BREAKING: The deprecated
getUrl()methods inHttpExceptionand
InvalidRequestExceptionhave been removed. UsegetUri()instead. - BREAKING: The deprecated
Traitsconstructors and methods
isAnonymousProxy()andisSatelliteProvider()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
serialVersionUIDfrom all exception classes.
Java will auto-generate serialVersionUID when needed, following modern practices. - BREAKING: Removed no longer necessary
JacksonInjectannotations for
ip_address,network, andtraitsfrom several classes. The
JsonInjectorclass 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 ofgetMetadata()). The old getter
methods are still available but have been deprecated and will be removed in
version 6.0.0.