[
https://issues.apache.org/jira/browse/WICKET-7072?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Martin Tzvetanov Grigorov resolved WICKET-7072.
-----------------------------------------------
Fix Version/s: 10.0.0-M2
Assignee: Martin Tzvetanov Grigorov
Resolution: Fixed
> JUnit code in /src/main/java breaks JPMS support in Eclipse IDE
> ---------------------------------------------------------------
>
> Key: WICKET-7072
> URL: https://issues.apache.org/jira/browse/WICKET-7072
> Project: Wicket
> Issue Type: Bug
> Components: wicket-core
> Affects Versions: 10.0.0-M1
> Reporter: Sam Peters
> Assignee: Martin Tzvetanov Grigorov
> Priority: Major
> Fix For: 10.0.0-M2
>
> Attachments: image-2023-09-29-16-51-36-563.png
>
>
> In Wicket 10, the wicket-core and wicket-util jars contain JUnit-related
> code, see class list below.
> The problem:
> * When creating a new modular (JPMS) maven project by adding __ just
> _org.apache.wicket.commons.fileupload_ ({_}not containing{_} JUnit code) in
> {_}module-info{_}, projects run fine in Eclipse IDE (2023-06). I supplied a
> quickstarter at
> [https://github.com/gluser1357/jerseyissues/tree/main-without-junit-code],
> see readme.txt.
> * In contrast, when creating a new modular project by adding
> {_}org.apache.wicket.util{_}" ({_}containing{_} JUnit code), Eclipse fails in
> different ways, see wicket quickstarter at
> [https://github.com/gluser1357/jerseyissues/tree/main-with-junit-code-error],
> see readme.txt.
> ** If JUnit is kept with usual _<scope>test<scope>_ (pom.xml) and not added
> via _requires org.junit.jupiter.api_ in module-info.java, one of the
> following errors occur when running code (see readme.txt for more details):
> *** _java.lang.module.FindException: Module org.junit.jupiter.api not found,
> required by org.apache.wicket.util_
> *** _java.lang.Error: Unresolved compilation problem: "The type
> org.junit.jupiter.api.Test is not accessible"_
> *** _java.lang.IllegalAccessError: class
> org.junit.platform.launcher.core.ServiceLoaderRegistry (in unnamed module
> @0x5f341870) cannot access class
> org.junit.platform.commons.logging.LoggerFactory (in module
> org.junit.platform.commons) because module org.junit.platform.commons does
> not export org.junit.platform.commons.logging to unnamed module @0x5f341870_
>
> ** After correcting the missing module and dependency by removing
> _<scope>test<scope>_ (pom.xml) and adding a _requires org.junit.jupiter.api_
> in module-info.java (which is, as far as I know, actually untypical), own
> code in _/src/test/java_ and _/src/main/java_ runs now, but own JUnit tests
> can still not be executed via "Run As JUnit Test" in Eclipse because of
> *** _java.lang.IllegalAccessError: class
> org.junit.platform.launcher.core.ServiceLoaderRegistry (in unnamed module
> @0x5f341870) cannot access class
> org.junit.platform.commons.logging.LoggerFactory (in module
> org.junit.platform.commons) because module org.junit.platform.commons does
> not export org.junit.platform.commons.logging to unnamed module @0x5f341870_
>
> In my opinion, the JUnit-related code below shouldn't be contained in
> _/src/main/java_ which is a) quite untypical and b) results in problems of
> common IDEs like Eclipse.
> *Would it be possible to*
> * *move the related Wicket classes (see list below) out of
> {_}/src/main/java{_}, e. g. to _/src/test/java_ and*
> * *remove _requires org.junit.jupiter.api_ from both module-info?*
> This would avoid these problems in Eclipse IDE for JPMS-based projects that
> want to integrate Wicket.
> =====
> The relevant classes are:
> * in wicket-util:
> **
> [https://github.com/apache/wicket/blob/rel/wicket-10.0.0-M1/wicket-util/src/main/java/org/apache/wicket/util/license/ApacheLicenseHeaderTestCase.java]
> **
> [https://github.com/apache/wicket/blob/rel/wicket-10.0.0-M1/wicket-util/src/main/java/org/apache/wicket/util/markup/xhtml/WellFormedXmlTestCase.java]
> * in wicket-core:
> **
> [https://github.com/apache/wicket/blob/rel/wicket-10.0.0-M1/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java]
> **
> [https://github.com/apache/wicket/blob/rel/wicket-10.0.0-M1/wicket-core/src/main/java/org/apache/wicket/util/tester/DiffUtil.java]
> **
> [https://github.com/apache/wicket/blob/rel/wicket-10.0.0-M1/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java]
> **
> [https://github.com/apache/wicket/blob/rel/wicket-10.0.0-M1/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTestCase.java]
> **
> [https://github.com/apache/wicket/blob/rel/wicket-10.0.0-M1/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java]
> **
> [https://github.com/apache/wicket/blob/rel/wicket-10.0.0-M1/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterExtension.java]
> **
> [https://github.com/apache/wicket/blob/rel/wicket-10.0.0-M1/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java]
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)