diff --git a/README.md b/README.md
index 2dd2ae45..19c19b4e 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,7 @@ repositories {
mavenCentral()
}
dependencies {
- compile 'com.maxmind.geoip2:geoip2:5.0.2'
+ implementation 'com.maxmind.geoip2:geoip2:5.0.2'
}
```
@@ -97,10 +97,10 @@ InetAddress ipAddress = InetAddress.getByName("128.101.101.101");
// Do the lookup
CountryResponse response = client.country(ipAddress);
-Country country = response.getCountry();
-System.out.println(country.getIsoCode()); // 'US'
-System.out.println(country.getName()); // 'United States'
-System.out.println(country.getNames().get("zh-CN")); // '美国'
+Country country = response.country();
+System.out.println(country.isoCode()); // 'US'
+System.out.println(country.name()); // 'United States'
+System.out.println(country.names().get("zh-CN")); // '美国'
```
### City Plus Service ###
@@ -126,24 +126,24 @@ InetAddress ipAddress = InetAddress.getByName("128.101.101.101");
// Do the lookup
CityResponse response = client.city(ipAddress);
-Country country = response.getCountry();
-System.out.println(country.getIsoCode()); // 'US'
-System.out.println(country.getName()); // 'United States'
-System.out.println(country.getNames().get("zh-CN")); // '美国'
+Country country = response.country();
+System.out.println(country.isoCode()); // 'US'
+System.out.println(country.name()); // 'United States'
+System.out.println(country.names().get("zh-CN")); // '美国'
-Subdivision subdivision = response.getMostSpecificSubdivision();
-System.out.println(subdivision.getName()); // 'Minnesota'
-System.out.println(subdivision.getIsoCode()); // 'MN'
+Subdivision subdivision = response.mostSpecificSubdivision();
+System.out.println(subdivision.name()); // 'Minnesota'
+System.out.println(subdivision.isoCode()); // 'MN'
-City city = response.getCity();
-System.out.println(city.getName()); // 'Minneapolis'
+City city = response.city();
+System.out.println(city.name()); // 'Minneapolis'
-Postal postal = response.getPostal();
-System.out.println(postal.getCode()); // '55455'
+Postal postal = response.postal();
+System.out.println(postal.code()); // '55455'
-Location location = response.getLocation();
-System.out.println(location.getLatitude()); // 44.9733
-System.out.println(location.getLongitude()); // -93.2323
+Location location = response.location();
+System.out.println(location.latitude()); // 44.9733
+System.out.println(location.longitude()); // -93.2323
```
### Insights Service ###
@@ -167,32 +167,32 @@ InetAddress ipAddress = InetAddress.getByName("128.101.101.101");
// Do the lookup
InsightsResponse response = client.insights(ipAddress);
-Country country = response.getCountry();
-System.out.println(country.getIsoCode()); // 'US'
-System.out.println(country.getName()); // 'United States'
-System.out.println(country.getNames().get("zh-CN")); // '美国'
-System.out.println(country.getConfidence()); // 99
+Country country = response.country();
+System.out.println(country.isoCode()); // 'US'
+System.out.println(country.name()); // 'United States'
+System.out.println(country.names().get("zh-CN")); // '美国'
+System.out.println(country.confidence()); // 99
-Subdivision subdivision = response.getMostSpecificSubdivision();
-System.out.println(subdivision.getName()); // 'Minnesota'
-System.out.println(subdivision.getIsoCode()); // 'MN'
-System.out.println(subdivision.getConfidence()); // 90
+Subdivision subdivision = response.mostSpecificSubdivision();
+System.out.println(subdivision.name()); // 'Minnesota'
+System.out.println(subdivision.isoCode()); // 'MN'
+System.out.println(subdivision.confidence()); // 90
-City city = response.getCity();
-System.out.println(city.getName()); // 'Minneapolis'
-System.out.println(city.getConfidence()); // 50
+City city = response.city();
+System.out.println(city.name()); // 'Minneapolis'
+System.out.println(city.confidence()); // 50
-Postal postal = response.getPostal();
-System.out.println(postal.getCode()); // '55455'
-System.out.println(postal.getConfidence()); // 40
+Postal postal = response.postal();
+System.out.println(postal.code()); // '55455'
+System.out.println(postal.confidence()); // 40
-Location location = response.getLocation();
-System.out.println(location.getLatitude()); // 44.9733
-System.out.println(location.getLongitude()); // -93.2323
-System.out.println(location.getAccuracyRadius()); // 3
-System.out.println(location.getTimeZone()); // 'America/Chicago'
+Location location = response.location();
+System.out.println(location.latitude()); // 44.9733
+System.out.println(location.longitude()); // -93.2323
+System.out.println(location.accuracyRadius()); // 3
+System.out.println(location.timeZone()); // 'America/Chicago'
-System.out.println(response.getTraits().getUserType()); // 'college'
+System.out.println(response.traits().userType()); // 'college'
```
## Database Usage ##
@@ -256,32 +256,32 @@ File database = new File("/path/to/GeoIP2-City.mmdb");
// This creates the DatabaseReader object. To improve performance, reuse
// the object across lookups. The object is thread-safe.
-DatabaseReader reader = new DatabaseReader.Builder(database).build();
-
-InetAddress ipAddress = InetAddress.getByName("128.101.101.101");
+try (DatabaseReader reader = new DatabaseReader.Builder(database).build()) {
+ InetAddress ipAddress = InetAddress.getByName("128.101.101.101");
-// Replace "city" with the appropriate method for your database, e.g.,
-// "country".
-CityResponse response = reader.city(ipAddress);
+ // Replace "city" with the appropriate method for your database, e.g.,
+ // "country".
+ CityResponse response = reader.city(ipAddress);
-Country country = response.getCountry();
-System.out.println(country.getIsoCode()); // 'US'
-System.out.println(country.getName()); // 'United States'
-System.out.println(country.getNames().get("zh-CN")); // '美国'
+ Country country = response.country();
+ System.out.println(country.isoCode()); // 'US'
+ System.out.println(country.name()); // 'United States'
+ System.out.println(country.names().get("zh-CN")); // '美国'
-Subdivision subdivision = response.getMostSpecificSubdivision();
-System.out.println(subdivision.getName()); // 'Minnesota'
-System.out.println(subdivision.getIsoCode()); // 'MN'
+ Subdivision subdivision = response.mostSpecificSubdivision();
+ System.out.println(subdivision.name()); // 'Minnesota'
+ System.out.println(subdivision.isoCode()); // 'MN'
-City city = response.getCity();
-System.out.println(city.getName()); // 'Minneapolis'
+ City city = response.city();
+ System.out.println(city.name()); // 'Minneapolis'
-Postal postal = response.getPostal();
-System.out.println(postal.getCode()); // '55455'
+ Postal postal = response.postal();
+ System.out.println(postal.code()); // '55455'
-Location location = response.getLocation();
-System.out.println(location.getLatitude()); // 44.9733
-System.out.println(location.getLongitude()); // -93.2323
+ Location location = response.location();
+ System.out.println(location.latitude()); // 44.9733
+ System.out.println(location.longitude()); // -93.2323
+}
```
### Anonymous IP ###
@@ -302,7 +302,7 @@ try (DatabaseReader reader = new DatabaseReader.Builder(database).build()) {
System.out.println(response.isHostingProvider()); // false
System.out.println(response.isPublicProxy()); // false
System.out.println(response.isResidentialProxy()); // false
- System.out.println(response.isTorExitNode()); //true
+ System.out.println(response.isTorExitNode()); // true
}
```
@@ -317,17 +317,17 @@ File database = new File("/path/to/GeoIP-Anonymous-Plus.mmdb");
try (DatabaseReader reader = new DatabaseReader.Builder(database).build()) {
InetAddress ipAddress = InetAddress.getByName("85.25.43.84");
- AnonymousIpResponse response = reader.anonymousPlus(ipAddress);
+ AnonymousPlusResponse response = reader.anonymousPlus(ipAddress);
- System.out.println(response.getAnonymizerConfidence()); // 30
+ System.out.println(response.anonymizerConfidence()); // 30
System.out.println(response.isAnonymous()); // true
System.out.println(response.isAnonymousVpn()); // false
System.out.println(response.isHostingProvider()); // false
System.out.println(response.isPublicProxy()); // false
System.out.println(response.isResidentialProxy()); // false
System.out.println(response.isTorExitNode()); // true
- System.out.println(response.getNetworkLastSeen()); // "2025-04-14"
- System.out.println(response.getProviderName()); // "FooBar VPN"
+ System.out.println(response.networkLastSeen()); // "2025-04-14"
+ System.out.println(response.providerName()); // "FooBar VPN"
}
```
@@ -345,8 +345,8 @@ try (DatabaseReader reader = new DatabaseReader.Builder(database).build()) {
AsnResponse response = reader.asn(ipAddress);
- System.out.println(response.getAutonomousSystemNumber()); // 217
- System.out.println(response.getAutonomousSystemOrganization()); // 'University of Minnesota'
+ System.out.println(response.autonomousSystemNumber()); // 217
+ System.out.println(response.autonomousSystemOrganization()); // 'University of Minnesota'
}
```
@@ -358,16 +358,16 @@ File database = new File("/path/to/GeoIP2-Connection-Type.mmdb");
// This creates the DatabaseReader object. To improve performance, reuse
// the object across lookups. The object is thread-safe.
-DatabaseReader reader = new DatabaseReader.Builder(database).build();
-
-InetAddress ipAddress = InetAddress.getByName("128.101.101.101");
+try (DatabaseReader reader = new DatabaseReader.Builder(database).build()) {
+ InetAddress ipAddress = InetAddress.getByName("128.101.101.101");
-ConnectionTypeResponse response = reader.connectionType(ipAddress);
+ ConnectionTypeResponse response = reader.connectionType(ipAddress);
-// getConnectionType() returns a ConnectionType enum
-ConnectionType type = response.getConnectionType();
+ // connectionType() returns a ConnectionType enum
+ ConnectionType type = response.connectionType();
-System.out.println(type); // 'Corporate'
+ System.out.println(type); // 'Corporate'
+}
```
### Domain ###
@@ -378,13 +378,13 @@ File database = new File("/path/to/GeoIP2-Domain.mmdb");
// This creates the DatabaseReader object. To improve performance, reuse
// the object across lookups. The object is thread-safe.
-DatabaseReader reader = new DatabaseReader.Builder(database).build();
-
-InetAddress ipAddress = InetAddress.getByName("128.101.101.101");
+try (DatabaseReader reader = new DatabaseReader.Builder(database).build()) {
+ InetAddress ipAddress = InetAddress.getByName("128.101.101.101");
-DomainResponse response = reader.domain(ipAddress);
+ DomainResponse response = reader.domain(ipAddress);
-System.out.println(response.getDomain()); // 'umn.edu'
+ System.out.println(response.domain()); // 'umn.edu'
+}
```
### Enterprise ###
@@ -401,29 +401,29 @@ try (DatabaseReader reader = new DatabaseReader.Builder(database).build()) {
// Use the enterprise(ip) method to do a lookup in the Enterprise database
EnterpriseResponse response = reader.enterprise(ipAddress);
- Country country = response.getCountry();
- System.out.println(country.getIsoCode()); // 'US'
- System.out.println(country.getName()); // 'United States'
- System.out.println(country.getNames().get("zh-CN")); // '美国'
- System.out.println(country.getConfidence()); // 99
-
- Subdivision subdivision = response.getMostSpecificSubdivision();
- System.out.println(subdivision.getName()); // 'Minnesota'
- System.out.println(subdivision.getIsoCode()); // 'MN'
- System.out.println(subdivision.getConfidence()); // 77
-
- City city = response.getCity();
- System.out.println(city.getName()); // 'Minneapolis'
- System.out.println(city.getConfidence()); // 11
-
- Postal postal = response.getPostal();
- System.out.println(postal.getCode()); // '55455'
- System.out.println(postal.getConfidence()); // 5
-
- Location location = response.getLocation();
- System.out.println(location.getLatitude()); // 44.9733
- System.out.println(location.getLongitude()); // -93.2323
- System.out.println(location.getAccuracyRadius()); // 50
+ Country country = response.country();
+ System.out.println(country.isoCode()); // 'US'
+ System.out.println(country.name()); // 'United States'
+ System.out.println(country.names().get("zh-CN")); // '美国'
+ System.out.println(country.confidence()); // 99
+
+ Subdivision subdivision = response.mostSpecificSubdivision();
+ System.out.println(subdivision.name()); // 'Minnesota'
+ System.out.println(subdivision.isoCode()); // 'MN'
+ System.out.println(subdivision.confidence()); // 77
+
+ City city = response.city();
+ System.out.println(city.name()); // 'Minneapolis'
+ System.out.println(city.confidence()); // 11
+
+ Postal postal = response.postal();
+ System.out.println(postal.code()); // '55455'
+ System.out.println(postal.confidence()); // 5
+
+ Location location = response.location();
+ System.out.println(location.latitude()); // 44.9733
+ System.out.println(location.longitude()); // -93.2323
+ System.out.println(location.accuracyRadius()); // 50
}
```
@@ -435,16 +435,16 @@ File database = new File("/path/to/GeoIP2-ISP.mmdb");
// This creates the DatabaseReader object. To improve performance, reuse
// the object across lookups. The object is thread-safe.
-DatabaseReader reader = new DatabaseReader.Builder(database).build();
-
-InetAddress ipAddress = InetAddress.getByName("128.101.101.101");
+try (DatabaseReader reader = new DatabaseReader.Builder(database).build()) {
+ InetAddress ipAddress = InetAddress.getByName("128.101.101.101");
-IspResponse response = reader.isp(ipAddress);
+ IspResponse response = reader.isp(ipAddress);
-System.out.println(response.getAutonomousSystemNumber()); // 217
-System.out.println(response.getAutonomousSystemOrganization()); // 'University of Minnesota'
-System.out.println(response.getIsp()); // 'University of Minnesota'
-System.out.println(response.getOrganization()); // 'University of Minnesota'
+ System.out.println(response.autonomousSystemNumber()); // 217
+ System.out.println(response.autonomousSystemOrganization()); // 'University of Minnesota'
+ System.out.println(response.isp()); // 'University of Minnesota'
+ System.out.println(response.organization()); // 'University of Minnesota'
+}
```
## Exceptions ##
@@ -469,17 +469,17 @@ the above exceptions.
## Values to use for Database or Map Keys ##
-**We strongly discourage you from using a value from any `getNames` method as
+**We strongly discourage you from using a value from any `names()` method as
a key in a database or map.**
These names may change between releases. Instead we recommend using one of the
following:
-* `com.maxmind.geoip2.record.City` - `City.getGeoNameId`
-* `com.maxmind.geoip2.record.Continent` - `Continent.getCode` or `Continent.getGeoNameId`
-* `com.maxmind.geoip2.record.Country` and `com.maxmind.geoip2.record.RepresentedCountry` - `Country.getIsoCode`
- or `Country.getGeoNameId`
-* `com.maxmind.geoip2.record.Subdivision` - `Subdivision.getIsoCode` or `Subdivision.getGeoNameId`
+* `com.maxmind.geoip2.record.City` - `City.geonameId`
+* `com.maxmind.geoip2.record.Continent` - `Continent.code` or `Continent.geonameId`
+* `com.maxmind.geoip2.record.Country` and `com.maxmind.geoip2.record.RepresentedCountry` - `Country.isoCode`
+ or `Country.geonameId`
+* `com.maxmind.geoip2.record.Subdivision` - `Subdivision.isoCode` or `Subdivision.geonameId`
## Multi-Threaded Use ##
@@ -501,7 +501,7 @@ documentation](https://dev.maxmind.com/geoip/docs/web-services?lang=en) for
details on what data each web service may return.
The only piece of data which is always returned is the `ip_address`
-available at `lookup.getTraits().getIpAddress()`.
+available at `lookup.traits().ipAddress()`.
## Integration with GeoNames ##
@@ -511,7 +511,7 @@ populated places. They offer both free and paid premium data. Each
feature is uniquely identified by a `geonameId`, which is an integer.
Many of the records returned by the GeoIP2 web services and databases
-include a `getGeoNameId()` method. This is the ID of a geographical
+include a `geonameId()` method. This is the ID of a geographical
feature (city, region, country, etc.) in the GeoNames database.
Some of the data that MaxMind provides is also sourced from GeoNames. We
@@ -547,7 +547,7 @@ to the client API, please
## Requirements ##
-MaxMind has tested this API with Java 11 and above.
+MaxMind has tested this API with Java 17 and above.
## Contributing ##
diff --git a/pom.xml b/pom.xml
index 4b6c0cc7..b6926848 100644
--- a/pom.xml
+++ b/pom.xml
@@ -212,8 +212,6 @@
3.14.1
17
- 17
- 11