As Vadim pointed out in an earlier discussion this is done in Java faces: http://java.sun.com/j2ee/javaserverfaces/1.1_01/docs/api/javax/faces/context/ExternalContext.html
So what I propose is that we extend o.a.c.environment.Request with:
Map getAttributes(); Map getParameters(); Map getHeaders();
o.a.c.environment.Session and o.a.c.environment.Context with:
Map getAttributes();
possibly there are more. Java Faces use getRequestMap etc instead, but the plural "s" is closer to our current conventions.
Answering some questions on previous thread; here is complete implementation, including entrySet, iterators, etc:
org.apache.cocoon.faces.context.ExternalContextImpl
Vadim
