Sebastien, When I was implementing OSGi bundle contributions, I was very frustrated about the fact that even though bundles can have cyclic dependencies, bundles with cyclic dependencies could not be added to SCA, if the bundles contained SCA artifacts (composites/componentType files). OSGi copes with cyclic dependencies because bundles have separate install and start methods. So classes need to get resolved only before the start method is called. The bundle is moved to resolved state by the OSGi runtime when its dependencies are satisfied, and only resolved bundles can be started. With SCA contributions, when would the composites/componentType files in a contribution get processed, if it is not done when the contribution is added? Class resolution for contributions is lazy, and hence the ordering of contributions is only relevant when there are multiple contributions containing the same class. But classes used in SCA composites and componentType files get resolved when those files are processed, and at the moment addContribution is the trigger, requiring all dependent contributions containing classes referred to in composites/componentType files to be installed first. If addContribution is not the trigger to process composites, I am not sure what the trigger would be. node.start() for the node? What about the domain? Wouldn't it have been much simpler if Tuscany had a better lifecycle layer (like OSGi :-))?
Thank you... Regards, Rajini On 12/19/07, Jean-Sebastien Delfino <[EMAIL PROTECTED]> wrote: > > Rajini Sivaram wrote: > > Sebastien, > > > > Dependent contributions should be installed before the contributions > which > > refer to them, because the composite and component type files from the > > contribution are processed during addContribution. If you change the > order > > of addContribution (assets followed by store), it should (hopefully) > work. > > > > > > Requiring contributions to be added in a specific order is not usable > IMO. I think that we should resolve artifacts cross-contributions only > when the set of contributions necessary to run a composite is known and > allocated to a node. > > In other words, addContribution() is too early to trigger any resolution. > -- > Jean-Sebastien > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >
