Releases: m0nk3y2k4/thetvdb-java-api
Releases · m0nk3y2k4/thetvdb-java-api
v3.0.4
[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
- org.junit.jupiter:*:
v3.0.3
[3.0.3] - 2021-01-01
Added
- Util method
Parameters.isPositiveIntegerreturning Predicate used to check for positive numeric integers. Proxyobjects 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
staticthat 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.userAuthenticationandQueryResource.isValidQueryParameternow return primitive types. - Method
JSONDeserializer.mapDataObject(...)now accepts generalTypeReference<T>objects. JsonResource.getJsonStringnow uses fix UTF-8 encoding when loading JSON content from resource files.- Test util
MockServerUtil.contentLengthnow accepts a more general CharSequence. - Method
usingExtendedLayoutin TestTheTVDBAPICallAssert.java has been renamed toisUsingExtendedLayout. - Method
usingJsonLayoutin TestTheTVDBAPICallAssert.java has been renamed toisUsingJsonLayout. - Replace usage of anonymous classes in
QueryParametersImplto 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
- org.mockito:mockito-core:
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.QueryParametersWithDisabledValueChecksinner class.
v3.0.2
[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
- org.junit.jupiter:*:
v3.0.1
v3.0.0
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.JSONErrosinterface to justAPIResponse.Errors.
v0.0.8
0.0.8 - 2020-08-22
Added
- Added support for all routes available under the Movies API endpoint.
- Added
CHANGELOG.mdfile. - Included org.jacoco:jacoco-maven-plugin
0.8.5in 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_VERSIONconstant. - 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
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.1in order to generate a *sources.jar file at the end of the build process. - Introduced new @FunctionalInterface
Procedurethat allows the invocation of void methods that may throw an exception. - Included the getSeriesHeaderInformation route also into the
TheTVDBApi.Extendedlayout. - 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
QueryParametersobject can now be retrieved via the newsize()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.1and org.assertj:assertj-core3.16.1for JUnit testing. - New class
HttpHeadersholding 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
Proxyclass.
Changed
- The connector now throws an
APIPreconditionExceptionwhen trying to invoke any /user route with APIKey-only authentication. - JSON deserialization of series header requests now returns a corresponding
APIResponseobject. HeadRequest.getResponse()now returns the mapped header values in a nested "data" JSON node.- Consider two
QueryParametersobjects 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
- org.apache.maven.plugins:maven-compiler-plugin:
- Replaced JUnit4 with JUnit5 maven dependency.
- Switched to Mockito v.3.
- Enhanced some JavaDoc documentation. Fixed several typos.
Fixed
- Fixed a typo in the
APIResponseString 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
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
Preconditionsthat can be used to check certain requirements before executing some specific code. - Util methods in
APIUtilfor creating a more readable String-representation for Lists and Optionals. - Some more jsr305 annotations.
- New constant for slug query parameter in
Queryparameters class. - Some additional JavaDoc.
Changed
- Method
APIUtil.prettyPrint(JsonNode)now throws a more specific JsonProcessingException. - Small refactoring of API response JSON deserialization.
APINotAuthorizedExceptionis now a sub-type ofAPICommunicationException.- 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:
ParametersandPreconditions. - 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
APIUtilnow 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
APIValidationExceptionclass. Replaced by the newAPIPreconditionExceptionand java.lang.IllegalArgumentException. ConnectionValidatorhas been removed. Its functionality has been relocated intoPreconditionsclass.- Functionality of
PathValidator,QueryValidatorandObjectValidatorhas been consolidated into the newParametersclass.
v0.0.5
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#openConnectionnow 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
ParamValidatorclass has been replaced byPathValidatorandQueryValidator.
v0.0.4
0.0.4 - 2019-04-08
Added
- New nested interface
TheTVDBApi.Extendedholding all API methods returning anAPIResponse<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.JSONholding 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.JSONlayout. - Complete refactoring of
JsonDeserializerclass. - Renamed class
SeriesAbstracttoSeriesSearchResult. - Moved API response data models into a distinct sub-package.
- The APIs
#getAvailableFilterParametersmethod has been renamed to#getAvailableSeriesFilterParameters. - Calls to the APIs /series/{id}/episodes[/query] route will now return an
Episodeinstead of anEpisodeAbstractobject. - Calls to the APIs /search/series route will now return a
SeriesSearchResultinstead of aSeriesAbstractobject. - Introduced parameterized types in validations of
ParamValidatorclass. APIRequest#openConnectiondoes 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
EpisodeAbstractdata model and included its content into the existingEpisodemodel.