On Thu, Sep 10, 2009 at 12:58 AM, Raymond Feng<enjoyj...@gmail.com> wrote: > Hi, > > I'm working on a policy builder that attaches the policy sets to a composite > using xpath expressions. To implement this capability, I'll have to write > the Composite object into a DOM tree so that the xpath expression can be > evaluated. It introduces dependencies on the tuscany-contribution and > various tuscany-???-xml modules to leverage the XML write() in the StAX > processors. I couldn't find an existing module (such as policy-xml, > definitions-xml) to add this builder as it leads to circular dependencies. > > I propose that we refactor the builder related code from tuscany-assembly > module into a new tuscany-assembly-builder module. After all, the builders > depends on the assembly model but it provides the "build" function for the > models including those from extension types. > > If there is no objection, I'll check in the changes in a few days. >
What are the circular dependencies which cause a problem? I think we should fix those rather than add yet another module. I also get problems with circular dependencies, i think they're caused by the module breakdown not quite being right yet. IIRC we started to come up with some guidelines on what should be a separate module when we did the refactoring a little while back - related function that doesn't drag in extra dependencies and has default factory impls which can be overridden doesn't need to be a separate module, if it is made a separate module then that contributes to these circular dependency problems. These are the core/kernel/base modules that you need when you do anything with Tuscany, lets minimize these and that will likely resolve any circular dependency problems, so which of these really need to be separate? assembly assembly-xml assembly-xsd binding-sca-runtime common-java common-xml contribution core core-databinding core-spi databinding databinding-jaxb definitions definitions-xml endpoint extensibility host-http implementation-java implementation-java-runtime interface interface-java interface-java-jaxws interface-wsdl monitor policy policy-xml sca-api xsd ...ant