Skip to main content

Itsallcode Blog

New Gradle Plugin for OFT

It took a while, but now we finally released version 0.7.0 containing the Gradle plugin for OpenFastTrace 3.0.2.

There were some issues that delayed the release:

  • The configuration of plugins changed in Gradle 6.0. The old API is deprecated and will be removed in Gradle 7.0, so we had to migrate to the new API.
  • Calculating the test coverage of Gradle plugin integration tests requires plugin jacoco-gradle-testkit-plugin. With new Gradle versions the test task fails under Windows with exception message Failed to create MD5 hash for file content. This is a known issue caused by a gradle background process locking the Jacoco coverage result file build/jacoco/test.exec. Fortunately there is a workaround described in the issue. Now Sonarcloud reports a test coverage of 90% for the plugin.

The new Gradle plugin requires Java 11 and Gradle 6.0. We ensure compatibility with versions 6.0 and 6.4.1 with additional integration tests.

Long time, no see

The previous blog post was published more than one year ago. That’s why it’s high time for an update. We where busy in the last weeks preparing some new releases for you!

# OpenFastTrace 3.0.2

This major release contains these changes:

  • The project now requires Java 11 for building and running.
  • We re-structured the packages to have unique package names for each submodule. This is a precondition for Java 9 modules which we will introduce later.
  • The tag importer now supports many more file types, e.g. for C, C++, SQL and many more.

# OpenFastTrace Maven Plugin 0.1.0

This is the first release we recommend for production use as we added integration tests for real use cases. We upgraded to the latest OFT release and introduced a feature to optionally fail the build when tracing finds an error.

New Project Structure for OpenFastTrace

We are happy to announce the latest release 2.3.5 of OpenFastTrace.

In this release we split the source code into sub-modules for api, importers, exporters etc. This has some advantages:

  • The dependencies of plugins are now enforced by the compiler. It is not possible that e.g. the specobject exporter depends on the specobject importer.
  • Developers who want to extend OFT with custom importers or exporters only need add a dependency for the stable API module without all the other internal code.
  • A stable API simplifies internal refactoring of the code because third party plugins only depend on the API module. All other modules are internal and can be changed without breaking third party plugins.

I also should mention some caveats. Building the project now takes around 3 minutes, deployment to JCenter even 9 minutes.