It would be interesting to see the performance impact of that approach.

I overhauled Mini-language recently and in the process I made sure the execution path was as short and straight as possible. That effort produced a 40% performance improvement. I wonder how Java's compile-time linking compares with Groovy's time spent in the reflection API.

I agree it would be wonderful to have screen widgets inherit Mini-language in their <action> elements.

-Adrian

Quoting "David E. Jones" <d...@me.com>:


One of my top annoyances with OFBiz coding is the inconsistency of tools, especially the scripts and expressions within widgets and simple-methods.

A first step would be to make all expressions, conditions, etc use Groovy instead of JUEL and the bits of BeanShell that are still used. Groovy has a lot of convenient stuff that JUEL and BeanShell do not, and when coding I find it takes so much more work to understand and work with the differences and the more cumbersome syntax that I (and I've noticed many others) hacking around this limitation with the ${groovy: ...} expressions, which are fine but then have type conversion issues as this is really a string expansion syntax. The whole FlexibleStringExpander could just call into Groovy for evaluation instead of the various things plus calling into JUEL that it currently does.

A bigger step would be to change the simple-method processing to be just a FTL template that creates a Groovy script from the XML, and then compile/cache/run the Groovy script. This has the added benefits of dramatically simplifying the framework code (no need for a Java class for each XML element), and makes it easy to do inline Groovy scripts in simple-methods.

With either approach it would be nice to make the simple-method and screen/form/etc actions blocks use the same XSD and be processed the same way for better consistency (fewer surprises during dev and testing, more general flexibility too).

As I do development with both Moqui and OFBiz I find this to be one of the biggest differences that makes working with Moqui Framework faster and less frustrating than with OFBiz. There are many differences between the two frameworks, but this one stands out to me as perhaps the most significant when working day-to-day, and should be one of the easier ones to incorporate. Most existing expressions written for JUEL should evaluate fine in Groovy, but some would have to change... that would be the biggest impact of this change on existing code.

-David


On Dec 31, 2013, at 4:55 AM, Adrian Crum <adrian.c...@sandglass-software.com> wrote:

Maybe we can use the start of the new year as an opportunity to consider the future of OFBiz and update our road map:

https://cwiki.apache.org/confluence/display/OFBADMIN/New+Features+Roadmap+-+Living+Document


--
Adrian Crum
Sandglass Software
www.sandglass-software.com





Reply via email to