You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2015/06/12 11:18:43 UTC

svn commit: r954576 - in /websites/production/struts/content/docs: bean-validation-plugin.html interceptors.html plugin-developers-guide.html struts-defaultxml.html struts-next.html tutorials.html

Author: lukaszlenart
Date: Fri Jun 12 09:18:43 2015
New Revision: 954576

Log:
Updates production

Added:
    websites/production/struts/content/docs/bean-validation-plugin.html
Modified:
    websites/production/struts/content/docs/interceptors.html
    websites/production/struts/content/docs/plugin-developers-guide.html
    websites/production/struts/content/docs/struts-defaultxml.html
    websites/production/struts/content/docs/struts-next.html
    websites/production/struts/content/docs/tutorials.html

Added: websites/production/struts/content/docs/bean-validation-plugin.html
==============================================================================
--- websites/production/struts/content/docs/bean-validation-plugin.html (added)
+++ websites/production/struts/content/docs/bean-validation-plugin.html Fri Jun 12 09:18:43 2015
@@ -0,0 +1,283 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you 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. 
+-->
+<html>
+<head>
+    <link type="text/css" rel="stylesheet" href="https://struts.apache.org/css/default.css">
+    <style type="text/css">
+        .dp-highlighter {
+            width:95% !important;
+        }
+    </style>
+    <style type="text/css">
+        .footer {
+            background-image:      url('https://cwiki.apache.org/confluence/images/border/border_bottom.gif');
+            background-repeat:     repeat-x;
+            background-position:   left top;
+            padding-top:           4px;
+            color:                 #666;
+        }
+    </style>
+    <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
+    <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
+    <script src='https://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushXml.js' type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script>
+    <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script>
+    <script type="text/javascript">
+        SyntaxHighlighter.defaults['toolbar'] = false;
+        SyntaxHighlighter.all();
+    </script>
+    <script type="text/javascript" language="javascript">
+        var hide = null;
+        var show = null;
+        var children = null;
+
+        function init() {
+            /* Search form initialization */
+            var form = document.forms['search'];
+            if (form != null) {
+                form.elements['domains'].value = location.hostname;
+                form.elements['sitesearch'].value = location.hostname;
+            }
+
+            /* Children initialization */
+            hide = document.getElementById('hide');
+            show = document.getElementById('show');
+            children = document.all != null ?
+                    document.all['children'] :
+                    document.getElementById('children');
+            if (children != null) {
+                children.style.display = 'none';
+                show.style.display = 'inline';
+                hide.style.display = 'none';
+            }
+        }
+
+        function showChildren() {
+            children.style.display = 'block';
+            show.style.display = 'none';
+            hide.style.display = 'inline';
+        }
+
+        function hideChildren() {
+            children.style.display = 'none';
+            show.style.display = 'inline';
+            hide.style.display = 'none';
+        }
+    </script>
+    <title>Bean Validation Plugin</title>
+</head>
+<body onload="init()">
+<table border="0" cellpadding="2" cellspacing="0" width="100%">
+    <tr class="topBar">
+        <td align="left" valign="middle" class="topBarDiv" align="left" nowrap>
+            &nbsp;<a href="home.html">Home</a>&nbsp;&gt;&nbsp;<a href="guides.html">Guides</a>&nbsp;&gt;&nbsp;<a href="plugin-developers-guide.html">Plugin Developers Guide</a>&nbsp;&gt;&nbsp;<a href="bean-validation-plugin.html">Bean Validation Plugin</a>
+        </td>
+        <td align="right" valign="middle" nowrap>
+            <form name="search" action="https://www.google.com/search" method="get">
+                <input type="hidden" name="ie" value="UTF-8" />
+                <input type="hidden" name="oe" value="UTF-8" />
+                <input type="hidden" name="domains" value="" />
+                <input type="hidden" name="sitesearch" value="" />
+                <input type="text" name="q" maxlength="255" value="" />
+                <input type="submit" name="btnG" value="Google Search" />
+            </form>
+        </td>
+    </tr>
+</table>
+
+<div id="PageContent">
+    <div class="pageheader" style="padding: 6px 0px 0px 0px;">
+        <!-- We'll enable this once we figure out how to access (and save) the logo resource -->
+        <!--img src="/wiki/images/confluence_logo.gif" style="float: left; margin: 4px 4px 4px 10px;" border="0"-->
+        <div style="margin: 0px 10px 0px 10px" class="smalltext">Apache Struts 2 Documentation</div>
+        <div style="margin: 0px 10px 8px 10px"  class="pagetitle">Bean Validation Plugin</div>
+
+        <div class="greynavbar" align="right" style="padding: 2px 10px; margin: 0px;">
+            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=57904184">
+                <img src="https://cwiki.apache.org/confluence/images/icons/notep_16.gif"
+                     height="16" width="16" border="0" align="absmiddle" title="Edit Page"></a>
+            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=57904184">Edit Page</a>
+            &nbsp;
+            <a href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW">
+                <img src="https://cwiki.apache.org/confluence/images/icons/browse_space.gif"
+                     height="16" width="16" border="0" align="absmiddle" title="Browse Space"></a>
+            <a href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW">Browse Space</a>
+            &nbsp;
+            <a href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=57904184">
+                <img src="https://cwiki.apache.org/confluence/images/icons/add_page_16.gif"
+                     height="16" width="16" border="0" align="absmiddle" title="Add Page"></a>
+            <a href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=57904184">Add Page</a>
+            &nbsp;
+            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=57904184">
+                <img src="https://cwiki.apache.org/confluence/images/icons/add_blogentry_16.gif"
+                     height="16" width="16" border="0" align="absmiddle" title="Add News"></a>
+            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=57904184">Add News</a>
+        </div>
+    </div>
+
+    <div class="pagecontent">
+        <div class="wiki-content">
+            <div id="ConfluenceContent"><h1 id="BeanValidationPlugin-Setup">Setup</h1><p>In order to use the Bean Validation plugin, you first need to add the JAR file to the&#160;<code>WEB-INF/lib</code>&#160;directory of your application or include the dependency in your project's Maven POM file.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>pom.xml</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
+    &lt;groupId&gt;org.apache.struts&lt;/groupId&gt;
+    &lt;artifactId&gt;struts2-bean-validation-plugin&lt;/artifactId&gt;
+    &lt;version&gt;X.X.X&lt;/version&gt;
+&lt;/dependency&gt;
+]]></script>
+</div></div><p>Where X.X.X is the current version of Struts 2. Please remember that the Bean Validation&#160;Plugin is available from version 2.5.</p><h1 id="BeanValidationPlugin-Configuration">Configuration</h1><p>&#160;</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>struts.xml</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[    &lt;constant name=&quot;struts.beanValidation.providerClass&quot; value=&quot;org.hibernate.validator.HibernateValidator&quot;/&gt;
+    &lt;constant name=&quot;struts.beanValidation.ignoreXMLConfiguration&quot; value=&quot;false&quot;/&gt;
+    &lt;constant name=&quot;struts.beanValidation.convertMessageToUtf&quot; value=&quot;false&quot;/&gt;
+    &lt;constant name=&quot;struts.beanValidation.convertMessageFromEncoding&quot; value=&quot;ISO-8859-1&quot;/&gt;]]></script>
+</div></div><h1 id="BeanValidationPlugin-BeanValidationExample">Bean Validation Example</h1><p>&#160;</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>com.example.actions.BeanValidationAction</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[package com.example.actions;
+
+
+import com.opensymphony.xwork2.ActionSupport;
+import org.apache.struts.beanvalidation.constraints.FieldMatch;
+import org.apache.struts2.convention.annotation.Action;
+import org.apache.struts2.convention.annotation.Namespace;
+import org.apache.struts2.convention.annotation.ParentPackage;
+import org.apache.struts2.convention.annotation.Result;
+import org.apache.struts2.interceptor.validation.SkipValidation;
+import org.hibernate.validator.constraints.Email;
+import org.hibernate.validator.constraints.NotBlank;
+import org.hibernate.validator.constraints.ScriptAssert;
+import org.hibernate.validator.constraints.URL;
+import javax.validation.constraints.*;
+import java.util.Date;
+
+
+@Namespace(&quot;/bean-validation&quot;)
+@ParentPackage(&quot;bean-validation&quot;)
+@Action(results = {
+        @Result(name = &quot;input&quot;, location = &quot;bean-validation.jsp&quot;),
+        @Result(name = &quot;success&quot;, location = &quot;/WEB-INF/validation/successFieldValidatorsExample.jsp&quot;)
+})
+@FieldMatch(first = &quot;fieldExpressionValidatorField&quot;, second = &quot;requiredValidatorField&quot;, message = &quot;requiredValidatorField and fieldExpressionValidatorField are not matching&quot;)
+@ScriptAssert(lang = &quot;javascript&quot;, script = &quot;_this.dateValidatorField != null &amp;&amp; _this.dateValidatorField.before(new java.util.Date())&quot;, message = &quot;Date need to before now&quot;)
+public class BeanValidationExampleAction extends ActionSupport {
+    @NotNull
+    private String requiredValidatorField = null;
+
+    @NotBlank
+    private String requiredStringValidatorField = null;
+
+    @NotNull
+    @Min(1)
+    @Max(10)
+    private Integer integerValidatorField = null;
+
+    @NotNull
+    private Date dateValidatorField = null;
+
+    @NotNull
+    @Size(min = 4, max = 64)
+    @Email
+
+    private String emailValidatorField = null;
+
+    @NotNull
+    @Size(min = 4, max = 64)
+    @URL
+    private String urlValidatorField = null;
+
+    @NotNull
+    @Size(min = 2, max = 4)
+    private String stringLengthValidatorField = null;
+
+    @Pattern(regexp = &quot;[^&lt;&gt;]+&quot;)
+    private String regexValidatorField = null;
+
+    private String fieldExpressionValidatorField = null;
+
+
+ public Date getDateValidatorField() {
+
+        return dateValidatorField;
+    }
+    public void setDateValidatorField(Date dateValidatorField) {
+        this.dateValidatorField = dateValidatorField;
+    }
+    public String getEmailValidatorField() {
+        return emailValidatorField;
+    }
+    public void setEmailValidatorField(String emailValidatorField) {
+        this.emailValidatorField = emailValidatorField;
+    }
+    public Integer getIntegerValidatorField() {
+        return integerValidatorField;
+    }
+    public void setIntegerValidatorField(Integer integerValidatorField) {
+        this.integerValidatorField = integerValidatorField;
+    }
+    public String getRegexValidatorField() {
+        return regexValidatorField;
+    }
+    public void setRegexValidatorField(String regexValidatorField) {
+        this.regexValidatorField = regexValidatorField;
+    }
+    public String getRequiredStringValidatorField() {
+        return requiredStringValidatorField;
+    }
+    public void setRequiredStringValidatorField(String requiredStringValidatorField) {
+        this.requiredStringValidatorField = requiredStringValidatorField;
+    }
+    public String getRequiredValidatorField() {
+        return requiredValidatorField;
+    }
+    public void setRequiredValidatorField(String requiredValidatorField) {
+        this.requiredValidatorField = requiredValidatorField;
+    }
+    public String getStringLengthValidatorField() {
+        return stringLengthValidatorField;
+    }
+    public void setStringLengthValidatorField(String stringLengthValidatorField) {
+        this.stringLengthValidatorField = stringLengthValidatorField;
+    }
+    public String getFieldExpressionValidatorField() {
+        return fieldExpressionValidatorField;
+    }
+    public void setFieldExpressionValidatorField(
+            String fieldExpressionValidatorField) {
+        this.fieldExpressionValidatorField = fieldExpressionValidatorField;
+    }
+    public String getUrlValidatorField() {
+        return urlValidatorField;
+    }
+    public void setUrlValidatorField(String urlValidatorField) {
+        this.urlValidatorField = urlValidatorField;
+    }
+}]]></script>
+</div></div></div>
+        </div>
+
+        
+    </div>
+</div>
+<div class="footer">
+    Generated by CXF SiteExporter
+</div>
+</body>
+</html>

Modified: websites/production/struts/content/docs/interceptors.html
==============================================================================
--- websites/production/struts/content/docs/interceptors.html (original)
+++ websites/production/struts/content/docs/interceptors.html Fri Jun 12 09:18:43 2015
@@ -145,11 +145,11 @@ under the License.
                     </div>
     </div>
 <p>Many Actions share common concerns. Some Actions need input validated. Other Actions may need a file upload to be pre-processed. Another Action might need protection from a double submit. Many Actions need drop-down lists and other controls pre-populated before the page displays.</p><p>The framework makes it easy to share solutions to these concerns using an "Interceptor" strategy. When you request a resource that maps to an "action", the framework invokes the Action object. But, before the Action is executed, the invocation can be intercepted by another object. After the Action executes, the invocation could be intercepted again. Unsurprisingly, we call these objects "Interceptors."</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1428039145673 {padding: 0px;}
-div.rbtoc1428039145673 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1428039145673 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1434095212890 {padding: 0px;}
+div.rbtoc1434095212890 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1434095212890 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1428039145673">
+/*]]>*/</style></p><div class="toc-macro rbtoc1434095212890">
 <ul class="toc-indentation"><li><a shape="rect" href="#Interceptors-UnderstandingInterceptors">Understanding Interceptors</a></li><li><a shape="rect" href="#Interceptors-ConfiguringInterceptors">Configuring Interceptors</a></li><li><a shape="rect" href="#Interceptors-StackingInterceptors">Stacking Interceptors</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Interceptors-TheDefaultConfiguration">The Default Configuration</a></li></ul>
 </li><li><a shape="rect" href="#Interceptors-FrameworkInterceptors">Framework Interceptors</a>
@@ -422,9 +422,7 @@ div.rbtoc1428039145673 li {margin-left:
                 &lt;interceptor-ref name=&quot;datetime&quot;/&gt;
                 &lt;interceptor-ref name=&quot;multiselect&quot;/&gt;
                 &lt;interceptor-ref name=&quot;actionMappingParams&quot;/&gt;
-                &lt;interceptor-ref name=&quot;params&quot;&gt;
-                    &lt;param name=&quot;excludeParams&quot;&gt;^action:.*,^method:.*&lt;/param&gt;
-                &lt;/interceptor-ref&gt;
+                &lt;interceptor-ref name=&quot;params&quot;/&gt;
                 &lt;interceptor-ref name=&quot;conversionError&quot;/&gt;
                 &lt;interceptor-ref name=&quot;deprecation&quot;/&gt;
             &lt;/interceptor-stack&gt;
@@ -479,9 +477,7 @@ div.rbtoc1428039145673 li {margin-left:
                 &lt;interceptor-ref name=&quot;checkbox&quot;/&gt;
                 &lt;interceptor-ref name=&quot;datetime&quot;/&gt;
                 &lt;interceptor-ref name=&quot;multiselect&quot;/&gt;
-                &lt;interceptor-ref name=&quot;params&quot;&gt;
-                    &lt;param name=&quot;excludeParams&quot;&gt;^action:.*,^method:.*&lt;/param&gt;
-                &lt;/interceptor-ref&gt;
+                &lt;interceptor-ref name=&quot;params&quot;/&gt;
                 &lt;interceptor-ref name=&quot;servletConfig&quot;/&gt;
                 &lt;interceptor-ref name=&quot;prepare&quot;/&gt;
                 &lt;interceptor-ref name=&quot;chain&quot;/&gt;
@@ -489,9 +485,7 @@ div.rbtoc1428039145673 li {margin-left:
                 &lt;interceptor-ref name=&quot;fileUpload&quot;/&gt;
                 &lt;interceptor-ref name=&quot;staticParams&quot;/&gt;
                 &lt;interceptor-ref name=&quot;actionMappingParams&quot;/&gt;
-                &lt;interceptor-ref name=&quot;params&quot;&gt;
-                    &lt;param name=&quot;excludeParams&quot;&gt;^action:.*,^method:.*&lt;/param&gt;
-                &lt;/interceptor-ref&gt;
+                &lt;interceptor-ref name=&quot;params&quot;/&gt;
                 &lt;interceptor-ref name=&quot;conversionError&quot;/&gt;
                 &lt;interceptor-ref name=&quot;validation&quot;&gt;
                     &lt;param name=&quot;excludeMethods&quot;&gt;input,back,cancel,browse&lt;/param&gt;
@@ -527,9 +521,7 @@ div.rbtoc1428039145673 li {margin-left:
                 &lt;interceptor-ref name=&quot;multiselect&quot;/&gt;
                 &lt;interceptor-ref name=&quot;staticParams&quot;/&gt;
                 &lt;interceptor-ref name=&quot;actionMappingParams&quot;/&gt;
-                &lt;interceptor-ref name=&quot;params&quot;&gt;
-                    &lt;param name=&quot;excludeParams&quot;&gt;^action:.*,^method:.*&lt;/param&gt;
-                &lt;/interceptor-ref&gt;
+                &lt;interceptor-ref name=&quot;params&quot;/&gt;
                 &lt;interceptor-ref name=&quot;conversionError&quot;/&gt;
                 &lt;interceptor-ref name=&quot;validation&quot;&gt;
                     &lt;param name=&quot;excludeMethods&quot;&gt;input,back,cancel,browse&lt;/param&gt;

Modified: websites/production/struts/content/docs/plugin-developers-guide.html
==============================================================================
--- websites/production/struts/content/docs/plugin-developers-guide.html (original)
+++ websites/production/struts/content/docs/plugin-developers-guide.html Fri Jun 12 09:18:43 2015
@@ -125,7 +125,7 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent">Apache Struts 2 provides a simple <a shape="rect" href="plugins.html">plugin architecture</a> so that developers can extend the framework just by adding a JAR to the application's classpath. Since plugins are contained in a JAR, they are easy to share with others. Several plugins are bundled with the framework, and others are available from third-party sources.<ul><li><a shape="rect" href="plugins.html">Plugins</a></li><li><a shape="rect" href="extending-an-application-with-custom-plugins.html">Extending an Application with Custom Plugins</a></li></ul><h3 id="PluginDevelopersGuide-BundledPlugins">Bundled Plugins</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="cdi-plugin.html">CDI (JSR 299) Plugin</a> (2.3.1+)</li><li><a shape="rect" href="codebehind-plugin.html">Codebehind Plugin</a> (<strong>deprecated</strong>)</li><li><a shape="rect" href="c
 onfig-browser-plugin.html">Config Browser Plugin</a></li><li><a shape="rect" href="convention-plugin.html">Convention Plugin</a> (2.1.3+)</li><li><a shape="rect" href="dwr-plugin.html">DWR Plugin</a></li><li><a shape="rect" href="embedded-jsp-plugin.html">Embedded JSP Plugin</a> (2.1.7+)</li><li><a shape="rect" href="jasperreports-plugin.html">JasperReports Plugin</a></li><li><a shape="rect" href="java-8-support-plugin.html">Java 8 Support Plugin</a> (2.3.21+)</li><li><a shape="rect" href="javatemplates-plugin.html">Javatemplates Plugin</a> (2.1.3+)</li><li><a shape="rect" href="jfreechart-plugin.html">JFreeChart Plugin</a></li><li><a shape="rect" href="jsf-plugin.html">JSF Plugin</a></li><li><a shape="rect" href="json-plugin.html">JSON Plugin</a> (2.1.7+)</li><li><a shape="rect" href="junit-plugin.html">JUnit Plugin</a></li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="oval-plugin.html">OVal Plugin</a> (2.1.7+)</li><li><a shape="rect" href
 ="osgi-plugin.html">OSGi Plugin</a> (2.1.7+)</li><li><a shape="rect" href="plexus-plugin.html">Plexus Plugin</a></li><li><a shape="rect" href="portlet-plugin.html">Portlet Plugin</a></li><li><a shape="rect" href="portlet-tiles-plugin.html">Portlet Tiles Plugin</a> (2.3.5+)</li><li><a shape="rect" href="rest-plugin.html">REST Plugin</a> (2.1.1+)</li><li><a shape="rect" href="sitegraph-plugin.html">SiteGraph Plugin</a></li><li><a shape="rect" href="sitemesh-plugin.html">SiteMesh Plugin</a></li><li><a shape="rect" href="spring-plugin.html">Spring Plugin</a></li><li><a shape="rect" href="struts-1-plugin.html">Struts 1 Plugin</a></li><li><a shape="rect" href="testng-plugin.html">TestNG Plugin</a></li><li><a shape="rect" href="tiles-2-plugin.html">Tiles 2 Plugin</a></li><li><a shape="rect" href="tiles-3-plugin.html">Tiles 3 Plugin</a></li></ul></td></tr></tbody></table></div><p><img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc
 8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/check.png" data-emoticon-name="tick" alt="(tick)"> For a complete list of bundled and third-party plugins, visit the <a shape="rect" class="external-link" href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin Registry.</a>.</p><h2 id="PluginDevelopersGuide-Next:">Next: <a shape="rect" href="architects-guide.html">Architects Guide</a></h2></div>
+            <div id="ConfluenceContent">Apache Struts 2 provides a simple <a shape="rect" href="plugins.html">plugin architecture</a> so that developers can extend the framework just by adding a JAR to the application's classpath. Since plugins are contained in a JAR, they are easy to share with others. Several plugins are bundled with the framework, and others are available from third-party sources.<ul><li><a shape="rect" href="plugins.html">Plugins</a></li><li><a shape="rect" href="extending-an-application-with-custom-plugins.html">Extending an Application with Custom Plugins</a></li></ul><h3 id="PluginDevelopersGuide-BundledPlugins">Bundled Plugins</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="bean-validation-plugin.html">Bean Validation Plugin</a> (2.5+)</li><li><a shape="rect" href="cdi-plugin.html">CDI (JSR 299) Plugin</a> (2.3.1+)</li><li><a shape="rect" href="codebehind-plu
 gin.html">Codebehind Plugin</a> (<strong>&lt; 2.5</strong>)</li><li><a shape="rect" href="config-browser-plugin.html">Config Browser Plugin</a></li><li><a shape="rect" href="convention-plugin.html">Convention Plugin</a> (2.1.3+)</li><li><a shape="rect" href="dwr-plugin.html">DWR Plugin</a></li><li><a shape="rect" href="embedded-jsp-plugin.html">Embedded JSP Plugin</a> (2.1.7+)</li><li><a shape="rect" href="jasperreports-plugin.html">JasperReports Plugin</a></li><li><a shape="rect" href="java-8-support-plugin.html">Java 8 Support Plugin</a> (2.3.21+)</li><li><a shape="rect" href="javatemplates-plugin.html">Javatemplates Plugin</a> (2.1.3+)</li><li><a shape="rect" href="jfreechart-plugin.html">JFreeChart Plugin</a></li><li><a shape="rect" href="jsf-plugin.html">JSF Plugin</a> <span>(</span><strong>&lt; 2.5</strong><span>)</span></li><li><a shape="rect" href="json-plugin.html">JSON Plugin</a> (2.1.7+)</li><li><a shape="rect" href="junit-plugin.html">JUnit Plugin</a></li></ul></td><td c
 olspan="1" rowspan="1" class="confluenceTd"><ul><li><a shape="rect" href="oval-plugin.html">OVal Plugin</a> (2.1.7+)</li><li><a shape="rect" href="osgi-plugin.html">OSGi Plugin</a> (2.1.7+)</li><li><a shape="rect" href="plexus-plugin.html">Plexus Plugin</a></li><li><a shape="rect" href="portlet-plugin.html">Portlet Plugin</a></li><li><a shape="rect" href="portlet-tiles-plugin.html">Portlet Tiles Plugin</a> (2.3.5+)</li><li><a shape="rect" href="rest-plugin.html">REST Plugin</a> (2.1.1+)</li><li><a shape="rect" href="sitegraph-plugin.html">SiteGraph Plugin</a></li><li><a shape="rect" href="sitemesh-plugin.html">SiteMesh Plugin</a></li><li><a shape="rect" href="spring-plugin.html">Spring Plugin</a></li><li><a shape="rect" href="struts-1-plugin.html">Struts 1 Plugin</a> <span>(</span><strong>&lt; 2.5</strong><span>)</span></li><li><a shape="rect" href="testng-plugin.html">TestNG Plugin</a></li><li><a shape="rect" href="tiles-2-plugin.html">Tiles 2 Plugin</a></li><li><a shape="rect" hre
 f="tiles-3-plugin.html">Tiles 3 Plugin</a></li></ul></td></tr></tbody></table></div><p><img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/check.png" data-emoticon-name="tick" alt="(tick)"> For a complete list of bundled and third-party plugins, visit the <a shape="rect" class="external-link" href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin Registry.</a>.</p><h2 id="PluginDevelopersGuide-Next:">Next: <a shape="rect" href="architects-guide.html">Architects Guide</a></h2></div>
         </div>
 
                     <div class="tabletitle">
@@ -140,6 +140,9 @@ under the License.
                     <span class="smalltext">(Apache Struts 2 Documentation)</span>
                     <br>
                                     $page.link($child)
+                    <span class="smalltext">(Apache Struts 2 Documentation)</span>
+                    <br>
+                                    $page.link($child)
                     <span class="smalltext">(Apache Struts 2 Documentation)</span>
                     <br>
                                     $page.link($child)

Modified: websites/production/struts/content/docs/struts-defaultxml.html
==============================================================================
--- websites/production/struts/content/docs/struts-defaultxml.html (original)
+++ websites/production/struts/content/docs/struts-defaultxml.html Fri Jun 12 09:18:43 2015
@@ -138,19 +138,13 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent">
-<p>A base configuration file named <code>struts-default.xml</code> is included in the <code>struts2.jar</code> file. This file is automatically included into <code>struts.xml</code> file to  provide the standard configuration settings without having to copy them. </p>
-
-    <div class="aui-message success shadowed information-macro">
+            <div id="ConfluenceContent"><p>A base configuration file named <code>struts-default.xml</code> is included in the <code>struts2.jar</code> file. This file is automatically included into <code>struts.xml</code> file to provide the standard configuration settings without having to copy them.</p>    <div class="aui-message success shadowed information-macro">
                             <span class="aui-icon icon-success">Icon</span>
                 <div class="message-content">
                             <p>To exclude the <code>struts-default.xml</code> or to provide your own version, see the <code>struts.configuration.files</code> setting in <a shape="rect" href="strutsproperties.html">struts.properties</a>.</p>
                     </div>
     </div>
-
-
-<p>The contents of struts-default.xml are here:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<p>The contents of struts-default.xml are here:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
 &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
 &lt;!--
@@ -380,9 +374,7 @@ under the License.
                 &lt;interceptor-ref name=&quot;datetime&quot;/&gt;
                 &lt;interceptor-ref name=&quot;multiselect&quot;/&gt;
                 &lt;interceptor-ref name=&quot;actionMappingParams&quot;/&gt;
-                &lt;interceptor-ref name=&quot;params&quot;&gt;
-                    &lt;param name=&quot;excludeParams&quot;&gt;^action:.*,^method:.*&lt;/param&gt;
-                &lt;/interceptor-ref&gt;
+                &lt;interceptor-ref name=&quot;params&quot;/&gt;
                 &lt;interceptor-ref name=&quot;conversionError&quot;/&gt;
                 &lt;interceptor-ref name=&quot;deprecation&quot;/&gt;
             &lt;/interceptor-stack&gt;
@@ -437,9 +429,7 @@ under the License.
                 &lt;interceptor-ref name=&quot;checkbox&quot;/&gt;
                 &lt;interceptor-ref name=&quot;datetime&quot;/&gt;
                 &lt;interceptor-ref name=&quot;multiselect&quot;/&gt;
-                &lt;interceptor-ref name=&quot;params&quot;&gt;
-                    &lt;param name=&quot;excludeParams&quot;&gt;^action:.*,^method:.*&lt;/param&gt;
-                &lt;/interceptor-ref&gt;
+                &lt;interceptor-ref name=&quot;params&quot;/&gt;
                 &lt;interceptor-ref name=&quot;servletConfig&quot;/&gt;
                 &lt;interceptor-ref name=&quot;prepare&quot;/&gt;
                 &lt;interceptor-ref name=&quot;chain&quot;/&gt;
@@ -447,9 +437,7 @@ under the License.
                 &lt;interceptor-ref name=&quot;fileUpload&quot;/&gt;
                 &lt;interceptor-ref name=&quot;staticParams&quot;/&gt;
                 &lt;interceptor-ref name=&quot;actionMappingParams&quot;/&gt;
-                &lt;interceptor-ref name=&quot;params&quot;&gt;
-                    &lt;param name=&quot;excludeParams&quot;&gt;^action:.*,^method:.*&lt;/param&gt;
-                &lt;/interceptor-ref&gt;
+                &lt;interceptor-ref name=&quot;params&quot;/&gt;
                 &lt;interceptor-ref name=&quot;conversionError&quot;/&gt;
                 &lt;interceptor-ref name=&quot;validation&quot;&gt;
                     &lt;param name=&quot;excludeMethods&quot;&gt;input,back,cancel,browse&lt;/param&gt;
@@ -485,9 +473,7 @@ under the License.
                 &lt;interceptor-ref name=&quot;multiselect&quot;/&gt;
                 &lt;interceptor-ref name=&quot;staticParams&quot;/&gt;
                 &lt;interceptor-ref name=&quot;actionMappingParams&quot;/&gt;
-                &lt;interceptor-ref name=&quot;params&quot;&gt;
-                    &lt;param name=&quot;excludeParams&quot;&gt;^action:.*,^method:.*&lt;/param&gt;
-                &lt;/interceptor-ref&gt;
+                &lt;interceptor-ref name=&quot;params&quot;/&gt;
                 &lt;interceptor-ref name=&quot;conversionError&quot;/&gt;
                 &lt;interceptor-ref name=&quot;validation&quot;&gt;
                     &lt;param name=&quot;excludeMethods&quot;&gt;input,back,cancel,browse&lt;/param&gt;
@@ -527,8 +513,7 @@ under the License.
 
 &lt;/struts&gt;
 ]]></script>
-</div></div>
-<p>This file defines all of the default bundled results and interceptors and many interceptor stacks which you can use either as-is or as a basis for your own application-specific interceptor stacks. <strong>Notice the name of the package is "struts-default"</strong>.</p></div>
+</div></div><p>This file defines all of the default bundled results and interceptors and many interceptor stacks which you can use either as-is or as a basis for your own application-specific interceptor stacks. <strong>Notice the name of the package is "struts-default"</strong>.</p></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/struts-next.html
==============================================================================
--- websites/production/struts/content/docs/struts-next.html (original)
+++ websites/production/struts/content/docs/struts-next.html Fri Jun 12 09:18:43 2015
@@ -125,28 +125,32 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><h3 id="StrutsNext-/*&lt;![CDATA[*/div.rbtoc1422602467560{padding:0px;}div.rbtoc1422602467560ul{list-style:disc;margin-left:0px;}div.rbtoc1422602467560li{margin-left:0px;padding-left:0px;}/*]]&gt;*/Whatshouldbeimproved/changedDevelopmentplanofStruts3M1(akaStruts2.5)M2("><style type="text/css">/*<![CDATA[*/
-div.rbtoc1422602467560 {padding: 0px;}
-div.rbtoc1422602467560 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1422602467560 li {margin-left: 0px;padding-left: 0px;}
+            <div id="ConfluenceContent"><h3 id="StrutsNext-/*&lt;![CDATA[*/div.rbtoc1434094868290{padding:0px;}div.rbtoc1434094868290ul{list-style:disc;margin-left:0px;}div.rbtoc1434094868290li{margin-left:0px;padding-left:0px;}/*]]&gt;*/Whatshouldbeimproved/changedDevelopmentplanofStruts3M1(akaStruts2.5)M2("><style type="text/css">/*<![CDATA[*/
+div.rbtoc1434094868290 {padding: 0px;}
+div.rbtoc1434094868290 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1434094868290 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></h3><div class="toc-macro rbtoc1422602467560">
+/*]]>*/</style></h3><div class="toc-macro rbtoc1434094868290">
 <ul class="toc-indentation"><li><a shape="rect" href="#StrutsNext-Whatshouldbeimproved/changed">What should be improved / changed</a></li><li><a shape="rect" href="#StrutsNext-DevelopmentplanofStruts3">Development plan of Struts 3</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#StrutsNext-M1(akaStruts2.5)">M1 (aka Struts 2.5)</a></li><li><a shape="rect" href="#StrutsNext-M2(alphaStruts3)">M2 (alpha Struts 3)</a></li><li><a shape="rect" href="#StrutsNext-M3(alphaStruts3)">M3 (alpha Struts 3)</a></li><li><a shape="rect" href="#StrutsNext-M4(beta1Struts3)">M4 (beta 1 Struts 3)</a></li></ul>
 </li><li><a shape="rect" href="#StrutsNext-Cleanupwebsite">Cleanup website</a></li><li><a shape="rect" href="#StrutsNext-Undiscussedideas">Undiscussed ideas</a></li></ul>
-</div><h1 id="StrutsNext-Whatshouldbeimproved/changed">What should be improved / changed</h1><p><a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW/fixforversion/12319158">Issues</a> connected with the new version <br clear="none"> <a shape="rect" class="external-link" href="https://builds.apache.org/view/S-Z/view/Struts/job/Struts3/">Build</a> of the latest version</p><ul><li>Use Git instead Svn&#160;<img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/check.png" data-emoticon-name="tick" alt="(tick)"><ul><li>Use Git flow to manage the repo and development process<ul><li><a shape="rect" class="external-link" href="http://nvie.com/posts/a-successful-git-branching-model/" rel="nofollow">http://nvie.com/posts/a-successful-git-branching-model/</a></li><li><a shape="rect" class="external-link" href="https://github.com/nvie/gitflow" rel="nof
 ollow">https://github.com/nvie/gitflow</a></li><li><a shape="rect" class="external-link" href="http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/" rel="nofollow">http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/</a></li></ul></li></ul></li><li>Switch to Java 6</li><li>Update "internal" injection to use current Guice version<ul><li>Consider usage of <a shape="rect" class="external-link" href="http://onami.apache.org/">http://onami.apache.org/</a></li></ul></li><li>Refactorings for further extensibility based on questions on the list, on CodeRanch, and Stack Overflow<ul><li>JR plugin refactoring. Allow compiled reports as classpath resources.</li></ul></li><li>Refactor conversion of primitives (and wrappers) in XWork</li><li>Switch to <a shape="rect" class="external-link" href="http://commons.apache.org/ognl">OGNL 4.0</a>.</li><li>Consider renaming packages to org.apache.struts3</li><li>Remove deprecated Plugins<ul><li>Codebehind</li><li>Dojo</li><li>Struts1 ?
 </li></ul></li><li>Normalize property name camel-casing (foo.bar.BazPlugh to foo.bar.bazPlugh)</li><li>Check possible usage of Tiles Auto Tag (<a shape="rect" class="external-link" href="http://tiles.apache.org/tiles-autotag/">http://tiles.apache.org/tiles-autotag/</a>) instead of Struts Annotations</li><li>Convention plugin should be the "normal" way of using Struts</li><li>Plugin to map websocket requests to Struts actions</li><li>API to customize property finding via arbitrary request parameter names ("a" -&gt; getFoo())<ul><li>Happily breaks apart the 1:1 relationship between property paths and HTTP parameter names</li><li>Will be useful for obfuscation (doesn't expose java model)</li><li>Can be used to shorten request payload (smaller names)</li><li>Can be taken advantage by HDIV</li></ul></li><li>Themes cleanup<ul><li>Support HTML 5 features and Single Page Application development paradigm</li><li>Must output valid markup</li><li>Should be compatible with bootstrap, bootstrap 
 validator, and other major UI platforms</li></ul></li></ul><h1 id="StrutsNext-DevelopmentplanofStruts3">Development plan of Struts 3</h1><h2 id="StrutsNext-M1(akaStruts2.5)">M1 (aka Struts 2.5)</h2><ul class="inline-task-list" data-inline-tasks-content-id="27832363"><li class="checked" data-inline-task-id="3">Request Git repo from INFRA</li><li class="checked" data-inline-task-id="4"><span style="line-height: 1.4285715;">Import project</span></li></ul>
+</div><h1 id="StrutsNext-Whatshouldbeimproved/changed">What should be improved / changed</h1><p><a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/WW/fixforversion/12319158">Issues</a> connected with the new version <br clear="none"> <a shape="rect" class="external-link" href="https://builds.apache.org/view/S-Z/view/Struts/job/Struts3/">Build</a> of the latest version</p><ul><li>Use Git instead Svn&#160;<img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/check.png" data-emoticon-name="tick" alt="(tick)"></li><li>Switch to Java 7&#160;<img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/check.png" data-emoticon-name="tick" alt="(tick)"></li><li>Update "internal" injection to use current Guice version<ul><li>Consider usage of
  <a shape="rect" class="external-link" href="http://onami.apache.org/">http://onami.apache.org/</a></li></ul></li><li>Refactorings for further extensibility based on questions on the list, on CodeRanch, and Stack Overflow<ul><li>JR plugin refactoring. Allow compiled reports as classpath resources.</li></ul></li><li>Refactor conversion of primitives (and wrappers) in XWork</li><li>Switch to <a shape="rect" class="external-link" href="http://commons.apache.org/ognl">OGNL 4.0</a>.</li><li>Consider renaming packages to org.apache.struts3</li><li>Remove deprecated Plugins&#160;<img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/check.png" data-emoticon-name="tick" alt="(tick)"><ul><li>Codebehind</li><li>Dojo</li><li>Struts1 ?</li></ul></li><li>Normalize property name camel-casing (foo.bar.BazPlugh to foo.bar.bazPlugh)</li><li>Check possible usage of Tiles Auto Tag (<a shap
 e="rect" class="external-link" href="http://tiles.apache.org/tiles-autotag/">http://tiles.apache.org/tiles-autotag/</a>) instead of Struts Annotations</li><li>Convention plugin should be the "normal" way of using Struts</li><li>Plugin to map websocket requests to Struts actions</li><li>API to customize property finding via arbitrary request parameter names ("a" -&gt; getFoo())<ul><li>Happily breaks apart the 1:1 relationship between property paths and HTTP parameter names</li><li>Will be useful for obfuscation (doesn't expose java model)</li><li>Can be used to shorten request payload (smaller names)</li><li>Can be taken advantage by HDIV</li></ul></li><li>Themes cleanup<ul><li>Support HTML 5 features and Single Page Application development paradigm</li><li>Must output valid markup</li><li>Should be compatible with bootstrap, bootstrap validator, and other major UI platforms</li></ul></li></ul><h1 id="StrutsNext-DevelopmentplanofStruts3">Development plan of Struts 3</h1><h2 id="Strut
 sNext-M1(akaStruts2.5)">M1 (aka Struts 2.5)</h2><ul class="inline-task-list" data-inline-tasks-content-id="27832363"><li class="checked" data-inline-task-id="3">Request Git repo from INFRA</li><li class="checked" data-inline-task-id="4"><span style="line-height: 1.4285715;">Import project</span></li><li class="checked" data-inline-task-id="31">Remove deprecated plugins - moved to <a shape="rect" class="external-link" href="https://git1-us-west.apache.org/repos/asf?p=struts-archive.git">struts-archive.git </a>repo<ul class="inline-task-list" data-inline-tasks-content-id="27832363"><li class="checked" data-inline-task-id="16">we need place for deprecated stuff (to move the source code to) - new project "struts-archive"</li><li class="checked" data-inline-task-id="17">drop support for Struts 1 (remove plugin)</li><li class="checked" data-inline-task-id="18">dojo plugin</li><li class="checked" data-inline-task-id="19">codebehind plugin</li><li class="checked" data-inline-task-id="20">js
 f plugin</li></ul>
 
 
 
-<ol><li>Remove deprecated plugins<ul class="inline-task-list" data-inline-tasks-content-id="27832363"><li data-inline-task-id="16">we need place for deprecated stuff (to move the source code to) - new project "struts-archive"</li><li data-inline-task-id="17">drop support for Struts 1 (remove plugin)</li><li data-inline-task-id="18">dojo plugin</li><li data-inline-task-id="19">codebehind plugin</li><li data-inline-task-id="20">jsf plugin</li></ul>
+</li><li data-inline-task-id="32">Remove deprecated APIs<ol><li>if it cannot be removed, mark to be removed during work on 3.0</li></ol></li><li class="checked" data-inline-task-id="33">Switch to Java 7</li><li data-inline-task-id="34">Merge XWork code into Struts Core (without renaming packages)</li><li data-inline-task-id="35">Switch to strict DMI by default - allow only defined methods to be accessible via DMI - user can always change that list</li><li class="checked" data-inline-task-id="36">Mark current logging layer as&#160;<code>@deprecated</code>&#160;and use Log4j2 as default one</li><li class="checked" data-inline-task-id="37">Add plugin to support bean validation<ul class="inline-task-list" data-inline-tasks-content-id="27832363"><li class="checked" data-inline-task-id="44">Implement plugin</li><li class="checked" data-inline-task-id="45">Add showcase example</li><li class="checked" data-inline-task-id="46">Add documentation to wiki</li></ul>
 
 
 
-</li><li>Remove deprecated APIs<ol><li>if it cannot be removed, mark to be removed during work on 3.0</li></ol></li><li>Switch to Java 7</li><li>Merge XWork code into Struts Core (without renaming packages)</li><li>Switch to strict DMI by default - allow only defined methods to be accessible via DMI - user can always change that list</li><li>Prepare the first release</li><li>Cleanup website<ul class="inline-task-list" data-inline-tasks-content-id="27832363"><li data-inline-task-id="8">new user guide totally developed out of Confluence - people will be able to contribute to it via GitHub</li><li data-inline-task-id="9">Confluence (wiki) used only to explain more detailed given aspect of the framework (ie.: how to implement your own converter in details)</li><li class="checked" data-inline-task-id="10">keep just one version of the doc (no more release/2.3.x, release/2.2.x and so on - Google indexes everything and people are confused)</li></ul>
+</li><li class="checked" data-inline-task-id="38">Upgrade spring plugins spring version to 4.x&#160;</li><li data-inline-task-id="48">Move struts2 blank, jboss-blank and mailreader app to struts2-examples</li><li data-inline-task-id="39">Prepare the first release</li><li data-inline-task-id="40">Cleanup website<ul class="inline-task-list" data-inline-tasks-content-id="27832363"><li data-inline-task-id="8">new user guide totally developed out of Confluence - people will be able to contribute to it via GitHub</li><li data-inline-task-id="9">Confluence (wiki) used only to explain more detailed given aspect of the framework (ie.: how to implement your own converter in details)</li><li class="checked" data-inline-task-id="10">keep just one version of the doc (no more release/2.3.x, release/2.2.x and so on - Google indexes everything and people are confused)</li></ul>
 
 
 
-</li></ol><h2 id="StrutsNext-M2(alphaStruts3)">M2 (alpha Struts 3)</h2><ol><li>Finish merging XWork code base (rename packages)</li><li>Rename Struts 2 packages to org.apache.struts3</li><li>Use logging layer from <a shape="rect" class="external-link" href="http://logging.apache.org/log4j/2.x/manual/api.html">Log4j2</a> or <a shape="rect" class="external-link" href="https://code.google.com/p/anodyzed/" rel="nofollow">https://code.google.com/p/anodyzed/</a>&#160;(<span style="line-height: 1.4285715;">Chris Pratt is willing to donate that project to Struts)</span></li><li>Switch to OGNL 4<ol><li>we must release it first</li><li>also we need better API interfaces to allow integrate Struts with other EL engines, ie.: MVEL - right now the whole conversion layer is hardly tied with OGNL</li></ol></li></ol><h2 id="StrutsNext-M3(alphaStruts3)">M3 (alpha Struts 3)</h2><ol><li>Divide core into api and spi</li></ol><h2 id="StrutsNext-M4(beta1Struts3)">M4 (beta 1 Struts 3)</h2><ol><li>move plug
 ins to separated project<ol><li>disconnect plugins release cycle from core release</li></ol></li></ol><h1 id="StrutsNext-Cleanupwebsite">Cleanup website</h1><p>There should be just one project website - Apache Struts. Right now there is the main website - Apache Struts project, subsite Apache Struts 1 and another subsite Apache Struts 2. After announcing EOL of Struts 1, we basically supporting just one version or rather branch - Apache Struts 2 which should be at some point converted just into Apache Struts (version 2.5, version 3.0, version 3.1, etc.).</p><p>With that in mind we should have just one website to manage the project.</p><h1 id="StrutsNext-Undiscussedideas">Undiscussed ideas</h1><ul><li>JSR 371 support (<a shape="rect" class="external-link" href="https://jcp.org/en/jsr/detail?id=371" rel="nofollow">https://jcp.org/en/jsr/detail?id=371</a>)</li><li>Better support for modern webframeworks like AngularJS (@grobmeier)</li><li>Make use of slf4j and probably log4j2 (@grobmei
 er) - support for slf4j is already there, thanks to Johannes, check <a shape="rect" href="logging.html">Logging</a></li><li>Provide alternatives to java property file translations (@grobmeier)</li><li>Replace css and xhtml theme with an new html5 theme. (@jogep)</li><li>Extract XML configuration to dedicated plugin - XWork will provide only configuration via code, then user can decide which configuration to use - code, XML, convention, DB?</li><li>Should plugins move out of the Struts release cycle so they can independently released? (@pbenedict)</li><li>Turn all request and response processing into interceptors (perhaps introduce a "system stack" to complement a "user stack" to simplify configuration) (@pbenedict)</li></ul></div>
+</li></ul>
+
+
+
+<h2 id="StrutsNext-M2(alphaStruts3)">M2 (alpha Struts 3)</h2><ol><li>Finish merging XWork code base (rename packages)</li><li>Rename Struts 2 packages to org.apache.struts3</li><li>Use logging layer from <a shape="rect" class="external-link" href="http://logging.apache.org/log4j/2.x/manual/api.html">Log4j2</a> or <a shape="rect" class="external-link" href="https://code.google.com/p/anodyzed/" rel="nofollow">https://code.google.com/p/anodyzed/</a>&#160;(<span style="line-height: 1.4285715;">Chris Pratt is willing to donate that project to Struts)</span></li><li>Switch to OGNL 4<ol><li>we must release it first</li><li>also we need better API interfaces to allow integrate Struts with other EL engines, ie.: MVEL - right now the whole conversion layer is hardly tied with OGNL</li></ol></li><li>Switch to Servlet Specification 3.0<ol><li>drop&#160;<span style="color: rgb(34,34,34);">embedded JSP plugin</span></li></ol></li></ol><h2 id="StrutsNext-M3(alphaStruts3)">M3 (alpha Struts 3)</h2><
 ol><li>Divide core into api and spi</li></ol><h2 id="StrutsNext-M4(beta1Struts3)">M4 (beta 1 Struts 3)</h2><ol><li>move plugins to separated project<ol><li>disconnect plugins release cycle from core release</li></ol></li></ol><h1 id="StrutsNext-Cleanupwebsite">Cleanup website</h1><p>There should be just one project website - Apache Struts. Right now there is the main website - Apache Struts project, subsite Apache Struts 1 and another subsite Apache Struts 2. After announcing EOL of Struts 1, we basically supporting just one version or rather branch - Apache Struts 2 which should be at some point converted just into Apache Struts (version 2.5, version 3.0, version 3.1, etc.).</p><p>With that in mind we should have just one website to manage the project.</p><h1 id="StrutsNext-Undiscussedideas">Undiscussed ideas</h1><ul><li>JSR 371 support (<a shape="rect" class="external-link" href="https://jcp.org/en/jsr/detail?id=371" rel="nofollow">https://jcp.org/en/jsr/detail?id=371</a>)</li><li
 >Better support for modern webframeworks like AngularJS (@grobmeier)</li><li>Make use of slf4j and probably log4j2 (@grobmeier) - support for slf4j is already there, thanks to Johannes, check <a shape="rect" href="logging.html">Logging</a></li><li>Provide alternatives to java property file translations (@grobmeier)</li><li>Replace css and xhtml theme with an new html5 theme. (@jogep)</li><li>Extract XML configuration to dedicated plugin - XWork will provide only configuration via code, then user can decide which configuration to use - code, XML, convention, DB?</li><li>Should plugins move out of the Struts release cycle so they can independently released? (@pbenedict)</li><li>Turn all request and response processing into interceptors (perhaps introduce a "system stack" to complement a "user stack" to simplify configuration) (@pbenedict)</li></ul></div>
         </div>
 
         

Modified: websites/production/struts/content/docs/tutorials.html
==============================================================================
--- websites/production/struts/content/docs/tutorials.html (original)
+++ websites/production/struts/content/docs/tutorials.html Fri Jun 12 09:18:43 2015
@@ -128,43 +128,15 @@ under the License.
             <div id="ConfluenceContent">    <div class="aui-message hint shadowed information-macro">
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
-                            <p> The framework documentation is written for active web developers and assumes a working knowledge about how Java web applications are built. For more about the underlying nuts and bolts, see the <a shape="rect" class="external-link" href="http://struts.apache.org/primer.html">Key Technologies Primer</a>.</p>
+                            <p>The framework documentation is written for active web developers and assumes a working knowledge about how Java web applications are built. For more about the underlying nuts and bolts, see the <a shape="rect" class="external-link" href="http://struts.apache.org/primer.html">Key Technologies Primer</a>.</p>
                     </div>
     </div>
-
-<hr>
-<p><br clear="none">
-Several tutorials are available to help you get started with the framework, from all-purpose "soup to nuts" tutorials to specialty tutorials on portlets and database access.</p>
-
-<h3 id="Tutorials-Primers">Primers</h3>
-
-<ul><li><a shape="rect" href="getting-started.html">Getting Started</a> - Tutorials For Struts 2 Beginners</li><li><img class="emoticon emoticon-yellow-star" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/star_yellow.png" data-emoticon-name="yellow-star" alt="(star)"> <a shape="rect" class="external-link" href="http://www.vaannila.com/struts-2/struts-2-tutorial/struts-2-tutorial.html" rel="nofollow">Struts 2 Tutorials</a></li><li><a shape="rect" href="struts-2-spring-2-jpa-ajax.html">Struts 2 + Spring 2 + JPA + AJAX</a></li><li><img class="emoticon emoticon-yellow-star" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/star_yellow.png" data-emoticon-name="yellow-star" alt="(star)"> <a shape="rect" class="external-link" href="http://www.scribd.com/doc/25244173/Java-Struts-Hibernate-Tutorial" rel="nofollow">Struts 2 / 
 Hibernate Tutorial</a></li><li><img class="emoticon emoticon-yellow-star" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/star_yellow.png" data-emoticon-name="yellow-star" alt="(star)"> <a shape="rect" class="external-link" href="http://www.brucephillips.name/blog/index.cfm/2010/12/28/Recommended-Way-To-Structure-A-Spring-3-JPA-2-and-Maven-Web-Application" rel="nofollow">Struts 2, Spring 3, JPA 2, Maven Example</a></li></ul>
-
-
-<h3 id="Tutorials-Speciality">Speciality</h3>
-
-<ul><li><a shape="rect" href="extending-an-application-with-custom-plugins.html">Extending an Application with Custom Plugins</a></li><li><a shape="rect" href="crud-demo-i.html">CRUD Made Easy</a></li><li><a shape="rect" href="jasperreports-tutorial.html">JasperReports Tutorial</a></li><li><a shape="rect" href="struts-2-portlet-tutorial.html">Portlet Tutorial</a></li><li><a shape="rect" href="developing-a-portlet-using-eclipse.html">Developing a Portlet using Eclipse</a></li><li><a shape="rect" href="struts-2-junit-plugin-tutorial.html">Struts 2 JUnit Plugin Tutorial</a></li></ul>
-
-
-<h3 id="Tutorials-Examples">Examples</h3>
-
-<p>Several example applications are bundled with the framework, as ready-to-deploy WARs.</p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Blank</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> An "empty" application that you can use as the starting point for your own projects. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> MailReader </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A simple application that demonstrates best practices. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Portlet </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> An application demonstrating portlet support </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> Showcase </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A sampling of common (and not so common) use cases. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" href="examples.html">Other Examples</a> </p></td><td colspan
 ="1" rowspan="1" class="confluenceTd"><p> Simple examples and links to "powered by" sites </p></td></tr></tbody></table></div>
-
-
-<p>For the complete source code to the applications, see the source code <a shape="rect" href="home.html#Home-Distributions">distribution</a>.</p>
-
-<h2 id="Tutorials-Errata?">Errata?</h2>
-
-    <div class="aui-message success shadowed information-macro">
+&#160;<p><br clear="none"> Several tutorials are available to help you get started with the framework, from all-purpose "soup to nuts" tutorials to specialty tutorials on portlets and database access.</p><h3 id="Tutorials-Primers">Primers</h3><ul><li><a shape="rect" href="getting-started.html">Getting Started</a> - Tutorials For Struts 2 Beginners</li><li><img class="emoticon emoticon-yellow-star" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/star_yellow.png" data-emoticon-name="yellow-star" alt="(star)"> <a shape="rect" class="external-link" href="http://www.vaannila.com/struts-2/struts-2-tutorial/struts-2-tutorial.html" rel="nofollow">Struts 2 Tutorials</a></li><li><a shape="rect" href="struts-2-spring-2-jpa-ajax.html">Struts 2 + Spring 2 + JPA + AJAX</a></li><li><img class="emoticon emoticon-yellow-star" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f35
 35d84f9283a9ac.1/_/images/icons/emoticons/star_yellow.png" data-emoticon-name="yellow-star" alt="(star)"> <a shape="rect" class="external-link" href="http://www.scribd.com/doc/25244173/Java-Struts-Hibernate-Tutorial" rel="nofollow">Struts 2 / Hibernate Tutorial</a></li><li><img class="emoticon emoticon-yellow-star" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/star_yellow.png" data-emoticon-name="yellow-star" alt="(star)"> <a shape="rect" class="external-link" href="http://www.brucephillips.name/blog/index.cfm/2010/12/28/Recommended-Way-To-Structure-A-Spring-3-JPA-2-and-Maven-Web-Application" rel="nofollow">Struts 2, Spring 3, JPA 2, Maven Example</a></li></ul><h3 id="Tutorials-Speciality">Speciality</h3><ul><li><a shape="rect" href="extending-an-application-with-custom-plugins.html">Extending an Application with Custom Plugins</a></li><li><a shape="rect" href="crud-demo-i.html">CRUD Made Easy</a>
 </li><li><a shape="rect" class="external-link" href="http://www.jgeppert.com/2015/05/creating-java-web-applications-with-angularjs-and-struts2/" rel="nofollow">Creating java web applications with AngularJS and Struts2</a></li><li><a shape="rect" class="external-link" href="http://www.jgeppert.com/2011/05/4-easy-steps-to-create-a-java-based-web-application-with-struts2-and-jquery/" rel="nofollow">4 Easy Steps to create a Java based Web Application with Struts2 and jQuery</a></li><li><a shape="rect" href="jasperreports-tutorial.html">JasperReports Tutorial</a></li><li><a shape="rect" href="struts-2-portlet-tutorial.html">Portlet Tutorial</a></li><li><a shape="rect" href="developing-a-portlet-using-eclipse.html">Developing a Portlet using Eclipse</a></li><li><a shape="rect" href="struts-2-junit-plugin-tutorial.html">Struts 2 JUnit Plugin Tutorial</a></li></ul><h3 id="Tutorials-Examples">Examples</h3><p>Several example applications are bundled with the framework, as ready-to-deploy WARs
 .</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Blank</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>An "empty" application that you can use as the starting point for your own projects.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>MailReader</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A simple application that demonstrates best practices.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Portlet</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>An application demonstrating portlet support</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Showcase</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A sampling of common (and not so common) use cases.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="examples.html">Other Examples</a></p></td><td colspan="1" rowspan
 ="1" class="confluenceTd"><p>Simple examples and links to "powered by" sites</p></td></tr></tbody></table></div><p>For the complete source code to the applications, see the source code <a shape="rect" href="home.html#Home-Distributions">distribution</a>.</p><h2 id="Tutorials-Errata?">Errata?</h2>    <div class="aui-message success shadowed information-macro">
                             <span class="aui-icon icon-success">Icon</span>
                 <div class="message-content">
                             <p>To suggest a change or a correction to any part of the documentation, log in and leave a comment on the appropriate page. We are always looking for <a shape="rect" class="external-link" href="http://struts.apache.org/2.x/docs/contributors-guide.html">help with the documentation!</a></p>
                     </div>
     </div>
-
-
 <h2 id="Tutorials-Next:">Next: <a shape="rect" href="guides.html">Guides</a></h2></div>
         </div>