MBean Annotations on TomEE8 and Java11 compilation problems

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

MBean Annotations on TomEE8 and Java11 compilation problems

exabrial12
I know JMX2.0 was never officially ratified, but we've loved the ability of
TomEE to auto-register JMX beans using this api:
https://tomee.apache.org/examples-trunk/mbean-auto-registration

We typically couple that with Jolokia and Telegraf to monitor key stats in
our applications.

We're currently testing an upgrade from TomEE7/jdk8 to TomEE8/jdk11. During
the compilation phase, maven is telling us it can't find the class
definitions for these annotations anymore:

[ERROR]
/Users/jonathan.fisher/dev/x-x/src/main/java/com/x/x/x/initiator/jmx/ChangePasswordReminderMBean.java:[24,2]
error: cannot find symbol
[ERROR]   symbol:   class ManagedOperation
[ERROR]   location: package javax.management


The JAR with the annotation definitions is a provided dependency, so this
seems very strange. Thank you!






--
Sent from: http://tomee-openejb.979440.n4.nabble.com/TomEE-Users-f979441.html
Reply | Threaded
Open this post in threaded view
|

Re: MBean Annotations on TomEE8 and Java11 compilation problems

Zowalla, Richard
Hi,

The related JAR file is "mbean-annotation-api-8.0.X.jar" (X = minor
version number) containing the related class, which is indeed a
"provided" dependency of the container.

So this seems very strange to me.

I did a minimal test setup (based on the link of the example), in which
I could reproduce the issue via Maven 3.6.3 (Compiler Plugin 3.8.1) on
Ubuntu 20.

I experimented a bit:

- 7.1.x | Maven 3.6.3 | JDK 8 | Target Byte Code Level 8 -> compiles
- 7.1.x | Maven 3.6.3 | JDK 11 | Target Byte Code Level 11 -> does not
compile (your error)
- 7.1.x | Maven 3.6.3 | JDK 11 | Target Byte Code Level 8 -> compiles

- 8.0.x | Maven 3.6.3 | JDK 8 | Target Byte Code Level 8 -> compiles
- 8.0.x | Maven 3.6.3 | JDK 11 | Target Byte Code Level 11 -> does not
compile (your error)
- 8.0.x | Maven 3.6.3 | JDK 11 | Target Byte Code Level 8 -> compiles

But i think, this is a bit weired. No ideas so far from my side :/

I pushed my test setup to https://github.com/rzo1/tomee-dev-list-mbeans
 in case anybody wants to give it a try.

Best,
Richard

Am Mittwoch, den 08.07.2020, 11:27 -0500 schrieb exabrial12:

> I know JMX2.0 was never officially ratified, but we've loved the
> ability of
> TomEE to auto-register JMX beans using this api:
> https://tomee.apache.org/examples-trunk/mbean-auto-registration
>
> We typically couple that with Jolokia and Telegraf to monitor key
> stats in
> our applications.
>
> We're currently testing an upgrade from TomEE7/jdk8 to TomEE8/jdk11.
> During
> the compilation phase, maven is telling us it can't find the class
> definitions for these annotations anymore:
>
> [ERROR]
> /Users/jonathan.fisher/dev/x-
> x/src/main/java/com/x/x/x/initiator/jmx/ChangePasswordReminderMBean.j
> ava:[24,2]
> error: cannot find symbol
> [ERROR]   symbol:   class ManagedOperation
> [ERROR]   location: package javax.management
>
>
> The JAR with the annotation definitions is a provided dependency, so
> this
> seems very strange. Thank you!
>
>
>
>
>
>
> --
> Sent from:
> http://tomee-openejb.979440.n4.nabble.com/TomEE-Users-f979441.html

smime.p7s (9K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: MBean Annotations on TomEE8 and Java11 compilation problems

exabrial12
https://blog.codefx.org/java/java-9-migration-guide/#Split-Packages

I have a feeling this may be the issue: the javax.management package may be
exported by a JDK module and the new classloading system will only allow the
package to be loaded from exactly one module... whereass java8- allows
classloading of that package from any jar.



--
Sent from: http://tomee-openejb.979440.n4.nabble.com/TomEE-Users-f979441.html