Jean-Sebastien Delfino wrote:
[snip]
Jean-Sebastien Delfino wrote:
Venkata Krishnan wrote:
Hi Sebastien,

I agree with your suggestions on two accounts...

- its really good to have the model defined around interfaces as it gives the flexibility to improve / modify the implementations we choose over a period of time without the impacting the core which I assume will use only these interfaces. If we use factories to instantiate model objects (i.e. specific implementations of these interfaces) that will keep the core futher away from impacts of changes to implementation of the SPI model. We could probably configure the factory class to be used as part of the scdl - for
example as the property of a Loader(s).  Hope I am making sense?


Yes, making a lot of sense to me...

I've created an AssemblyFactory interface. Hope it will help decouple the various modules. I'll try what you're proposing to pass the factory to the loaders once I manage to get past the circular dependencies with Deployer that I mentioned in http://mail-archives.apache.org/mod_mbox/ws-tuscany-dev/200703.mbox/[EMAIL PROTECTED] (and are preventing me to build the loaders at the moment). If anybody has any ideas on how to best refactor this to avoid circular dependencies, let's talk about it.


- Specific to the case of references, I did imagine that we may have to
clearly abstract out references at componentType level, component level and composite level as there is something specific in 'references' to each level - for example the 'promote' is something that is specific to the composite
level.


Yes, there's a 4th level in constrainingType, which is the most abstract and does not have a binding or policySets, but I guess we can go step by step so I'm not sure we need it yet... I'll leave it up to you.

I have started to make some changes in the SPI model of the kernel. But
then, it is not going to be difficult for me to migrate this to your
proposed design in the 'assembly'.  So I shall continue for now in the
kernel unless you see some issues.

Good, we'll see if we have the same reading of the spec :). What I posted below was just an initial idea so let me know when you have a code update on your side and we'll see how we can exchange ideas and sync up our interfaces / classes.


Thanks.

- Venkat


The same scheme works for Services as well, so I've added similar Service interfaces + a Wire interface. I'm thinking that all the policy related stuff will end up in a separate module but for now I've created placeholders for policy attachments in o.a.t.policy.model.

I'll double check with the spec to see if the same scheme applies to Properties as well.


I've added Properties and also interfaces for Component, ComponentType and ConstrainingType referencing the interfaces above.

--
Jean-Sebastien


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to