Penrose supports transforming data being read or written to sources using any scripting language. By default Penrose uses BeanShell scripting languange.
The scripting language can be configured in PENROSE_SERVER_HOME/conf/server.xml:
<interpreter> <interpreter-class>org.safehaus.penrose.interpreter.DefaultInterpreter</interpreter-class> </interpreter>
In the current implementation Penrose only supports one type of interpreter.
You can use any scripting language by wrapping it in a class extending from Interpreter class. See Interpreter API
Put jar file containing your class into PENROSE_HOME/lib, then replace the above configuration.