The Jakarta Activation 2.0 specification follows the release plan for Jakarta EE 9. In addition, it introduces a minor incompatible change.
Activation depends on the java.awt.datatransfer package. That made
sense at the time, pre-Swing, when Java on the desktop was still
very interesting. Unfortunately, Android doesn't include
java.awt.datatransfer, so using Mail, which depends on Activation,
requires some sort of kludge to work around or supply the missing
package.
I'd like to remove the dependency on java.awt.datatransfer in
Activation so that the same version of Mail can be used on both
Java and Android. This is an incompatible change, although not one
that is likely to impact any users of Mail (the biggest user of
Activation) or JAXB or any of the other minor uses of Activation.
In fact, this change did not require any changes to the Mail TCK.
So, since Jakarta EE 9 is already a BIG incompatible change, I'd
like to add this small incompatible change to the list. After
Jakarta EE 9, I don't think we want to be introducing more incompatible
changes (although we haven't yet had the discussion to decide on
rules for such things), so it seems to me that I have one window
to fix this problem and that window is Jakarta EE 9.
This release updates the implementation to version 2.0.0 to implement version 2.0 of the specification, and includes the corresponding standalone TCK.
As described above, this release introduces an incompatible change that is not expected to impact most users. The biggest impact is to those who write their own DataContentHandlers and will need to change any references to the DataFlavor class to instead reference the ActivationDataFlavor class, and to remove any references to the Transferrable interface. This is typically a straightforward change to most DataContentHandlers.