[
https://issues.apache.org/jira/browse/AXIOM-353?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andreas Veithen updated AXIOM-353:
----------------------------------
Description:
Historically, org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory was
used to create Axiom trees from XML documents (and there are still places in
Axis2 where this is used). Unfortunately, this class is located in the wrong
package and JAR (it is implementation independent but belongs to LLOM).
Nowadays, the standard way to create an Axiom tree is to instantiate
StAXOMBuilder or one of its subclasses directly. However, this is not optimal
for two reasons:
* It implies the assumption that every implementation of the Axiom API
necessarily uses StAXOMBuilder. This means that an implementation doesn't have
the freedom to provide its own builder implementation (e.g. in order to
implement some special optimizations).
* StAXOMBuilder belongs to a package which has "impl" in its name. This tends
to blur the distinction between the public API and internal implementation
classes.
There should be an abstract API for creating builder instances. It should be
defined in terms of interfaces (such as OMXMLParserWrapper). OMMetaFactory is a
good candidate for this because it is already used to encapsulate an
implementation of the Axiom API (there is one implementation of OMMetaFactory
for LLOM and one for DOOM).
was:Historically, org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory
was used to create Axiom trees from XML documents (and there are still places
in Axis2 where this is used). Unfortunately, this class is located in the wrong
package and JAR (it is implementation independent but belongs to LLOM).
Nowadays, the standard way to create an Axiom tree is to instantiate
StAXOMBuilder or one of its subclasses directly. However, this is not optimal
because it implies the assumption that every implementation of the Axiom API
necessarily uses StAXOMBuilder. This means that an implementation doesn't have
the freedom to provide its own builder implementation (e.g. in order to
implement some special optimizations). There should be an abstract API for
this. OMMetaFactory is a good candidate because it is already used to
encapsulate an implementation of the Axiom API (there is one implementation of
OMMetaFactory for LLOM and one for DDOM).
> Need a replacement for OMXMLBuilderFactory
> ------------------------------------------
>
> Key: AXIOM-353
> URL: https://issues.apache.org/jira/browse/AXIOM-353
> Project: Axiom
> Issue Type: Improvement
> Components: API
> Reporter: Andreas Veithen
>
> Historically, org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory was
> used to create Axiom trees from XML documents (and there are still places in
> Axis2 where this is used). Unfortunately, this class is located in the wrong
> package and JAR (it is implementation independent but belongs to LLOM).
> Nowadays, the standard way to create an Axiom tree is to instantiate
> StAXOMBuilder or one of its subclasses directly. However, this is not optimal
> for two reasons:
> * It implies the assumption that every implementation of the Axiom API
> necessarily uses StAXOMBuilder. This means that an implementation doesn't
> have the freedom to provide its own builder implementation (e.g. in order to
> implement some special optimizations).
> * StAXOMBuilder belongs to a package which has "impl" in its name. This tends
> to blur the distinction between the public API and internal implementation
> classes.
> There should be an abstract API for creating builder instances. It should be
> defined in terms of interfaces (such as OMXMLParserWrapper). OMMetaFactory is
> a good candidate for this because it is already used to encapsulate an
> implementation of the Axiom API (there is one implementation of OMMetaFactory
> for LLOM and one for DOOM).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]