It seems that we are still not yet in the clear regarding Jasper Reports. When I reviewed and tested the patch a couple weeks ago, I did so on a new development environment that had been set up following the wiki instructions. However, when I did one last sanity check on Friday on my regular development environment, I got an exception when generating reports. The exception was due to a java bad version number. Somewhere, we had code compiled by Java 1.6, and I am running Java 1.5 (which is what all sipXconfig code is supposed to work with). Anyways, after much searching, it turns out that the offending code was not in a Jasper dependency, but rather in the generated classes created from the jasper reports themselves. It turns out that jasper was using the 1.6 compiler on my machine to dynamically compile the reports, and this was causing the issue. When I switched to the 1.5 compiler the problem went away. Of course, if that was the end of the problem, I wouldn't be writing this email :)
The issue at hand is that Jasper's use of javac at runtime is not acceptable, as we do not require target systems to be running a JDK (Java SDK, or whatever else you'd like to call it). There are a few ways around this, which I'll explain here, but the short story is that in its current form, we can't take the Jasper patch. Option 1) Jasper can make use of several compilers. The situation that I saw was that Jasper was invoking javac directly, by creating a new process to handle the compilation of the reports (.jrxml). Jasper also supports using the Eclipse JDT, which we could include as a dependency. Eclipse JDT is available as an RPM (in Fedora repo, at least) and is installable via yum. However, this is a 26MB package and, IMO, is far too large and bloated to justify including it just to get at a Java compiler. Option 2) We can precompile our pre-writtern jasper reports at build time, eliminating the need for run-time compilation. This does have the undesired side effect that admins will not be able to upload their own reports, which we would need to compile at run time. There are ways around this, such as providing a way for them to precompile the reports and then upload them. Option 3) Maybe a future version of Jasper will provide a more friendly way to handle compilation. I have not checked into more recent versions that the one we are currently using. So, there it is. Thoughts and/or suggestions? Kevin _______________________________________________ sipx-dev mailing list [email protected] List Archive: http://list.sipfoundry.org/archive/sipx-dev Unsubscribe: http://list.sipfoundry.org/mailman/listinfo/sipx-dev
