Releases: ipregistry/ipregistry-java
Releases · ipregistry/ipregistry-java
Release list
6.1.0
Added
- Asynchronous API:
lookupAsync/parseAsyncmethods onIpregistryClientreturn aCompletableFutureand are backed by a virtual-thread-per-task executor by default. The executor is configurable viaIpregistryConfig#executor(a caller-provided executor is not shut down by the client). - Support for a caller-provided
CloseableHttpClientvia newIpregistryClientandDefaultRequestHandlerconstructors, allowing full control over connection pooling, proxying, TLS, and metrics. An injected client is not closed by the Ipregistry client (the caller retains ownership). - Typed error codes:
ApiException#getErrorCode()(andError#getErrorCode()) now return a strongly typedErrorCodeenum in addition to the raw stringcode, allowing callers to branch on error conditions without string matching. Unrecognized codes returnnullwhile the raw code remains available. - Automatic retries with exponential backoff for transient network errors and 5xx server responses, configurable via
IpregistryConfig(retryMaxAttempts,retryInterval,retryOnServerError,retryOnTooManyRequests). Retries on 429 Too Many Requests are disabled by default and honor theRetry-Afterheader when enabled. IpregistryClientnow implementsCloseableto release the underlying HTTP connection pool.
Fixed
- Escape JSON request bodies so that user-agent and IP values containing special characters (quotes, backslashes, control characters) no longer produce malformed requests.
- Skip the remote API call in batch lookups when every requested IP is already served from the cache.
- Bypass the cache for origin (requester) IP lookups to avoid returning data associated with a different IP.
- Replace deprecated Guava
CacheBuilder#expireAfterWrite(long, TimeUnit)usage with theDurationvariant.
Changed
- Upgrade dependencies: Jackson 2.22.0, Guava 33.6.0-jre, Apache HttpClient5 5.6.2, MaxMind DB 4.1.0, JUnit 6.1.1, Mockito 5.23.0, REST-assured 6.0.0, Lombok 1.18.46, and the Gradle wrapper to 9.6.1.
6.0.0
5.0.1
Minor release to fix an issue in the new automated workflow.
5.0.0
Changed
- BREAKING: Require Java 21+.
- Fixed deprecated Gradle configurations.
Improved
- Added professional, comprehensive javadoc documentation to all API model classes.
Removed
- Remove deprecated
IpregistryConfig#apiUrl. UseIpregistryConfig#baseUrlinstead.
4.0.0
Added
- Add new
IpregistryGeolocationDatasetclass for easy loading and query an Ipregistry Geolocation dataset offline.
Changed
- Updated required Java version to Java 11 from Java 8.
3.7.0
Added
- Add new
parsemethod to IpregistryClient to parse one or more user-agent values.
v3.6.0
Added
- New
vpnfield insecurityobject.
v3.5.0
Added
- New
relayfield insecuritydata.
Deprecated
- Deprecate
IpregistryConfigBuilder.apiUrlin favor ofIpregistryConfigBuilder.baseUrl.
v3.4.0
Added
- Support for usage in native images with GraalVM.
v3.3.0
Added
- IpInfo responses has a new
companyfield. - The enum ConnectionType includes a new value of
INACTIVE. - The class DefaultRequestHandler accepts a custom ObjectMapper.
Changed
- A single ObjectMapper instance is created and reused in DefaultRequestHandler.
- The API key is no longer passed as a query parameter but as a header when a request is sent.