On Dec 6, 2006, at 4:01 AM, Cameron Smith wrote:
Dear David and Kane Lo, thanks for your feedback. Let me respond
to your points separately.
1. David, your point about Interpreter.ParsedScript is what I was
trying to get at when I asked about the "philosophy" of your
BeanShell stuff. If it was you who implemented ParsedScript that
makes a lot of sense, as I could not understand how someone (AKA
Pat) who had already got this implememented in 1.0, would then go
to the trouble of taking it out in a later version.
As far as I can see, then, your design objectives for "Bsh in
OFBiz", were:
a. Allow caching of parsed scripts, against script name, for
performance reasons
b. Even when executing a parsed script, remember line and position
information to assist with error-reporting when a script cannot be
evaluated.
If this is correct, then based on Pat's explanation here:
http://beanshell.org/manual/parser.html#Parsing_and_Performance
...our only option for 2.0b4 would be to reimplement ParsedScript
behaviour on top of the "SimpleNode" AST abstraction. It may be,
David, that this is exactly how you implemented ParsedScript
already, but I could not find the source for your altered version.
Could you point me to it so I can have a look?
Okay, this is now available on a docs.ofbiz.org page here:
http://docs.ofbiz.org/x/5QI
2. Kane Lo, I was not able to ascertain the version of JPublish
used by OFBiz (from the MANIFEST.MF), but in any case after
checking the JPublish project site, which appears to have been
fairly inactive for the last 2 years, you are right, the latest
available version of JPublish supports only up to bsh 1.3 (which
appears to be the version upon which OFBiz' customized bsh is based).
I wouldn't worry too much about this as we are actually working
toward totally removing JPublish from OFBiz as that project is not
really being maintained any more and we have moved from it for the
most part anyway.
3. In the long term, given that Bsh 2.0b4 was adopted as the basis
for JSR-274
, and that OFBiz sooner or later will move to JDK1.5, I suggest
politely that we'll have to deal with this issue at some point or
other. Perhaps resubmitting David's ParsedScript contributions to
the JSR-274 spec process?
I have no problem with it being submitted back. Hopefully there will
be more interest in this, or a recognition for this sort of need.
In the meantime, to solve my immediate problem a less turbulent
approach might be to allow my OFBiz module (or even the webapp
within it) to load its bsh from a different classloader. Is there
a way to specify this via ofbiz-component.xml?
This is mostly a problem for containers that include BeanShell, like
Weblogic for example that throws everything in the big weblogic.jar.
The problem is that there are various classes that need to be shared
among the different webapps, and those applications rely on bsh. So,
in order to isolate from the server the app server needs to support
at least three tiers: app server container, application group, webapp.
-David
cameron
----- Original Message ----
From: David E Jones <[EMAIL PROTECTED]>
To: [email protected]
Sent: Wednesday, 6 December, 2006 4:56:28 AM
Subject: Re: Upgrading bsh.jar
I'm fine with upgrading bsh, but there's a bit more to it than you
describe here.
One of the other major bsh using classes in OFBiz is
OfbizBshBsfEngine. It uses the Interpreter.ParsedScript which I
implemented in order to support caching parsed scripts in the OFBiz
central cache. If something like that is implemented in BSH now it
would be fine, but I don't think that's the case because when I sent
this over to contribute it back I don't think Pat understood what we
were trying to do using BSH in OFBiz so he just responded that the
current facilities for doing this is all that we would need (ie using
a single interpreter and wrapping all scripts in methods... that just
won't work for us).
-David
On Dec 5, 2006, at 5:09 PM, Cameron Smith wrote:
Related to the current discussion about JDK1.5 compatibility and
JAR upgrades, I'd like to raise the possibility of upgrading bsh to
the current "stable" version, 2.0b4. This version is compatible
with JDK1.5, and I have used it without hitches on another project
for over a year, without problems.
I would specifically like to upgrade to it, to support the ZK rich
client library (www.potix.com), which requires it.
The main problem with the upgrade is that the API for parsing and
holding onto scripts has changed substantially, which will require
quite a few changes in BshUtil and associated classes. I'd be
happy to do/help with the rewrite but I would first like to know:
a. What are other opinions about this upgrade?
b. Is there any documentation about the philosophy of BshUtil?
c. Are there any regression tests for BshUtil, given that bsh is
used pretty extensively throughout OFBiz?
cameron
Send instant messages to your online friends http://
uk.messenger.yahoo.com
___________________________________________________________
Now you can scan emails quickly with a reading pane. Get the new
Yahoo! Mail. http://uk.docs.yahoo.com/nowyoucan.html