[jira] [Commented] (SLING-12131) Update sling-parent pom.xml to include JUnit5 dependencies

2023-11-27 Thread Rob McDougall (Jira)


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

Rob McDougall commented on SLING-12131:
---

PR Created

Discretion being the better part of valour, I decided to leave the explicit 
JUnit4 version in the pom.xml rather than rely on the transient JUnit5 Vintage 
Engine.  

I checked out a small number of sling projects, altered them to use the updated 
parent pom and they compiled OK except for apache.sling.junit.teleporter which 
experienced a bunch of maven enforcer plugin errors that are unrelated to the 
junit change but rather connected to some new enforcer rules that have been 
implemented since the last time the parent pom dependency was changed.

After that, as a test,, I took some of the projects that worked and switched 
them over to jUnit Vintage engine and that seemed to work. 

I'm thinking that any additional work to actually utilize the new dependency 
will have to wait until version 60 of the sling-parent is actually released, 
otherwise the PRs will contain references to the 60-SNAPSHOT version which is 
additional work to merge.

If that's not the case, let me know and I can start work on moving some of the 
projects from JUnit4 to Junit5 sooner.

> 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)


[jira] [Commented] (SLING-12131) Update sling-parent pom.xml to include JUnit5 dependencies

2023-11-09 Thread Rob McDougall (Jira)


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

Rob McDougall commented on SLING-12131:
---

OK, will do.  Thanks for the pointers.

> 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)


[jira] [Commented] (SLING-12131) Update sling-parent pom.xml to include JUnit5 dependencies

2023-11-08 Thread Julian Sedding (Jira)


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

Julian Sedding commented on SLING-12131:


We have {{org.apache.sling.testing.osgi-mock}} and 
{{org.apache.sling.testing.osgi-mock}} testing libraries, which each provide a 
rule. You can find projects importing them with a [github 
search|https://github.com/search?q=org%3Aapache+org.apache.sling.testing.osgi-mock+language%3A%22Maven+POM%22+-repo%3Aapache%2Fsling-whiteboard&type=code]
 (adjust for sling-mock). Note, when JUnit5 came along, their respective junit4 
(and thus rule-based) variants were renamed to 
{{org.apache.sling.testing.osgi-mock.junit4}} and 
{{{}org.apache.sling.testing.sling-mock.junit4{}}}.

There's also 
[{{org.apache.sling.junit.teleporter}}|https://github.com/apache/sling-org-apache-sling-junit-teleporter],
 not sure that's widely used, but it would be very difficult to rewrite for 
JUnit5. You could search for usages of that one as well.

> 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)


[jira] [Commented] (SLING-12131) Update sling-parent pom.xml to include JUnit5 dependencies

2023-11-08 Thread Rob McDougall (Jira)


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

Rob McDougall commented on SLING-12131:
---

{quote}So I think we're finding common ground :) I'm conceding that migrating 
is desirable, and you seem to be conceding that it's a best-effort exercise and 
some parts of such a migration can be non-trivial.
{quote}
Agreed,  I think we all want to do what's best.  And I absolutely agree that 
the transition to the jupiter-engine is not going to happen overnight.

I hadn't realized that the JUnit Vintage engine includes JUnit4 as a transitive 
dependency.

I guess I'm not really looking to remove JUnit4 (just yet :)).  I'm maybe just 
looking to substitute the explicit JUnit4 dependency for the transitive 
dependency in the JUnit5 Vintage engine.  That (at least) moves the ball a 
little.  It also makes the projects dependent on the newer junit-vintage-engine 
rather than on the older junit dependency, which I think is a step forward.

I've started on the PR and am using the sling-hamcrest-matchers project as my 
test project to ensure JUnit 4 compatibility.

Can you point me to a sling project that uses the custom JUnit4 rules?  I will 
attempt to use that as a second testbed to ensure nothing breaks by using the 
JUnit5 dependencies.

> 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)


[jira] [Commented] (SLING-12131) Update sling-parent pom.xml to include JUnit5 dependencies

2023-11-08 Thread Julian Sedding (Jira)


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

Julian Sedding commented on SLING-12131:


bq. I've used this before and it works well, [...]

Glad to hear that!

bq. Well, complete conversion to JUnit5 Jupiter should not be required before 
the JUnit4 can be removed. Conversion to JUnit5 Vintage Engine should handle 
custom @Rules and whatever other JUnit4 constructs are being used. That's all I 
am talking about. Once that is done, the dependency on the unmaintained JUnit4 
is removed. Conversion from Vintage to Jupiter can take as long as it takes.

JUnit4 is not removed as long as you have the JUnit5 Vintage Engine. JUnit4 is 
then just a transitive dependency and not explicitly in your pom. As long as 
you are using @Rules, which are a JUnit4 API, you cannot remove the JUnit4 
dependency. There is also {{junit-jupiter-migrationsupport}}, which can emulate 
some JUnit4 rules. But again, that one does not remove the dependency on the 
@Rule API provided by the JUnit4 dependency.

So I think we're finding common ground :) I'm conceding that migrating is 
desirable, and you seem to be conceding that it's a best-effort exercise and 
some parts of such a migration can be non-trivial.

> 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)


[jira] [Commented] (SLING-12131) Update sling-parent pom.xml to include JUnit5 dependencies

2023-11-08 Thread Rob McDougall (Jira)


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

Rob McDougall commented on SLING-12131:
---

{quote}A quick google turned up that the OpenRewrite projct
{quote}
I've used this before and it works well, but I haven't used it for custom 
@Rules (which I would imagine don't migrate well).
{quote}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.
 
{quote}
Well, complete conversion to JUnit5 Jupiter should not be required before the 
JUnit4 can be removed. Conversion to JUnit5 Vintage Engine should handle custom 
@Rules and whatever other JUnit4 constructs are being used. That's all I am 
talking about. Once that is done, the dependency on the unmaintained JUnit4 is 
removed. Conversion from Vintage to Jupiter can take as long as it takes.

> 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)


[jira] [Commented] (SLING-12131) Update sling-parent pom.xml to include JUnit5 dependencies

2023-11-08 Thread Rob McDougall (Jira)


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

Rob McDougall commented on SLING-12131:
---

So, at this point, I think no-one is arguing that the JUnit5 BOM dependency 
shouldn't be added.  The only discussion is whether the JUnit4 dependency 
should be removed sometime down the road (and maybe how far down the road that 
is).

Given that, unless anyone objects, I am going to create a PR for this.

> 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)


[jira] [Commented] (SLING-12131) Update sling-parent pom.xml to include JUnit5 dependencies

2023-11-08 Thread Julian Sedding (Jira)


[ 
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)


[jira] [Commented] (SLING-12131) Update sling-parent pom.xml to include JUnit5 dependencies

2023-11-08 Thread Rob McDougall (Jira)


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

Rob McDougall commented on SLING-12131:
---

> Testing dependencies are never transitive and therefore should not affect 
> simple consumers of any Sling bundles!

My point is not really related to testing dependencies.  My point is that 
unmaintained projects will have outdated dependencies that cause work for 
developers.  A reliable indicator that a project is unmaintained is that it 
does not move to JUnit5.  This means that removal of Junit4 after some finite 
period causing breakage is an indicator that the project is unmaintained.  Do 
we want to keep an obsolete dependency in the parent pom for the sole purpose 
of allowing unmaintained projects to compile?

If the answer to that question is "yes", then my question would be for how 
long?  If the answer to that is "forever", then that says that you don't intend 
to ever prune unmaintained projects.  That doesn't sound like a reasonable 
stance to me,

If the answer is for some finite period, then that would mean that it would be 
safe to remove an obsolete dependency (in this case JUnit 4) after that finite 
period (whatever it is). 

> 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)


[jira] [Commented] (SLING-12131) Update sling-parent pom.xml to include JUnit5 dependencies

2023-11-08 Thread Konrad Windszus (Jira)


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

Konrad Windszus commented on SLING-12131:
-

Testing dependencies are never transitive and therefore should not affect 
simple consumers of any Sling bundles! As long as JUnit4 tests execute fine 
just within the Sling project I agree with [~jsedding] that other things are 
much more important. I already made some experience that running both JUnit4 
and 5 side by side is not always properly detected by maven-surefire-plugin, so 
this may be some more effort. But this is open source, everyone is invited to 
propose PRs to migrate existing Sling modules.

> 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)


[jira] [Commented] (SLING-12131) Update sling-parent pom.xml to include JUnit5 dependencies

2023-11-08 Thread Rob McDougall (Jira)


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

Rob McDougall commented on SLING-12131:
---

> Also, there is virtually no value in doing so, because you can use junit4 and 
> junit5 side-by-side

I disagree.  JUnit4 will be unmaintained at some point (it may already be now, 
not sure).  In theory, the switch to JUnit5 vintage should be pretty painless 
(just a pom.xml change and re-run the tests).  Projects that are being 
maintained will make this change.  If no one cares to make such a trivial 
change to a project over a two year period (or pick some longer period if you 
wish), then who knows what other dependencies are not being updated.  Software 
is more like milk than wine - it does not get better with age.

Old dependencies cause work for developers using those libraries (I myself 
experienced this which is why I raised SLING-12130).  If we have to force 
someone to exclude dependencies from their maven files, I would prefer to make 
people who are running old versions of libraries do the work rather than those 
who are current.

I'm not in favour of unnecessary work, however I would argue that this is 
necessary work.  I don't think you can argue against the idea that at some 
point all active projects will have to move to JUnit5, it's just a matter of 
when.  At what point to you designate a project as "unmaintained" and prune it? 
 Two years? Five years? Ten years?  I would argue that whatever that period is, 
then that's how long you wait before dropping Junit4 from the pom.  I don't 
believe "never" is an acceptable answer.

> 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)


[jira] [Commented] (SLING-12131) Update sling-parent pom.xml to include JUnit5 dependencies

2023-11-08 Thread Julian Sedding (Jira)


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

Julian Sedding commented on SLING-12131:


bq. Let us please just import the JUnit BOM [...]

+1 from me

> 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)


[jira] [Commented] (SLING-12131) Update sling-parent pom.xml to include JUnit5 dependencies

2023-11-08 Thread Konrad Windszus (Jira)


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

Konrad Windszus commented on SLING-12131:
-

Let us please just import the JUnit BOM in the depMgmt of sling parent 
(https://junit.org/junit5/docs/current/user-guide/#running-tests-build-maven-bom).
 Otherwise there is a very high chance, that different versions of JUnit5 are 
used which are imcompatible with each other.

> 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)


[jira] [Commented] (SLING-12131) Update sling-parent pom.xml to include JUnit5 dependencies

2023-11-08 Thread Julian Sedding (Jira)


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

Julian Sedding commented on SLING-12131:


AFAIK the latest maven-surefire-plugin automatically adds the jupiter and 
vintage engines if the jupiter-api and the junit api, respectively, are in the 
dependencies.

I would also like to transition more to junit5/jupiter, and since you can even 
mix and match individual test methods within the same class, I see no reason 
why we shouldn't move forward with it.

I would add the following two dependencies to sling-parent:
- org.junit.jupiter:junit-jupiter-api
- org.junit.jupiter:junit-jupiter-params

> 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)