Apache Axiom 1.2.16 Release Note
Axiom 1.2.16 comes with the following new features:
-
OMSourcedElementsupport has been extended to DOOM. This is an important step towards full feature parity between LLOM and DOOM. -
Axiom now ships a drop-in replacement for
abdera-parser, so that the latest Axiom version can be used together with Abdera 1.1.3. See here for more details.
In addition, the sources can now be built with Java 8.
A list of other issues fixed in this release can be found here.
Changes in this release
-
The semantics of the
OMInformationItem#getOMFactory()method have slightly changed in Axiom 1.2.16. In previous versions,getOMFactory()returned theOMFactoryinstance that was used to create the information item. This meant that e.g. on anOMTextnode created using aSOAPFactoryinstance, that method would return that exact sameSOAPFactoryinstance. In Axiom 1.2.16,getOMFactory()returns theOMFactoryorSOAPFactoryinstance corresponding to the type of information item. For plain XML information items created using one of the methods defined byOMFactory(such asOMText,OMAttribute, as well asOMElementinstances that don't implement any SOAP specific interfaces), this will always be theOMFactoryinstance returned byOMMetaFactory#getOMFactory()(and never aSOAPFactoryinstance). For information items created using one of the methods defined bySOAPFactory(i.e.OMElementinstances implementing one of the SOAP interfaces, as well asSOAPMessageinstances), nothing changes with respect to previous Axiom versions, andgetOMFactory()will return theSOAPFactoryinstance corresponding to the SOAP version of the information item.The rationale for this change is that it allows to eliminate the
factoryattribute from all classes (except for theSOAPMessageimplementations). It also enables significant simplification of the internal implementation code. -
Some of the legacy default constructors have been removed from the
OMFactory,SOAPFactoryandOMMetaFactoryimplementations. Note that they were not part of the public API, but considered internal implementation details. Application code should always use theOMAbstractFactoryAPIs to get references to factory instances, and never refer to implementation classes directly.


