I'm attaching the Script action from WW1.x... This should probably work
out of the box with WW2, but if someone wants to try it out (and write
some unit tests? :-) ) then we can add it to WW2... 

Jason

> -----Original Message-----
> From: Donnerstag, Juergen [mailto:[EMAIL PROTECTED] 
> Sent: Sunday, February 22, 2004 4:06 PM
> To: [EMAIL PROTECTED]
> Subject: [OS-webwork] scripted Actions
> 
> 
> A couple of weeks ago I asked this forum on how to implement 
> scripted Actions in order to speed up development. I received 
> a couple of ideas which I tried to implement. Unfortunately 
> none of these ideas meet my requirements. Below is a kind of 
> a small analysis.
> 
> Requirement:
> Instead of writing (compiling and deploying) Action classes, 
> I'd like to use scripts based on Jython, Groovy, etc.. 
> 
> Problems:
> How to define the Action using xwork.xml? According to the 
> DTD, attribut "class" must be a class which implements at 
> least the Action interface. It can not be a script. The first 
> solution that comes in mind is to define a class may be 
> com.eds.webwork.action.ScriptedAction and use param-tag to 
> reference the script to be executed.
>    
>     <action name="editProdukt" 
>       class="com.eds.webwork.action.ScriptedAction">
>       <param name="script" type="myScript.gy" />
>       ...
>     </action>
> 
> What is the problem with that? 
> BSF (bean scripting framework) is "standard" for executing 
> scripts and supports multiple scripting languages. 
> Unfortunately the BSF API supports only calling a script. You 
> can not define and read variable used by the script. You can 
> not call methods. It is like a command line and you start a program. 
> 
> I implemented a simple ScriptedAction class extending 
> ActionSupport and calling a script while executing the 
> execute() method. That was easy. But it does not work. 
> Depending on the Interfaces your Action class needs to 
> support, you'll have to wirte more than one ScriptedAction 
> class. One for each combination of Interfaces. And think 
> about the number of parameters you have to forward to the 
> script. Sounds like this is not the ideal solution. 
> 
> Because of some issues with BSF (might be my limited 
> knowledge of bsf, xwork/webwork as well), I tried using 
> Groovy. Besides the script API, Groovy also supports a 
> reflection like api which allows to create Objects, call 
> methods, access and define variables etc.. Using the Groovy 
> reflection like API was fairly straight forward. But I have 
> still the same problem. I need several ScriptedAction classes.
> 
> So far I have not found a feasable solution. What might be a 
> solution (not implemented yet). The features Groovy provides 
> (load a class, call methods, implement and extend interfaces, 
> etc.) are very much like, though not identical, to Java and 
> Javas reflection api. Which made me think about using 
> different "actionLoaders". Maybe something like
> 
>     <action name="editProdukt" 
>       actionloader="com.eds.webwork.classloader.ScriptClassLoader"
>       classname="myScript.gy" >
>       ...
>     </action>
> 
> Default would be the java's "default" functionality and 
> ScriptedClassLoader might be used for Groovy classes. 
> Depending on the loader used, the class attribute will have a 
> different meaning. Issues with this approach: 
> The script language must be very very similar to Java 
> suppporting objects and interfaces and must be able to extend 
> native Java classes. From what I've read, Groovy would be a 
> candidate. The script language meta api must support 
> reflection like interfaces to create object, call methods 
> introspection etc. Xwork must support multiple loaders which 
> not only load the objects but which invokes the differents 
> reflection like APIs as well. Kind of a factory. That sound 
> like its not a small change.
> 
> Sounds to me that using scripted Action with WebWork is not 
> as easy to implement as I originally thought. May be I missed 
> something. I'd happy to discuss may experience in order to 
> find a solution. Or am I the only one believing that scripted 
> action will make development easier and faster and still have 
> the option of using Java actions if performance or any other 
> constraints require it?
> 
> regards
> Juergen
> 
> 
> -------------------------------------------------------
> SF.Net is sponsored by: Speed Start Your Linux Apps Now.
> Build and deploy apps & Web services for Linux with
> a free DVD software kit from IBM. Click Now! 
> http://ads.osdn.com/?ad_id=1356&alloc_id=3438> &op=click
> 
> _______________________________________________
> 
> Opensymphony-webwork mailing list 
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
> 

Attachment: Script.java
Description: Script.java

Reply via email to