Re: [cocoon-2.2] Servlet source description (was: Deprecation)

2007-11-08 Thread Grzegorz Kossakowski
Vadim Gritsenko pisze:
> Carsten Ziegeler wrote:
>> Grzegorz Kossakowski wrote:
>> Yepp, but unfortunately too many people rely on these side-effects :(
> 
> Is there place where differences between servlet: and cocoon: sources
> are described? Or, at least, where servlet: source is described?

For the most simple aspect of servlet: protocol when it acts passively fetching 
resources from other
blocks there is no such description (or at least I couldn't find any, I hope 
Daniel could help with
this). Anyway, as I said in passive mode behaviour of servlet: source is very 
simple: it creates a
new request (o.a.c.servletservice.util.BlockCallHttpServletRequest class) 
object and servlet service
(usually just a SitemapServlet) is asked to process such request. The 
processing works exactly the
same as this request would come from browser so the whole new environment is 
being created, etc.

Little bit more tricky is servlet: source when it acts in active mode used as 
postable source.
Fortunately enough, this aspect has been discussed thoroughly and you can find 
links to the most
important threads in description of COCOON-2046[1] issue where implementation 
of postable source was
tracked.

There is a third aspect of servlet: source: Object Oriented behaviour. This is 
already implemented
and was tracked by COCOON-2038[2]. The most important mail from the discussion 
mentioned in that
issue is[3].

I hope this helps a little. If not, don't hesitate to ask.

[1] https://issues.apache.org/jira/browse/COCOON-2046
[2] https://issues.apache.org/jira/browse/COCOON-2038
[3] http://article.gmane.org/gmane.text.xml.cocoon.devel/72335

-- 
Grzegorz Kossakowski
Committer and PMC Member of Apache Cocoon
http://reflectingonthevicissitudes.wordpress.com/


Re: [cocoon-2.2] Deprecation

2007-11-08 Thread Grzegorz Kossakowski
Joerg Heinicke pisze:
> It seems we do not even know the requirements. How do you want to decide
> about architecture without them? My guess - since Cocoon is just a
> framework - you merely get the requirements from real applications built
> on it. Why can't we wait until the people get used to the new
> functionality and see how it works out to see what can be removed in the
> future?

Waiting a little bit and let the requirements to crystallize is a good idea in 
general. The process
of crystallization of ideas will shape replacements for the functionality we 
want to deprecate. At
the same time we can (and should in my opinion) deprecate things without having 
"1-1" replacements
or even ideas for them.

Why can't we wait? Because cocoon: + map:mount combo is a major pain whenever 
one wants to touch
Cocoon's core. I'm almost sure that there is no active committer that could 
say: I know how this
stuff works or at least I could figure out everything I need to work with this 
code in a day. Don't
you think that having big portion of such code in core will bite us in the 
future only if it's not
biting us now?

Deprecation of this stuff would hold mainly informative role spreading a clear 
message: We really
want to remove this code and we are actively evaluating various options as 
replacements. I would
even say that deprecation would elicit active discussion amongst our users. 
That would be the best
outcome of the whole deprecation thing at this point because we probably could 
gather a lot of
useful information how Cocoon is used.

Yes, as several folks pointed out, deprecation is only the first step to remove 
any portion of code.

> From what I understand servlet protocol lacks some major functionality
> like the fall-through of sub sitemaps. This seems to be the most
> important convention over configuration feature.

Can you explain what do you mean by "fall-through of sub sitemaps"?

>> If people don't want to migrate I would tell them to stick to 2.1,
>> it's stable and final release of
>> 2.2 won't make 2.1 unusable.
> 
> I want them as testers sharing their experience. Otherwise it takes much
> longer to get peoples to use Cocoon 2.2 in a meaningful way (= more than
> starting with little applications). I don't see the point preventing
> people from migrating. Also we are talking about *deprecation* in 2.2
> here, not removing features. So how should it affect them?

There would be no impact on our users apart from the psychological aspect I 
spoke about earlier.

Do we agree on deprecating this stuff then?

-- 
Grzegorz Kossakowski
Committer and PMC Member of Apache Cocoon
http://reflectingonthevicissitudes.wordpress.com/


Re: [cocoon-2.2] Deprecation

2007-11-08 Thread Vadim Gritsenko

Carsten Ziegeler wrote:

Grzegorz Kossakowski wrote:

Thinking more about incompatibilities between cocoon: and servlet: protocols 
I'm getting an
impressions that they are not such fundamentally different when it comes to 
their usage schemes. Of
course they differ in many details but as Reinhard properly characterized 
differences comes from the
fact that servlet: protocol just tries to avoid side-effects cocoon: protocol 
allows.

Yepp, but unfortunately too many people rely on these side-effects :(


Is there place where differences between servlet: and cocoon: sources are 
described? Or, at least, where servlet: source is described?


Vadim


Re: [cocoon-2.2] Deprecation

2007-11-08 Thread Joerg Heinicke

On 07.11.2007 15:52 Uhr, Grzegorz Kossakowski wrote:


Now, at some point we have to break compatibility to get a cleaner
architecture and an even better way of doing things. Perhaps removing
sub sitemaps is one of these things, perhaps not.


Before we start to think about migration path and embedding 2.1 as "emergency 
help" for existing
users I really think we should agree what we are going to deprecate and remove 
in the future and
most importantly how we envision future Cocoon's architecture so there will be no 
"perhaps yes,
perhaps no" doubts any more.


It seems we do not even know the requirements. How do you want to decide 
about architecture without them? My guess - since Cocoon is just a 
framework - you merely get the requirements from real applications built 
on it. Why can't we wait until the people get used to the new 
functionality and see how it works out to see what can be removed in the 
future?


From what I understand servlet protocol lacks some major functionality 
like the fall-through of sub sitemaps. This seems to be the most 
important convention over configuration feature.



If people don't want to migrate I would tell them to stick to 2.1, it's stable 
and final release of
2.2 won't make 2.1 unusable.


I want them as testers sharing their experience. Otherwise it takes much 
longer to get peoples to use Cocoon 2.2 in a meaningful way (= more than 
starting with little applications). I don't see the point preventing 
people from migrating. Also we are talking about *deprecation* in 2.2 
here, not removing features. So how should it affect them?



Joerg


Re: [cocoon-2.2] Deprecation

2007-11-08 Thread Carsten Ziegeler
Grzegorz Kossakowski wrote:
> Carsten Ziegeler pisze:
>> Yes, that's true. Now, at some point we have to break compatibility to
>> get a cleaner architecture and
>> an even better way of doing things. Perhaps removing sub sitemaps is one
>>  of these things, perhaps not.
> 
> Before we start to think about migration path and embedding 2.1 as "emergency 
> help" for existing
> users I really think we should agree what we are going to deprecate and 
> remove in the future and
> most importantly how we envision future Cocoon's architecture so there will 
> be no "perhaps yes,
> perhaps no" doubts any more.
Good point.

> 
>> But on the other hand there are many applications out there using this
>> stuff and they don't want to migrate. There is no real benefit for them.
>> But there is benefit for them using latest and greatest Cocoon for now
>> stuff. And this is very I think embedding 2.1 in 2.2 might make sense.
>> It allows people to run their old applications without modifications
>> while at the same time they can start new apps with 2.2.
> 
> If people don't want to migrate I would tell them to stick to 2.1, it's 
> stable and final release of
> 2.2 won't make 2.1 unusable.
Yes, but what about bug fixes etc.? Given the activity over the last
year I doubt that there will be any 2.1.x release. And people want to do
new things with Cocoon while at the same time keep their apps running.

But this is more a hypothetical discussion :) All I want to say is that
we should not care too much about compatibility. We should find a clean
and great solution for future Cocoon versions.

> 
>> As Cocoon 2.2 uses Spring as the container and as the Cocoon beans are
>> added to the Spring root container, these things are available in 2.1
>> through Spring as well. So people are able to call 2.2 stuff from within
>> 2.1. It might be a thin bridge in terms of possibilities but I think
>> going this way makes things easier.
> 
> Carsten, haven't you forgotten that in 2.2 all components (even Avalon-based) 
> are managed by Spring?
Hmm, no - it was me who created this stuff :)

> I mention this because I can easily imagine clashes between the same 
> components defined both in 2.1
> and 2.2. If you want to make anything usable you must assure collaboration in 
> both ways between 2.1
> and 2.2 so all components must be shared and clashes are unavoidable IMHO.
No, I don't think so - keeping them separate is the key I think. We
would even have to run Cocoon 2.1.x in an own class loader to avoid
class clashes. Basically I think it could work like this: the global
spring container contains spring stuff and cocoon 2.2 stuff. There is
some bridging servlet registered which forwards to an embedded Cocoon
2.1.x which runs in an own class loader and own Avalon container. There
is no direct conncetion to spring or 2.2. However people could get the
global spring container inside 2.1.x and use the registered beans.

> 
> Really, the more I think about this I idea the more obstacles I see but maybe 
> I'm lacking something.
Yes, maybe it's not that easy - but currently I think it should be
doable without too much work and too many problems. If we come to the
conclusion that this might be worth exploring I could have a look at it
by the end of December.

> Anyway, I think that the most important point is made earlier that we must 
> establish goals we want
> to achieve before we start to think about implementation.
Absolutely true. I also think that we should get 2.2 out first. We can
delay all this deprecation etc. for one release.

> 
> Thinking more about incompatibilities between cocoon: and servlet: protocols 
> I'm getting an
> impressions that they are not such fundamentally different when it comes to 
> their usage schemes. Of
> course they differ in many details but as Reinhard properly characterized 
> differences comes from the
> fact that servlet: protocol just tries to avoid side-effects cocoon: protocol 
> allows.
Yepp, but unfortunately too many people rely on these side-effects :(

Carsten


-- 
Carsten Ziegeler
[EMAIL PROTECTED]