I want to revisit an old question of mine about in-memory "compilation" of classes. Since about 1/2 a year have passed since I asked (and was somewhat answered), I d like to re-raise the issue and see if something new would come up (so no, I don t consider this a duplicate).
The old question can be found here: On-the-fly, in-memory java code compilation for Java 5 and Java 6 - I suggest reading it (and the answers) before answering this question.
I m quite content with beanshell doing the heavy work of evaluating string of a java class to an actual Class object. However, beanshell has been standing on version 2.0b4 for ages now and its limitations (no constructor, not even default; no generics, no for-each, no enums...) are annoying.
Reminder - this is to be used as a debugging interface, so performance considerations are negligible. However, I can t have server restarts, can t send class files to the location and JSPs are a very bad choice for me (I won t go into reasons here). Also, the end product must be a Class (or an Object of that class) so I could pass it around.
Some limitations: I can t have a JDK, so no javax.tools.JavaCompiler. I can t have JSPs since I don t have tomcat or other "real" web container. Java 5 syntax support would be great, especially generics, enums and parameterization. Support for default constructors would be very nice.
Any ideas?
Edit 1: I just found out that there is a round-about way of having constructors in beanshell - however you have to declare them "public void XXX(){...}" instead of the usual way "public XXX(){...}".