[
https://issues.apache.org/jira/browse/WSCOMMONS-271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12655853#action_12655853
]
Todd Wolff commented on WSCOMMONS-271:
--------------------------------------
@Andreas: To provide a bit of context, I assumed the motive behind splitting
the axiom project into separate artifiacts, i.e. an API artifact, a DOM impl
artifact and an OM impl artifact (and perhaps someday a third party impl
artifact) was to allow for different implementations of the same API within the
scope of a single JVM.
If that's true, then the current architecture does not allow this, e.g. one
deployment cannot choose to use the DOM factory and another the OM factory.
The use-case here involves 'deployments' authored by different organizations,
i.e. an application which uses version y.y of the dom impl and an application
which uses version y.y of the OM impl - both of which share version y.y of the
API.
Mixing impl versions and api versions would be a nice-to-have, but not
critical. I could imagine a situation where future API releases, which are
backwards compatible with impl artifacts, would allow deployments authored by
different organizations to upgrade to a later axiom impl release on different
schedules.
> OMAbstractFactory should use thread context classloader rather than
> Class.forName(omFactory)
> --------------------------------------------------------------------------------------------
>
> Key: WSCOMMONS-271
> URL: https://issues.apache.org/jira/browse/WSCOMMONS-271
> Project: WS-Commons
> Issue Type: Improvement
> Components: AXIOM
> Reporter: Todd Wolff
>
> Different 'deployments' should be able to 'share' the axiom api artifact,
> i.e. deployments should be able to hide their choice of implementation from
> other 'deployments.' By using Class.forName(), which uses OMAbstractFactory's
> defining classloader, and requiring a system property to identify the factory
> impl, the choice of implementation must be the same for all 'deployments.'
> If thread context classloader is used instead, along with the java service
> provider loading mechanism, each deployment could effectively 'scope' its
> desired version of the axiom impl artifact to its deployment (each of which
> has its own classloader), along with a service provider file which indicates
> the factory impl choice. The axiom api artifact (loaded by a 'shared'
> classloader) could then be 'shared' across deployments.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.