Skip to content

Releases: m0nk3y2k4/thetvdb-java-api

v3.0.4

03 Nov 14:52

Choose a tag to compare

[3.0.4] - 2021-11-03

Changed

  • Replaced the maven NOPLogger dependency with SimpleLogger implementation: org.slf4j:slf4j-nop -> org.slf4j:slf4j-simple.
  • Updated multiple maven dependencies and plugins to latest version:
    • org.junit.jupiter:*: 5.7.0 -> 5.8.1
    • org.mockito:mockito-core: 3.6.28 -> 4.0.0
    • com.fasterxml.jackson.core:jackson-databind: 2.12.0 -> 2.13.0
    • org.assertj:assertj-core: 3.18.1 -> 3.21.0
    • org.slf4j:*: 1.7.30 -> 1.7.32
    • org.jacoco:jacoco-maven-plugin: 0.8.6 -> 0.8.7
    • org.apache.maven.plugins:maven-javadoc-plugin: 3.2.0 -> 3.3.1

v3.0.3

01 Jan 12:24

Choose a tag to compare

[3.0.3] - 2021-01-01

Added

  • Util method Parameters.isPositiveInteger returning Predicate used to check for positive numeric integers.
  • Proxy objects now support an additional path component.

Changed

  • Method APIUtil.prettyPrint(JsonNode) now wraps lines with a fix Unix-style (LF) line separator.
  • Reduced visibility of some JUnit test util classes and constructors.
  • Reduced visibility of some public methods which were only used internally.
  • Declared several util and factory classes as being final.
  • The body of POST requests is now fix UTF-8 encoded.
  • Made several methods static that did not reference any non-static content are were not overwritten in a sub class.
  • Enhanced some test classes to use static inner classes instead of anonymous classes to avoid possible memory leaks.
  • The methods APISession.isInitialized, APISession.userAuthentication and QueryResource.isValidQueryParameter now return primitive types.
  • Method JSONDeserializer.mapDataObject(...) now accepts general TypeReference<T> objects.
  • JsonResource.getJsonString now uses fix UTF-8 encoding when loading JSON content from resource files.
  • Test util MockServerUtil.contentLength now accepts a more general CharSequence.
  • Method usingExtendedLayout in TestTheTVDBAPICallAssert.java has been renamed to isUsingExtendedLayout.
  • Method usingJsonLayout in TestTheTVDBAPICallAssert.java has been renamed to isUsingJsonLayout.
  • Replace usage of anonymous classes in QueryParametersImpl to avoid the risk of memory leaks.
  • Changed names of system properties used for running integration tests.
  • Updated multiple maven dependencies to latest version:
    • org.mockito:mockito-core: 3.6.0 -> 3.6.28
    • com.fasterxml.jackson.core:jackson-databind: 2.11.3 -> 2.12.0

Removed

  • Method MockServerUtil.defaultAPIHttpHeaders(boolean) has been replaced by two more convenient ones.
    • MockServerUtil.defaultAPIHttpHeaders() includes matchers to check for absence of auth fields.
    • MockServerUtil.defaultAPIHttpHeadersWithAuthorization() includes matchers to check for presence of auth fields.
  • Constructor from ParametersTest.QueryParametersWithDisabledValueChecks inner class.

v3.0.2

21 Nov 12:29

Choose a tag to compare

[3.0.2] - 2020-11-21

Changed

  • Changed project compile version to Java SE 10
  • Updated multiple maven dependencies to latest version:
    • org.junit.jupiter:*: 5.6.2 -> 5.7.0
    • org.mockito:mockito-core: 3.4.6 -> 3.6.0
    • org.assertj:assertj-core: 3.16.1 -> 3.18.1
    • com.fasterxml.jackson.core:jackson-databind: 2.11.2 -> 2.11.3
    • org.mock-server:*: 5.11.1 -> 5.11.2

v3.0.1

29 Aug 19:26

Choose a tag to compare

3.0.1 - 2020-08-29

Changed

  • New releases will now be tagged without the "tvdb-japi-" prefix but only with the version number.

Fixed

  • Replaced hardcoded Windows line ending in JUnit test with dynamic OS setting.

v3.0.0

28 Aug 14:25

Choose a tag to compare

3.0.0 - 2020-08-28

First stable release which is fully compatible with TheTVDB.com RESTful remote APIv3.

Added

  • README.md providing useful information for getting familiar with the project.
  • LICENSE.txt and license file headers for Apache License, Version 2.0.
  • Added integration tests which will be executed against the real TheTVDB.com remote API.

Changed

  • Fixed some typos and outdated package names in JavaDoc.
  • Enhanced JavaDoc in API data model interfaces.
  • Renamed APIResponse.JSONErros interface to just APIResponse.Errors.

v0.0.8

22 Aug 12:19

Choose a tag to compare

0.0.8 - 2020-08-22

Added

  • Added support for all routes available under the Movies API endpoint.
  • Added CHANGELOG.md file.
  • Included org.jacoco:jacoco-maven-plugin 0.8.5 in order to generate a test coverage report at the end of the build process.

Changed

  • Changed the data types of TheTVDBApi.queryLastUpdated() shortcut methods parameters from String to long.
  • The remote API version used by this connector is now publicly available via the TheTVDBApi.Version.API_VERSION constant.
  • Specific handling of HTTP-405 responses. Enhance error message with additional information.
  • All code now has to have a JUnit test line coverage of at least 80% and no missed class counts.
  • Turned off non-error and non-warning messages for JavaDoc generation during maven build.
  • HEAD requests now overwrite the new getData() method for processing the response header values.

Fixed

  • Make response handling of HEAD request more fail-safe by checking for an existing input stream first.

Removed

  • Removed some unnecessary @JsonProperty annotations from API data models.

v0.0.7

16 Aug 19:15

Choose a tag to compare

0.0.7 - 2020-08-16

Added

  • Added execution to maven-javadoc-plugin with the goal to generate a *javadoc.jar file at the end of the build process.
  • Added maven-source-plugin 3.2.1 in order to generate a *sources.jar file at the end of the build process.
  • Introduced new @FunctionalInterface Procedure that allows the invocation of void methods that may throw an exception.
  • Included the getSeriesHeaderInformation route also into the TheTVDBApi.Extended layout.
  • Mapping for the /search/series routes JSONs data.poster property.
  • Added sjf4j NOP logger binding maven dependency.
  • The amount of actual key/value pairs held by a QueryParameters object can now be retrieved via the new size() method.
  • Added a bunch of JUnit5 tests. Note: tests will be executed against a build-in netty server and thus do not require an active Internet connection.
  • Added maven dependencies for org.mock-server:* 5.11.1 and org.assertj:assertj-core 3.16.1 for JUnit testing.
  • New class HttpHeaders holding constants of commonly used HTTP header names.
  • Included surefire plugin in version 3.0.0-M5.
  • Added option to dynamically define the remote endpoint to which the api-connector will send its requests to. Can be used for proxying requests. See new Proxy class.

Changed

  • The connector now throws an APIPreconditionException when trying to invoke any /user route with APIKey-only authentication.
  • JSON deserialization of series header requests now returns a corresponding APIResponse object.
  • HeadRequest.getResponse() now returns the mapped header values in a nested "data" JSON node.
  • Consider two QueryParameters objects to be equal when they have the same key/value pair. Invoking toString() will now return an overview of the actual key/value pairs.
  • Reduced the visibility of some internal public constructors and String constants.
  • Updated several maven plugins and dependencies to latest version:
    • org.apache.maven.plugins:maven-compiler-plugin: 3.8.0 -> 3.8.1
    • org.apache.maven.plugins:maven-javadoc-plugin: 3.1.0 -> 3.2.0
    • com.fasterxml.jackson.core:jackson-databind: 2.9.5 -> 2.11.2
    • org.immutables:value: 2.8.2 -> 2.8.8
    • org.slf4j:slf4j-api: 1.7.25 -> 1.7.30
  • Replaced JUnit4 with JUnit5 maven dependency.
  • Switched to Mockito v.3.
  • Enhanced some JavaDoc documentation. Fixed several typos.

Fixed

  • Fixed a typo in theAPIResponse String representation.
  • Fixed a typo in Series.getArisTime() method name.
  • Parameters.validatePathParam() now properly validates the actual parameter value instead of the (only descriptive) parameter name.
  • Fixed issue with "Accept" HTTP headers being overwritten in API requests.

v0.0.6

16 Jun 20:52

Choose a tag to compare

0.0.6 - 2020-06-16

Added

  • Remote API requests now include the API version to be used.
  • Enum for the different HTTP request methods.
  • Mapping for the /search/series routes JSONs data.image property.
  • Introduced new wrapper for some common @FunctionalInterface interfaces which allow a specific exception to be thrown during their execution.
  • New util class Preconditions that can be used to check certain requirements before executing some specific code.
  • Util methods in APIUtil for creating a more readable String-representation for Lists and Optionals.
  • Some more jsr305 annotations.
  • New constant for slug query parameter in Query parameters class.
  • Some additional JavaDoc.

Changed

  • Method APIUtil.prettyPrint(JsonNode) now throws a more specific JsonProcessingException.
  • Small refactoring of API response JSON deserialization.
  • APINotAuthorizedException is now a sub-type of APICommunicationException.
  • Re-enabled doclint setting in the JavaDoc maven plugin and added some configuration on how the output should look like.
  • Full refactoring of method parameter and precondition checks. Removed many of the specific validator classes and consolidated parts of their functionality into two classes: Parameters and Preconditions.
  • In order to reduce boilerplate code, the hardcoded API data model implementations have been replaced by some auto-generated code based on the Immutables library.
  • Methods in APIUtil now return primitive boolean values.
  • Converted some validators to java.util.function.Predicate. Changed corresponding method signatures.
  • Changed class name suffix for API data model implementations.

Fixed

  • Fixed some unpleasant JavaDoc formatting.

Removed

  • Removed QueryResource.createQueryResource(String, QueryParameters) method.
  • Removed APIValidationException class. Replaced by the new APIPreconditionException and java.lang.IllegalArgumentException.
  • ConnectionValidator has been removed. Its functionality has been relocated into Preconditions class.
  • Functionality of PathValidator, QueryValidator and ObjectValidator has been consolidated into the new Parameters class.

v0.0.5

09 May 20:50

Choose a tag to compare

0.0.5 - 2020-05-09

Added

  • Some additional JavaDoc.
  • Additional parameter and precondition validations.
  • Extended jsr305 annotations.
  • #deleteFromRatings() is now available in all API layouts.
  • Option to provide and use an existing JWT (without requesting one via the /login route).
  • Proper toString() implementations for API data models.

Changed

  • APIRequest#openConnection now returns the newly created connection again.
  • Refactoring of API requests. Consolidated common functionality in an abstract superclass.
  • Slightly changed exception handling.
  • Use non-primitive data types in API data model interfaces.
  • Reduced the visibility of some properties and methods to default or private.

Fixed

  • Issue with JSON deserialization of favorites API response in case the user has no favorites.
  • Session status can no longer be set to null.
  • Default language can no longer be set to null.

Removed

  • ParamValidator class has been replaced by PathValidator and QueryValidator.

v0.0.4

08 Apr 18:20

Choose a tag to compare

0.0.4 - 2019-04-08

Added

  • New nested interface TheTVDBApi.Extended holding all API methods returning an APIResponse<DTO> object.
  • Included new wrapper class for remote API responses containing extended error and pagination data.
  • Added type resolver with general Interface<->Implementation mappings to JSONDeserializer.
  • New nested interface TheTVDBApi.JSON holding all API methods returning a JsonNode object.
  • Mapping for the /search/series routes JSONs data.slug property.
  • Return more detailed information in case of errors or failed validations.
  • Some additional JavaDoc.

Changed

  • Moved all API methods returning a JsonNode object into the new TheTVDBApi.JSON layout.
  • Complete refactoring of JsonDeserializer class.
  • Renamed class SeriesAbstract to SeriesSearchResult.
  • Moved API response data models into a distinct sub-package.
  • The APIs #getAvailableFilterParameters method has been renamed to #getAvailableSeriesFilterParameters.
  • Calls to the APIs /series/{id}/episodes[/query] route will now return an Episode instead of an EpisodeAbstract object.
  • Calls to the APIs /search/series route will now return a SeriesSearchResult instead of a SeriesAbstract object.
  • Introduced parameterized types in validations of ParamValidator class.
  • APIRequest#openConnection does no longer return the newly created connection.
  • Reduced the visibility of some properties and methods to default or private.

Fixed

  • Issue with auto-authentication when invoking the /refresh_token route.

Removed

  • EpisodeAbstract data model and included its content into the existing Episode model.