Thank you, Nicolas and Arun!

I have just merged my PR -
https://github.com/apache/ofbiz-framework/pull/1301 into the ofbiz trunk
codebase.

I will keep a close eye on the Dev mailing list and assist with JUnit
6.1.0-related issues.

Now the OFBiz trunk codebase will run on the JUnit 6.1.0 testing framework
version.

Thank you.

--
Kind Regards,
Ashish Vijaywargiya
Vice President of Operations
*HotWax Systems*
*Enterprise open source experts*
http://www.hotwaxsystems.com



On Sat, May 30, 2026 at 10:44 AM Arun Patidar <[email protected]>
wrote:

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

Reply via email to