chore: Reduce dependencies in Citrus core modules #1019
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR aims to reduce the dependencies in the core modules
citrus-api
andcitrus-base
Before the change the core modules did use Spring Framework mainly for String utility reasons and its resource management (Classpath and FileSystem resources)
The PR replaces this with Java 9+ and own implementations in order to not have a dependency in
citrus-api
andcitrus-base
So the changes in this PR are:
hasText()
)isEmpty()
String.join()
, Stream API with itsjoining()
collectors)The changes effect all other Citrus modules, too as they were also using the Spring utils a lot. However Spring keeps being an important part of Citrus.
After the changes in this PR these modules do require Spring capabilities:
All other modules (e.g. citrus-kafka, citrus-camel, citrus-cucumber, citrus-junit5, citrus-testng, ...) do not require Spring and may only have it as an optional (provided) dependency because of the Spring bean application context support in Citrus.