github maxmind/GeoIP2-java v5.0.0
5.0.0

13 hours ago
  • 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.

Don't miss a new GeoIP2-java release

NewReleases is sending notifications on new releases.