Hi Ashish, I have reviewed the PR, and it looks good to me.
Best regards, --- Arun Patidar On Fri, May 29, 2026 at 10:51 PM Nicolas Malin via dev <[email protected]> wrote: > Hello Ashish, > > I have no objection to move to Junit 6. If you estimate that there is an > advantage to do, without objection from other let's go :) > > I admit, I didn't use Junit, I use groovy for my test that I found more > powerful > > Nicolas > > On 5/29/26 15:38, Ashish Vijaywargiya wrote: > > Dear Apache OFBiz Dev Community Members, > > > > I am feeling glad to let you know that I have completed this POC(Migrate > > Apache OFBiz test suite from JUnit 4 to JUnit 6 (Jupiter)). > > > > The following details will be helpful to you(I have used most of the > > details shown below in my commit as well): > > > > ================================= > > Migrate Apache OFBiz test suite from JUnit 4 to JUnit 6 (Jupiter) > > > > Key changes include: > > > > - Assertions Parameter Order: Updated `assertEquals` calls to match the > new > > JUnit 6 method signature. > > > > The custom failure message is now passed as the last argument rather than > > the first `assertEquals(expected, actual, "message")`. > > > > - Exception Testing Syntax: Updated `assertThrows` to use JUnit Jupiter > > API. > > > > > > The following import statement has been changed and introduced jupiter > > specific import statement: > > > > import org.junit.Test; --> import org.junit.jupiter.api.Test; > > import org.junit.Before; --> import org.junit.jupiter.api.BeforeEach; > > import org.junit.After; --> import org.junit.jupiter.api.AfterEach; > > import org.junit.BeforeClass; --> import org.junit.jupiter.api.BeforeAll; > > import org.junit.AfterClass; --> import org.junit.jupiter.api.AfterAll; > > import org.junit.Ignore; --> import org.junit.jupiter.api.Disabled; > > import org.junit.Assert.*; --> import static > > org.junit.jupiter.api.Assertions.*; > > > > Additionally, JUnit 4 assertions with failure messages must have their > > parameters swapped because JUnit 4 expects (String message, expected, > > actual) while JUnit 6 Jupiter expects (expected, actual, String message): > > > > assertEquals(String, Object, Object) --> assertEquals(Object, Object, > > String) > > assertTrue(String, boolean) --> assertTrue(boolean, String) > > assertFalse(String, boolean) --> assertFalse(boolean, String) > > assertNotNull(String, Object) --> assertNotNull(Object, String) > > assertNull(String, Object) --> assertNull(Object, String) > > assertSame(String, Object, Object) --> assertSame(Object, Object, String) > > assertNotSame(String, Object, Object) --> assertNotSame(Object, Object, > > String) > > > > And the following changes are also done in this commit: > > > > - @Before > > + @BeforeEach > > > > - @After > > + @AfterEach > > > > Important Reference Link: > > https://docs.junit.org/6.1.0/migrating-from-junit4.html > > ================================= > > > > Here is the PR for this work. > > > > https://github.com/apache/ofbiz-framework/pull/1301 > > > > > https://github.com/apache/ofbiz-framework/compare/trunk...ashishvijaywargiya:ofbiz-framework:junit-migration-from-v4-to-v6 > > > > I will wait for Apache OFBiz community members' feedback for the next 2- > 4 > > days, and then I will merge my PR into the ofbiz trunk. > > > > Thank you! > > > > -- > > Kind Regards, > > Ashish Vijaywargiya > > Vice President of Operations > > *HotWax Systems* > > *Enterprise open source experts* > > http://www.hotwaxsystems.com > > > > > > > > On Wed, May 27, 2026 at 3:50 PM Ashish Vijaywargiya < > > [email protected]> wrote: > > > >> Dear All, > >> > >> Yesterday, I was looking at the following Jira ticket: > >> https://issues.apache.org/jira/browse/OFBIZ-13138 > >> > >> Then I thought to start a discussion around migrating the Apache OFBiz > >> testing framework from JUnit 4 to JUnit 6 (JUnit Platform + Jupiter > >> ecosystem). > >> > >> Currently, the OFBiz trunk codebase is primarily based on JUnit 4. While > >> JUnit 4 has served the Java ecosystem well for many years, the JUnit > team > >> has officially placed JUnit 4 into maintenance mode(see reference link > >> below). According to the official JUnit project, only critical bug fixes > >> and security updates are expected going forward, while active innovation > >> and ecosystem improvements are focused on the JUnit Platform and Jupiter > >> ecosystem. > >> > >> Because of this, migrating OFBiz to JUnit 6 could provide long-term > >> benefits in maintainability, modernization, ecosystem alignment, and > >> testing capabilities. > >> > >> Some key benefits of migrating to JUnit 6 include: > >> > >> 1. Modern Testing Architecture > >> JUnit 6 is built on the JUnit Platform architecture, which provides: > >> > >> * better modularity, > >> * improved extensibility, > >> * cleaner integrations, > >> * and modern testing infrastructure. > >> > >> 2. Gradual Migration Support > >> JUnit Vintage allows existing JUnit 4 tests to continue running while > new > >> tests are written using Jupiter APIs. > >> This enables incremental migration without requiring a complete rewrite > of > >> the entire OFBiz test suite. > >> > >> 3. Better Test Organization > >> JUnit Jupiter introduces modern testing features such as: > >> > >> * @Nested tests, > >> * @DisplayName, > >> * grouped assertions using assertAll(), > >> * dynamic tests, > >> * and cleaner lifecycle handling. > >> > >> These features improve the readability and maintainability of complex > test > >> suites. > >> > >> 4. Improved Extension Model > >> - JUnit 6 replaces the older Runner and Rule model with a much cleaner > >> extension architecture. > >> - This makes custom testing utilities easier to develop and maintain. > >> > >> 5. Enhanced Parameterized Testing > >> - JUnit Jupiter significantly improves support for parameterized tests > >> using: > >> > >> * CSV sources, > >> * method sources, > >> * enum sources, > >> * and custom argument providers. > >> > >> This can help reduce repetitive test code across OFBiz modules. > >> > >> 6. Dependency Injection Support > >> - JUnit Jupiter provides built-in parameter injection support for > >> lifecycle methods and test methods. > >> - This helps simplify test setup logic and reduces boilerplate code. > >> > >> 7. Conditional Test Execution > >> - JUnit 6 supports conditional execution annotations such as: > >> > >> * @EnabledOnOs, > >> * @EnabledOnJre, > >> * @EnabledIfEnvironmentVariable, > >> * and @DisabledIfSystemProperty. > >> > >> These features are useful for CI/CD pipelines and environment-specific > >> test execution. > >> > >> 8. Parallel Test Execution > >> - Modern JUnit versions provide better support for parallel execution > >> which can help reduce overall CI execution time for large test suites. > >> > >> 9. Improved IDE and Tooling Support > >> - Modern IDEs and build tools provide much stronger support for JUnit > >> Jupiter: > >> > >> * improved debugging, > >> * richer test reporting, > >> * enhanced navigation, > >> * better parameterized test visualization, > >> * and improved test discovery. > >> > >> 10. Better Ecosystem Alignment > >> - Most modern Java frameworks, libraries, plugins, and testing utilities > >> are actively aligned with the JUnit Platform ecosystem. > >> - Migrating OFBiz helps keep the project aligned with modern Java > >> development practices. > >> > >> 11. Unified and Cleaner Dependency Management > >> - JUnit 6 provides unified versioning across Platform, Jupiter, and > >> Vintage modules, which simplifies dependency management and reduces > >> compatibility complexity. > >> > >> 12. Long-Term Sustainability > >> - Since JUnit 4 is now in maintenance mode, continued reliance on it > >> increases long-term technical debt. > >> - Migrating to JUnit 6 helps future-proof the OFBiz testing > infrastructure. > >> > >> A few reference links: > >> https://docs.junit.org/6.1.0/migrating-from-junit4.html > >> https://github.com/junit-team/junit4/blob/main/README.md > >> https://junit.org/ > >> > >> I will work on this POC and will share updates soon with the OFBiz > >> community. > >> > >> If you have additional thoughts on this topic, please share. > >> Thank you. > >> > >> -- > >> Kind Regards, > >> Ashish Vijaywargiya > >> Vice President of Operations > >> *HotWax Systems* > >> *Enterprise open source experts* > >> http://www.hotwaxsystems.com > >> > >> >
