Skip to content
Christoph Deppisch edited this page Oct 25, 2023 · 8 revisions

Welcome to Citrus 4.0!

This summary is here to share our strategy, ideas and all major changes that are part of Citrus 4.0!

Objectives

Citrus 4.0 is a major release mainly driven by the migration form javax.* to jakarta.*. The new version brings many major updates of dependency projects (e.g. Spring, Apache Camel, Cucumber, Selenium) because of that move.

Of course the new major version also addresses many improvements and fixes. That being said we try to keep breaking changes on a low-level in order to provide a smooth migration from former versions. Due to the breaking changes in the many javax APIs this might not always be possible though. People coming from Citrus 3.x should have a look at the 3.x migration guide.

Here are the main objectives we have with Citrus 4.0

  • Update to Java 17
  • Move to groupId org.citrusframework
  • Update dependencies to latest major versions
  • Move from javax.* to jakarta.*
  • Polyglot test runner support (XML, Groovy and YAML)
  • Remove deprecated modules and code

--

Citrus uses Java 17

The Citrus 4.0 bits are compiled with Java 17. This means you need to at least use Java 17 to run Citrus in your project. We recommend to use the following setup:

  • Java 17+
  • Maven 3.9+
  • Runtime, one of
    • JUnit Jupiter 5.10+
    • TestNG 7.8+
    • Cucumber 7.14+
    • JUnit 4.13+
    • Quarkus Test 3.4+

New Maven groupId "org.citrusframework"

Citrus 4.0 uses a new Maven groupId org.citrusframework. Before Citrus has been using com.consol.citrus because the company ConSol Software GmbH in Munich has been the driving force behind Citrus. ConSol still is an important part of Citrus and it will always be.

With the move to org.citrusframework we decided to happily comply with the OpenSource nature of the project. So please update the groupId in your Maven pom.xml accordingly when updating to Citrus 4.0. The packages of all Citrus Java classes have also changed from com.consol.citrus to org.citrusframework so please replace all occurrences and imports accordingly as you update.

Dependency update

The new versions used in Citrus 4.0 are:

  • JUnit Jupiter 5.10.0
  • TestNG 7.8.0
  • Cucumber 7.14.0
  • Quarkus Test 3.4.2
  • Apache Camel 4.1.0
  • ActiveMQ Artemis 2.31.0
  • ActiveMQ 5.18.2
  • Cucumber 7.14.0
  • Knative Client 6.9.0
  • Kubernetes Client 6.9.0
  • Netty 4.1.100.Final
  • SLF4J 2.0.9
  • SnakeYAML 2.2
  • Spring Framework 6.0.13
  • Testcontainers 1.19.1
  • PostrgeSQL 42.6.0

Move to Jakarta API

Polyglot test runner support

Removed modules

Sometimes it is the time to say goodbye. Some Citrus modules are discontinued and have been removed from the project. The removed modules are:

  • citrus-java-dsl
  • citrus-arquillian
  • citrus-db
  • citrus-remote
Clone this wiki locally