Re: [RT] Building ECM++ for 2.2

2004-10-19 Thread Nicola Ken Barozzi
Carsten Ziegeler wrote:
...
The basic idea is to build an own version of ECM
+1
Rub a dub dub
http://www.joelonsoftware.com/printerFriendly/articles/fog000348.html
In Defense of Not-Invented-Here Syndrome
http://www.joelonsoftware.com/printerFriendly/articles/fog07.html
Things You Should Never Do, Part I
http://www.joelonsoftware.com/printerFriendly/articles/fog69.html
--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-


Re: [RT] Building ECM++ for 2.2

2004-10-19 Thread Pier Fumagalli
On 18 Oct 2004, at 10:57, Carsten Ziegeler wrote:
The following idea came to my mind during the weekend. All the
recent discussions about a new core/container etc. show that
a possible future version of Cocoon will have a different
component handling than we have now.
One major concern for me is compatibility.
That's why I was talking to Stefano about implementing blocks in the 
current architecture... Although it's a sitemap hack (or at least, it 
won't provide the full flexibility that blocks _really_ require), it 
will give a migration path in which certain features could be shared 
between the current and possible future codebase, and easing the 
conversion from one platform to another...

That's my 0.02£
	Pier


smime.p7s
Description: S/MIME cryptographic signature


Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Steven Noels
On 18 Oct 2004, at 11:57, Carsten Ziegeler wrote:
Thoughts? Comments?
I like. Not for compatibility reasons, but merely for untying us from 
the ECM knot. If and when we get to move Cocoon further along the road 
of our own thing, at least we will have a stable baseline to fall back 
to.

/Steven
--
Steven Noelshttp://outerthought.org/
Outerthought - Open Source Java  XMLAn Orixo Member
Read my weblog athttp://blogs.cocoondev.org/stevenn/
stevenn at outerthought.orgstevenn at apache.org


Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Ugo Cei
Il giorno 18/ott/04, alle 11:57, Carsten Ziegeler ha scritto:
The basic idea is to build an own version of ECM, which is:
grabbing the current ECM code, removing everything we don't
need and build a complete container in Cocoon that provides
the minimum functionality.
Hmmm, I like it. But I wouldn't like you grabbing the ECM, dropping 
things that aren't needed, changing names and showing us the finished 
work in a few days. I'd like us to express contracts in a set of 
interfaces and test-cases first. Then, step by step, copy code over 
from ECM to satisfy those tests, until we have a fully-tested 
container. I can help with this.

WDYT?
Ugo
--
Ugo Cei - http://beblogging.com/


smime.p7s
Description: S/MIME cryptographic signature


RE: [RT] Building ECM++ for 2.2

2004-10-18 Thread Carsten Ziegeler
Ugo Cei wrote:
 
 Il giorno 18/ott/04, alle 11:57, Carsten Ziegeler ha scritto:
 
  The basic idea is to build an own version of ECM, which is:
  grabbing the current ECM code, removing everything we don't 
 need and 
  build a complete container in Cocoon that provides the minimum 
  functionality.
 
 Hmmm, I like it. But I wouldn't like you grabbing the ECM, 
 dropping things that aren't needed, changing names and 
 showing us the finished work in a few days. I'd like us to 
 express contracts in a set of interfaces and test-cases 
 first. Then, step by step, copy code over from ECM to satisfy 
 those tests, until we have a fully-tested container. I can 
 help with this.
 
   WDYT?
 
I totally agree, we should have tests. Now, I'm not sure what the
best way to do this is. As I already started :), I think finishing
this first phase, committing it, then adding tests, continuing is
at least for me a little bit easier.
But we can do it in a diffent way if you like. I would suggest let's
first see what others think of this idea in general. If we have
consensus to continue this road we can think about how we can do this
best. Ok?

Carsten



Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Ugo Cei
Il giorno 18/ott/04, alle 14:14, Carsten Ziegeler ha scritto:
I totally agree, we should have tests. Now, I'm not sure what the
best way to do this is. As I already started :), I think finishing
this first phase, committing it, then adding tests, continuing is
at least for me a little bit easier.
But we can do it in a diffent way if you like. I would suggest let's
first see what others think of this idea in general. If we have
consensus to continue this road we can think about how we can do this
best. Ok?
OK. I don't mean to stop you if you are in that state of mind where you 
really can't stop yourself from coding like mad ;-). But as soon as you 
have some code that you aren't totally ashamed of, please put it in the 
whiteboard directory. I will try to look at it and see how I can 
help.

Ugo
--
Ugo Cei - http://beblogging.com/


smime.p7s
Description: S/MIME cryptographic signature


Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Vadim Gritsenko
Carsten Ziegeler wrote:
The following idea came to my mind during the weekend. All the
recent discussions about a new core/container etc. show that
a possible future version of Cocoon will have a different
component handling than we have now.
One major concern for me is compatibility. It would be bad
if someone had to rewrite his complete application just to
update from one version of Cocoon to another. I guess we
all agree on this. Now reaching this goal can be done
from two sides:
a) The new version can have a compatibility layer.
b) We can provide a smooth transition from version to version.
It would be ideal if we would have both. But with a compatibility 
layer people tend to just use it without migrating their app.
And what is wrong with that approach (of just using it)? Beside community issues 
there were no technical issues which would force us to move people out of 
current component management infrastructure. Right?


I wondered what we can do to build a better transition and
to get users moving away from our current approach to a 
newer version. A possible way would be to make minor improvements
or modifications from version to version until we reach our
goal. This could e.g. be done by building ECM++ for Cocoon 2.2.

The basic idea is to build an own version of ECM, which is:
grabbing the current ECM code, removing everything we don't
need and build a complete container in Cocoon that provides
the minimum functionality.
This would be:
- using the same configuration (roles and xconf)
- provide support of the following avalon based interfaces:
  LogEnabled, Contextualizable, Parameterizable, Configurable,
  Serviceable, Disposable, Initializable, Startable
Ok, sounds good.

What could be the benefit of this? 
- no support for Composable, Component etc. anymore (so no
  proxies and wired wrapping anymore).
- no LogKitManagable, RoleManager support etc.
- no Instrumentation support - we could our own instrumentation (JMX?)
- All the code for this container would be ours - only the marker
  interfaces are of course from Avalon.
- We could easily add new features, like the selector handling
  or the DI from Fortress. Using Fortress is imho out of question
  as it does rely on too many third party code.

By having our own container implementation we could add any support
that we think that makes sense for providing a smooth migration path - 
whereever this path ends :)

Now, doing this is fairly easy; it requires just a bunch of code
and would reduce our depencies while giving us more flexibility.
I just started with this approach and could finish it in the next days
if people think it is worth going this way. It would give 2.2 more meat
as well.
But perhaps this idea is totally foolish?
Sounds good with the only exception that I'm not sure about instrumentation vs 
JMX part. Anybody have ideas how Cocoon should be integrated with JMX? What 
management console we would use then?

Vadim


Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Bertrand Delacretaz
Le 18 oct. 04, à 11:57, Carsten Ziegeler a écrit :
...I just started with this approach and could finish it in the next 
days
if people think it is worth going this way. It would give 2.2 more meat
as well...
I like the idea of having our own version of ECM, and if you have code 
already I'd say go for it!

-Bertrand


smime.p7s
Description: S/MIME cryptographic signature


RE: [RT] Building ECM++ for 2.2

2004-10-18 Thread Carsten Ziegeler
Vadim Gritsenko wrote:
 
 Sounds good with the only exception that I'm not sure about 
 instrumentation vs JMX part. Anybody have ideas how Cocoon 
 should be integrated with JMX? What management console we 
 would use then?
 
I think this is an open topic. The first thing imho is to remove
the dependency on instrumentation. We can later on discuss how
to do it in a better way - being it readding it or using
an alternative.

Carsten



Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Ugo Cei
Il giorno 18/ott/04, alle 14:29, Vadim Gritsenko ha scritto:
And what is wrong with that approach (of just using it)? Beside 
community issues there were no technical issues which would force us 
to move people out of current component management infrastructure. 
Right?
Personally, I think there are technical issues as well. Developing 
components for the Avalon Excalibur platform is much harder that it 
should be. There are too many lifecycle interfaces and you're never 
sure which ones you should really implement and how. Having components 
depend on Avalon interfaces makes reuse harder. Testing is hard. Too 
many wheels are reinvented (think logging) but too few enterprise 
services are provided or effectively merged in the platform 
(transactions, for instance). Checked exceptions are the norm and 
therefore are widely abused.

Then there are Cocoon-specific issues, which might be a consequence of 
using a certain platform, or maybe not. Things like preferring 
inheritance over composition, which leads to long inheritance chains, 
and (again) abusing checked exceptions.

As we cannot depend on the Avalon community for mending some of these 
deficiencies, I heartily applaud Carsten's effort towards bringing that 
code inside, so we can at least try fixing them ourselves.

Ugo
--
Ugo Cei - http://beblogging.com/


smime.p7s
Description: S/MIME cryptographic signature


Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Niclas Hedhman
On Monday 18 October 2004 17:57, Carsten Ziegeler wrote:

 But perhaps this idea is totally foolish?

Not at all.
Very pragmatic, well balanced and sensible thing to do.
And it seems you have a lot of support, and if that support is translated in 
to coding help, we are all grateful.

Cheers
Niclas
-- 
   +--//---+
  / http://www.bali.ac/
 / http://niclas.hedhman.org / 
+--//---+



Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Niclas Hedhman
On Monday 18 October 2004 20:48, Ugo Cei wrote:
 As we cannot depend on the Avalon community for mending some of these
 deficiencies, I heartily applaud Carsten's effort towards bringing that
 code inside, so we can at least try fixing them ourselves.

Small correction;  ECM is in excalibur.apache.org, not Avalon.

Cheers
Niclas
-- 
   +--//---+
  / http://www.bali.ac/
 / http://niclas.hedhman.org / 
+--//---+



Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Sylvain Wallez
Carsten Ziegeler wrote:
The following idea came to my mind during the weekend. All the
recent discussions about a new core/container etc. show that
a possible future version of Cocoon will have a different
component handling than we have now.
One major concern for me is compatibility. It would be bad
if someone had to rewrite his complete application just to
update from one version of Cocoon to another. I guess we
all agree on this. Now reaching this goal can be done
from two sides:
a) The new version can have a compatibility layer.
b) We can provide a smooth transition from version to version.
It would be ideal if we would have both. But with a compatibility 
layer people tend to just use it without migrating their app.
 

snip/
As long as the compatibility layer remains, I don't see what invites 
people to migrate to new features. Is it just because new features will 
be available? Then having them because of an updated old container or 
because of a newer one with a legacy layer isn't very different in this 
regard, except that new features are readily available in the second case.

That's why I'm in favor of adding a legacy layer to something new. I 
started the avalonization of Spring a few hours ago and the more I dig, 
the more the technical issues I felt I would hit disappear one after the 
other. I have to stop for now as I have some urgent work to do for 
tomorrow (a new training), but that's definitely the way I want to go 
instead of adding new features on top of an old thing.

Sylvain
--
Sylvain Wallez  Anyware Technologies
http://www.apache.org/~sylvain   http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }


RE: [RT] Building ECM++ for 2.2

2004-10-18 Thread Carsten Ziegeler
 
Sylvain Wallez wrote:

 As long as the compatibility layer remains, I don't see what 
 invites people to migrate to new features. Is it just because 
 new features will be available? Then having them because of 
 an updated old container or because of a newer one with a 
 legacy layer isn't very different in this regard, except that 
 new features are readily available in the second case.
 
 That's why I'm in favor of adding a legacy layer to something 
 new. I started the avalonization of Spring a few hours ago 
 and the more I dig, the more the technical issues I felt I 
 would hit disappear one after the other. I have to stop for 
 now as I have some urgent work to do for tomorrow (a new 
 training), but that's definitely the way I want to go instead 
 of adding new features on top of an old thing.
 
Adding new things on top of an old one provides a smooth migration
path, as you can still use the old ones and one or two additional
ones.
If you have a compatibility layer this most often means that you
can either use this layer or the new functionality. So there isn't
a smooth migration path in this case.

Now, we don't have to add new functionality to the old one, but
it is an option. And with this approach we are getting more
independent from Avalon/Excalibur without loosing anything.

Carsten



Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Sylvain Wallez
Carsten Ziegeler wrote:
snip/
Adding new things on top of an old one provides a smooth migration
path, as you can still use the old ones and one or two additional
ones.
If you have a compatibility layer this most often means that you
can either use this layer or the new functionality. So there isn't
a smooth migration path in this case.
 

The purpose of a compatibility layer is to be able to use _both_ old and 
new features at the same time, otherwise it would be rather useless.

Now, we don't have to add new functionality to the old one, but
it is an option. And with this approach we are getting more
independent from Avalon/Excalibur without loosing anything.
 

Yup. That's why I have nothing about forking ECM in our repo. But I hope 
to prove it's actually even not necessary.

Sylvain
--
Sylvain Wallez  Anyware Technologies
http://www.apache.org/~sylvain   http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }


Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Ralph Goers
I encourage Carsten to wholeheartedly undertake this task.  I really 
only have two thoughts.
1. I don't think it is a good idea to keep the same package names for 
ECM if they are moved into Cocoon.  That could be very confusing.  I 
realize it would be a lot of work to rename existing classes that use 
those interfaces, but done on the proper release boundary I think it is 
the right thing to do.
2. JMX is the right way to go for instrumentation.

Ralph


Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Daniel Fagerstrom
Carsten Ziegeler wrote:
I just started with this approach and could finish it in the next days
if people think it is worth going this way. It would give 2.2 more meat
as well.
But perhaps this idea is totally foolish?
Thoughts? Comments?
 

+1
Seem like a very reasonable way to go, we both takes care about backward 
compability and opens the possiblity to add functionality to the old one 
or plug in new and sexier component containers. We also get a smoother 
migration plan if we eventually would like to get rid of the old way of 
doing stuff.

/Daniel


RE: [RT] Building ECM++ for 2.2

2004-10-18 Thread Carsten Ziegeler
Ralph Goers wrote: 
 
 I encourage Carsten to wholeheartedly undertake this task.  I 
 really only have two thoughts.
 1. I don't think it is a good idea to keep the same package 
 names for ECM if they are moved into Cocoon.  That could be 
 very confusing.  I realize it would be a lot of work to 
 rename existing classes that use those interfaces, but done 
 on the proper release boundary I think it is the right thing to do.
The implementation will get of course the o.a.cocoon package
names, so everything will be renamed. If course the marker interfaces
(Serviceable etc.) will not be renamed.

Carsten



RE: [RT] Building ECM++ for 2.2

2004-10-18 Thread Ralph Goers

I would suggest that new o.a.cocoon interfaces be used which, for the time
being simply extend the existing interfaces.  The use of the
avalon/excalibur interfaces should be deprecated.  This will allow the
complete removal of Avalon/Excalibur in the future.

Ralph

Carsten Ziegeler said:
 Ralph Goers wrote:

 I encourage Carsten to wholeheartedly undertake this task.  I
 really only have two thoughts.
 1. I don't think it is a good idea to keep the same package
 names for ECM if they are moved into Cocoon.  That could be
 very confusing.  I realize it would be a lot of work to
 rename existing classes that use those interfaces, but done
 on the proper release boundary I think it is the right thing to do.
 The implementation will get of course the o.a.cocoon package
 names, so everything will be renamed. If course the marker interfaces
 (Serviceable etc.) will not be renamed.

 Carsten





Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Reinhard Poetz
Ralph Goers wrote:
I would suggest that new o.a.cocoon interfaces be used which, for the time
being simply extend the existing interfaces.  The use of the
avalon/excalibur interfaces should be deprecated.  This will allow the
complete removal of Avalon/Excalibur in the future.
Don't know, if this is necessary at all. If we want to get rid of all those 
marker interface, we would have two different deprecated interfaces which will 
confuse more than it helps, IMHO.

--
Reinhard


Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Sylvain Wallez
Reinhard Poetz wrote:
Ralph Goers wrote:
I would suggest that new o.a.cocoon interfaces be used which, for the 
time
being simply extend the existing interfaces.  The use of the
avalon/excalibur interfaces should be deprecated.  This will allow the
complete removal of Avalon/Excalibur in the future.

Don't know, if this is necessary at all. If we want to get rid of all 
those marker interface, we would have two different deprecated 
interfaces which will confuse more than it helps, IMHO.

+1.
Sylvain
--
Sylvain Wallez  Anyware Technologies
http://www.apache.org/~sylvain   http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }


Re: [RT] Building ECM++ for 2.2

2004-10-18 Thread Stefano Mazzocchi
Carsten Ziegeler wrote:
The following idea came to my mind during the weekend. All the
recent discussions about a new core/container etc. show that
a possible future version of Cocoon will have a different
component handling than we have now.
One major concern for me is compatibility. It would be bad
if someone had to rewrite his complete application just to
update from one version of Cocoon to another. I guess we
all agree on this. Now reaching this goal can be done
from two sides:
a) The new version can have a compatibility layer.
b) We can provide a smooth transition from version to version.
It would be ideal if we would have both. But with a compatibility 
layer people tend to just use it without migrating their app.

I wondered what we can do to build a better transition and
to get users moving away from our current approach to a 
newer version. A possible way would be to make minor improvements
or modifications from version to version until we reach our
goal. This could e.g. be done by building ECM++ for Cocoon 2.2.

The basic idea is to build an own version of ECM, which is:
grabbing the current ECM code, removing everything we don't
need and build a complete container in Cocoon that provides
the minimum functionality.
This would be:
- using the same configuration (roles and xconf)
- provide support of the following avalon based interfaces:
  LogEnabled, Contextualizable, Parameterizable, Configurable,
  Serviceable, Disposable, Initializable, Startable
What could be the benefit of this? 
- no support for Composable, Component etc. anymore (so no
  proxies and wired wrapping anymore).
- no LogKitManagable, RoleManager support etc.
- no Instrumentation support - we could our own instrumentation (JMX?)
- All the code for this container would be ours - only the marker
  interfaces are of course from Avalon.
- We could easily add new features, like the selector handling
  or the DI from Fortress. Using Fortress is imho out of question
  as it does rely on too many third party code.

By having our own container implementation we could add any support
that we think that makes sense for providing a smooth migration path - 
whereever this path ends :)

Now, doing this is fairly easy; it requires just a bunch of code
and would reduce our depencies while giving us more flexibility.
I just started with this approach and could finish it in the next days
if people think it is worth going this way. It would give 2.2 more meat
as well.
But perhaps this idea is totally foolish?
Thoughts? Comments?
+1000!
the reasons to follow up right after in another RT
--
Stefano.


smime.p7s
Description: S/MIME Cryptographic Signature