Skip to content

Migration guide: Citrus 3.x to 4.x

Christoph Deppisch edited this page Nov 2, 2023 · 8 revisions

Citrus 4.0 is the latest and greatest release version of the test automation framework and it provides some major changes that you need to understand when updating. This page is here to collect migration steps that users need to perform when upgrading from former Citrus versions.

Table of contents


New groupId org.citrusframework

One of the major changes in Citrus 4.0 is the adjustment of the Maven artifact groupId. The groupId has changed from com.consol.citrus to org.citrusframework. This affects all Citrus Maven artifacts.

So this is what you may want to use in your Maven pom.xml to use Citrus 4.0

<dependency>
    <groupId>org.citrusframework</groupId>
    <artifactId>citrus-bom</artifactId>
    <version>4.0.0</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

Since the groupId also represents the basic Java package in Citrus the packages of all Citrus Java classes have also changed. When a Java class has been using com.consol.citrus as a base package it now uses org.citrusframework. Please replace all occurrences and imports accordingly as you update your project.

Java 17 & Jakarta APIs

When updating to Citrus 4 you need to use Java 17 as a minimum to be able to run Citrus in your testing cycle. Also with the move to new major versions of dependency libraries such as Spring, Apache Camel, Selenium, Cucumber and so on you should be starting to use the jakarta.* APIs instead of javax.*

Basically all Citrus dependency libraries and Citrus itself now uses the Jakarta APIs. So please make sure to also use Jakarta APIs in your project when running Citrus (e.g. use a up-to-date Servlet container).

Clone this wiki locally