I am planning to use JMX in my future Java EE 6 projects. Still in research for now, I'm afraid I've got a little confused by the versioning issue.
According to [Java EE 6 Technologies|http://www.oracle.com/technetwork/java/javaee/tech/index.html] page, EE6 includes JMX 2.0 (JSR 255), but wouldn't that be wrong or obsolete information ?
The EE6 Spec (JSR 316) says it requires at least SE6 but it does not mention the version of JMX any further. Now, the version of JMX bundled with SE6 is JMX1.4. Therefore, to my understanding, EE6 must support JMX1.4, but not JMX2.0.
* JMX2.0 support has been dropped from JDK7 by the way.
Any suggestions are welcome.
JEE is a specification on its own and through it can be determined that any JEE6 compliant application server (full profile) must support JMX 2.0, even if the JDK does not support it out of the box.
"Support" in Java is a very loose term, it usually just means "bundled by default". Just because JDK6 has JMX 1.4 bundled does not mean you are stuck with it.
Yes, JEE specification (JSR 316) says it requires newer versions for some of the components provided by Java SE (EE.6.2 Java SE Requirements), but those additional requirements don't include JMX.
I couldn't find ee6-related specifications which require JMX2.0 other than the page mentioned above, and that's why I thought the page might be wrong.
Glassfish v3.1 and Java EE 6 SDK (yet not confirmed) seemingly do not have JMX2.0-specific packages. They use the JDK6's bundled JMX implementation (i.e.JMX1.4) left unchanged.
Also note that JSR 255 (JMX2.0) is currently on its Early Draft Review stage but not fixed yet as it is in Inactive status.
After several investigations, my conclusion is that Java EE 6 Technologies page is obsolete
as it is not possible that EE 6 includes a component with an incomplete (unreleased) version of specification.
I will report this issue to an appropriate forum (maybe technet community-Documentation ? )
Thanks for your attention.