Geoff Howard wrote:
> Phil Blake wrote:
>
>>> By the way, it's important that people know the basic reason Cocoon
>>> doesn't give you an HTTP session. Cocoon abstracts the environment
>>> so that it can be run from many different environments, not just
>>> http/servlet. Currently the command line interface is the only other
>>> implemented environment but even there dependency on servlet jar and
>>> HttpSession obviously makes no sense. Examples of other potential
>>> environments which have been discussed are email (via James) and JMS.
>>>
>>> Now, that doesn't mean it should be impossible to get to the
>>> HttpSession if you are in that environment and that's what we need to
>>> see. I think the method which is used in the other environment
>>> abstractions (Request for example) won't work here, but I don't see a
>>> reason cocoon's session couldn't implement HttpSession. Right now,
>>> it seems the only methods unimplemented from the javax interface are
>>> the deprecated methods. Another alternative would be to use JDK 1.3
>>> dynamic proxy which may work if the code you pass the proxy to
>>> doesn't call the deprecated methods (I can't remember for sure if
>>> this is true).
>>
>>
>>
>> Good point Geoff.
>>
>> This is a specialised case. I think you'd only want access to the
>> HttpSession for this kind of integration. Perhaps a _wrappedSession()
>> method on org.apache.cocoon.environment.Session is too easy to abuse.
>> A little opinionated documentation could help with that. :)
>>
>> Any comments?
>
>
> I was thinking more of just declaring that the cocoon HttpSession
> implements the javax interface as I mention above. It would be easiest
> to implement the deprecated methods to just throw an exception. Does
> Cayenne need them? If we do this, you could just pass the cocoon
> session along with a possible cast depending on how you got it.
>
> I've started a proposal on the dev list about this if you want to pipe
> in or follow along there.
Ok, I think the proposal to do this is not going to go anywhere, but
there is a solution. You'll probably need to give more info (or remind
us of it) of what code you are calling this from (action, flow,
generator, transformer, etc.).
While you are at it, can you give more info about what part of the
Cayenne API relies on this? It is odd that they need an http session
object - what if you wanted to use this code outside of a webapp?
Geoff
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org