You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Tibor Digana (JIRA)" <ji...@apache.org> on 2017/09/28 20:24:01 UTC

[jira] [Closed] (SUREFIRE-1424) javax.transaction.TransactionManager not visible with Java9

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

Tibor Digana closed SUREFIRE-1424.
----------------------------------
    Resolution: Not A Bug

I added {{--add-modules java.se.ee}} to Version {{2.20.1}} because we wanted to fix such ClassLoader issues reported in Jira.
This is not a regression and not a bug in Surefire. This is actually problem with Oracle because broke backwards compatibility. Several years ago Oracle planned to design JDK in a way that JDK would be extensible. So if you imaging that you put {{javax}} extensions JAR {{javax.transctions.jar}} as a module, this could extend Java SE API with JTA from Java EE7.
Another issue is that Java API is not exposes however it is inside. This mechanism does not exist and the only thing is to apply {{--add-modules java.se.ee}} or any other module in {{.mvn/jvm.config}} or add {{javax:javaee-api:7.0}}.
Oracle says that {{javax.xml.bind}} and {{javax.activation}} is EE related. I disagree. This is also SE and people use it in console Swing applications. The plan is to delete several APIs.

> javax.transaction.TransactionManager not visible with Java9
> -----------------------------------------------------------
>
>                 Key: SUREFIRE-1424
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1424
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Surefire Plugin
>    Affects Versions: 2.20.1
>         Environment: Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T21:39:06+02:00)
> Maven home: /Users/snicoll/tools/maven
> Java version: 9, vendor: Oracle Corporation
> Java home: /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
> Default locale: en_BE, platform encoding: UTF-8
> OS name: "mac os x", version: "10.12.6", arch: "x86_64", family: "mac"
>            Reporter: Stephane Nicoll
>            Assignee: Tibor Digana
>
> I am trying to port Spring Boot to Java9 and I am hitting an issue that looks like Maven specific. I've managed to trim down the problem to [a simple class that doesn't involve Spring Boot|https://github.com/snicoll-scratches/test-jta-java9]
> If I run this project on the command line, I get the following:
> {noformat}
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.043 s <<< FAILURE! - in com.example.testjtajava9.TestJtaJava9ApplicationTests
> contextLoads(com.example.testjtajava9.TestJtaJava9ApplicationTests)  Time elapsed: 0.006 s  <<< ERROR!
> java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
> 	at com.example.testjtajava9.TestJtaJava9ApplicationTests.contextLoads(TestJtaJava9ApplicationTests.java:9)
> Caused by: java.lang.ClassNotFoundException: javax.transaction.TransactionManager
> 	at com.example.testjtajava9.TestJtaJava9ApplicationTests.contextLoads(TestJtaJava9ApplicationTests.java:9)
> {noformat}
> If I run that test with IntelliJ IDEA, it passes. This sample project has also a simple Gradle build that shows it works with Gradle as well.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)