[ 
https://issues.apache.org/jira/browse/SLING-12131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17784146#comment-17784146
 ] 

Julian Sedding commented on SLING-12131:
----------------------------------------

If migration is the goal, then it may make sense to facilitate semi-automated 
migration. A quick google turned up that the OpenRewrite projct has several 
[rules for migrating various 
scenarios|https://docs.openrewrite.org/recipes/java/testing/junit5]. There is a 
maven plugin, so we could add a configuration to the parent pom. IIUC it is 
[invoked using {{mvn 
rewrite:run}}|https://docs.openrewrite.org/running-recipes/getting-started#step-4-run-a-simple-refactoring-recipe].
 We could also put the plugin into a profile, if we want to guard against any 
surprises.

I agree that it would be desirable to migrate all actively maintained modules 
to junit5. That said, I don't believe it is realistic in the foreseeable 
future, most certainly not without automation. There are custom {{@Rule}} 
implementations that are non-trivial to migrate. There are runners, that may 
not be trivial to migrate, either. The difference between assertions and some 
ootb {{@Rule}}s can likely be covered with automation. Remains to be seen how 
well the automation works.

> Update sling-parent pom.xml to include JUnit5 dependencies
> ----------------------------------------------------------
>
>                 Key: SLING-12131
>                 URL: https://issues.apache.org/jira/browse/SLING-12131
>             Project: Sling
>          Issue Type: Task
>            Reporter: Rob McDougall
>            Priority: Major
>
> JUnit4 is in maintenance mode (no updates in the last 2 years and then only 
> security fixes).  I think updating projects to JUnit5 should be encouraged.
> I am thinking this should be a relatively easy change of adding the 
> junit-jupiter and junit-vintage-engine into the Dependency Management section 
> of the sling-parent.
> Once this is done, individual projects could switch to the vintage-engine (at 
> the very least) or move to jupiter by switching the dependency in their 
> project pom.
> Some day down the road, the JUnit 4 dependencies could be removed.  Projects 
> that have not updated to JUnit5 (vintage or jupiter) by that time are likely 
> no longer maintained.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to