Skip to content

Releases: Ontotext-AD/ontorefine-client

v1.8.0

12 Jan 09:45
Compare
Choose a tag to compare

Overview

New major release introducing new commands related to recently introduced functionality for project aliases and configurations in Ontotext Refine.

New

  • Introduced new command for retrieval of project configurations, which is based on the Refine extension. This extension provides a way for the users to export more complete set of configurations for a project so that they can be reused for creation of other projects.
    The configurations include the import options for the uploaded dataset and the operations history of the project.
    The primary reason for the extension is the usage of this configuration in the CLI transformation pipelines. Therefore the CLI commands will be updated to accept and work this configuration.

  • Introduced new command for identifying project by using alias or project id. The command is related to the new functionality introduced in Ontotext Refine 1.2, where the users are able to assign aliases to the projects and afterwards using them as reference.

  • Introduced new command for updating project alias(es). As the command for the project identification, it is related to the new functionality in Ontotext Refine 1.2.
    The command can be used to add and/or remove alias(es) from a specific project.

Changes

  • Removed old create method from RefineClients. The method was deprecated and announced for removal in version 1.4. All of the related logic and tests were either updated or removed.
  • Updates the version of all third party dependencies used by the project. This is done in order to keep the project up-to-date and avoid potential security issues due vulnerabilities in the libraries.

Bug fixes

  • Fixed the error messages for creation of the projects. The expected response code from the operation is usually 302. When the code is different, the produced error message is rather misleading, then helpful. There are cases when the code is 200 and the user receives message for error with status code 200.

  • Fixed an issue with the provision of the options for the create project command. It is related to the way the arguments are expected and handled in the OpenRefine.
    Basically The options should be provided as query parameters to the request, instead of as part of the request payload.

v1.7.1

19 Sep 12:26
Compare
Choose a tag to compare

Overview

Patch version fixing some minor issues related to the engine properties serialization, when using create project command.

New

  • Added record-based options for the Engines enum. The reason is completeness.

Changes

  • Removed the TODO.md as we aren't really keeping it up-to-date. Instead we are using internal JIRA tasks and the issues tracker of the project.

Bug fixes

  • Fixed the publishing of the library in the Maven Repository, when new release is created. The problem was that the URL for the repository was still using HTTP protocol instead of HTTPS, which caused an error while uploading the artifacts into the repository.
  • Fixed the string serialization of the Engines enum values. The previous mechanism was causing parsing errors in the OpenRefine, when the export command was executed.

v1.7.0

11 Aug 07:47
Compare
Choose a tag to compare

Overview

The new major version of the library brings a lot of changes and enhancements. There are primary related to the separation of the Ontotext Refine and GraphDB products.

Note that there are few breaking changes which are related to the compatibility of the library with GraphDB 9.x versions.

New

  • Added new profile local for Maven builds which disables the dependency and checkstyle checks. This profile is used for quick local build that is to be used for testing.
  • Introduced new command for RDF export, which uses Ontotext Refine to generate the RDF, instead GraphDB. The command uses SPARQL CONSTRUCT query to map the tabular project data to RDF. The command uses the SAPRQL endpoint exposed by Ontotext Refine allowing execution of query over the data of specific refine project.
  • MappingsNormalizer now handles additional case, where the mappings JSON is passes as array of operations.

Breaking Changes

  • The current version introduces some breaking changes related to the separation of the GraphDB and Ontotext Refine. The command for RDF export, now named GraphDbSparqlBasedRdfExportCommand will not work with GraphDB 9 anymore. The command will be kept as it is still relevant and it can be adjusted to work with GraphDB instance for more flexibility in the future. Currently there is a workaround allowing the command to work with the the first version of the Ontotext Refine.

Changes

  • Updates the version of all third party dependencies used by the project. This is done in order to keep the project up-to-date and avoid potential security issues due vulnerabilities in the libraries.
  • Updated the CI and release workflow configurations to use temurin Java distribution instead of adopt. The main reason for this change is the fact that adopt actually moved to temurin and it won't be supported anymore.
  • Minor refactoring and renaming for some of the command classes.

Bug fixes

  • Updated the retrival of the content length, when deciding whether to store the RDF export result in the memory or a file. Now instead of only relying on the entity content length property, the logic will try to extract the length from the response header.

v1.6.3

16 May 16:56
Compare
Choose a tag to compare

Overview

Introduces some changes to the handing of the RDF export results.

Changes

  • Changed the logic related to the RDF export return type introduced in 1.6.2. Now the output type is moved as property of the command, instead of sub-property of the ResultFormat. This way the setting of the options is more transparent and explicit for the user.
  • Changed the handling of the different result return types from the ExportRdfResponse. Now the result can be retrieved by each of the methods which is more convenient for the usage. The actual result is converted from either from the in-memory buffered String or temporary file.
    Note: when retrieving the result as String, but it exceeds the buffer size, OOM will be thrown by underlining library used for the conversion. In such cases, it is recommended to work with the file based result.

v1.6.2

13 May 08:01
Compare
Choose a tag to compare

Overview

This patch version brings several improvements to the resource handling in the commands and some additional usability features.

New

  • Introduced additional return types for the SPARQL based RDF export. Previously the result was returned only as String. There are cases, where the produced RDF is quite large and if there is no enough memory to for buffering, the command throws OOM exception, while consuming the stream. With the additional types the users can avoid that problem by writing the stream in the file or directly consuming it from the response object.
    The return types are also applied for the default command for RDF export, which uses the mapping JSON from the generated from the Mapping UI.
    The users can control the return type by providing different ResultType to the ResultFormat#as(ResultType). The default is STRING to keep the library compatible and to ease the migration effort.

Changes

  • All stream IO operations are now done in UTF-8. There are some utility libraries that have different default charset. To keep the library consistent and the behavior predictable, we explicitly set the charset to UTF-8.
  • All third party and utility libraries are not updated to the latest version. There were issues with the artifact deployment so in order to solve it some of the libraries had to be updated, but in the process we ended up updating all.
  • Updated the versions of the actions used in the CI and Release processes.

Bug fixes

  • There were places, where some of the streams were not closed properly, which may cause memory leaks in specific cases. To ensure that the resources are handled correctly, we've updated the logic to explicitly close all of the streams that we touch.

v1.6.1

07 Apr 13:06
Compare
Choose a tag to compare

Overview

Patch version which provides additional fix related to the encoding of the content for the request for the SPARQL RDF export.

Bug fixes

  • Changed the mechanism of encoding for the content of the entity, which represents the SPARQL conversion query. Apparently there are characters that are not handled correctly by the java.net.URLEncoder. Now we are going to just use UrlEncodedFormEntity, which handles the encoding in correct way.

v1.6.0

31 Mar 14:09
Compare
Choose a tag to compare

Overview

The version provides some fixes of goofy bugs and moves the project back to the Java 11.

New

  • Move the project to Java 11. Initially it was on 11, but after a while it was downgraded to 8, because of internal projects that were still developed on 8. Now we can proceed with the initial plan.

Changes

  • Updated the version of the jackson-databind library to the latest. The previous is detected as vulnerable by the security scans.

Bug fixes

  • Fixed a major bug in the SparqlBasedRdfExportCommand. The problem was that the payload for the request (the actual SPARQL query) was not encoded, which in different cases caused an execution of malformed query.

v1.5.0

07 Mar 14:10
Compare
Choose a tag to compare

Overview

The current release brings a new command for RDF export and some usability fixes.

New

  • Introduced new command for RDF data export. Instead of a mapping, the command takes advantage SPARQL API of the GraphDB and executed CONSTRUCT query. The query itself contains the data source that should be transformed, in this case that is a OntoRefine project. In order to make the functionality reusable, in other words executable for multiple projects, the query which is passed to the command contains placeholder for the refine project. This allows multiple execution of the defined query over projects with similar data structure.
    The command has one limitation that comes from the GraphDB itself, it requires existence of a repository in order to use the SPARQL API, no matter that it uses refine project as data source.
  • Introduces a way to execute integration tests over secured GraphDB. The functionality is implemented in the IntegrationTest class, which spawns the GraphDB instance used for the tests. The mechanism allow so enable/disable the security on the fly by creating an refine client instance, which uses credentials and another that doesn't.

Changes

  • Updated the GraphDB version for the integration tests to 10.0.0-M1 in order to take advantage of the new strategy for the product, which does not require licensing for the core functionalities of the product.
  • Added repository via configuration file provisioning to the docker environment, for the integration tests. The name of the repository is integration-tests and it is created, when the GraphDB is initialized.
  • Renamed the ExportRdfCommand to DefaultExportRdfCommand. This is a breaking change for implementations that refer to the concrete command class.

Bug fixes

  • Added logic which allow usage of the RDF mapping JSON in different format in the export RDF and apply operations commands. It fixes usability issue related to the extraction of the RDF mapping from different places in the user interface in the OntoRefine or Mapping UI.

v1.4.0

17 Feb 11:44
Compare
Choose a tag to compare

Overview

The enhancements that the new release provides are mainly related to the security topic.
We've extended the creation of the refine client, allowing provisioning of credentials, which later to be used for the request execution in secured instance of OntoRefine.

New

  • Enhanced the RefineClients to allow creation of different types of RefineClient instances. Now it can produce security aware client, which accepts credentials provider allowing to execute commands over secured Refine tools. Additionally there is an option, which allows full customization over the internal HTTP client that will be used by the RefineClient instance.

Changes

  • Deprecated RefineClients#create method in favor of RefineClients#standard. Now that there are more methods in RefineClients, create doesn't seems appropriate as it doesn't provide context for the type of the produced client.

Bug fixes

  • Fixed the method setOptions in ExportRowsCommand#Builder to follow the fluent pattern.
  • Reverted the wrongly committed changes to the interface implementation of the RefineClient.
  • Fixed an issue with the ExportRdfCommand request entity. If the initial request fails, it is retried due to the retry policy of the client. However the entity contains stream, which has been closed, which causes the retry to also fail without obvious reason. The simplest fix was to wrap the BasicHttpEntity in BufferedHttpEntity, which is always repeatable.

v1.3.0

13 Dec 12:38
Compare
Choose a tag to compare

Overview

The current release brings several improvements required by internal projects, where we are using the library. Also there are some optimizations and documentation updates.

New

  • Removed the licensing notice from the Java classes. The reason for doing so is that the current version is distributed with general Apache License Version 2.0. Furthermore there were licensing notices for MIT, Apache, etc. in different classes throughout the library.
  • Introduced enumeration for the engines that can be used for the export rows command. Updated the affect code to comply with the new type.
  • Added property of type Options to the ExportRowsCommand, which allows provisioning of additional configuration for the export processes. Information on which are the available configurations for the options property may be found here.
  • Added new configuration class for the ExportRowsCommand called AdditionalExportConfigs. It will contain additional options for controlling different aspects of the export process. The reason for using different class instead of Options is that the handling of these options will be implemented in the library, not in the refine tool itself. Currently there is only one option, which allows truncating of the last line in the result files after the export process is completed. It will be mainly used by *SV exports to keep the correct rows count.

Changes

  • UploadOptions is renamed to only Options. The intention behind the change is for the interface to become more abstract and to be used as general type for providing additional information to the different commands.
  • Moved the ExportRowsCommand in its own package in order to keep the structure of the project consistent. Updated the command to comply with the new definition of the commands.
  • Changed the object that is used for creation of the full endpoint address from URL to URI, which can be passed directly to the request builders without the need of converting it to String.