This has been discussed recently. Some are in favor of passing the context down through the execution chain, some are in favor of separating the variable storage from the rest of the context.
We may be able to solve your problem without deciding the issue now. JellyContext is designed to be sub classed by the end user, to provide custom memory management. We can't clear out the actual context objects but maybe we can do the next best thing by clearing out the HashMap of variables. You could: * Clear the variables for a tag as soon as the tag's finished running. * Provide a method on the top-level context, "clearAllVariables", to let you programmatically clear the top-level and all child context variables between runs. Would either of these work for you? If so, your problem can be solved pretty quickly with only a custom JellyContext. Hans -----Original Message----- From: Jiaqi [mailto:[EMAIL PROTECTED] Sent: Tuesday, November 02, 2004 12:56 PM To: Jakarta Commons Users List Subject: Re: [jelly] Stateless/Stateful Tag? So what is the best practice for developer to frequently execute predefined jelly script? In my project, process is defined in xml file, which will not be changed logically, which could be very complicated. Logically volatile stuff is variables (like current user name and form data). It's easier for me to model process definition with tag/scripts and put variables into JellyContext. Otherwise, I can not figure out any solution else. What is your suggestions? Thanks On Tue, 2 Nov 2004 09:37:25 +0100, Paul Libbrecht <[EMAIL PROTECTED]> wrote: > Mmmh, > > I would rather view the contrary: tag and tagscript objects are > entirely volatile where the context is something that stores exactly > how much you want (that is, not more than needed). > So I'd rather rely on the jelly-context to add states of the tag... > > paul > > Le 1 nov. 04, � 20:41, Jiaqi Guo a �crit : > > > > > Hi everyone, > > > > I want to reuse jelly Script object since in my current project, > > Script will run frequently with different given JellyContext created > > at runtime and I don't want to create Script and Tag objects time and > > time again. > > > > My concern is, in TagScript, Tag object is cached in ThreadLocal and > > runtime JellyContext object is sitting in Tag object. So runtime > > context is saved until next time the Script runs. To my understanding, > > JellyContext should not be saved because it's transient. Putting it > > into Tag object makes developer easy, and makes Tag object stateful. > > > > Is there any thing I can do to clean Tag objects after the doTag > > method is called without explicitely add setContext(null) in each > > doTag() method, or prevent Tag from absorbing JellyContext into > > itself? Any suggestions? > > > > > > > > Thanks > > Jiaqi > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Regards JIaqi --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
