Apache Axiom 1.2.15 Release Note

Axiom 1.2.15 ships fixes for over a dozen JIRA issues and contains many other improvements, mainly related to consistency between the LLOM and DOOM implementations and how serialization is performed. In particular the builder is now able to continue building the Axiom tree after an element has been consumed (see AXIOM-288).

Changes in this release

Removal of the JavaMail dependency

Axiom 1.2.15 no longer uses JavaMail and the corresponding dependency has been removed. If your project relies on Axiom to introduce JavaMail as a transitive dependency, you need to update your build.

Serialization changes

In previous Axiom versions, the serialize and serializeAndConsume methods skipped empty SOAP Header elements. On the other hand, such elements would still appear in the representations produced by getXMLStreamReader and getSAXSource. For consistency, starting with Axiom 1.2.15, SOAP Header elements are always serialized. This may change the output of existing code, especially code that uses the getDefaultEnvelope() defined by SOAPFactory. However, it is expected that this will not break anything because empty SOAP Header elements should be ignored by the receiver.

To avoid producing empty Header elements, projects should switch from using getDefaultEnvelope() (in SOAPFactory) and getHeader() (in SOAPEnvelope) to using createDefaultSOAPMessage() and getOrCreateHeader().

For more information, see AXIOM-430.

Introduction of AspectJ

The implementation JARs (axiom-impl and axiom-dom) are now built with AspectJ (to reduce source code duplication) and contain a small subset of classes from the AspectJ runtime library. There is a small risk that this may cause conflicts with other code that uses AspectJ.