tuscany-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Sebastien Delfino <jsdelf...@apache.org>
Subject Re: Tuscany / Equinox-OSGi integration, was: Creating distros for OSGi-enabled Tuscany/SCA
Date Thu, 09 Oct 2008 06:52:40 GMT
Simon Nash wrote:
> See inline.
> 
>   Simon
> 
> ant elder wrote:
>>
>>
>> On Mon, Oct 6, 2008 at 9:02 AM, Jean-Sebastien Delfino 
>> <jsdelfino@apache.org <mailto:jsdelfino@apache.org>> wrote:
>>
>>     ant elder wrote:
>>
>  > (cut)
>>
>>         So this branch is really a fork isn't it?
>>
>>           ...ant
>>
>>
>>     Is that a question or a statement? I don't really understand how you
>>     come up to that conclusion.
>>
>>     It's not a fork, it's a branch to work through breaking changes (and
>>     pretty complex changes I must say) which should allow our runtime to
>>     correctly work as a set of modular bundles in an Equinox/OSGi
>>     environment.
>>
>>     I'm hoping that this work can somehow benefit Tuscany, by providing
>>     code, patterns or maybe just a set of techniques that the project
>>     can implement to work in Equinox/OSGi. It'll be up to the Tuscany
>>     community to take a look and decide what can be reused or if it's
>>     just something to study and learn from.
>>
> If the focus is purely on OSGi/Equinox support, this sounds fine to me,
> with the resulting code/patterns/techniques eventually getting applied
> to trunk.  If it includes other restructuring or changes, I'd prefer to
> see this kind of thing done in trunk as far as possible so it's easier
> for the whole community to participate.
> 
>>     At the moment that Equinox port is still pretty broken, I've made
>>     changes to start to clean up the dependencies on
>>     assembly.builder.impl and contribution.service.impl for example, but
>>     there are many other similar cross-bundle dependencies on
>>     implementation packages which will take time to clean up.
>>
> When this is working, will it imply a hard dependency from Tuscany on
> Equinox, or will there still be a way to run Tuscany outside of the
> OSGI/Equinox environment?
> 
>   Simon
> 
>>     --     Jean-Sebastien
>>
>>
>> I guess what i'm still not understanding is why can't the most of this 
>> happen in trunk? For example - "clean up the dependencies on 
>> assembly.builder.impl and contribution.service.impl for example, but 
>> there are many other similar cross-bundle dependencies on 
>> implementation packages" - all of that is applicable to the trunk code 
>> and has no dependencies on the OSGi changes so why not just do it from 
>> the start in trunk?
>>
>>    ...ant

Here's how I'm approaching this work at the moment (although the 
approach may change as I make progress, resolve issues or run into new 
issues).

- Correctly running in OSGi requires significant restructuring and 
refactoring of the Tuscany runtime. It's not just about dependencies on 
OSGi APIs or changing how a few classes get loaded, it's also about 
making sure that cross-bundle calls go through defined and exported 
SPIs. We had well defined SPIs for a while but a lot of code has gone 
around the SPIs, instead of evolving the SPIs when needed and that has 
gone for about 18 months, so there's many examples of that. Now when you 
try to run this stuff in OSGi, it just breaks as OSGi is not going to 
allow you to go around the package visibility rules (and putting the 
whole runtime in a few big bundles that import/export everything is not 
really serious or interesting).

- That restructuring would probably break trunk for a few months while 
we work through ways to refactor it. So, I'm trying to contribute enough 
  of the refactoring and the code patterns that work well in OSGi in the 
sca-equinox branch now, to make it easier to do it in trunk when trunk 
is ready for it. I'm hoping that we'll then be able to do this work 
without breaking trunk too much and too long, since we'll have something 
to look at and reflect on in the branch. It's always much easier to do 
things a second time, when somebody has already been through the pain of 
exploring it for you and you can take a look at the result. That's what 
I'm trying to do now to help the project.

- You've already asked a similar question about 'a dependency from 
Tuscany on Equinox', I've looked up my earlier response for you as it 
has not changed: http://marc.info/?l=tuscany-dev&m=122274696224651

-- 
Jean-Sebastien

Mime
View raw message