You wouldn't want to run @Retry({System.exit(0)}) on your server, I presume.

On Mon, 24 Feb 2020 at 00:39, Saravanan Palanichamy <chava...@gmail.com>
wrote:

>
>
> On 2020/02/23 23:14:32, Paul King <pa...@asert.com.au> wrote:
> > Just for future reference, I'd probably start out with such a question on
> > the users mailing list. There are more folks subscribed to that list and
> > writing closures and transforms (using Groovy) are topics which that list
> > covers. If it turned out that Groovy couldn't handle your use case, the
> dev
> > list (developing the language) would be the place to go to ask whether a
> > feature could be added to the language.
> >
> > Having said that, to answer your question, there are quite a lot of
> > things that are possible. Perhaps you could give a concrete simple
> example
> > of the kind of thing you are trying to do. I understand most of what you
> > are saying but a few bits are still a little unclear (to me at least).
> >
> > Cheers, Paul.
> >
> >
> > On Mon, Feb 24, 2020 at 9:06 AM Saravanan Palanichamy <
> chava...@gmail.com>
> > wrote:
> >
> > > Hello
> > >
> > > Is it possible to do this in the groovy AST transformation ->
> > >
> > > a) in a code visitor, visit a closure expression (in the
> > > INSTRUCTION_SELECTION phase)
> > > b) Using the Closure Node, execute this code to determine its results
> > > based on different parameters
> > >
> > > Essentially I want to be able to selectively run a closure defined in
> code
> > > during the compile process. I see you can convert closures into
> strings, is
> > > it possible to compile that string in the middle of a compile process?
> > >
> > > I am not sure this is the right forum for this question, please let me
> > > know if otherwise
> > >
> >
>
> Hello Paul
>
> Thank you for your reply. I am trying to do this specific thing
> a) I allow my developers to write Groovy scripts
> b) I use the script as a DSL to generate actual configuration files needed
> for my service at runtime.
> c) Because I need to translate the code to configuration entries, I need
> to execute some parts of the script to determine config values. For example
>
> @Retry({new RetryParams(10, 20)})
> void runSomeCodeInMyServer() {
> }
>
> In the code above, lets say this code runs on my server, but the server
> needs to be told that the parameters for the thread that executes this is
> to retry it 10 times, with a 20 second interval.
>
> When parsing the groovy script, I need to pull out these 10 and 20 numbers
> from the script. One way to do this is visit the closure, see this was a
> constructor call to RetryParams, and use the numbers there. This seems
> tedious given the number of combinations possible. However if there was way
> for me to run this closure during the AST transform, I can inspect the
> created retryparams object to get my values. Does that make sense?
>
> As I am typing this, I also realize that the closure may call other
> functions which may need to be compiled as well (but I can create compile
> errors there to keep it simple)
>

Reply via email to