le mystère du Binding passé à un Shell
Bonjour
voici à peu près à quoi ressemble mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
def conf = new CompilerConfiguration()
Binding env = new Binding()
//....
env.setProperty( // clef et valeur msi dans "env"
//
conf.setScriptBaseClass(// nom de la classe qui hérite de Script
def shell = new GroovyShell(env,conf)
//isReader est un reader sur le code Groovy du script
// argz est un tableau de String
shell.run(isReader, scriptName, argz) |
tout marche correctement SAUF le binding dans la classe qui hérite de Script
getBinding() rend tout le temps un Binding vide!
j'ai essayé aussi des shell.setVariable ou setProperty .... même punition même motif :aie:
sachant qu'il faut que:
- je passe un Reader vers le texte du code
- et qu'il me faut des arguments (argz dans le code)
par où dois-je passer pour avoir un Binding partagé entre le code appelant et le script?
(il ne me reste pas tant de cheveux alors je ne peux me permettre de les arracher :? )