I'm extending our home-made framework to be able to take advantage of Java
6 scripting capabilities, and I have found some "issues" with
Quercus/Scripting Engine due to the way the scripting works in Java 6.
In short, I developed the scripting module this morning in my office, using
an older version of Resin, and all seemed to work fine (tests done with
Rhino and Groovy), but then I went home to keep working there with Resin
3.0.21. All of sudden, I was unable to execute any script more than once
and the error was being generated by Quercus, even though I was not trying
to execute PHP.
To make a long story short, after playing with the sources and some search
I found out that the problem was the was scripting works and bug 1473
which has been fixed in version 3.1.
However, just having the conflicting files in the classpath in version 3.2X
can break scripting with other engines in a Resin 3.2.0X, as all engines
can to be queried when you tried to find one engine, so I was wondering
whether back porting those changes was worthwhile. Otherwise, users of
version 3.0.2X might encounter the problem even when trying to use other
scripting engines, and even migrating from older versions of Resin. As I
believe version 3.1 changed quite a bit, some users might try to migrate
first to 3.0.2X and then...
So, just a warning that it's not just the Quercus engine not being able to
be used but causing conflicts also, just by being in the classpath.
On a related note, I noticed the Quercus Scripting engine is not
"Invocable", are there any plans to implement this feature? I tested other
engines (Rhino, Groovy, Jython) and Quercus was the only one not
"Invocable". Just wondering as that might mean I would also need to allow
scripts to be just called using eval instead of eval+invoke, which suits me
better, if I wanted to support Quercus.
resin-interest mailing list