You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Jeremy Boynes <jb...@apache.org> on 2006/07/01 10:17:17 UTC

Which codebase?, was: Proposed approach for M2

Oh look, there's an elephant in the sandbox.

On 6/30/06, Jean-Sebastien Delfino <js...@apache.org> wrote:
> 2. Stage the assembly of our M2 runtime.
> I propose that we start a fresh stream for M2 and  build the runtime through
> baby steps, in parallel with the scenario work.

When I tried to make substantial changes to M1, I ran into a bunch of
problems due to the fragility of its code - just look at
AbstractCompositeContext for example (or if you want to hang on to
breakfast, don't). To avoid those it was easier to start a fresh
stream and pull in pieces from M1, refactoring along the way to reduce
the fragility. Jim and then others joined in along the way leading to
what we have now. The thought of starting over yet again is not very
appealing.

Instead, I suggest we go ahead with what was suggested on IRC three
weeks ago and move the code we have now out of the sandbox and into a
branch. Or perhaps, given there has been no development on the trunk
recently (since mid-May), go ahead and just replace trunk itself.

That gives us something to start from making it easier to support the
high-level scenarios that we come up with. We can incrementally
improve on that code based on what we find using and working with it,
starting by taking a look at the suggestions that you made.

--
Jeremy

---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


Re: Which codebase?, was: Proposed approach for M2

Posted by Jim Marino <jm...@myromatours.com>.
On Jul 1, 2006, at 1:17 AM, Jeremy Boynes wrote:

> Oh look, there's an elephant in the sandbox.
>
> On 6/30/06, Jean-Sebastien Delfino <js...@apache.org> wrote:
>> 2. Stage the assembly of our M2 runtime.
>> I propose that we start a fresh stream for M2 and  build the  
>> runtime through
>> baby steps, in parallel with the scenario work.
>
> When I tried to make substantial changes to M1, I ran into a bunch of
> problems due to the fragility of its code - just look at
> AbstractCompositeContext for example (or if you want to hang on to
> breakfast, don't). To avoid those it was easier to start a fresh
> stream and pull in pieces from M1, refactoring along the way to reduce
> the fragility. Jim and then others joined in along the way leading to
> what we have now. The thought of starting over yet again is not very
> appealing.
>
Probably not surprisingly I agree, as the thought of starting over is  
not very appealing, especially in a piecemeal fashion. I feel we are  
at serious risk of loosing momentum if we start from scratch,  
particularly since a number of things are already underway using  
core2 (e.g. Spring integration, the deployer, data transformation,  
the Celtix binding, support for conversations, OSGi integration,  
Groovy support).

Also, I'm not clear on how we would merge M1 and core2. When we  
created core2, we pulled in pieces of M1 where appropriate. While  
some things could be brought over (e.g. parts of the invocation  
chain, annotation processing, some of the loaders, autowire, etc.) a  
lot just couldn't. For example, we pretty much re-wrote the scope  
containers and wound up with a much cleaner design.  Starting over  
like this seems to me to be at least two months of work assuming  
people that have contributed to the core in the past and are familiar  
with it are willing to sign up for this. In contrast, I'd like to be  
in a position sometime this month where we are comfortable having a  
modular core release that people can build extensions with.  
Sebastien, perhaps you could outline which parts of M1 would be  
merged with core2 so I can understand this better?

I'd much prefer we do what Jeremy suggested below and improve core2  
directly. In terms of a codebase that others can get up to speed  
with, it seems to me the best way to do this is not by rewriting it  
piecemeal, but by having a lot of extensions and documentation that  
people can refer to and gradually work their way into core. I believe  
the core is no different than other middleware such as Spring,  
Geronimo, JBoss, Hibernate, etc. in that the nature of the problem  
itself is complex and that complexity is proportionally reflected in  
the architecture but not through to the end-user programming model. I  
also believe that this complexity is best dealt with through  
modularity and "layers" people can start with and gradually work into  
the core (assuming they even want to).

> Instead, I suggest we go ahead with what was suggested on IRC three
> weeks ago and move the code we have now out of the sandbox and into a
> branch. Or perhaps, given there has been no development on the trunk
> recently (since mid-May), go ahead and just replace trunk itself.
>
> That gives us something to start from making it easier to support the
> high-level scenarios that we come up with. We can incrementally
> improve on that code based on what we find using and working with it,
> starting by taking a look at the suggestions that you made.

> --
> Jeremy
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-dev-help@ws.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org