On Thu, Sep 10, 2009 at 10:41 AM, Raymond Feng<enjoyj...@gmail.com> wrote:
> I'm keen on keeping Tuscany modular. There are two important criteria to
> justify if module A and B should be separate:
>
> 1) Module A and B can be used independently (supporting different
> technologies, for example, interface-java vs. interface-wsdl)
> 2) Module A provides functions at a different layer than B. In Tuscany, we
> have layers to deal with extensibility, java models, contribution
> processing, build, and activation/invocation (for example, assembly-xml vs.
> assembly, core vs contribution). Higher levels typically depend on lower
> layers, but lower layers can be used without higher layers.
>

+1

> As I have said many times, merging all the modules together just hide the
> circular dependencies. To the extreme, if we just have one giant module,
> there won't be any dependency issues as they are hidden.
>
+1

> Following the criteria, I would be fine if we merge assembly, definitions,
> policy into one module, and assembly-xml, definitions-xml and policy-xml
> into another module. But don't try to merge across functional layers.
>

Are there possible runtimes where policy might be not required (e.g
when running in a mobile/android platform) ? then we probably want to
avoid assembly-xml to be merged to definitions-xml + policy-xml ?

> Thanks,
> Raymond
> --------------------------------------------------
> From: "ant elder" <ant.el...@gmail.com>
> Sent: Thursday, September 10, 2009 12:31 AM
> To: <dev@tuscany.apache.org>
> Subject: Re: [2.x] Refactor builders into a new tuscany-assembly-builder
> module
>
>> 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
>
>



-- 
Luciano Resende
http://people.apache.org/~lresende
http://lresende.blogspot.com/

Reply via email to