diff --git a/.travis.yml b/.travis.yml index b54d23b..af903e4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,9 @@ language: java jdk: - - oraclejdk13 - - oraclejdk14 - - oraclejdk15 - - openjdk13 - - openjdk14 - - openjdk15 + - oraclejdk8 + - oraclejdk11 + - openjdk8 + - openjdk11 branches: only: - master diff --git a/README.md b/README.md index 129a22d..f604736 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Rick and Morty API Java Client -[![Build Status](https://travis-ci.org/adrianoluis/rickandmortyapi-java.svg?branch=master)](https://travis-ci.org/adrianoluis/rickandmortyapi-java) [![Coverage Status](https://coveralls.io/repos/github/adrianoluis/rickandmortyapi-java/badge.svg?branch=master)](https://coveralls.io/github/adrianoluis/rickandmortyapi-java?branch=master) +[![Build Status](https://travis-ci.com/adrianoluis/rickandmortyapi-java.svg?branch=master)](https://travis-ci.com/adrianoluis/rickandmortyapi-java) [![Coverage Status](https://coveralls.io/repos/github/adrianoluis/rickandmortyapi-java/badge.svg?branch=master)](https://coveralls.io/github/adrianoluis/rickandmortyapi-java?branch=master) Java Client for Rick And Morty knowledge base API: https://rickandmortyapi.com/ diff --git a/build.gradle b/build.gradle index 08e6341..5c9e122 100644 --- a/build.gradle +++ b/build.gradle @@ -8,12 +8,11 @@ plugins { } ext { - gsonVersion = '2.8.6' - guavaVersion = '30.0-jre' - jerseyVersion = '2.23.1' - slf4jVersion = '1.7.25' + gsonVersion = '2.8.7' + guavaVersion = '30.1.1-jre' + jerseyVersion = '2.34' + slf4jVersion = '1.7.31' junitVersion = '4.13.1' - threetenbpVersion = '1.5.0' } group = 'net.adrianoluis' @@ -26,7 +25,6 @@ repositories { dependencies { implementation "com.google.code.gson:gson:$gsonVersion" implementation "com.google.guava:guava:$guavaVersion" - implementation "org.threeten:threetenbp:$threetenbpVersion" implementation "org.slf4j:slf4j-api:$slf4jVersion" implementation("org.slf4j:slf4j-log4j12:$slf4jVersion") { transitive = true } implementation("org.glassfish.jersey.core:jersey-common:$jerseyVersion") { transitive = true } @@ -35,8 +33,8 @@ dependencies { } java { - sourceCompatibility = JavaVersion.VERSION_1_7 - targetCompatibility = JavaVersion.VERSION_1_7 + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 withSourcesJar() withJavadocJar() diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 442d913..8cf6eb5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/com/rickandmortyapi/ApiModel.java b/src/main/java/com/rickandmortyapi/ApiModel.java index 72420eb..23a005d 100644 --- a/src/main/java/com/rickandmortyapi/ApiModel.java +++ b/src/main/java/com/rickandmortyapi/ApiModel.java @@ -9,14 +9,14 @@ import lombok.Getter; import lombok.NonNull; import lombok.Setter; -import org.threeten.bp.ZonedDateTime; import javax.ws.rs.HttpMethod; import java.io.Serializable; import java.lang.reflect.Type; +import java.time.ZonedDateTime; import java.util.*; -abstract class ApiModel> { +abstract class ApiModel> implements Serializable { private final transient Class typeClass; @@ -68,7 +68,7 @@ void addFilter(@NonNull String query, @NonNull Object value) { protected JsonObject get(final PK id) { validateId(); try { - return new ApiRequest(HttpMethod.GET, String.format("/%s/%s", className, id)).execute(); + return new ApiRequest(HttpMethod.GET, String.format("/%s/%s", className, id)).execute(); } catch (ApiException e) { return new JsonObject(); } @@ -157,6 +157,7 @@ public T refresh() { } @SafeVarargs + @SuppressWarnings("varargs") public final Collection get(PK... ids) { return Jsons.asCollection(get(Arrays.asList(ids)), getTypeToken()); } diff --git a/src/main/java/com/rickandmortyapi/Character.java b/src/main/java/com/rickandmortyapi/Character.java index 6d3e713..7db3180 100644 --- a/src/main/java/com/rickandmortyapi/Character.java +++ b/src/main/java/com/rickandmortyapi/Character.java @@ -13,7 +13,6 @@ import java.util.List; import static com.rickandmortyapi.util.Urls.asId; -import static java.lang.Integer.parseInt; public class Character extends ApiModel { diff --git a/src/main/java/com/rickandmortyapi/Episode.java b/src/main/java/com/rickandmortyapi/Episode.java index 1437279..ac890c7 100644 --- a/src/main/java/com/rickandmortyapi/Episode.java +++ b/src/main/java/com/rickandmortyapi/Episode.java @@ -4,10 +4,10 @@ import com.google.gson.annotations.SerializedName; import com.google.gson.reflect.TypeToken; import lombok.Getter; -import org.threeten.bp.LocalDate; import javax.annotation.PostConstruct; import java.lang.reflect.Type; +import java.time.LocalDate; import java.util.ArrayList; import java.util.Collection; import java.util.List; diff --git a/src/main/java/com/rickandmortyapi/Location.java b/src/main/java/com/rickandmortyapi/Location.java index 1b81932..3978464 100644 --- a/src/main/java/com/rickandmortyapi/Location.java +++ b/src/main/java/com/rickandmortyapi/Location.java @@ -3,13 +3,11 @@ import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; import com.google.gson.reflect.TypeToken; -import com.rickandmortyapi.util.Jsons; import lombok.Getter; import javax.annotation.PostConstruct; import java.lang.reflect.Type; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.List; diff --git a/src/main/java/com/rickandmortyapi/RestClient.java b/src/main/java/com/rickandmortyapi/RestClient.java index 5317336..a4db301 100644 --- a/src/main/java/com/rickandmortyapi/RestClient.java +++ b/src/main/java/com/rickandmortyapi/RestClient.java @@ -2,7 +2,6 @@ import com.google.common.base.Strings; import com.google.gson.JsonElement; -import com.google.gson.JsonSyntaxException; import com.rickandmortyapi.util.Jsons; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/com/rickandmortyapi/util/Jsons.java b/src/main/java/com/rickandmortyapi/util/Jsons.java index a68f7e5..38f975a 100644 --- a/src/main/java/com/rickandmortyapi/util/Jsons.java +++ b/src/main/java/com/rickandmortyapi/util/Jsons.java @@ -1,10 +1,10 @@ package com.rickandmortyapi.util; import com.google.gson.*; -import org.threeten.bp.LocalDate; -import org.threeten.bp.ZonedDateTime; import java.lang.reflect.Type; +import java.time.LocalDate; +import java.time.ZonedDateTime; import java.util.Collection; public class Jsons { diff --git a/src/main/java/com/rickandmortyapi/util/LocalDateTypeAdapter.java b/src/main/java/com/rickandmortyapi/util/LocalDateTypeAdapter.java index 7cc8eeb..b1c6516 100644 --- a/src/main/java/com/rickandmortyapi/util/LocalDateTypeAdapter.java +++ b/src/main/java/com/rickandmortyapi/util/LocalDateTypeAdapter.java @@ -5,10 +5,10 @@ import com.google.gson.JsonDeserializer; import com.google.gson.JsonElement; import com.google.gson.JsonParseException; -import org.threeten.bp.LocalDate; -import org.threeten.bp.format.DateTimeFormatter; import java.lang.reflect.Type; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; public class LocalDateTypeAdapter implements JsonDeserializer { diff --git a/src/main/java/com/rickandmortyapi/util/PostConstructAdapterFactory.java b/src/main/java/com/rickandmortyapi/util/PostConstructAdapterFactory.java index 6430b6c..ff84b15 100644 --- a/src/main/java/com/rickandmortyapi/util/PostConstructAdapterFactory.java +++ b/src/main/java/com/rickandmortyapi/util/PostConstructAdapterFactory.java @@ -37,7 +37,7 @@ public TypeAdapter create(Gson gson, TypeToken type) { if (m.isAnnotationPresent(PostConstruct.class)) { m.setAccessible(true); TypeAdapter delegate = gson.getDelegateAdapter(this, type); - return new PostConstructAdapter(delegate, m); + return new PostConstructAdapter<>(delegate, m); } } } @@ -62,7 +62,8 @@ public T read(JsonReader in) throws IOException { } catch (IllegalAccessException e) { throw new AssertionError(); } catch (InvocationTargetException e) { - if (e.getCause() instanceof RuntimeException) throw (RuntimeException) e.getCause(); + if (e.getCause() instanceof RuntimeException) + throw (RuntimeException) e.getCause(); throw new RuntimeException(e.getCause()); } } diff --git a/src/main/java/com/rickandmortyapi/util/ZonedDateTimeTypeAdapter.java b/src/main/java/com/rickandmortyapi/util/ZonedDateTimeTypeAdapter.java index 331a3b7..e089f6e 100644 --- a/src/main/java/com/rickandmortyapi/util/ZonedDateTimeTypeAdapter.java +++ b/src/main/java/com/rickandmortyapi/util/ZonedDateTimeTypeAdapter.java @@ -1,12 +1,12 @@ package com.rickandmortyapi.util; import com.google.gson.*; -import org.threeten.bp.Instant; -import org.threeten.bp.ZoneId; -import org.threeten.bp.ZonedDateTime; -import org.threeten.bp.format.DateTimeFormatter; import java.lang.reflect.Type; +import java.time.Instant; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; class ZonedDateTimeTypeAdapter implements JsonDeserializer {