This code will determine which JAXB-RI runtime version is being used. This will not work for Moxy or any other JAXB implementation other than the V2 RI. I could not find the equivalent code for Moxy, so instead of the code failing with a ClassCastException, I make sure that the V2 RI is being used before trying to get the version number.
JAXB Version Code
JAXBContext jaxbCtx = JAXBContext.newInstance("net.igorkromin");
if (jaxbCtx instanceof com.sun.xml.bind.v2.runtime.JAXBContextImpl) {
System.out.println("JAXB Version: " +
((com.sun.xml.bind.v2.runtime.JAXBContextImpl) jaxbCtx).getBuildId());
}
else {
System.out.println("Unknown JAXB implementation: " + jaxbCtx.getClass().getName());
}
My output is something like this:
Output
JAXB Version: 2.2.11
-i