Author: mrdon
Date: Sat Dec 3 19:51:00 2005
New Revision: 353807
URL: http://svn.apache.org/viewcvs?rev=353807&view=rev
Log:
* Adding a source code guide
* Adding a goal for generating the readme/release notes automatically from
available website and Maven information
Added:
struts/scripting/trunk/xdocs/README.xsl (with props)
struts/scripting/trunk/xdocs/source-guide.xml (with props)
Modified:
struts/scripting/trunk/maven.xml
struts/scripting/trunk/project.xml
struts/scripting/trunk/xdocs/index.xml
struts/scripting/trunk/xdocs/navigation.xml
Modified: struts/scripting/trunk/maven.xml
URL:
http://svn.apache.org/viewcvs/struts/scripting/trunk/maven.xml?rev=353807&r1=353806&r2=353807&view=diff
==============================================================================
--- struts/scripting/trunk/maven.xml (original)
+++ struts/scripting/trunk/maven.xml Sat Dec 3 19:51:00 2005
@@ -34,4 +34,29 @@
</postGoal>
+ <goal name="readme" description="Generates readme">
+ <!--
+ <ant:java classname="org.mozilla.javascript.tools.shell.Main"
fork="true">
+ <ant:classpath>
+ <ant:path refid="maven.dependency.classpath"/>
+ </ant:classpath>
+ <ant:arg value="${basedir}/src/build/releasenotes.js" />
+ <ant:arg value="${basedir}" />
+ </ant:java>
+ -->
+ <ant:java classname="org.apache.xalan.xslt.Process" fork="true">
+ <ant:classpath>
+ <ant:path refid="maven.dependency.classpath"/>
+ </ant:classpath>
+ <ant:arg value="-IN" />
+ <ant:arg value="${basedir}/project.xml" />
+ <ant:arg value="-OUT" />
+ <ant:arg value="${basedir}/README.txt" />
+ <ant:arg value="-XSL" />
+ <ant:arg value="${basedir}/xdocs/README.xsl" />
+ </ant:java>
+
+ </goal>
+
+
</project>
Modified: struts/scripting/trunk/project.xml
URL:
http://svn.apache.org/viewcvs/struts/scripting/trunk/project.xml?rev=353807&r1=353806&r2=353807&view=diff
==============================================================================
--- struts/scripting/trunk/project.xml (original)
+++ struts/scripting/trunk/project.xml Sat Dec 3 19:51:00 2005
@@ -152,8 +152,22 @@
</properties>
<url>http://www.beanshell.org/</url>
</dependency>
-
- </dependencies>
+
+ <!-- The following two dependencies are only used during the build process
-->
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.1</version>
+ <url>http://jakarta.apache.org/commons/logging/</url>
+ </dependency>
+
+ <dependency>
+ <groupId>xalan</groupId>
+ <artifactId>xalan</artifactId>
+ <version>2.7.0</version>
+ <url>http://jakarta.apache.org/commons/logging/</url>
+ </dependency>
+ </dependencies>
<build>
<nagEmailAddress>[EMAIL PROTECTED]</nagEmailAddress>
Added: struts/scripting/trunk/xdocs/README.xsl
URL:
http://svn.apache.org/viewcvs/struts/scripting/trunk/xdocs/README.xsl?rev=353807&view=auto
==============================================================================
--- struts/scripting/trunk/xdocs/README.xsl (added)
+++ struts/scripting/trunk/xdocs/README.xsl Sat Dec 3 19:51:00 2005
@@ -0,0 +1,150 @@
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:java_clang="http://xml.apache.org/xalan/java/org.apache.commons.lang"
+ xmlns:java_lang="http://xml.apache.org/xalan/java/java.lang">
+
+ <xsl:output method="text" />
+ <xsl:strip-space elements="*" />
+
+ <xsl:variable name="index" select="document('index.xml')" />
+ <xsl:variable name="changes" select="document('changes.xml')" />
+ <xsl:variable name="source" select="document('source-guide.xml')" />
+
+ <xsl:template match="/">
+ <xsl:value-of select="concat('The ',project/name,' (Version
',project/currentVersion,')')" />
+<xsl:text> README File
+
+============
+INTRODUCTION:
+============
+</xsl:text>
+ <xsl:apply-templates select="$index/document/body/section"
mode="nosubs" />
+
+ <xsl:apply-templates select="$changes/document/body/release[1]" />
+
+ <xsl:apply-templates select="$source/document/body/section" />
+
+ <xsl:variable name="end">
+<xsl:text>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 ----------------
+</xsl:text>
+ </xsl:variable>
+
<xsl:text> ---------------------------------------------------------- </xsl:text>
+ <xsl:value-of select="java_clang:WordUtils.wrap($end, 80)" />
+
+ </xsl:template>
+
+ <xsl:template match="section" mode="nosubs">
+ <xsl:apply-templates select="*[name(.) != 'subsection']" />
+ </xsl:template>
+
+ <xsl:template match="section">
+<xsl:text>
+
+========================
+</xsl:text>
+ <xsl:variable name="str" select="java_lang:String.new(string(@name))" />
+ <xsl:variable name="str1" select="java_lang:toUpperCase($str)" />
+ <xsl:value-of select="$str1" />
+<xsl:text>
+========================
+</xsl:text>
+
+ <xsl:apply-templates select="*[name(.) != 'subsection']" />
+
+ <xsl:apply-templates select="subsection" />
+ </xsl:template>
+
+ <xsl:template match="subsection">
+ <xsl:text> </xsl:text>
+ <xsl:variable name="str" select="java_lang:String.new(string(@name))" />
+ <xsl:variable name="str1" select="java_lang:toUpperCase($str)" />
+ <xsl:value-of select="$str1" />
+ <xsl:text> </xsl:text>
+
+ <xsl:apply-templates />
+
+ </xsl:template>
+
+
+ <xsl:template match="release">
+<xsl:text>
+
+========================
+NEW AND REVISED FEATURES:
+========================
+</xsl:text>
+ <xsl:text> New Features: </xsl:text>
+ <xsl:apply-templates select="[EMAIL PROTECTED]'add']" />
+ <xsl:text> Fixes: </xsl:text>
+ <xsl:apply-templates select="[EMAIL PROTECTED]'fix']" />
+ <xsl:text> Miscellaneous: </xsl:text>
+ <xsl:apply-templates select="[EMAIL PROTECTED] != 'fix' and type !=
'add']" />
+ </xsl:template>
+
+ <xsl:template match="action">
+ <xsl:variable name="txt">
+ <xsl:apply-templates />
+ <xsl:value-of select="concat(' (',@dev,') ')" />
+ </xsl:variable>
+ <xsl:text> * </xsl:text>
+ <xsl:value-of select="java_clang:WordUtils.wrap($txt, 77)" />
+ </xsl:template>
+
+ <xsl:template match="[EMAIL PROTECTED] and not(starts-with(@href, '#'))]">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates /><xsl:value-of select="concat(' (',@href,')')" />
+ <xsl:text> </xsl:text>
+ </xsl:template>
+
+ <xsl:template match="li[starts-with(a/@href, '#')]" />
+
+ <xsl:template match="li[not(starts-with(a/@href, '#'))]">
+ <xsl:text> * </xsl:text>
+ <xsl:variable name="txt1">
+ <xsl:apply-templates />
+ </xsl:variable>
+ <xsl:value-of select="java_clang:WordUtils.wrap($txt1, 77)" />
+ <xsl:text> </xsl:text>
+ </xsl:template>
+
+ <xsl:template match="ul[not(starts-with(li/a/@href, '#'))]">
+ <xsl:text> </xsl:text><xsl:apply-templates
/><xsl:text> </xsl:text>
+ </xsl:template>
+
+ <xsl:template match="p">
+ <xsl:text> </xsl:text>
+ <xsl:variable name="txt1">
+ <xsl:apply-templates />
+ </xsl:variable>
+ <xsl:value-of select="java_clang:WordUtils.wrap($txt1, 80)" />
+ <xsl:text> </xsl:text>
+ </xsl:template>
+
+ <xsl:template match="node()|@*" priority="-1">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="li/text()|p/text()|action/text()">
+ <xsl:variable name="str" select="java_lang:String.new(string(.))" />
+ <xsl:variable name="str1" select="java_lang:replaceAll($str, '\s+',' ')"
/>
+ <xsl:choose>
+ <xsl:when test="number(.) > 1 and name(..) = 'p'">
+ <xsl:value-of select="$str1" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="str2"
select="java_clang:StringUtils.trim($str1)" />
+ <xsl:value-of select="$str2" />
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <xsl:template match="text()" priority="-1">
+ <xsl:value-of select="." />
+ </xsl:template>
+
+
+</xsl:stylesheet>
Propchange: struts/scripting/trunk/xdocs/README.xsl
------------------------------------------------------------------------------
svn:executable = *
Modified: struts/scripting/trunk/xdocs/index.xml
URL:
http://svn.apache.org/viewcvs/struts/scripting/trunk/xdocs/index.xml?rev=353807&r1=353806&r2=353807&view=diff
==============================================================================
--- struts/scripting/trunk/xdocs/index.xml (original)
+++ struts/scripting/trunk/xdocs/index.xml Sat Dec 3 19:51:00 2005
@@ -22,7 +22,7 @@
</properties>
<body>
- <section name="Struts BSF Scripting">
+ <section name="Struts Scripting">
<a name="overview"/>
<p>This project allows Struts Actions to be written in the scripting
language of one's choice rather than as Java classes. It uses the
@@ -56,6 +56,7 @@
<a name="documentation"/>
<ul>
<li><a href="user-guide.html">User Guide</a> - Covers installation
and usage</li>
+ <li><a href="source-guide.html">Source Code Guide</a> - Covers the
source layout and how to build Struts Scripting</li>
<li><a href="apidocs/index.html">Javadocs</a> - Includes
<a
href="apidocs/org/apache/struts/scripting/StrutsInfo.html"><code>struts</code></a>
variable and
<a
href="apidocs/org/apache/struts/scripting/BSFManagerFilter.html">Filter</a>
API's.</li>
Modified: struts/scripting/trunk/xdocs/navigation.xml
URL:
http://svn.apache.org/viewcvs/struts/scripting/trunk/xdocs/navigation.xml?rev=353807&r1=353806&r2=353807&view=diff
==============================================================================
--- struts/scripting/trunk/xdocs/navigation.xml (original)
+++ struts/scripting/trunk/xdocs/navigation.xml Sat Dec 3 19:51:00 2005
@@ -7,6 +7,7 @@
<item name="Features" href="index.html#features"/>
<item name="Documentation" href="index.html#documentation"/>
<item name="User Guide" href="user-guide.html"/>
+ <item name="Source Guide" href="source-guide.html"/>
<item name="Download (Sourceforge)"
href="http://sourceforge.net/project/showfiles.php?group_id=49385&package_id=84734"/>
</menu>
Added: struts/scripting/trunk/xdocs/source-guide.xml
URL:
http://svn.apache.org/viewcvs/struts/scripting/trunk/xdocs/source-guide.xml?rev=353807&view=auto
==============================================================================
--- struts/scripting/trunk/xdocs/source-guide.xml (added)
+++ struts/scripting/trunk/xdocs/source-guide.xml Sat Dec 3 19:51:00 2005
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<!--
+Copyright 1999-2005 The Apache Software Foundation
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<!--
+// ======================================================================== 78
+-->
+<document>
+ <properties>
+ <title>Struts Scripting Source Code Guide</title>
+ </properties>
+
+ <body>
+ <section name="Struts Scripting Source Code Guide">
+ <a name="overview"/>
+ <p>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.
+ </p>
+ <p>Again, since the heavy lifting is done by the
+ <a href="http://jakarta.apache.org/bsf">Beans Scripting Framework </a>
+ and the scripting engines themselves, there isn't much code to this
project itself.
+ </p>
+ <ul>
+ <li><a href="#layout">Source code layout</a></li>
+ <li><a href="#build">Build instructions</a></li>
+ </ul>
+ <subsection name="Source code layout">
+ <a name="layout"/>
+ <p>When you unzip the latest release Struts Scripting or check it out
from subversion
+ (more help on subversion at the Struts <a
href="http://struts.apache.org/acquiring.html#Source_Code">source code</a>),
you'll be staring at the following directory structure:
+ </p>
+ <ul>
+ <li><code>/src</code> - All source code can be found here</li>
+ <li><code>/src/java</code> - The source code for the Struts Scripting
framework itself</li>
+ <li><code>/src/struts-example</code> - A modified version of the
Struts 1.2.8 Mailreader example application.
+ This version replaces Java-coded Struts Actions with <a
href="http://www.beanshell.org">Beanshell</a> scripts.</li>
+ </ul>
+ <ul>
+ <li><code>/xdocs</code> - The XML source code for all documentation,
including this guide.</li>
+ <li><code>/lib</code> - This directory is only created if you build
the project using the Ant script.</li>
+ <li><code>/target</code> - Maven puts all compiled files into this
temporary directory.</li>
+ <li><code>/build</code> - Likewise, Apache Ant stores all compiled
files in this temporary folder.</li>
+ <li><code>/dist</code> - The final results of the files Ant creates
will be placed here.</li>
+ </ul>
+ <p>Next, we'll look at how to build both Struts Scripting library and
the included example application.</p>
+ </subsection>
+ <subsection name="Build Instructions">
+ <a name="build"/>
+ <p>Currently, Struts Scripting uses a hybrid build system composed of
both Maven and Ant build scripts. The Maven scripts handle building the
distribution files and provide a consistent build environment to users of other
Struts subprojects. To follow these build instructions, you will need to have
<a href="http://ant.apache.org">Apache Ant</a> and/or <a
href="http://maven.apache.org">Apache Maven</a> installed and their executables
available in your command path.
+ </p>
+ <p>
+ The Apache Ant build script is primarily in charge of building the
Struts Mailreader example application. In fact, when the Maven script creates
a Struts Scripting distribution, it calls the Ant build script to create the
example application.
+ </p>
+ <p>
+ 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.
+ </p>
+ <ul>
+ <li><strong>Build the Struts Scripting jar</strong> - Run
'<code>maven jar:jar</code>' which will create the jar as
<code>/target/struts-scripting-VERSION.jar</code>.</li>
+ <li><strong>Build the Mailreader example</strong> - Run '<code>ant
example</code>' to create <code>/dist/struts-example.war</code>.</li>
+ <li><strong>Build the documentation</strong> - Run '<code>maven
site:generate</code>' to create the Struts Scripting website at
<code>/target/docs</code>.</li>
+ </ul>
+ <p>While this list only covers a few build targets, there are many
other you can discover by typing '<code>ant -p</code>' or '<code>maven
-g</code>' from the Struts Scripting directory.</p>
+ </subsection>
+ </section>
+
+ </body>
+
+</document>
Propchange: struts/scripting/trunk/xdocs/source-guide.xml
------------------------------------------------------------------------------
svn:executable = *
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]