cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Fagerstrom <dani...@nada.kth.se>
Subject Re: [vote result] Let our environment abtractions extend the http servlet ones
Date Mon, 13 Aug 2007 20:34:32 GMT
Daniel Fagerstrom skrev:
> Daniel Fagerstrom skrev:
>> I would like o.a.c.environment.[Request|Response|Session] to extend 
>> javax.servlet.http.Http[ServletRequest|ServletResponse|Session] 
>> respectively.
...
> So I will implement my proposal with Alfred's deprecation scheme in the 
> beginning of next week.

I have commited the changes to the trunk. Everything compiles (removed 
the cocoon artifacts in them maven rep first) and all tests runs (except 
ZipSourceTestCase which is unrelated to this change). I tested a couple 
of samples as well and they still works. But I modified a lot of code so 
I would be surprised if I didn't miss anything. Please report if there 
are any problems.

For the actual changes I followed Alfred's proposal. A small thing that 
I missed concerning possibly incompatible changes is the former method:

   org.apache.cocoon.environment.Cookie Response.createCookie(String 
name, String value);

Which I replaced with:

   javax.servlet.http.Cookie createCookie(String name, String value);
   /*
    * @deprecated use {@link #createCookie(String, String)} instead.
    */
   org.apache.cocoon.environment.Cookie createCocoonCookie(String name, 
String value);

But thinking about it having a factory method for 
javax.servlet.http.Cookie seem quite pointless, we should probably just 
deprecate the factory method and recomend them to use the constructor 
instead:

   /*
    * @deprecated use <code>new {@link javax.servlet.http.Cookie(String, 
String)}</code> instead.
    */
   org.apache.cocoon.environment.Cookie createCocoonCookie(String name, 
String value);

WDYT?

For all the javax.servlet.http methods that wasn't part of our 
environment instructions I added methods that throws 
UnsupportedOperationException to the AbstractRequest, AbstractRespose 
and the AbstractSession classes. We can implement these methods later if 
people need them.

For the back incompatibilities in the rest of the code I switched most 
uses of Session to HttpSession and most uses of 
org.apache.cocoon.environment.Cookie to javax.servlet.http.Cookie. In 
the few cases where it would have affected the api of the classes I 
downcasted getSession() to Session respectively used getCocoonCookie 
instead.

I haven't fixed 2.1 yet. As I haven't worked on 2.1 for years I would 
happy if someone volunteered to do it. Otherwise I'll fix it in a few 
days when we are certain that the trunk works.

I saw that trunk/commons/status.xml hasn't been touched for nearly a 
year. Should I document the change there or do we have some new place 
for documenting changes in the trunk?

Do we have some special area in the 2.2 documentation for upgrade how to?

/Daniel


Mime
View raw message