The Struts Scripting (Version 1.0.1) README File

============
INTRODUCTION:
============

This project allows Struts Actions to be written in the scripting language of
one's choice rather than as Java classes. It uses the Bean Scripting Framework
(http://jakarta.apache.org/bsf) to allow scripts to be written in any language
BSF supports like Perl, Python, Ruby, JavaScript, Groovy, and even VBScript.

Struts Scripting allows an application to be developed rapidly with the quick
development cycle (edit file -> refresh browser) that one would expect in a
scripting environment. Furthermore, it enables other non-Java trained members of
a development team, such as web designers who may have a scripting background,
to be more involved, leaving the Java developers to create the reusable services
the Struts actions will interact with. Finally, when used with Java-like
languages such as Groovy (http://groovy.codehaus.org) , applications can quickly
be stood up, then later the Struts action scripts can be migrated to Java for
better performance.
 

========================
NEW AND REVISED FEATURES:
========================

New Features:
 * Changed Mailreader example to use Groovy instead of BeanShell due to possible
licensing issues. (mrdon)

Fixes:
 * Fixed most checkstyle errors. (mrdon)
 * Merged Ant and Maven build into one Maven build. (wsmoak)

Miscellaneous:
 

========================
STRUTS SCRIPTING SOURCE CODE GUIDE
========================

The Struts Scripting project, for the most part, follows Apache Struts build and
source code layout, so if you are familiar with another Struts project, you'll
be at home here. If not, this guide first walks you though what is where and
why. Next, it gives help on how to build common artifacts.

Again, since the heavy lifting is done by the Bean Scripting Framework 
(http://jakarta.apache.org/bsf) and the scripting engines themselves, there
isn't much code to this project itself.

SOURCE CODE LAYOUT

When you unzip the latest release Struts Scripting or check it out from
subversion (more help on subversion at the Struts source code
(http://struts.apache.org/acquiring.html#Source_Code) ), you'll be staring at
the following directory structure:

 * /src- All source code can be found here
 * /src/java- The source code for the Struts Scripting framework itself
 * /src/struts-example- A modified version of the Struts 1.2.8 Mailreader
example application. This version replaces Java-coded Struts Actions with
Groovy (http://groovy.codehaus.org) scripts.


 * /xdocs- The XML source code for all documentation, including this guide.
 * /target- Maven puts all compiled files into this temporary directory.


Next, we'll look at how to build both Struts Scripting library and the included
example application.

BUILD INSTRUCTIONS

Struts Scripting uses Apache Maven (http://maven.apache.org) 1.0 to build its
jar, example application, documentation, and distribution files. Maven 1.0 is
used throughout Struts for building subprojects, providing a consistent build
environment to Struts users. To follow these build instructions, you will need
to have Apache Maven (http://maven.apache.org) 1.0 installed and
itsmavenexecutable available in your command path.

Since there are a bunch of build targets, we will break the build down into
tasks that you might want to accomplish and show the best way to complete them.

 * Build the Struts Scripting jar- Run 'maven jar:jar' which will create the jar
as/target/struts-scripting-VERSION.jar.
 * Build the Mailreader example- Run 'maven war:war' to
create/target/struts-example.war.
 * Build the documentation- Run 'maven site:generate' to create the Struts
Scripting website at/target/docs.


While this list only covers a few build targets, there are many other you can
discover by typing 'maven -g' from the Struts Scripting directory.

----------------------------------------------------------
This and a lot more information can be found in the Struts Scripting
documentation on the website, and if you are reading this after extracting a
fresh release, you'll find the same documentation in the /docs
directory.
---------------- http://struts.apache.org ----------------
