Hi Sanjiva Weerawarana wrote: >On Tue, 2006-10-10 at 20:21 +0100, David Illsley wrote: > > >>In terms of setting up TLS info, I'm interested by the comment that it >>would be set in the AxisEngine. When we had the conversation about the >>ThreadContextMigrator interface (which does now exist) I understood >>that there wasn't any guarantee that there is a single thread in use >>through the handler chain. >> >> > >I believe it'll be set in the message receiver just before invoking the >method right guys? I can't see why it needs to be set earlier. > > Yes that was the final conclusion.
FYI: Deepal: hi dims [15:07] Deepal: u there [15:08] Deepal: I dont think we can move saveTCCL(messageCtx); in AxisEngine [15:23] GlenD: dims? [15:23] GlenD: u there? [15:26] dims: ping [15:26] GlenD: hey [15:26] GlenD: so Deepal and I were chatting about the context stuff [15:26] dims: yes [15:26] GlenD: and ended up coming up with a very interesting idea which we wanted to run past you [15:26] dims: sure [15:26] GlenD: I think it's too big a change for now, but it's pretty cool for a future release [15:27] dims: we need to make a list of those :) [15:28] GlenD: the issue is that there's a lot of code duplication amongst MessageReceivers [15:28] dims: ah. that one :) [15:28] GlenD: if we want this setTCCL stuff and the setCurrentContext stuff to live in the MRs, it's hard to figure out where to put it so it isn't dup'ed everywhere [15:29] dims: call back to engine? [15:29] dims: sorry...go ahead. [15:29] GlenD: so we're wondering if you could maybe factor it out into a single AbstractMessageReceiver [15:29] GlenD: which would do the TCCL/Context stuff, then call invokeBusinessLogic() but pass only the OperationContext [15:29] dims: we have one of those [15:30] dims: AbstractMessageReceiver [15:30] GlenD: not have separate ones that pass either (inContext) or (inContext, outContext) [15:30] GlenD: we do? [15:30] dims: we need to structure it better [15:30] Deepal: we have 4 of them :) [15:30] GlenD: right [15:30] GlenD: we have 4 [15:30] dims: org.apache.axis2.receivers.AbstractMessageReceiver [15:31] dims: ah. i see [15:31] Deepal: and we are thinking of chaning invokeBusinessLogic signature [15:31] GlenD: only the lower level ones (AbstractInOnlyMR, etc) actually have receive() [15:31] GlenD: the top level one doesn't do anything [15:31] GlenD: except hold utility methods [15:31] dims: any cleanup is very welcome! sorely needed in this area. [15:31] dims: +1 [15:31] GlenD: so the interesting part is that SOMEONE needs to know to take the outMessageContext from the operationContext and send it [15:31] dims: please make sure you handle the spring scenario [15:31] Deepal: invokeBusinessLogice will take OperationContext as it argument [15:32] GlenD: that's the real difference between in and inout [15:32] dims: and then check isinstanceof? [15:32] GlenD: we're wondering if there's a way to genericize that by calling invokeBusinessLogic() and then something like complete() or doNext() [15:32] GlenD: but we need to think about it a little more I think :) [15:33] dims: yep... [15:33] dims: pre and post? [15:34] GlenD: (thinking here) [15:34] dims: first step is to collapse all 4 into 1 AbstractMessageReceiver? [15:34] dims: somehow [15:34] GlenD: that was the thought yes but we're seeing if it can work.... [15:35] dims: then adjust the calls to invokeBusinessLogic and maybe call something before it and something after it for special processing for different MEP's? [15:36] dims: are we looking for clean code or new feature here? [15:36] Deepal: I think both :) [15:37] dims: and the new Feature is?.. [15:37] GlenD: its really mostly clean code [15:37] GlenD: and a good place to put the common stuff for tls [15:38] dims: :) ok. [15:53] GlenD: ok never mind :) [15:53] GlenD: I think we just came to the conclusion that it's actually useful to have different abstract Receiver types [15:54] GlenD: because they're the ones that know the logic for message processing [15:54] GlenD: if you had an in/in/out MR, for instance, it could have processMessage1() and processMessage2() abstract operations [15:54] GlenD: that's nicer than just relying on a single invokeBusinessLogic(OperationContext), I think [15:56] GlenD: So the idea is to coalesce the TCCL stuff and the CurrentContext stuff into a setupThreadContext() and removeThreadContext() on AbstractMessageReceiver [15:57] GlenD: so developers of new MRs that want TLS functionality would need to know to call that method, but it sets up both the classloader and the MessageContext.getCurrentContext() [16:00] dims has disconnected: Read error: 104 (Connection reset by peer) [16:00] dims has joined [16:01] dims: +1 to "coalesce the TCCL stuff and the CurrentContext stuff into a setupThreadContext() and removeThreadContext()" [16:01] GlenD: great [16:01] Deepal: +1 for doing that for 1.1 [16:01] dims: sure [16:02] dims: but again. proposal to mailing list. [16:07] GlenD: ya [16:35] GlenD: brb [16:35] GlenD has disconnected [16:36] GlenD has joined [17:13] Deepal: this time hackerthon seems good to me [17:14] Deepal: finding bugs , improvements [17:14] Deepal: s/hackerthon/hackarthon --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]