This document contains the change log for all Integration Test Framework releases since 0.1.0.

Please refer to the User Guide for a comprehensive overview and detailed instructions how to use the Integration Testing Framework.

Pre-release 0.13.1

Date of Release: December 29, 2023

Breaking Changes * A change in 0.13.0 broke the compatibility with Maven before version 3.9.0.

  • Fixed #445 - itf-maven-plugin:0.13.0:install fails due to missing class ArtifactIdUtils

    • Restored compatibility with Maven before 3.9.0

Reporter of this release

The full release notes can be found here Release 0.13.1.

Pre-release 0.13.0

Date of Release: ?? 2023

Scope:

  • {??} - — 

Details

  • Fixed #326 - Failing IT’s based on Maven 3.8.7

  • Fixed #329 - Upgrade to smpp 5.3.14

  • Fixed #409 - Remove superfluous debugging outputs

  • Fixed #410 - Document build requirement

  • Fixed #417 - Maven 4.0.0 - Failing IT - maven-resources-plugin not defined

Breaking Changes

  • Fixed #277 - Remove Deprecated Code. Take a look into the release notes of Version 0.12.0.

  • If you have used @MavenDebug annotation you have to replace that usage with @MavenVerbose. You will get deprecated warnings during the compilation.

  • Fixed #379 - Deprecated @MavenDebug; Replace the usage with @MavenVerbose. @MavenDebug will be removed with release 0.14.0.

  • Fixed #421 - Deprecated the MavenVersion#UNKNOWN. If you have used it somewhere you will get a deprecation WARNING during compilation. That should be replaced with MavenVersion#ANY. (Usually you shouldn’t have used that anyway). MavenVersion#UNKNOWN will be removed with release 0.14.0. Also all Maven Version for M3_0_5 up to M3_5_4 have been marked deprecated to indicate that those versions are very old and shouldn’t be used anymore; Not even in tests (You should upgrade your Maven version)

  • Fixed #359 - ITF class level annotations misbehave

    • if you have used @MavenProfile annotation on class level with profiles and relied on the behaviour that on a method or a nested class a definition of another @MavenProfile replaced all the original profiles during the execution. That behaviour has been changed. Please refer to the users guide about @MavenProfile annotation and it particular behaviour. The following example shows the behaviour in release 0.12.0:

      @MavenProfile({"profile-1", "profile-2", "profile-3"})
      class ProfileOnClassIT {
      
        @MavenTest
        void profile_1_2_3(MavenExecutionResult result) {
           ...
        }
      
        @MavenTest
        @MavenProfile("profile-1")
        void profile_1(MavenExecutionResult result) {
          ...
        }
      }

      The way to achieve the same with the release 0.13.0, you have to express is like this:

      @MavenProfile({"profile-1"})
      class ProfileOnClassIT {
      
        @MavenTest
        @MavenProfile({"profile-2", "profile-3"})
        void profile_1_2_3(MavenExecutionResult result) {
           ...
        }
      
        @MavenTest
        void profile_1(MavenExecutionResult result) {
          ...
        }
      }

Reporter of this release

Contributors of this release

  • …​

    • ..

Security Issues

  • {issue-??} - ???

Dependency Upgrades

Build Improvements

The full release notes can be found here Release 0.13.0.

Pre-release 0.12.0

Date of Release: 28. December 2022

Scope:

  • Fixed #284 - pom.xml in subfolder is not found or not supported

Details

  • Fixed #226 - itf-assertj dependency is missing in README

  • Fixed #210 - Removed unused dependency commons-compress.

  • Pull request #211 - Add @MavenTest annotation to README example

  • Fixed #230 - Get rid of commons-io

  • Fixed #232 - Support for custom location and reuse of a Maven project from my resources This is also related to Fixed #286.

  • Fixed #260 - Test project’s file attributes & links get lost when copied to test target/maven-it Upgraded maven-filtering and maven-artifact-transfer and added explicitly maven-shared-utils to prevent using transitive dependency.

  • Fixed #264 - The targetBaseDirectory in MavenProjectResult points to wrong location. Added some tests to prevent the issue.

  • Fixed #278 - Enhance list of Maven versions

  • Fixed #279 - Typos / Minor Code cleanups

  • Fixed #282 - Add missing equals/hashCode for custom assertions.

  • Fixed #285 - Add some tests.

  • Fixed #286 - Support a way to avoid the requirement for resources-its directory.

  • Fixed #289 - @MavenProjectLocation("subdir") Does not work on nested Class

  • Fixed #290 - @MavenProjectSources is not usable within another annotation.

  • Fixed #297 - Assign @SystemProperty to class / nested class and inherit on all test methods.

  • {issue-??} - ?

Breaking Changes

  • Fixed #276 - Replace File with Path

    • The return type of the methods getTargetProjectDirectory(), getTargetBaseDirectory() and getTargetCacheDirectory() of the class MavenProjectResult has been hanged from File into Path. That means you have to check your code. It will be obviously getting compile errors if you have used one of the above methods in your own code.

    • The method Model readProject(File pomFile) of the class ProjetHelper has been marked deprecated and will be removed with release 0.13.0. This means you have to replace the call of that method with the same which has a parameter Model readProject(Path pomFile).

    • Technically the class ArchiveAssert extended before from AbstractAssert<ArchiveAssert, File> while it now extends AbstractAssert<ArchiveAssert, Path> instead.

  • Fixed #281 - Lifting Maven minimum version for itf-maven-plugin to Maven 3.2.5+

Reporter of this release

Contributors of this release

Security Issues

  • Fixed #301 - Upgrade TestNG 7.6.1 based on security issue - CVE-2022-4065

    • Upgraded to TestNG 7.7.0 which includes the security fix.

    • The upgrade is done in all test cases to increase the security during the build of the maven-it-extension itself.

Dependency Upgrades

Build Improvements

The full release notes can be found here Release 0.12.0.

Pre-release 0.11.0

Date of Release: July 24, 2021

Scope:

Details

  • Fixed #202 - Bug during generation of usersguide.adoc.

  • Fixed #204 - Goal itf-maven-plugin:resources-its did not replace placeholder.

  • Fixed #206 - Annotation @MavenRepository used wrong directory.

Breaking Changes

  • Fixed #152 - Remove deprecated marked code.

    • MavenProjectResult

      • Method getBaseDir() has been removed.

    • MavenExecutionResult

      • Method isSuccesful() has been removed

      • ExecutionResult

        • Error has been removed. Based on that we have to remove MavenExecutionResult.isError() as well.

Reporter of this release

  • Roland Weisleder

    • Fixed #204 - Goal itf-maven-plugin:resources-its did not replace placeholder.

    • Fixed #206 - Annotation @MavenRepository used wrong directory.

Contributors of this release

  • Roland Weisleder

    • Fixed #204 - Goal itf-maven-plugin:resources-its did not replace placeholder.

    • Fixed #206 - Annotation @MavenRepository used wrong directory.

Dependency Upgrades

The full release notes can be found here Release 0.11.0.

Pre-release 0.10.0

Date of Release: May 16 , 2021

Scope:

  • Refactoring/Code cleanups

Enhancements

  • Fixed #180 - Enable debugging of plugin while running integration tests.

Details

Breaking Changes

  • Fixed #140 - Remove deprecated marked annotation elements and code

  • Fixed #142 - Reduce visibility of classes; If you have used the following classes ApplicationExecutor or DirectoryHelper in your code they have be made invisible for users. No alternative available.

  • Fixed #143 - Deprecate ExecutionResult.Error; If you have used that directly within your code you should change your code. This is being marked deprecated and will be removed with release 0.11.0.

  • Fixed #175 - Enhance the MavenProjectResult. Based on the enhancements we have added getTargetBaseDirectory() and getTargetCacheDirectory(). getTargetBaseDirectory() is the same as getBaseDir() to keep compatibility in release 0.10.0. The getBaseDir() has been marked deprecated and will be removed with release 0.11.0.

  • Fixed #163 - You have to change the configuration within your test pom.xml file. The configuration to filter the content of the resources-its directory.

    <testResource>
      <directory>src/test/resources-its</directory>
      <filtering>true</filtering>
    </testResource>

    This is not allowed anymore. This means you have to bind the itf-maven-plugin with a supplemental goal in your pom file as shown in the following example:

    <plugin>
    <groupId>com.soebes.itf.jupiter.extension</groupId>
    <artifactId>itf-maven-plugin</artifactId>
    <version>0.10.0</version>
    <executions>
      <execution>
        <id>installing</id>
        <phase>pre-integration-test</phase>
        <goals>
          <goal>install</goal>
          <goal>resources-its</goal>
        </goals>
      </execution>
    </executions>
    </plugin>

    You have to add the supplemental goal resources-its in your configuration.

  • Fixed #186 - based on a typo in the method name isSuccesful() of the class MavenExecutionResult instead of isSuccessful() the method isSuccesful() is marked deprecated and should not being used anymore and will be removed with release 0.11.0. Replace it with isSuccessful().

  • Fixed #177 - Move creation of target structure into beforeEach. This change could influence your integration tests. So please check your build. If you have issues please report them.

Reporter of issues

  • Vincent Privat

Reporter of this release

  • ??

    • {pr-???} - ..

Contributors of this release

  • ??

    • {issue-??} - ??

Dependency Upgrades

Build Improvements

The full release notes can be found here Release 0.10.0.

Pre-release 0.9.0

Date of Release: August 12, 2020

Scope:

  • Refactoring/Code cleanups

    • Fixed #130 - Moving Conditions into separate package

    • Fixed #131 - Reduce visibility of MavenITExtension.

    • Fixed #132 - Remove StringInterpolator from public API

    • Fixed #134 - Maven test should use options = "--errors" by default

    • Fixed #135 - Split properties of @MavenTest across multiple (@Repeatable) annotations

    • Fixed #136 - Remove debug from MavenJupiterExtension annotation

    • Fixed #138 - Rename MavenOptions into MavenCLIOptions.

Details

Breaking Changes

  • Fixed #135 - Split properties of @MavenTest across multiple (@Repeatable) annotations

    • Deprecate the @MavenTest annotation elements goals, activeProfiles, options, systemProperties, debug with release 0.9.0.

      • Add replacements @MavenGoal, @MavenProfile, @MavenOption and @SystemProperty.

        • This means all the annotation elements of @MavenTest will be removed with release 0.10.0.

      • You have to migrate your code accordingly otherwise you will face compile errors with the upgrade to release 0.10.0.

      • The users guide has been updated to represent only the new annotations and no usage of annotation elements.

      • Changed the users guide accordingly to the new annotations.

  • Fixed #130 - Moving Conditions into separate package

    • The annotations DisabledForMavenVersion and EnabledForMavenVersion have been moved from com.soebes.itf.jupiter.extension into com.soebes.itf.jupiter.extension.condition package. The consequence is that you have to change your imports if you use them.

  • Fixed #138 - Rename MavenOptions into MavenCLIOptions.

  • Fixed #132 - Remove StringInterpolator from public API If you have used it you have to remove the usage. No replacement available.

  • Fixed #136 - Remove debug from MavenJupiterExtension annotation If you have used to turn on debugging via the annotation @MavenJupiterExtension this means you need to change your tests and use the @MavenTest(options=MavenCLIOptions.DEBUG) to get the same behaviour. Related to Fixed #135 you have to replace it with @MavenOption(MavenCLIOptions.DEBUG) or you can use @MavenDebug.

Reporter of this release

  • Andreas Sewe

    • Fixed #134 - Maven test should use options = "--errors" by default

    • Fixed #135 - Split properties of @MavenTest across multiple (@Repeatable) annotations

Contributors of this release

  • ??

    • {issue-??} - ??

Dependency Upgrades

Build Improvements

  • {issue-??} - ??

The full release notes can be found here Release 0.9.0.

Pre-release 0.8.0

Date of Release: July 11, 2020

Scope:

  • Bug Fixing and improvements.

  • Failure Plugin Fixed #113.

Details

  • Fixed #87 - Remove duplicate implementations for PomReader/PomUtils

  • Fixed #106 - Wrong usage of a function InstallMojo

  • Fixed #104 - Improve code based on SonarQube

  • Fixed #110 - Separate usersguide / release notes.

  • Fixed #112 - Fix Links to ReleaseNotes 0.7.0

  • Fixed #114 - Assertion on logoutput either debug/info does not work.

  • Fixed #117 - Output of builds should be consistently named *.log

  • Fixed #118 - Add error() for LogAssert.

  • Fixed #119 - Code Cleanups

  • Fixed #113 - Create a plugin which fails the build.

  • Fixed #121 - Change itf-extension-maven dependency scope from compile to test.

  • Fixed #122 - We should use itf-maven-plugin instead of maven-invoker-plugin for itf-failure-plugin

Breaking Changes

  • If you have used the names of the build output like mvn-stdout.out or mvn-stderr.out those names have been changed related to Fixed #117. This means you have to change your file names to mvn-stdout.log or mvn-stderr.log accordingly.

Reporter of this release

  • Roland Weisleder

Contributors of this release

Dependency Upgrades

  • Fixed #99 - Upgrade equalsverifier from 3.1.13 to 3.3

  • Fixed #101 - Upgrade smpp from 5.1.0 to 5.2.0

  • Fixed #108 - Upgrade smpp from 5.2.0 to 5.3.0

  • Fixed #116 - Upgrade asciidoctor-maven-plugin to 2.0.0

Build Improvements

  • Fixed #60 - Building on JDK15

  • Fixed #102 - JDK15 Build fails based on jacoco; Need to wait for a new release of JaCoCo.

  • Fixed #103 - Add SonarQube analysis

  • Fixed #105 - Change the used JDK for running SonarQube analysis

  • Fixed #107 - Remove empty module itf-executor

  • Fixed #108 - Reconfiguring cache handling in GitHub Actions.

  • Fixed #111 - Add .sdkmanrc.

  • Fixed #123 - Cache usage does not work.

  • Fixed #124 - Duplicate executions of builds on merge onto master.

The full release notes can be found here Release 0.8.0.

Pre-release 0.7.0

Date of Release: May 17, 2020

Scope:

Details

  • Fixed #98 - Version/dates in HTML documents.

Breaking Changes

  • None in this release.

Reporter of this release

  • Philippe Marschall

  • Sandra Parsick

    • Fixed #88 - System property maven.home is set but 'java.lang.IllegalStateException: We could not find the maven executable mvn somewhere' is thrown

Contributors of this release

  • none.

Dependency Upgrades

  • Fixed #85 - Upgrade AssertJ from 3.15.0 to 3.16.0

  • Fixed #89 - Upgrade AssertJ from 3.16.0 to 3.16.1

  • Fixed #86 - Upgrade xmlunit-assertj from 2.6.3 to 2.6.4

  • Fixed #95 - Upgrade Testcontainers from 1.14.1 to 1.14.2

  • Fixed #96 - Upgrade commons-compress from 1.19 to 1.20

  • Fixed #97 - Upgrade xmlunit-assertj from 2.6.4 to 2.7.0

Build Improvements

  • Fixed #90 - Improving build with cache usage on GitHub actions.

  • Fixed #91 - Cache is not correctly configured

The full release notes can be found here {release-0.7.0}[Release 0.7.0].

Pre-release 0.6.0

Date of Release: May 6, 2020

Scope:

  • Documentation cleanup

  • Better naming for MavenIT.

Details

  • Fixed #67 - Cleanup userguide

  • Fixed #68 - Rename @MavenIT into @MavenJupiterExtension.

  • Fixed #76 - "Getting started" is hard to find.

Breaking Changes

  • With Fixed #68 - we have renamed the @MavenIT annotation into @MavenJupiterExtension to make the intention more clear.

  • With Fixed #80 - We have removed the previously needed log4j dependencies at all. In testing projects there is no need anymore in adding log4j-core dependency.

Reporters of this release

  • Roland Weisleder

    • Fixed #76 - "Getting started" is hard to find.

    • Fixed #77 - Code in section "Configuration in Maven" (user guide) should be copy-pastable

    • Fixed #80 - Error message "Log4j2 could not find a logging implementation"

Contributors of this release

  • Sandra Parsick Fixed #78 - put section "configuration in maven" before section "Structuring Integration Tests"

GitHub Improvements

  • Fixed #69 - Add templates for issues/features requests

  • Fixed #74 - Recreate issue templaes

  • Fixed #75 - Separate documentation for master and release

  • Fixed #81 - Added CONTRIBUTION.md guide.

  • Fixed #84 - Rename CONTRIBUTION.md into CONTRIBUTING.md

The full release notes can be found here Release 0.6.0.

Pre-release 0.5.0

Date of Release: May 3, 2020

Scope:

  • Removed usage of internal API’s. Fixed #49, Fixed #52.

  • Fixing Bug while running several IT’s while using the same cache.

  • Fixing Bug related to @MavenProject Fixed #53.

Details

  • Fixed #48 - Accidentally deleting the local cache.

    • We should not delete the whole cache between executions cause a given @MavenRepository is otherwise useless for several methods.

  • Fixed #49 - Change to use only maintained API’s of JUnit Jupiter

  • Fixed #52 - Remove usage org.junit.platform.commons.logging

  • Fixed #53 - Deleting project under test during @MavenProject tests

  • Fixed #65 - Create github pull request template file.

Breaking Changes

  • The MavenVersion enum type has been moved from package com.soebes.itf.jupiter.maven to com.soebes.itf.jupiter.extension to take advantage of using internal classes.

Dependency Upgrades

  • Fixed #50 - Upgrade Testcontainers to most recent version 1.14.1

  • Fixed #51 - Upgrade smpp parent to version 5.0.3

  • Fixed #54 - Upgrade equalsverifier from 3.1.12 to 3.1.13

  • Fixed #55 - Upgrade log4j from 2.13.1 to 2.13.2

  • Fixed #56 - Upgrade mockito from 3.3.0 to 3.3.3

  • Fixed #57 - Upgrade smpp-parent from 5.0.3 to 5.1.0

Build Improvements

  • Fixed #58 - WARNING JAR will be empty in itf-documentation module.

  • Fixed #59 - Removed option -Dcheckstyle.skip=true

  • Fixed #61 - Bug in pipeline - Using wrong checkout

  • Fixed #62 - WARNING JAR will be empty in itf-examples

  • Fixed #63 - Cleanup pom and remove plugins which are inherited from smpp-parent

  • Fixed #64 - Automatic site publishing

  • Fixed #66 - Release failure based on missing javadoc/sources packages for itf-examples

The full release notes can be found here Release 0.5.0.

Pre-release 0.4.0

Date of Release: April 19, 2020

Scope:

  • Renamed invoker-repo into itf-repo

  • Added .predefined-repo for integration tests.

  • Support for finding Maven executable in a portable way.

Details

  • Fixed #40 - Changed from invoker-repo to itf-repo.

  • Fixed #41 - Activate apache-rat plugin to check all files for license

  • Fixed #42 - MavenRepository contains @ExtendWith

  • Fixed #43 - Create MavenPredefinedRepository annotation

  • Fixed #45 - Searching for the Maven executable in a portable way.

Breaking Changes

  • itf-maven-plugin uses now the location itf-repo instead invoker-repo. This can break tests which have been written with version 0.3.0 and before.

The full release notes can be found here Release 0.4.0.

Pre-release 0.3.0

Date of Release: April 18, 2020

Scope:

  • Working build on Windows.

  • Basic Maven Plugin for installation of artifacts.

  • License file in project.

  • Release Notes documentation.

Details

  • Fixed #32 - Build on Windows as well

  • Fixed #33

    • Create a maven plugin which handles the installation of artifacts

    • This removes the need to use maven-invoker-plugin with a weird configuration.

  • Fixed #34 - Add LICENSE file to the project

  • Fixed #36 - Create a release notes documentation.

  • Fixed #31

    • Imports in documentations are not correct anymore.

    • Fixed includes

    • building of html/pdf during the build.

    • Fixed site generation to render also docs in correct location.

    • Moved docs to itf-documentation project.

The full release notes can be found here Release 0.3.0.

Pre-release 0.2.0

Date of Release: April 15, 2020

Scope:

  • Changed package names and maven coordinates to make it possible to publish in Central Repository.

Details

  • Fixed #30 - Upgrade parent to 5.0.1 smpp

  • Fixed #29 - Change coordinates / Change Names

    • renamed groupId.

    • Renamed artifactId’s.

    • Renamed modules

    • Renamed packages.

    • Renamed documents.

    • Fixed docs.

The full release notes can be found here Release 0.2.0.

Pre-release 0.1.0

Date of Release: April 14, 2020

Scope:

  • First public release as github packages.

The full release notes can be found here Release 0.1.0.