Your proposed solution sounds good. Since release 1.2.8 is imminent and I was planning to do some other changes to OMAbstractFactory which might actually simplify the problem, I propose to work on this for release 1.2.9. I will open a JIRA issue to track this.
Andreas On Mon, Jan 5, 2009 at 18:56, David Illsley <davidills...@gmail.com> wrote: > I suspect the implementation bundles should register the factories as > OSGI services and the api bundle should access the implementation > through the service. The difficulty here is avoiding a runtime > dependency on OSGI framework classes, but I think that should be > doable using an injection approach where the api bundle activator > injects a non-OSGI class into the OMAbstractFactory if OSGI services > are in use. > Unfortunately I don't have the time to have a go at this over the next > couple of days, otherwise I'd have a go - it looks interesting. > David > > On Sun, Jan 4, 2009 at 4:33 PM, Andreas Veithen > <andreas.veit...@gmail.com> wrote: >> In trunk, there is an additional (optional) import for >> org.apache.axiom.soap.impl.llom.soap12, but soap11 is still missing. >> Now, all this doesn't seem to follow best practices: the API should >> not be aware of its implementations (except maybe for the default >> implementation). Any suggestions how this should be handled correctly >> in an OSGi environment? >> >> Andreas >> >> On Fri, Jan 2, 2009 at 22:19, Mike Edwards >> <mike.edwards.inglen...@gmail.com> wrote: >>> Folks, >>> >>> I am writing as a developer on the Apache Tuscany project. >>> >>> We are building a version of Tuscany that runs on OSGi - and we use AXIOM in >>> our codebase. >>> >>> We're experiencing some problems associated with running AXIOM under OSGi >>> and I'm hoping that you will be able to help us fix those problems. >>> >>> We're using the axiom-api jar (version 1.2.7) and we run into some problems >>> when code inside this jar tries to load classes from axiom.impl jar. The >>> axiom-api manifest does declare SOME dependencies on packages inside >>> axiom-impl, but it seems as if it needs to declare some more. We ran into >>> the following classes being loaded from axiom-api: >>> >>> 1) SOAP11Factory >>> >>> org.apache.axiom.soap.impl.llom.soap11.SOAP11Factory (axiom-impl) >>> >>> 2) SOAP12Factory >>> >>> org.apache.axiom.soap.impl.llom.soap12.SOAP12Factory (axiom-impl) >>> >>> >>> ... both from OMAbstractFactory class >>> >>> Does the manifest for axiom-api need to contain both of these packages as >>> imports? >>> I note that the axiom-impl manifest does export both of them. >>> >>> I patched the axiom-api manifest on my system by adding imports for those 2 >>> packages and things seem to work just fine. >>> >>> >>> Many thanks, >>> >>> Yours, Mike. >>> >> >