You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Sam Peters (Jira)" <ji...@apache.org> on 2023/09/13 15:57:00 UTC

[jira] [Created] (WICKET-7072) JUnit code in /src/main/java breaks JPMS support in Eclipse IDE

Sam Peters created WICKET-7072:
----------------------------------

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


In Wicket 10, the wicket-core and wicket-util jars contain JUnit-related code (see 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 runs 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] > 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 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{_}? 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)