In Activiti 5.13, some API changes were made that make it slightly harder to support both 5.12, 5.12.1 and higher versions with the same code base.
- The return type of ProcessEngineConfiguration#setProcessEngineLifecycleListener was changed to return the ProcessEngineConfiguration so as to support the fluent API for building the configuration, whereas before the method was void. This makes it impossible to create a subclass of ProcessEngineConfiguration that overrides the method that compiles against both 5.12(.1) and 5.13. A workaround was used in DefaultProcessAssertConfiguration.doGetProcessEngineConfiguration() to have a null default return value where initially a stub class was used that subclassed ProcessEngineConfiguration.
- The ProcessEngineConfiguration#getHistoryLevel() method was exposed from ProcessEngineConfigurationImpl. In order to support 5.12(.1), ProcessAssertConfiguration.getProcessEngineConfiguration currently returns a ProcessEngineConfigurationImpl instead of the preferable ProcessEngineConfiguration. This propagates to various other places in the code.
In Activiti 5.16.3, a change was made to the TaskQuery interface, which made it binary incompatible with previous versions. This means that although Process Assertions supports Activiti versions 5.12 - 5.17.0 at the API level, the library will not be compatible with any Activiti versions lower than 5.16.3 from release version 0.6.0 onwards. Using the library with these versions of Activiti will yield NoSuchMethodErrors. Unfortunately, this is not easily solved from a single library artifact, which means a solution will have to be found to build and -particularly- release multiple versions of Process Assertions that are each targeted for a range of Activiti versions. An issue has been created for a future release to solve this.
Update: This was resolved in version 0.7.0 by delivering separately compiled versions for each Activiti library version.
In Flowable 6.2.0, several packages and locations of classes were changed, making the code base incompatible with this version. This was done before Process Assertions version 0.7.0 was released and was solved in that version by splitting the source module for Flowable into two versions, each catering a specific version range.