[prev in list] [next in list] [prev in thread] [next in thread] 

List:       maven-dev
Subject:    [jira] [Updated] (SUREFIRE-1531) Option to switch-off Java 9 modules
From:       Lukáš_Křečan_(JIRA) <jira () apache ! org>
Date:       2018-06-30 20:17:00
Message-ID: JIRA.13169350.1530389725000.48572.1530389820105 () Atlassian ! JIRA
[Download RAW message or body]


     [ https://issues.apache.org/jira/browse/SUREFIRE-1531?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel \
]

Lukáš Křečan updated SUREFIRE-1531:
-----------------------------------
    Description: 
I am working on a library and I am adding support for Java 9 modules. Surefire 2.21.0 \
by default executes tests with Java 9 modules switched-on if it detects \
module-info.java While it may make sense in some cases, in my case I'd like the \
switch it off.

The reason is simple. I am using Mockito to mock an interface that extends a Spring \
interface. Mockito has to create an implementation of this interface (proxy or \
subclass) and for this it needs to have access to the Spring interfaces. If Java 9 \
modules are enabled for the tests I have to manually add such dependencies to \
Surefire configuration, which does not make much sense. To makes things worse, the \
interface actually extends two Spring interfaces form two different Spring modules so \
the configuration is almost impossible to get right.

So far I am at and I am still getting IllegalAccessErrors
{code:java}
--add-exports spring.context/org.springframework.scheduling=org.mockito
--add-exports spring.beans/org.springframework.beans.factory=org.mockito
{code}
I would prefer to switch-off the Java 9 modules for the test module altogether (same \
behavior as pre 2.21.0)

  

The test is here [https://github.com/lukas-krecan/ShedLock/blob/java9/shedlock-spring/src/test/java/net/javacrumbs/shedlock/spring/CleanupTest.java]


  

If you want, I can send a pull request.

  was:
I am working on a library and I am adding support for Java 9 modules. Surefire 2.21.0 \
by default executes tests with Java 9 modules switched-on if it detects \
module-info.java While it may make sense in some cases, in my case I'd like the \
switch it off.

The reason is simple. I am using Mockito to mock an interface that extends a Spring \
interface. Mockito has to create an implementation of this interface (proxy or \
subclass) and for this it need to have access to the Spring interfaces. If Java 9 \
modules are enabled for the tests I have to manually add such dependencies to \
Surefire configuration, which does not make much sense. To makes things worse, the \
interface actually extends two Spring interfaces form two different Spring modules so \
the configuration is almost impossible to get right.

So far I am at and I am still getting IllegalAccessErrors
{code:java}
--add-exports spring.context/org.springframework.scheduling=org.mockito
--add-exports spring.beans/org.springframework.beans.factory=org.mockito
{code}
I would prefer to switch-off the Java 9 modules for the test module altogether (same \
behavior as pre 2.21.0)

  

The test is here [https://github.com/lukas-krecan/ShedLock/blob/java9/shedlock-spring/src/test/java/net/javacrumbs/shedlock/spring/CleanupTest.java]


  

If you want, I can send a pull request.


> Option to switch-off Java 9 modules
> -----------------------------------
> 
> Key: SUREFIRE-1531
> URL: https://issues.apache.org/jira/browse/SUREFIRE-1531
> Project: Maven Surefire
> Issue Type: Improvement
> Components: Maven Surefire Plugin
> Affects Versions: 2.22.0
> Reporter: Lukáš Křečan
> Priority: Major
> 
> I am working on a library and I am adding support for Java 9 modules. Surefire \
> 2.21.0 by default executes tests with Java 9 modules switched-on if it detects \
> module-info.java While it may make sense in some cases, in my case I'd like the \
> switch it off. The reason is simple. I am using Mockito to mock an interface that \
> extends a Spring interface. Mockito has to create an implementation of this \
> interface (proxy or subclass) and for this it needs to have access to the Spring \
> interfaces. If Java 9 modules are enabled for the tests I have to manually add such \
> dependencies to Surefire configuration, which does not make much sense. To makes \
> things worse, the interface actually extends two Spring interfaces form two \
> different Spring modules so the configuration is almost impossible to get right. So \
> far I am at and I am still getting IllegalAccessErrors {code:java}
> --add-exports spring.context/org.springframework.scheduling=org.mockito
> --add-exports spring.beans/org.springframework.beans.factory=org.mockito
> {code}
> I would prefer to switch-off the Java 9 modules for the test module altogether \
> (same behavior as pre 2.21.0) 
> The test is here [https://github.com/lukas-krecan/ShedLock/blob/java9/shedlock-spring/src/test/java/net/javacrumbs/shedlock/spring/CleanupTest.java]
>  
> If you want, I can send a pull request.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic